summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--llvm/docs/CommandGuide/llvm-mca.rst5
-rw-r--r--llvm/test/tools/llvm-mca/X86/no-sched-model.s1
-rw-r--r--llvm/tools/llvm-mca/llvm-mca.cpp9
3 files changed, 9 insertions, 6 deletions
diff --git a/llvm/docs/CommandGuide/llvm-mca.rst b/llvm/docs/CommandGuide/llvm-mca.rst
index 54610d77cd5..63f2e65cd04 100644
--- a/llvm/docs/CommandGuide/llvm-mca.rst
+++ b/llvm/docs/CommandGuide/llvm-mca.rst
@@ -89,9 +89,8 @@ option specifies "``-``", then the output will also be sent to standard output.
.. option:: -mcpu=<cpuname>
- Specify the processor for whic to run the analysis.
- By default this defaults to a "generic" processor. It is not autodetected to
- the current architecture.
+ Specify the processor for which to analyze the code. By default, the cpu name
+ is autodetected from the host.
.. option:: -output-asm-variant=<variant id>
diff --git a/llvm/test/tools/llvm-mca/X86/no-sched-model.s b/llvm/test/tools/llvm-mca/X86/no-sched-model.s
index e65e3ce6333..c01c0fcb7a9 100644
--- a/llvm/test/tools/llvm-mca/X86/no-sched-model.s
+++ b/llvm/test/tools/llvm-mca/X86/no-sched-model.s
@@ -1,4 +1,3 @@
-# RUN: not llvm-mca -mtriple=x86_64-unknown-unknown < %s 2>&1 | FileCheck %s
# RUN: not llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=generic < %s 2>&1 | FileCheck %s
# CHECK: error: unable to find instruction-level scheduling information for target triple 'x86_64-unknown-unknown' and cpu 'generic'.
diff --git a/llvm/tools/llvm-mca/llvm-mca.cpp b/llvm/tools/llvm-mca/llvm-mca.cpp
index da0a3628c2f..0e1d18ee09e 100644
--- a/llvm/tools/llvm-mca/llvm-mca.cpp
+++ b/llvm/tools/llvm-mca/llvm-mca.cpp
@@ -16,7 +16,7 @@
// -o <file>
//
// The target defaults to the host target.
-// The cpu defaults to 'generic'.
+// The cpu defaults to the 'native' host cpu.
// The output defaults to standard output.
//
//===----------------------------------------------------------------------===//
@@ -38,6 +38,7 @@
#include "llvm/MC/MCParser/MCTargetAsmParser.h"
#include "llvm/MC/MCRegisterInfo.h"
#include "llvm/MC/MCStreamer.h"
+#include "llvm/Support/Host.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/ErrorOr.h"
#include "llvm/Support/FileSystem.h"
@@ -69,7 +70,7 @@ static cl::opt<std::string>
static cl::opt<std::string>
MCPU("mcpu",
cl::desc("Target a specific cpu type (-mcpu=help for details)"),
- cl::value_desc("cpu-name"), cl::init("generic"));
+ cl::value_desc("cpu-name"), cl::init("native"));
static cl::opt<int>
OutputAsmVariant("output-asm-variant",
@@ -329,6 +330,10 @@ int main(int argc, char **argv) {
MCStreamerWrapper Str(Ctx, Regions);
std::unique_ptr<MCInstrInfo> MCII(TheTarget->createMCInstrInfo());
+
+ if (!MCPU.compare("native"))
+ MCPU = llvm::sys::getHostCPUName();
+
std::unique_ptr<MCSubtargetInfo> STI(
TheTarget->createMCSubtargetInfo(TripleName, MCPU, /* FeaturesStr */ ""));
if (!STI->isCPUStringValid(MCPU))
OpenPOWER on IntegriCloud