mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-06 08:14:43 +01:00
[Orc] Add setters for target options and features to JITTargetMachineBuilder.
Also remove redundant feature initialization steps from the detectHost method.
This commit is contained in:
@@ -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; }
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user