aboutsummaryrefslogtreecommitdiff
path: root/gcc/cselib.h
diff options
context:
space:
mode:
authorAlexandre Oliva <aoliva@redhat.com>2012-03-01 16:58:11 +0000
committerAlexandre Oliva <aoliva@gcc.gnu.org>2012-03-01 16:58:11 +0000
commit0f68ba3ea390e3b71320cc3bf70deedbb9534223 (patch)
treec2c1bae2d077b418073a5806f3512ee632e4b466 /gcc/cselib.h
parent2aceddd8fc0fa80fffd5a6eca0745895b95011e1 (diff)
downloadgcc-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.h1
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 *);