This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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.
> 
> 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]