This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Out Of SSA Rewrite - Live Range Rewrite patch - checked in
- From: Andrew MacLeod <amacleod at redhat dot com>
- To: gcc-patches <gcc-patches at gcc dot gnu dot org>
- Date: Mon, 04 Dec 2006 09:28:12 -0500
- Subject: Out Of SSA Rewrite - Live Range Rewrite patch - checked in
-------- Forwarded Message --------
> From: Andrew MacLeod <amacleod@redhat.com>
> To: gcc-patches <gcc-patches@gcc.gnu.org>
> Subject: Out Of SSA Rewrite - Live Range Rewrite patch
> Date: Tue, 21 Nov 2006 14:01:27 -0500
>
> This patch changes the live on entry code to work on basic blocks rather
> than individual ssa-names. A few other tweaks have been added since
> http://gcc.gnu.org/ml/gcc-patches/2006-08/msg00895.html. Mostly just
> efficiency, like populating the bitmaps initially by iterating over the
> immediate uses of each name rather than walking the CFG looking for
> variables and setting their use blocks that way.
>
>
> bootstrapped and regression tested on i686-pc-linux-gnu.
>
I have re-bootstrapped and regression checked this patch on
1686-pc-linux-gnu. It is now checked in.
> Andrew
>
>
> * 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.
>
>