Commit 1e3881c2 by Jan Hubicka Committed by Jan Hubicka

toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup call…

toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup call after liveness analysis.


	* toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup
	call after liveness analysis.

	* recog.c (split_insn): Use delete_insn_and_edges.

	* cfgrtl.c (verify_flow_info): Be permisive about non-any_condjump
	instructions to have branch prediction notes.
	* ia64reorg.c (ia64_reorg): Do not rebuild CFG.

From-SVN: r50765
parent 200ef634
Thu Mar 14 11:03:12 CET 2002 Jan Hubicka <jh@suse.cz>
* toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup
call after liveness analysis.
* recog.c (split_insn): Use delete_insn_and_edges.
* cfgrtl.c (verify_flow_info): Be permisive about non-any_condjump
instructions to have branch prediction notes.
* ia64reorg.c (ia64_reorg): Do not rebuild CFG.
2002-03-14 Geoffrey Keating <geoffk@redhat.com>
* configure.in: Don't pass -Wno-long-long to a ADA compiler
......
......@@ -1745,14 +1745,9 @@ verify_flow_info ()
rtx note;
if (INSN_P (bb->end)
&& (note = find_reg_note (bb->end, REG_BR_PROB, NULL_RTX)))
&& (note = find_reg_note (bb->end, REG_BR_PROB, NULL_RTX))
&& any_condjump_p (bb->end))
{
if (!any_condjump_p (bb->end))
{
error ("verify_flow_info: REG_BR_PROB on non-condjump",
bb->index);
err = 1;
}
if (INTVAL (XEXP (note, 0)) != BRANCH_EDGE (bb)->probability)
{
error ("verify_flow_info: REG_BR_PROB does not match cfg %i %i",
......
......@@ -6733,9 +6733,10 @@ ia64_reorg (insns)
if (optimize == 0)
split_all_insns_noflow ();
/* Make sure the CFG and global_live_at_start are correct
for emit_predicate_relation_info. */
find_basic_blocks (insns, max_reg_num (), NULL);
/* We are freeing block_for_insn in the toplev to keep compatibility
with old MDEP_REORGS that are not CFG based. Recompute it now. */
compute_bb_for_insn (get_max_uid ());
/* update_life_info_in_dirty_blocks should be enought here. */
life_analysis (insns, NULL, PROP_DEATH_NOTES);
if (ia64_flag_schedule_insns2)
......
......@@ -2682,11 +2682,7 @@ split_insn (insn)
allocation, and there are unlikely to be very many
nops then anyways. */
if (reload_completed)
{
PUT_CODE (insn, NOTE);
NOTE_LINE_NUMBER (insn) = NOTE_INSN_DELETED;
NOTE_SOURCE_FILE (insn) = 0;
}
delete_insn_and_edges (insn);
}
else
{
......@@ -2761,7 +2757,7 @@ split_all_insns (upd_life)
insn = last;
}
if (insn == bb->end)
if (next == NEXT_INSN (bb->end))
break;
}
......
......@@ -2999,7 +2999,7 @@ rest_of_compilation (decl)
#endif
life_analysis (insns, rtl_dump_file, PROP_FINAL);
if (optimize)
cleanup_cfg ((optimize ? CLEANUP_EXPENSIVE : 0)
cleanup_cfg ((optimize ? CLEANUP_EXPENSIVE : 0) | CLEANUP_UPDATE_LIFE
| (flag_thread_jumps ? CLEANUP_THREADING : 0));
timevar_pop (TV_FLOW);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment