[llvm] r367944 - [ORC] Add CPU name and sub-target features to detectHost

Diego Caballero via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 5 16:02:12 PDT 2019


Author: dcaballe
Date: Mon Aug  5 16:02:12 2019
New Revision: 367944

URL: http://llvm.org/viewvc/llvm-project?rev=367944&view=rev
Log:
[ORC] Add CPU name and sub-target features to detectHost

This commit adds host CPU name and sub-target features to the
`JITTargetMachineBuilder` created by `JITTargetMachineBuilder::detectHost()`.

Differential Revision: https://reviews.llvm.org/D65760


Modified:
    llvm/trunk/lib/ExecutionEngine/Orc/JITTargetMachineBuilder.cpp

Modified: llvm/trunk/lib/ExecutionEngine/Orc/JITTargetMachineBuilder.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/ExecutionEngine/Orc/JITTargetMachineBuilder.cpp?rev=367944&r1=367943&r2=367944&view=diff
==============================================================================
--- llvm/trunk/lib/ExecutionEngine/Orc/JITTargetMachineBuilder.cpp (original)
+++ llvm/trunk/lib/ExecutionEngine/Orc/JITTargetMachineBuilder.cpp Mon Aug  5 16:02:12 2019
@@ -22,7 +22,21 @@ JITTargetMachineBuilder::JITTargetMachin
 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.
-  return JITTargetMachineBuilder(Triple(sys::getProcessTriple()));
+  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;
 }
 
 Expected<std::unique_ptr<TargetMachine>>




More information about the llvm-commits mailing list