Out Of SSA Rewrite - Live Range Rewrite patch

Andrew MacLeod amacleod@redhat.com
Tue Nov 21 19:05:00 GMT 2006


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.

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.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: liveentry.diff
Type: text/x-patch
Size: 28499 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20061121/a929ec1f/attachment.bin>


More information about the Gcc-patches mailing list