diff mbox series

[32/32] Hide regs_invalidated_by_call etc.

Message ID mptmufatzdm.fsf@arm.com
State New
Headers show
Series Support multiple ABIs in the same translation unit | expand

Commit Message

Richard Sandiford Sept. 11, 2019, 7:19 p.m. UTC
The previous patches removed all target-independent uses of
regs_invalidated_by_call, call_used_or_fixed_regs and
call_used_or_fixed_reg_p.  This patch therefore restricts
them to target-specific code (and reginfo.c, which sets them up).


2019-09-11  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
	* hard-reg-set.h (regs_invalidated_by_call): Only define if
	IN_TARGET_CODE.
	(call_used_or_fixed_regs): Likewise.
	(call_used_or_fixed_reg_p): Likewise.
	* reginfo.c (regs_invalidated_by_call): New macro.

Comments

Jeff Law Sept. 29, 2019, 10:22 p.m. UTC | #1
On 9/11/19 1:19 PM, Richard Sandiford wrote:
> The previous patches removed all target-independent uses of
> regs_invalidated_by_call, call_used_or_fixed_regs and
> call_used_or_fixed_reg_p.  This patch therefore restricts
> them to target-specific code (and reginfo.c, which sets them up).
> 
> 
> 2019-09-11  Richard Sandiford  <richard.sandiford@arm.com>
> 
> gcc/
> 	* hard-reg-set.h (regs_invalidated_by_call): Only define if
> 	IN_TARGET_CODE.
> 	(call_used_or_fixed_regs): Likewise.
> 	(call_used_or_fixed_reg_p): Likewise.
> 	* reginfo.c (regs_invalidated_by_call): New macro.
OK.
jeff
diff mbox series

Patch

Index: gcc/hard-reg-set.h
===================================================================
--- gcc/hard-reg-set.h	2019-09-10 19:57:04.713041281 +0100
+++ gcc/hard-reg-set.h	2019-09-11 19:49:18.149461264 +0100
@@ -477,10 +477,12 @@  #define call_used_regs \
 #endif
 #define savable_regs \
   (this_target_hard_regs->x_savable_regs)
+#ifdef IN_TARGET_CODE
 #define regs_invalidated_by_call \
   (this_target_hard_regs->x_regs_invalidated_by_call)
 #define call_used_or_fixed_regs \
   (regs_invalidated_by_call | fixed_reg_set)
+#endif
 #define reg_alloc_order \
   (this_target_hard_regs->x_reg_alloc_order)
 #define inv_reg_alloc_order \
@@ -509,6 +511,7 @@  #define reg_names \
 #define REG_CAN_CHANGE_MODE_P(REGN, FROM, TO)                          \
   (targetm.can_change_mode_class (FROM, TO, REGNO_REG_CLASS (REGN)))
 
+#ifdef IN_TARGET_CODE
 /* Return true if register REGNO is either fixed or call-used
    (aka call-clobbered).  */
 
@@ -517,5 +520,6 @@  call_used_or_fixed_reg_p (unsigned int r
 {
   return fixed_regs[regno] || this_target_hard_regs->x_call_used_regs[regno];
 }
+#endif
 
 #endif /* ! GCC_HARD_REG_SET_H */
Index: gcc/reginfo.c
===================================================================
--- gcc/reginfo.c	2019-09-11 19:47:39.474156575 +0100
+++ gcc/reginfo.c	2019-09-11 19:49:18.149461264 +0100
@@ -69,6 +69,8 @@  struct target_regs *this_target_regs = &
 
 #define call_used_regs \
   (this_target_hard_regs->x_call_used_regs)
+#define regs_invalidated_by_call \
+  (this_target_hard_regs->x_regs_invalidated_by_call)
 
 /* Data for initializing fixed_regs.  */
 static const char initial_fixed_regs[] = FIXED_REGISTERS;