diff options
Diffstat (limited to 'tools')
-rw-r--r-- | tools/lto/LTOCodeGenerator.cpp | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/tools/lto/LTOCodeGenerator.cpp b/tools/lto/LTOCodeGenerator.cpp index 0b9cb2952e..f079c2e360 100644 --- a/tools/lto/LTOCodeGenerator.cpp +++ b/tools/lto/LTOCodeGenerator.cpp @@ -304,10 +304,17 @@ bool LTOCodeGenerator::determineTarget(std::string& errMsg) break; } + // Prepare subtarget feature set for the given command line options. + SubtargetFeatures features; + + // Set the rest of features by default. + // Note: Please keep this after all explict feature settings to make sure + // defaults will not override explicitly set options. + features.AddFeatures( + SubtargetFeatures::getDefaultSubtargetFeatures(llvm::Triple(Triple))); + // construct LTModule, hand over ownership of module and target - const std::string FeatureStr = - SubtargetFeatures::getDefaultSubtargetFeatures(llvm::Triple(Triple)); - _target = march->createTargetMachine(Triple, FeatureStr); + _target = march->createTargetMachine(Triple, features.getString()); } return false; } |