about summary refs log tree commit diff
path: root/src/rustllvm/PassWrapper.cpp
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2017-09-20 12:24:49 +0000
committerbors <bors@rust-lang.org>2017-09-20 12:24:49 +0000
commit4cdb36262b93390c8733a1ce44665619d9348981 (patch)
treebf4dd15c310505c6ba4f86bb6bd41d56aaa050e6 /src/rustllvm/PassWrapper.cpp
parent183329cf738e8903058484845338f59a9e14d094 (diff)
parent824fb3817c0cbcb3a31a705d02a77219c8331608 (diff)
downloadrust-4cdb36262b93390c8733a1ce44665619d9348981.tar.gz
rust-4cdb36262b93390c8733a1ce44665619d9348981.zip
Auto merge of #44407 - mattico:print-native-cpu, r=arielb1
Add 'native' to -C target-cpu=help

Fixes #44393
Diffstat (limited to 'src/rustllvm/PassWrapper.cpp')
-rw-r--r--src/rustllvm/PassWrapper.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/rustllvm/PassWrapper.cpp b/src/rustllvm/PassWrapper.cpp
index ba0c4fbe173..2f966e5a1c5 100644
--- a/src/rustllvm/PassWrapper.cpp
+++ b/src/rustllvm/PassWrapper.cpp
@@ -299,10 +299,17 @@ static size_t getLongestEntryLength(ArrayRef<SubtargetFeatureKV> Table) {
 extern "C" void LLVMRustPrintTargetCPUs(LLVMTargetMachineRef TM) {
   const TargetMachine *Target = unwrap(TM);
   const MCSubtargetInfo *MCInfo = Target->getMCSubtargetInfo();
+  const Triple::ArchType HostArch = Triple(sys::getProcessTriple()).getArch();
+  const Triple::ArchType TargetArch = Target->getTargetTriple().getArch();
   const ArrayRef<SubtargetFeatureKV> CPUTable = MCInfo->getCPUTable();
   unsigned MaxCPULen = getLongestEntryLength(CPUTable);
 
   printf("Available CPUs for this target:\n");
+  if (HostArch == TargetArch) {
+    const StringRef HostCPU = sys::getHostCPUName();
+    printf("    %-*s - Select the CPU of the current host (currently %.*s).\n",
+      MaxCPULen, "native", (int)HostCPU.size(), HostCPU.data());
+  }
   for (auto &CPU : CPUTable)
     printf("    %-*s - %s.\n", MaxCPULen, CPU.Key, CPU.Desc);
   printf("\n");