This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Timing information for CFG manipulations
> > > global CSE : 32.87 (21%) usr 0.57 (13%) sys 33.53 (20%) wall
> > ^^^^^^^^^^^^^^^^^^^^^^
> > gcse is not enabled when using -O1 !
>
> That's what I thought, too, but you're seeing the command lines as I copy and
> paste them from the terminal window.
I've just installed patch that adds separate timevar for local/global liveness
analysis and the mode switching pass itself.
The time reported for GCSE should be now distributed between those two.
In normal cases, the time is dominated by liveness analysis, as we do global
update after the transformation, that is just _ugly_.
On "normal" code we spend most of time in liveness analyzis, not the LCM
mode switching pass itself, but it may be different for your's case.
Also the patch will be probably resposnsible for increased cost of cfg_cleanup,
as it inserts a lot of instructions on the edges in your testcase and it takes
a while to crossjumpt them all to one solution. This increases dramatically
number of iterations cfg_cleanup needs to stabilize and makes the otherwise
cheap pass relativly expensive.
Proper solution for this is probably to limit number of iterations of
cfg_cleanup pass unless -fexpensive_optimizations is used.
I will send separate post about my toughts how to avoid flow bottleneck.
Honza
>
> Brad