]> git.ipfire.org Git - thirdparty/gcc.git/commit
RISC-V: fix TARGET_PROMOTE_FUNCTION_MODE hook for libcalls
authorVineet Gupta <vineetg@rivosinc.com>
Wed, 1 Nov 2023 21:46:33 +0000 (14:46 -0700)
committerVineet Gupta <vineetg@rivosinc.com>
Wed, 1 Nov 2023 21:49:34 +0000 (14:49 -0700)
commit7560f2b4e387ef43ef45ee9fb06efbad6ca0fedf
treef6af445dcab2ba3b556885e96c12d9107445029c
parentd880e093d92084f55b10626610ef059fd9194a6a
RISC-V: fix TARGET_PROMOTE_FUNCTION_MODE hook for libcalls

Fixes: 3496ca4e6566 ("RISC-V: Add runtime invariant support")
riscv_promote_function_mode doesn't promote a SI to DI for libcalls
case. It intends to do that however the code is broken (regression).

The fix is what generic promote_mode () in explow.cc does. I really
don't understand why the old code didn't work, but stepping thru the
debugger shows old code didn't and fixed does.

This showed up when testing Ajit's REE ABI extension series which probes
the ABI (using a NULL tree type) and ends up hitting the libcall code path.

gcc/ChangeLog:
* config/riscv/riscv.cc (riscv_promote_function_mode): Fix mode
returned for libcall case.

Tested-by: Patrick O'Neill <patrick@rivosinc.com> # pre-commit-CI #526
Signed-off-by: Vineet Gupta <vineetg@rivosinc.com>
gcc/config/riscv/riscv.cc