[llvm-mca] Default to the native host cpu if flag -mcpu is not specified.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@330809 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Andrea Di Biagio 2018-04-25 10:18:25 +00:00
parent 8155479799
commit e508042fca
3 changed files with 9 additions and 6 deletions

View File

@ -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>

View File

@ -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'.

View File

@ -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))