diff options
-rw-r--r-- | llvm/include/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h | 17 | ||||
-rw-r--r-- | llvm/lib/ExecutionEngine/Orc/JITTargetMachineBuilder.cpp | 4 |
2 files changed, 18 insertions, 3 deletions
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h b/llvm/include/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h index bcbd72e68f1..c8c4ecdaff1 100644 --- a/llvm/include/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h +++ b/llvm/include/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h @@ -91,6 +91,12 @@ public: return *this; } + /// Set subtarget features. + JITTargetMachineBuilder &setFeatures(StringRef FeatureString) { + Features = SubtargetFeatures(FeatureString); + return *this; + } + /// Add subtarget features. JITTargetMachineBuilder & addFeatures(const std::vector<std::string> &FeatureVec); @@ -101,6 +107,17 @@ public: /// Access subtarget features. const SubtargetFeatures &getFeatures() const { return Features; } + /// Set TargetOptions. + /// + /// Note: This operation will overwrite any previously configured options, + /// including EmulatedTLS and ExplicitEmulatedTLS which + /// the JITTargetMachineBuilder sets by default. Clients are responsible + /// for re-enabling these overwritten options. + JITTargetMachineBuilder &setOptions(TargetOptions Options) { + this->Options = std::move(Options); + return *this; + } + /// Access TargetOptions. TargetOptions &getOptions() { return Options; } diff --git a/llvm/lib/ExecutionEngine/Orc/JITTargetMachineBuilder.cpp b/llvm/lib/ExecutionEngine/Orc/JITTargetMachineBuilder.cpp index 1d3e6db913e..114e81e4177 100644 --- a/llvm/lib/ExecutionEngine/Orc/JITTargetMachineBuilder.cpp +++ b/llvm/lib/ExecutionEngine/Orc/JITTargetMachineBuilder.cpp @@ -28,14 +28,12 @@ Expected<JITTargetMachineBuilder> JITTargetMachineBuilder::detectHost() { // Retrieve host CPU name and sub-target features and add them to builder. // Relocation model, code model and codegen opt level are kept to default // values. - llvm::SubtargetFeatures SubtargetFeatures; llvm::StringMap<bool> FeatureMap; llvm::sys::getHostCPUFeatures(FeatureMap); for (auto &Feature : FeatureMap) - SubtargetFeatures.AddFeature(Feature.first(), Feature.second); + TMBuilder.getFeatures().AddFeature(Feature.first(), Feature.second); TMBuilder.setCPU(llvm::sys::getHostCPUName()); - TMBuilder.addFeatures(SubtargetFeatures.getFeatures()); return TMBuilder; } |