[dataflow]: COMMITTED patch to stablize the branch and do more incremental scanning.
Kenneth Zadeck
zadeck@naturalbridge.com
Thu Nov 9 00:05:00 GMT 2006
This patch fixes some bugs that had crept into the auto-inc-dec.c and
ifcvt.c as well as moves one step closer to getting incremental df
scanning working.
This patch is bootstraps and adds no new regressions to x86-64, ppc, and
compiles and adds no new regressions to the arm.
This patch also removes the BB_DIRTY machinery from basic_block.h and
integrates that properly into df.
Kenny
2006-11-08 Kenneth Zadeck <zadeck@naturalbridge.com>
* auto-inc-dec.c (attempt_change): Added code to properly maintain
reg_next_inc_use when inc insns are deleted.
(merge_in_block): Added debugging and changed to skip deleted
instructions.
(scan_dflow): Removed variable.
* df-scan.c (df_scan_alloc): Always processes entire function.
(df_scan_free): Removed df->blocks_to_scan.
(df_scan_blocks): Removed blocks_parameter. Now scan entire
function.
(df_insn_rescan, df_insn_change_bb): Renamed df_mark_bb_dirty to
df_set_bb_dirty.
* df.h (blocks_to_scan): Removed variable.
* df-core.c (df_analyze): Add call to df_scan_alloc. Removed
df->blocks_to_scan.
(df_get_bb_dirty): New function.
(df_mark_bb_dirty): Renamed to df_set_bb_dirty.
(df_compact_blocks): Removed df->blocks_to_scan.
(df_bb_replace): Added check to make sure there was no block at
old_index and fixed updating bugs.
* ifcvt.c (cond_exec_process_if_block,
noce_process_if_block, cond_move_process_if_block,
process_if_block, merge_if_block, find_if_header,
find_cond_trap, find_if_case_1, find_if_case_2, if_convert):
Removed modified variable.
(find_if_header, find_cond_trap, find_if_case_1, find_if_case_2,
if_convert): Replaced BB_DIRTY with df_set_bb_dirty and
df_get_bb_dirty.
* recog.c (confirm_change_group): Ditto.
* emit_rtl (remove_insn,, reorder_insns, emit_insn_after_1): Ditto.
* cfgcleanup.c (try_forward_edges, try_crossjump_to_edge,
merge_blocks_move_predecessor_nojumps, try_crossjump_bb): Ditto.
* modulo-sched.c (sms_schedule): Ditto.
* cfgrtl.c (rtl_split_block, rtl_redirect_edge_and_branch,
rtl_redirect_edge_and_branch_force, purge_dead_edges,
cfg_layout_redirect_edge_and_branch): Ditto.
* basic_block.h (BB_DIRTY): Removed.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: incrscan2.diff
Type: text/x-patch
Size: 35559 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20061109/30e404e2/attachment.bin>
More information about the Gcc-patches
mailing list