aboutsummaryrefslogtreecommitdiff
path: root/gcc/alias.c
diff options
context:
space:
mode:
authorAlexander Monakov <amonakov@ispras.ru>2010-11-22 10:35:06 +0000
committerAlexander Monakov <amonakov@ispras.ru>2010-11-22 10:35:06 +0000
commit4920d2328ee410ed6fd8eddcb13506f40fbe146b (patch)
treee9e9c058158ad6ffd6c71ebc44e91416cfc12a90 /gcc/alias.c
parentbf368ca43bd9ca99f51482bb087b53eefbbfbae5 (diff)
PR rtl-optimization/45652
* alias.c (get_reg_base_value): New. * rtl.h (get_reg_base_value): Add prototype. * sel-sched.c (init_regs_for_mode): Use it. Don't use registers with non-null REG_BASE_VALUE for renaming. testsuite: * gcc.dg/pr45652.c: New. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@167025 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/alias.c')
-rw-r--r--gcc/alias.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/alias.c b/gcc/alias.c
index 2a877979417..5b04f85791c 100644
--- a/gcc/alias.c
+++ b/gcc/alias.c
@@ -1291,6 +1291,14 @@ record_set (rtx dest, const_rtx set, void *data ATTRIBUTE_UNUSED)
reg_seen[regno] = 1;
}
+/* Return REG_BASE_VALUE for REGNO. Selective scheduler uses this to avoid
+ using hard registers with non-null REG_BASE_VALUE for renaming. */
+rtx
+get_reg_base_value (unsigned int regno)
+{
+ return VEC_index (rtx, reg_base_value, regno);
+}
+
/* If a value is known for REGNO, return it. */
rtx