public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc r13-2821] RISC-V: make USE_LOAD_ADDRESS_MACRO easier to understand
@ 2022-09-23 16:01 Kito Cheng
0 siblings, 0 replies; only message in thread
From: Kito Cheng @ 2022-09-23 16:01 UTC (permalink / raw)
To: gcc-cvs
https://gcc.gnu.org/g:7d4df630c6cfb1909288a2796ec2f8b9ec4e8486
commit r13-2821-g7d4df630c6cfb1909288a2796ec2f8b9ec4e8486
Author: Vineet Gupta <vineetg@rivosinc.com>
Date: Fri Sep 2 16:08:20 2022 -0700
RISC-V: make USE_LOAD_ADDRESS_MACRO easier to understand
The current macro has several && and || making it really hard to understand
the first time.
Signed-off-by: Vineet Gupta <vineetg@rivosinc.com>
gcc/ChangeLog:
* config/riscv/riscv.h (LOCAL_SYM_P): New.
(USE_LOAD_ADDRESS_MACRO): Simplify by calling LOCAL_SYM_P.
Diff:
---
gcc/config/riscv/riscv.h | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/gcc/config/riscv/riscv.h b/gcc/config/riscv/riscv.h
index eb1284e56d6..363113c6511 100644
--- a/gcc/config/riscv/riscv.h
+++ b/gcc/config/riscv/riscv.h
@@ -749,18 +749,19 @@ typedef struct {
#define CASE_VECTOR_MODE SImode
#define CASE_VECTOR_PC_RELATIVE (riscv_cmodel != CM_MEDLOW)
+#define LOCAL_SYM_P(sym) \
+ ((SYMBOL_REF_P (sym) && SYMBOL_REF_LOCAL_P (sym)) \
+ || ((GET_CODE (sym) == CONST) \
+ && SYMBOL_REF_P (XEXP (XEXP (sym, 0),0)) \
+ && SYMBOL_REF_LOCAL_P (XEXP (XEXP (sym, 0),0))))
+
/* The load-address macro is used for PC-relative addressing of symbols
that bind locally. Don't use it for symbols that should be addressed
via the GOT. Also, avoid it for CM_MEDLOW, where LUI addressing
currently results in more opportunities for linker relaxation. */
#define USE_LOAD_ADDRESS_MACRO(sym) \
(!TARGET_EXPLICIT_RELOCS && \
- ((flag_pic \
- && ((SYMBOL_REF_P (sym) && SYMBOL_REF_LOCAL_P (sym)) \
- || ((GET_CODE (sym) == CONST) \
- && SYMBOL_REF_P (XEXP (XEXP (sym, 0),0)) \
- && SYMBOL_REF_LOCAL_P (XEXP (XEXP (sym, 0),0))))) \
- || riscv_cmodel == CM_MEDANY))
+ ((flag_pic && LOCAL_SYM_P (sym)) || riscv_cmodel == CM_MEDANY))
/* Define this as 1 if `char' should by default be signed; else as 0. */
#define DEFAULT_SIGNED_CHAR 0
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2022-09-23 16:01 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-23 16:01 [gcc r13-2821] RISC-V: make USE_LOAD_ADDRESS_MACRO easier to understand Kito Cheng
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).