summaryrefslogtreecommitdiff
path: root/gcc/df.c
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2001-10-30 12:13:49 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2001-10-30 11:13:49 +0000
commit73991d6ae74ffcb1fbd0dc4435c5aa7dc50947d7 (patch)
tree5aed4d117e8130cabea4a775fc620383c6f0edc9 /gcc/df.c
parent415c055a2acc0449e4c20fe22e703d7173de2629 (diff)
downloadgcc-73991d6ae74ffcb1fbd0dc4435c5aa7dc50947d7.tar.gz
lcm.c (optimize_mode_switching): Do not rebuild liveness information when no changes has been made.
* lcm.c (optimize_mode_switching): Do not rebuild liveness information when no changes has been made. * gcse.c (reg_set_bitmap): Turn into reg_set. (modify_mem_list_set, canon_modify_mem_list_set) (clear_modify_mem_tables, free_modify_mem_tables): New. (gcse_main); Use free_modify_mem_tables. (free_gcse_mem): Likewise; free the bitmaps. (alloc_gcse_main): Initialize the bitmaps. (canon_list_insert): Set canon_modify_mem_list_set. (record_last_mem_set_info): Likewise; set modify_mem_list_set. (compute_hash_table): Use clear_modify_mem_tables. (reset_opr_set_tables): Likewise. (oprs_not_set_p): reg_set_bitmap is regset. (mark_set, mark_clobber): Likewise. * df.h (DF_EQUIV_NOTES): New constant. (df_insn_refs_record): Record uses inside or REG_EQUIV/EQUAL notes when asked for. * sched-rgn.c (CHECK_DEAD_NOTES): New constant. (init_regions, schedule_insns): Conditionalize the checking code by CHECK_DEAD_NOTES; avoid multiple calls to update_life_info. From-SVN: r46634
Diffstat (limited to 'gcc/df.c')
-rw-r--r--gcc/df.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/gcc/df.c b/gcc/df.c
index 75148733e59..3318d456a55 100644
--- a/gcc/df.c
+++ b/gcc/df.c
@@ -1224,8 +1224,25 @@ df_insn_refs_record (df, bb, insn)
if (INSN_P (insn))
{
+ rtx note;
+
/* Record register defs */
df_defs_record (df, PATTERN (insn), bb, insn);
+
+ if (df->flags & DF_EQUIV_NOTES)
+ for (note = REG_NOTES (insn); note;
+ note = XEXP (note, 1))
+ {
+ switch (REG_NOTE_KIND (note))
+ {
+ case REG_EQUIV:
+ case REG_EQUAL:
+ df_uses_record (df, &XEXP (note, 0), DF_REF_REG_USE,
+ bb, insn);
+ default:
+ break;
+ }
+ }
if (GET_CODE (insn) == CALL_INSN)
{