diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-10-30 11:13:49 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-10-30 11:13:49 +0000 |
commit | 7fb47f9f1adf513b1b2b5798de845536228fe16d (patch) | |
tree | 5aed4d117e8130cabea4a775fc620383c6f0edc9 /gcc/df.c | |
parent | 8c2b78bf912345e40f7b955ed80add8d6c49c4dc (diff) | |
download | gcc-7fb47f9f1adf513b1b2b5798de845536228fe16d.tar.gz |
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46634 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/df.c')
-rw-r--r-- | gcc/df.c | 17 |
1 files changed, 17 insertions, 0 deletions
@@ -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) { |