Skip to content

Commit

Permalink
[Driver] Don't override '-march' when using '-arch x86_64h'
Browse files Browse the repository at this point in the history
On Darwin, using '-arch x86_64h' would always override the option passed
through '-march'.

This patch allows users to use '-march' with x86_64h, while keeping the
default to 'core-avx2'

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

llvm-svn: 349381
  • Loading branch information
francisvm committed Dec 17, 2018
1 parent 0a264f3 commit d18f17e
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 10 deletions.
6 changes: 1 addition & 5 deletions clang/lib/Driver/ToolChains/Arch/X86.cpp
Expand Up @@ -23,12 +23,8 @@ using namespace llvm::opt;
const char *x86::getX86TargetCPU(const ArgList &Args,
const llvm::Triple &Triple) {
if (const Arg *A = Args.getLastArg(clang::driver::options::OPT_march_EQ)) {
if (StringRef(A->getValue()) != "native") {
if (Triple.isOSDarwin() && Triple.getArchName() == "x86_64h")
return "core-avx2";

if (StringRef(A->getValue()) != "native")
return A->getValue();
}

// FIXME: Reject attempts to use -march=native unless the target matches
// the host.
Expand Down
6 changes: 1 addition & 5 deletions clang/lib/Driver/ToolChains/Darwin.cpp
Expand Up @@ -2017,12 +2017,8 @@ DerivedArgList *MachO::TranslateArgs(const DerivedArgList &Args,
else if (Name == "pentIIm3")
DAL->AddJoinedArg(nullptr, MArch, "pentium2");

else if (Name == "x86_64")
else if (Name == "x86_64" || Name == "x86_64h")
DAL->AddFlagArg(nullptr, Opts.getOption(options::OPT_m64));
else if (Name == "x86_64h") {
DAL->AddFlagArg(nullptr, Opts.getOption(options::OPT_m64));
DAL->AddJoinedArg(nullptr, MArch, "x86_64h");
}

else if (Name == "arm")
DAL->AddJoinedArg(nullptr, MArch, "armv4t");
Expand Down
5 changes: 5 additions & 0 deletions clang/test/Driver/clang-translation.c
Expand Up @@ -33,6 +33,11 @@
// AVX2: "-target-cpu"
// AVX2: "core-avx2"

// RUN: %clang -target x86_64h-apple-darwin -march=skx -### %s -o /dev/null 2>&1 | \
// RUN: FileCheck -check-prefix=X8664HSKX %s
// X8664HSKX: "-target-cpu"
// X8664HSKX: "skx"

// RUN: %clang -target i386-apple-macosx10.12 -### -S %s -o %t.s 2>&1 | \
// RUN: FileCheck -check-prefix=PENRYN %s
// RUN: %clang -target x86_64-apple-macosx10.12 -### -S %s -o %t.s 2>&1 | \
Expand Down

0 comments on commit d18f17e

Please sign in to comment.