[llvm] [RISCV] Mark More Relocs as Relaxable (PR #151422)
Fangrui Song via llvm-commits
llvm-commits at lists.llvm.org
Fri Aug 1 20:58:13 PDT 2025
================
@@ -1,32 +1,45 @@
-;; With +relax, J below needs a relocation to ensure the target is correct
-;; after linker relaxation. See https://github.com/ClangBuiltLinux/linux/issues/1965
; RUN: llc -mtriple=riscv64 -mattr=-relax -filetype=obj < %s \
; RUN: | llvm-objdump -d -r - | FileCheck %s --check-prefixes=CHECK,NORELAX
; RUN: llc -mtriple=riscv64 -mattr=+relax -filetype=obj < %s \
; RUN: | llvm-objdump -d -r - | FileCheck %s --check-prefixes=CHECK,RELAX
+;; With +relax, All `j` instructions below need a relocation to ensure the target is correct
+;; after linker relaxation. See https://github.com/ClangBuiltLinux/linux/issues/1965
+
; CHECK: j {{.*}}
; RELAX-NEXT: R_RISCV_JAL {{.*}}
+; RELAX-NOT: R_RISCV_RELAX
; CHECK-NEXT: auipc ra, 0x0
; CHECK-NEXT: R_RISCV_CALL_PLT f
; RELAX-NEXT: R_RISCV_RELAX *ABS*
; CHECK-NEXT: jalr ra
; CHECK-NEXT: j {{.*}}
+; RELAX-NEXT: R_RISCV_JAL {{.*}}
+; RELAX-NOT: R_RISCV_RELAX
----------------
MaskRay wrote:
I believe J is not supposed to be assembler- or linker- relaxable. Then we should not mark it as such.
https://github.com/llvm/llvm-project/pull/151422
More information about the llvm-commits
mailing list