OSDN Git Service

PR debug/42977
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 30 Mar 2010 21:00:47 +0000 (21:00 +0000)
committerMasaki Muranaka <monaka@monami-software.com>
Sun, 23 May 2010 05:15:30 +0000 (14:15 +0900)
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@157837 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/cselib.h

index 89aaa5a..62231b7 100644 (file)
@@ -1,3 +1,34 @@
+2010-03-30  Alexandre Oliva  <aoliva@redhat.com>
+
+       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.
+
 2010-03-30  Jakub Jelinek  <jakub@redhat.com>
 
        * var-tracking.c (use_narrower_mode_test, use_narrower_mode): New
index 015d628..90d9638 100644 (file)
@@ -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);