diff options
author | Alexander Monakov <amonakov@ispras.ru> | 2010-11-22 10:35:06 +0000 |
---|---|---|
committer | Alexander Monakov <amonakov@ispras.ru> | 2010-11-22 10:35:06 +0000 |
commit | 4920d2328ee410ed6fd8eddcb13506f40fbe146b (patch) | |
tree | e9e9c058158ad6ffd6c71ebc44e91416cfc12a90 /gcc/alias.c | |
parent | bf368ca43bd9ca99f51482bb087b53eefbbfbae5 (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.c | 8 |
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 |