forked from OSchip/llvm-project
Refactor PPC ABI handling to accept and silently ignore -mabi=altivec.
All of the ABIs we support are altivec style anyhow and so the option doesn't make much sense with the modern ABIs. We could make this a more noisy ignore, but it would break builds for projects that just pass it along by default because of historical reasons. llvm-svn: 241925
This commit is contained in:
parent
e6b7cf4787
commit
71e5e3defe
|
@ -1272,9 +1272,7 @@ void Clang::AddPPCTargetArgs(const ArgList &Args,
|
|||
ArgStringList &CmdArgs) const {
|
||||
// Select the ABI to use.
|
||||
const char *ABIName = nullptr;
|
||||
if (Arg *A = Args.getLastArg(options::OPT_mabi_EQ)) {
|
||||
ABIName = A->getValue();
|
||||
} else if (getToolChain().getTriple().isOSLinux())
|
||||
if (getToolChain().getTriple().isOSLinux())
|
||||
switch (getToolChain().getArch()) {
|
||||
case llvm::Triple::ppc64: {
|
||||
// When targeting a processor that supports QPX, or if QPX is
|
||||
|
@ -1299,6 +1297,13 @@ void Clang::AddPPCTargetArgs(const ArgList &Args,
|
|||
break;
|
||||
}
|
||||
|
||||
if (Arg *A = Args.getLastArg(options::OPT_mabi_EQ))
|
||||
// The ppc64 linux abis are all "altivec" abis by default. Accept and ignore
|
||||
// the option if given as we don't have backend support for any targets
|
||||
// that don't use the altivec abi.
|
||||
if (StringRef(A->getValue()) != "altivec")
|
||||
ABIName = A->getValue();
|
||||
|
||||
if (ABIName) {
|
||||
CmdArgs.push_back("-target-abi");
|
||||
CmdArgs.push_back(ABIName);
|
||||
|
|
|
@ -21,6 +21,8 @@
|
|||
// RUN: -mabi=elfv1 | FileCheck -check-prefix=CHECK-ELFv1 %s
|
||||
// RUN: %clang -target powerpc64le-unknown-linux-gnu %s -### -o %t.o 2>&1 \
|
||||
// RUN: -mabi=elfv2 | FileCheck -check-prefix=CHECK-ELFv2 %s
|
||||
// RUN: %clang -target powerpc64le-unknown-linux-gnu %s -### -o %t.o 2>&1 \
|
||||
// RUN: -mabi=altivec | FileCheck -check-prefix=CHECK-ELFv2 %s
|
||||
|
||||
// CHECK-ELFv1: "-target-abi" "elfv1"
|
||||
// CHECK-ELFv1-QPX: "-target-abi" "elfv1-qpx"
|
||||
|
|
Loading…
Reference in New Issue