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]

Re: [PATCH, middle-end]: move superblock formation to Tree-SSA


On Jun 12, 2007, at 10:47 PM, Robert Kidd wrote:

On Jun 12, 2007, at 8:46 AM, Richard Guenther wrote:

On Tue, 12 Jun 2007, Zdenek Dvorak wrote:

Hello,

On Tue, 12 Jun 2007, Diego Novillo wrote:

On 6/11/07 9:58 PM, Robert Kidd wrote:

2007-06-11 Robert Kidd <rkidd@crhc.uiuc.edu>

<cut

This is OK with me. I am not entirely sure whether I can approve it
though, as it crosses on to RTL. I'm CCing some middle-end maintainers
just in case.


Thanks for your patience. I know this patch has been outstanding for a
long time.

As far as the middle-end is concerned the patch is ok. (We can move
the pass later if it turns out to hinder optimizations in some case)

I would somewhat prefer to have it after loop optimizer for now (my reason
being that it may be somewhat difficult to maintain the loops in tracer,
which conflicts with my project to preserve loops throughout tree
compilation); we may move the pass earlier if it turns out to be useful
:-)

Ok. Robert, can you do performance tests with the pass moved after pass_cd_dce?

I will do that. I've attached a modified version of the patch that places tracer after pass_cd_dce. I will report the results of the performance test when it finishes.


Thanks
Robert

2007-06-12 Robert Kidd <rkidd@crhc.uiuc.edu>

	* bb-reorder.c (rest_of_handler_reorder_blocks): Removed call to
	RTL level tracer pass.
	* passes.c (init_optimization_passes): Move pass_tracer from
	after pass_rtl_ifcvt to after pass_cd_dce.
	* tracer.c: Update copyright.
	(layout_superblocks): Remove function.
	(mark_bb_seen): New.
	(bb_seen_p): New.
	(count_insns): Change to estimate instructions in a Tree-SSA
	statement.
	(find_trace): Use bb_seen_p.
	(tail_duplicate): Use bb_seen_p.  Call add_phi_args_after_copy
	after duplicate_block.
	(tracer): Change prototype to match that of a pass execute
	callback.
	(gate_tracer): Rename from gate_handle_tracer.
	(rest_of_handle_tracer): Remove function.
	* rtl.h: Remove prototype for tracer.
	* testsuite/gcc.dg/tree-prof/tracer-1.c: New.

<superblock-1-20070612.patch.txt>

The performance run finished this morning. Moving the patch to after pass_cd_dce gives a negligible change over mainine on integer benchmarks on IA64. On the floating point benchmarks, performance improves by 2% without profile feedback and 7% with profiling.


Robert


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