Reinstate -O3 for LTO.
authorDavid Blaikie <dblaikie@gmail.com>
Wed, 30 May 2012 18:42:51 +0000 (18:42 +0000)
committerDavid Blaikie <dblaikie@gmail.com>
Wed, 30 May 2012 18:42:51 +0000 (18:42 +0000)
This broke in r144788 when the CodeGenOpt option was moved from everywhere else
(specifically, from addPassesToEmitFile) to createTargetMachine. Since
LTOCodeGenerator wasn't passing the 4th argument, when the 4th parameter became
the 3rd, it silently continued to compile (int->bool conversion) but meant
something completely different.

This change preserves the existing (accidental) and previous (default)
semantics of the addPassesToEmitFile and restores the previous/intended
CodeGenOpt argument by passing it appropriately to createTargetMachine.

(discovered by pending changes to -Wconversion to catch constant->bool
conversions)

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

tools/lto/LTOCodeGenerator.cpp

index 6382a3f219e6ea4407893c8ce167cc23ec495983..08139470be4ccaa522e7854cdc8ff9dbe9603aa7 100644 (file)
@@ -240,7 +240,8 @@ bool LTOCodeGenerator::determineTarget(std::string& errMsg) {
     std::string FeatureStr = Features.getString();
     TargetOptions Options;
     _target = march->createTargetMachine(Triple, _mCpu, FeatureStr, Options,
-                                         RelocModel);
+                                         RelocModel, CodeModel::Default,
+                                         CodeGenOpt::Aggressive);
   }
   return false;
 }
@@ -372,8 +373,7 @@ bool LTOCodeGenerator::generateObjectFile(raw_ostream &out,
   formatted_raw_ostream Out(out);
 
   if (_target->addPassesToEmitFile(*codeGenPasses, Out,
-                                   TargetMachine::CGFT_ObjectFile,
-                                   CodeGenOpt::Aggressive)) {
+                                   TargetMachine::CGFT_ObjectFile)) {
     errMsg = "target file type not supported";
     return true;
   }