[PATCH] D39963: [RISCV][RFC] Add initial RISC-V target and driver support

Ana Pazos via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Nov 20 17:21:43 PST 2017


apazos added a comment.

Can you push this as a patch to review/commit instead of RFC? It has received a lot of comments/corrections already and I think it is getting in a shape we can merge.



================
Comment at: lib/Driver/ToolChains/RISCV.cpp:86
+    CmdArgs.push_back("-lc");
+    CmdArgs.push_back("-lgloss");
+    CmdArgs.push_back("--end-group");
----------------
asb wrote:
> apazos wrote:
> > mgrang wrote:
> > > How about if our sysroot is linux (as opposed to elf)? There won't be any libgloss.a, right? Also there won't be a crt0.o (instead there will be crt1.o).
> > Supporting linux target is desirable early on because most of us will be using Qemu for running tests.
> Linux targets are not currently supported, as they require the ilp32d or lp64d (hard double precision) ABI. The only fiddly part is actually in the Clang frontend, handling structs composed of two reals or one integer + one real. This is obviously high up on the todo list.
I meant user code compiled with target=riscv32-unknown-linux march=rv32imafdc and mabi=ilp32. This would run fine on qemu.


================
Comment at: test/Preprocessor/init.c:9991
+// RUN: %clang_cc1 -E -dM -ffreestanding -triple=riscv32 < /dev/null \
+// RUN:   | FileCheck -match-full-lines -check-prefix=RISCV32 %s
+// RISCV32: #define _ILP32 1
----------------
Shouldn't we just check for the target specific defines  in these tests?


https://reviews.llvm.org/D39963





More information about the cfe-commits mailing list