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: [dataflow] [RFC] Remove many almost useless DCE passes


On 2/27/07, Vladimir Makarov <vmakarov@redhat.com> wrote:
Good because SPECFP2000 for ppc64 is 0.5% better (SPECInt2000 is the
same) on the branch than on the mainline at the last merge point.  And
this patch could remove this achievement.

Or it might not make a difference at all.


Which is actually more likely IMHO, but I'll let the numbers speak for
me, instead of doing some hand waiving and speculating.

You seem to believe that mainline as-is with all its
delete_trivially_dead_insns calls makes sense.

It really doesn't.

Bonzini and I have gathered the numbers to show this. It makes almost
no sense on the trunk and *no* sense at all on the dataflow branch.

On the trunk, removing trivially dead code often is helpful because
delete_trivially_dead_insns does not clean up dead code very well.

On the dataflow branch, only the delete_trivially_dead_insns calls
after jump, fwprop1, gcse1, and cse2 remove dead code.  All other
d_t_d_i calls do nothing but waste time.

The reason for this, is that the DCE pass on the dataflow branch is
much brighter than delete_trivially_dead_insns (and often smarter than
what is in flow.c on the trunk, although it apparently still needs
improvements in some areas, too).

Gr.
Steven


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