Switch live on entry to a per block basis from per variable.
commit30928c4431bf4b4f73d99fce9041d97b08ca381d
authoramacleod <amacleod@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 4 Dec 2006 14:26:37 +0000 (4 14:26 +0000)
committeramacleod <amacleod@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 4 Dec 2006 14:26:37 +0000 (4 14:26 +0000)
tree1ac424d69eb81d98ca1dcefd9fc5e39a0fef503e
parentcd23ba5d0fc9ece814e90b9d193f807745593a7b
Switch live on entry to a per block basis from per variable.

* tree-outof-ssa.c (coalesce_ssa_name): Use calculate_live_ranges.
* tree-ssa-live.c (new_tree_live_info, delete_tree_live_info): Update.
(add_livein_if_notdef): Delete.
(loe_visit_block): New.  Propogate live on entry info for a block into
each predecessor.  If it changes, make sure it is visited again.
(live_worklist): Visit every block and update the live on entry info
for preds.  Iterate over any that changed.
(set_var_live_on_entry): Populate the live on entry blocks with bits
based on the immediate uses of a var.
(calculate_live_on_entry): Remove.
(calculate_live_on_exit): Calculate live on exit based on the newly
oriented live on entry bits.
(calculate_live_ranges): Build live on entry and exit vectors.
(dump_live_info): Use new orientation of live on entry bitmaps.
(verify_live_on_entry): New.  Split out verification code from old
calculate_live_on_entry routine.
* tree-ssa-live.h (struct tree_live_info_d): Add Working stack.
(live_entry_blocks): Rename to live_on_entry and return bitmap for a
basic_block instead of for a partition.
(live_merge_and_clear): Add asserts.
(make_live_on_entry): Set partition bit in basic block vector.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@119495 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/tree-outof-ssa.c
gcc/tree-ssa-live.c
gcc/tree-ssa-live.h