Have opt set up a specific TargetLibraryInfo for modules
authorChris Lattner <sabre@nondot.org>
Fri, 18 Feb 2011 22:13:01 +0000 (22:13 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 18 Feb 2011 22:13:01 +0000 (22:13 +0000)
with a triple.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125970 91177308-0d34-0410-b5e6-96231b3b80d8

tools/opt/opt.cpp

index 0a945df7f7be1854c99f31dcd74aa16aa6d79f34..8ccd8e877b96c0d326608f272e15d8f488408600 100644 (file)
@@ -24,7 +24,9 @@
 #include "llvm/Analysis/RegionPass.h"
 #include "llvm/Analysis/CallGraph.h"
 #include "llvm/Target/TargetData.h"
+#include "llvm/Target/TargetLibraryInfo.h"
 #include "llvm/Target/TargetMachine.h"
+#include "llvm/ADT/Triple.h"
 #include "llvm/Support/PassNameParser.h"
 #include "llvm/Support/Signals.h"
 #include "llvm/Support/Debug.h"
@@ -525,11 +527,15 @@ int main(int argc, char **argv) {
       NoOutput = true;
 
   // Create a PassManager to hold and optimize the collection of passes we are
-  // about to build...
+  // about to build.
   //
   PassManager Passes;
 
-  // Add an appropriate TargetData instance for this module...
+  // Add an appropriate TargetLibraryInfo pass for the module's triple.
+  if (!M->getTargetTriple().empty())
+    Passes.add(new TargetLibraryInfo(Triple(M->getTargetTriple())));
+  
+  // Add an appropriate TargetData instance for this module.
   TargetData *TD = 0;
   const std::string &ModuleDataLayout = M.get()->getDataLayout();
   if (!ModuleDataLayout.empty())