[llvm-dev] Risc-V 64: unable to lowerGlobalAddress

Alex Bradbury via llvm-dev llvm-dev at lists.llvm.org
Fri Sep 21 03:28:08 PDT 2018


On 21 September 2018 at 02:06, David Jones via llvm-dev
<llvm-dev at lists.llvm.org> wrote:
> I am trying to retarget my application to a Risc-V 64-bit core.
>
> I downloaded LLVM 7.0.0 release today, and built LLVM+Clang for both x86_64
> and Risc-V.
>
> Alas, I have hit a snag: given a simple test program:
>
>
> extern int foo;
> int *getfoo() { return &foo; }
>
> I try to compile:
>
> /tools/llvm/7.0.0dbg/bin/clang test.c -c -o test.o
> --target=riscv64-unknown-elf
>
> and I get:
>
> fatal error: error in backend: Unable to lowerGlobalAddress
> clang-7: error: clang frontend command failed with exit code 70 (use -v to
> see invocation)
> clang version 7.0.0 (tags/RELEASE_700/final)
> Target: riscv64-unknown--elf
> Thread model: posix
>
>
> Is the 64-bit Risc-V target stable? Or do I require a specific set of flags
> (e.g. relocation model)?

Hi David. The 64-bit target is not stable, though basically "just
works" with some simple patching due to the use of parameterised
register classes in the design of the backend. Your email is well
timed, as I'm currently cleaning up that support ready for review. Not
much work has been done in evaluating generating code quality though.
In summary: things are about to start moving much more quickly in
regards to RV64, but you're likely to see codegen oddities or bugs for
a little while.

Best,

Alex


More information about the llvm-dev mailing list