diff options
author | Alexandre Oliva <aoliva@redhat.com> | 2010-03-30 21:00:47 +0000 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2010-03-30 23:00:47 +0200 |
commit | 5847e8da2f62aa638ca037e2e02ef6f2de2975a0 (patch) | |
tree | fb52b1312a84f4a1957b35bb95aa6010cdf7ac1d /gcc/cselib.h | |
parent | e9e008859c047465491bc3bb336503dba10caf18 (diff) | |
download | gcc-5847e8da2f62aa638ca037e2e02ef6f2de2975a0.zip gcc-5847e8da2f62aa638ca037e2e02ef6f2de2975a0.tar.gz gcc-5847e8da2f62aa638ca037e2e02ef6f2de2975a0.tar.bz2 |
re PR debug/42977 ("-fcompare-debug failure" with "-O2 -finline-functions -fomit-frame-pointer -ftracer -fsched2-use-superblocks -fPIC")
PR debug/42977
* cselib.c (n_useless_values): Document handling of debug locs.
(n_useless_debug_values, n_debug_values): New variables.
(new_elt_loc_list): Don't add to debug values, keep count.
(promote_debug_loc): New.
(cselib_reset_table): Zero new variables.
(entry_and_rtx_equal_p): Promote debug locs.
(discard_useless_locs): Increment n_useless_debug_values for
debug values.
(remove_useless_values): Adjust n_useless_values and n_debug_values
with n_useless_debug_values.
(add_mem_for_addr): Promote debug locs.
(cselib_lookup_mem): Likewise.
(cselib_lookup_addr): Renamed to...
(cselib_lookup_addr_1): ... this. Promote debug locs.
Don't call...
(cselib_log_lookup): ... this. Turn into...
(cselib_lookup_addr): ... new wrapper.
(cselib_lookup_from_insn): New.
(cselib_invalidate_regno): Increment n_useless_debug_values for
debug values.
(cselib_invalidate_mem): Likewise.
(cselib_process_insn): Take n_deleted and n_debug_values into
account to guard remove_useless_value call.
(cselib_finish): Zero n_useless_debug_values.
* cselib.h (cselib_lookup_from_insn): Declare.
* sched-deps.c (sched_analyze_1): Use cselib_lookup_from_insn.
(sched_analyze_2): Likewise.
From-SVN: r157837
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 015d628..90d9638 100644 --- a/gcc/cselib.h +++ b/gcc/cselib.h @@ -77,6 +77,7 @@ extern void (*cselib_record_sets_hook) (rtx insn, struct cselib_set *sets, int n_sets); extern cselib_val *cselib_lookup (rtx, enum machine_mode, int); +extern cselib_val *cselib_lookup_from_insn (rtx, enum machine_mode, int, rtx); extern void cselib_init (int); extern void cselib_clear_table (void); extern void cselib_finish (void); |