This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: optimization/6007: cfg cleanup tremendous performance hog with -O1
> >>>>> lucier writes:
>
> Brad> Right now, neither 3.1 nor 3.2 bootstraps on Solaris. I don't see how
> Brad> I and other people are going to have enough opportunity to test 3.1
> Brad> on sparc/Solaris before release to ensure that things work even
> Brad> minimally. (For example, the last time I tried -fprofile-arcs
> Brad> -ftest-coverage/gcov, it didn't work.) Jakub just marked PR 5740
> Brad> as fixed, and I haven't had an opportunity to test it, since sparc/Solaris
> Brad> hasn't bootstrapped since he sent me the patch privately.
>
> SPARC Solaris 2.7 is a release criteria for GCC 3.1. GCC 3.1 will
> not be released unless that configuration at least builds and works.
Concerning the problem itself, I think it can not be solved w/o missing
the optimization opurtunities. I already spent quite alot of time
trying to save redundant work in crossjumping and there is almost
none (I am aware of one case and I will try to benchmark it).
I think we can simply disable the crossjumping at -O1 as it is expensive
optimization or do the simplified form of crossjuping that will crossjump
only into fallthru edges that should limit the worst case scenarios from
quadratic to linear and will get similar strengthness/weakness as old
crossjumping did.
With 3.2, we plan avoid some of the worst case scenarios by avoidiing
the linear ordering of basic blocks, but this is definitly not 3.1.x
choice. Similar dead ends are constructable with very huge fucntions
and dead code removal as well. They did exist in older gccs too.
I will try to check whether I can squeze out some more cycles or
find way how to limit this.
Honza
>
> David