diff mbox series

[2/3] Remove get_reg_base_value

Message ID 20240209102842.3B1D33858434@sourceware.org
State New
Headers show
Series [1/3,RFC] Add MEM_BASE | expand

Commit Message

Richard Biener Feb. 9, 2024, 10:28 a.m. UTC
This makes recorded reg base values private to alias.cc, its computation
should go away but find_base_term can be used to cross-check that
we don't regress when only having MEM_BASE eventually.

Selective scheduling wouldn't need to avoid renaming regs with a base
value anymore, so this removes this only outside use.

	* alias.cc (get_reg_base_value): Make static.
	* rtl.h (get_reg_base_value): Remove.
	* sel-sched.cc (init_regs_for_mode): Do not worry about
	REG_BASE_VALUE when recording regs for renaming.
---
 gcc/alias.cc     | 2 +-
 gcc/rtl.h        | 1 -
 gcc/sel-sched.cc | 4 ++++
 3 files changed, 5 insertions(+), 2 deletions(-)
diff mbox series

Patch

diff --git a/gcc/alias.cc b/gcc/alias.cc
index 48633aff699..541994c5047 100644
--- a/gcc/alias.cc
+++ b/gcc/alias.cc
@@ -1656,7 +1656,7 @@  record_set (rtx dest, const_rtx set, void *data ATTRIBUTE_UNUSED)
 
 /* Return REG_BASE_VALUE for REGNO.  Selective scheduler uses this to avoid
    using hard registers with non-null REG_BASE_VALUE for renaming.  */
-rtx
+static rtx
 get_reg_base_value (unsigned int regno)
 {
   return (*reg_base_value)[regno];
diff --git a/gcc/rtl.h b/gcc/rtl.h
index c84334cb945..3fcaaec49e4 100644
--- a/gcc/rtl.h
+++ b/gcc/rtl.h
@@ -4496,7 +4496,6 @@  extern bool may_be_sp_based_p (rtx);
 extern rtx gen_hard_reg_clobber (machine_mode, unsigned int);
 extern rtx get_reg_known_value (unsigned int);
 extern bool get_reg_known_equiv_p (unsigned int);
-extern rtx get_reg_base_value (unsigned int);
 extern rtx extract_mem_from_operand (rtx);
 
 #ifdef STACK_REGS
diff --git a/gcc/sel-sched.cc b/gcc/sel-sched.cc
index 17b71127960..77ba100023d 100644
--- a/gcc/sel-sched.cc
+++ b/gcc/sel-sched.cc
@@ -1082,9 +1082,13 @@  init_regs_for_mode (machine_mode mode)
             /* Can't use regs which aren't saved by
                the prologue.  */
             || !TEST_HARD_REG_BIT (sel_hrd.regs_ever_used, cur_reg + i)
+	    /* It's fine to elide this since REG_BASE_VALUE will go away
+	       and the info is in the MEMs itself.  */
+#if 0
 	    /* Can't use regs with non-null REG_BASE_VALUE, because adjusting
 	       it affects aliasing globally and invalidates all AV sets.  */
 	    || get_reg_base_value (cur_reg + i)
+#endif
 #ifdef LEAF_REGISTERS
             /* We can't use a non-leaf register if we're in a
                leaf function.  */