changeset 1570:ab03cfb3a212

Remove dummy module hack.
author Benjamin Kramer <benny.kra@gmail.com>
date Thu, 06 Aug 2009 16:02:14 +0200
parents 755abafbf25d
children 8d086d552909
files gen/main.cpp
diffstat 1 files changed, 4 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/gen/main.cpp	Thu Aug 06 01:47:39 2009 +0200
+++ b/gen/main.cpp	Thu Aug 06 16:02:14 2009 +0200
@@ -402,9 +402,6 @@
     if (global.errors)
         fatal();
 
-    llvm::LLVMContext& context = llvm::getGlobalContext();
-    llvm::Module mod("dummy", context);
-
     // override triple if needed
     const char* defaultTriple = DEFAULT_TARGET_TRIPLE;
     if ((sizeof(void*) == 4 && m64bits) || (sizeof(void*) == 8 && m32bits))
@@ -427,7 +424,7 @@
         global.params.targetTriple = mTargetTriple.c_str();
     }
 
-    mod.setTargetTriple(global.params.targetTriple);
+    std::string triple = global.params.targetTriple;
 
     // Allocate target machine.
     
@@ -442,11 +439,7 @@
     if (mArch.empty())
     {
         std::string Err;
-#if LLVM_REV < 77950
-        theTarget = llvm::TargetRegistry::lookupTarget(mod.getTargetTriple(), false, false, Err);
-#else
-        theTarget = llvm::TargetRegistry::lookupTarget(mod.getTargetTriple(), Err);
-#endif
+        theTarget = llvm::TargetRegistry::lookupTarget(triple, Err);
         if (theTarget == 0)
         {
             error("failed to auto-select target: %s, please use the -march option", Err.c_str());
@@ -483,7 +476,7 @@
         FeaturesStr = Features.getString();
     }
 
-    std::auto_ptr<llvm::TargetMachine> target(theTarget->createTargetMachine(mod.getTargetTriple(), FeaturesStr));
+    std::auto_ptr<llvm::TargetMachine> target(theTarget->createTargetMachine(triple, FeaturesStr));
     assert(target.get() && "Could not allocate target machine!");
     gTargetMachine = target.get();
     gTargetData = gTargetMachine->getTargetData();
@@ -559,7 +552,6 @@
     // parse the OS out of the target triple
     // see http://gcc.gnu.org/install/specific.html for details
     // also llvm's different SubTargets have useful information
-    std::string triple = global.params.targetTriple;
     size_t npos = std::string::npos;
 
     // windows
@@ -904,6 +896,7 @@
 
     // collects llvm modules to be linked if singleobj is passed
     std::vector<llvm::Module*> llvmModules;
+    llvm::LLVMContext& context = llvm::getGlobalContext();
 
     // Generate output files
     for (int i = 0; i < modules.dim; i++)