diff options
author | Alexandre Oliva <aoliva@redhat.com> | 2012-03-01 16:58:11 +0000 |
---|---|---|
committer | Alexandre Oliva <aoliva@gcc.gnu.org> | 2012-03-01 16:58:11 +0000 |
commit | 0f68ba3ea390e3b71320cc3bf70deedbb9534223 (patch) | |
tree | c2c1bae2d077b418073a5806f3512ee632e4b466 /gcc/cselib.h | |
parent | 2aceddd8fc0fa80fffd5a6eca0745895b95011e1 (diff) | |
download | gcc-0f68ba3ea390e3b71320cc3bf70deedbb9534223.zip gcc-0f68ba3ea390e3b71320cc3bf70deedbb9534223.tar.gz gcc-0f68ba3ea390e3b71320cc3bf70deedbb9534223.tar.bz2 |
re PR debug/52001 (Huge compile-time regression with var-tracking)
PR debug/52001
PR rtl-optimization/52417
* cselib.c (cselib_any_perm_equivs): New variable.
(cselib_reset_table): Check that it's not set when not
preserving constants.
(cselib_add_permanent_equiv): Set it.
(cselib_have_permanent_equivalences): New.
(cselib_init, cselib_finish): Reset it.
* cselib.h (cselib_have_permanent_equivalences): Declare.
* alias.c (get_addr): Restore earlier behavior when there
aren't permanent equivalences.
From-SVN: r184750
Diffstat (limited to 'gcc/cselib.h')
-rw-r--r-- | gcc/cselib.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/cselib.h b/gcc/cselib.h index 5b5fe23..96575f9 100644 --- a/gcc/cselib.h +++ b/gcc/cselib.h @@ -98,6 +98,7 @@ extern bool cselib_preserved_value_p (cselib_val *); extern void cselib_preserve_only_values (void); extern void cselib_preserve_cfa_base_value (cselib_val *, unsigned int); extern void cselib_add_permanent_equiv (cselib_val *, rtx, rtx); +extern bool cselib_have_permanent_equivalences (void); extern void dump_cselib_table (FILE *); |