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 Fri, 15 Jun 2007, Richard Guenther wrote:

On 6/15/07, Robert Kidd <rkidd@crhc.uiuc.edu> wrote:
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.

I suppose this is in line with "This change buys about 1% on SPEC on IA64 and x86.". So the patch is ok for mainline with the pass added after pass_cd_dce.

Thank you. What is the next step? Do I check the patch into svn myself, or does someone else need to do it?


Thank you
Robert Kidd
rkidd@crhc.uiuc.edu


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