[RISCV] Remove duplicated logic when determining the target ABI
We were calculating twice ilp32/lp64. Do this in one place instead. Differential Revision: https://reviews.llvm.org/D48357 llvm-svn: 368128
This commit is contained in:
parent
f192cc587c
commit
371bdc9b7f
|
@ -372,8 +372,14 @@ void riscv::getRISCVTargetFeatures(const Driver &D, const ArgList &Args,
|
|||
}
|
||||
|
||||
StringRef riscv::getRISCVABI(const ArgList &Args, const llvm::Triple &Triple) {
|
||||
if (Arg *A = Args.getLastArg(options::OPT_mabi_EQ))
|
||||
assert((Triple.getArch() == llvm::Triple::riscv32 ||
|
||||
Triple.getArch() == llvm::Triple::riscv64) &&
|
||||
"Unexpected triple");
|
||||
|
||||
if (const Arg *A = Args.getLastArg(options::OPT_mabi_EQ))
|
||||
return A->getValue();
|
||||
|
||||
// FIXME: currently defaults to the soft-float ABIs. Will need to be
|
||||
// expanded to select ilp32f, ilp32d, lp64f, lp64d when appropriate.
|
||||
return Triple.getArch() == llvm::Triple::riscv32 ? "ilp32" : "lp64";
|
||||
}
|
||||
|
|
|
@ -1848,21 +1848,11 @@ void Clang::AddPPCTargetArgs(const ArgList &Args,
|
|||
|
||||
void Clang::AddRISCVTargetArgs(const ArgList &Args,
|
||||
ArgStringList &CmdArgs) const {
|
||||
// FIXME: currently defaults to the soft-float ABIs. Will need to be
|
||||
// expanded to select ilp32f, ilp32d, lp64f, lp64d when appropriate.
|
||||
const char *ABIName = nullptr;
|
||||
const llvm::Triple &Triple = getToolChain().getTriple();
|
||||
if (Arg *A = Args.getLastArg(options::OPT_mabi_EQ))
|
||||
ABIName = A->getValue();
|
||||
else if (Triple.getArch() == llvm::Triple::riscv32)
|
||||
ABIName = "ilp32";
|
||||
else if (Triple.getArch() == llvm::Triple::riscv64)
|
||||
ABIName = "lp64";
|
||||
else
|
||||
llvm_unreachable("Unexpected triple!");
|
||||
StringRef ABIName = riscv::getRISCVABI(Args, Triple);
|
||||
|
||||
CmdArgs.push_back("-target-abi");
|
||||
CmdArgs.push_back(ABIName);
|
||||
CmdArgs.push_back(ABIName.data());
|
||||
}
|
||||
|
||||
void Clang::AddSparcTargetArgs(const ArgList &Args,
|
||||
|
|
Loading…
Reference in New Issue