Expected<JITTargetMachineBuilder> JITTargetMachineBuilder::detectHost() {
// FIXME: getProcessTriple is bogus. It returns the host LLVM was compiled on,
// rather than a valid triple for the current process.
- JITTargetMachineBuilder TMBuilder(Triple(sys::getProcessTriple()));
-
- // 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.setCPU(llvm::sys::getHostCPUName());
- TMBuilder.addFeatures(SubtargetFeatures.getFeatures());
-
- return TMBuilder;
+ return JITTargetMachineBuilder(Triple(sys::getProcessTriple()));
}
Expected<std::unique_ptr<TargetMachine>>