summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver/ToolChains/Arch/RISCV.cpp
diff options
context:
space:
mode:
authorRoger Ferrer Ibanez <rofirrim@gmail.com>2019-08-07 07:08:00 +0000
committerRoger Ferrer Ibanez <rofirrim@gmail.com>2019-08-07 07:08:00 +0000
commit371bdc9b7f25e6cde1d24c4e290eab3a973831e4 (patch)
tree12e53f54635113a5963a9acd7217b5ae756e267f /clang/lib/Driver/ToolChains/Arch/RISCV.cpp
parentf192cc587ccc314509e84f4b5fe5496daa80752f (diff)
downloadbcm5719-llvm-371bdc9b7f25e6cde1d24c4e290eab3a973831e4.tar.gz
bcm5719-llvm-371bdc9b7f25e6cde1d24c4e290eab3a973831e4.zip
[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
Diffstat (limited to 'clang/lib/Driver/ToolChains/Arch/RISCV.cpp')
-rw-r--r--clang/lib/Driver/ToolChains/Arch/RISCV.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/clang/lib/Driver/ToolChains/Arch/RISCV.cpp b/clang/lib/Driver/ToolChains/Arch/RISCV.cpp
index b6768de4d29..355dce3c10d 100644
--- a/clang/lib/Driver/ToolChains/Arch/RISCV.cpp
+++ b/clang/lib/Driver/ToolChains/Arch/RISCV.cpp
@@ -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";
}
OpenPOWER on IntegriCloud