[Bug tree-optimization/40436] [4.5 regression] 0.5% code size regression caused by r147852

hubicka at ucw dot cz gcc-bugzilla@gcc.gnu.org
Thu Jul 2 10:11:00 GMT 2009



------- Comment #13 from hubicka at ucw dot cz  2009-07-02 10:10 -------
Subject: Re:  [4.5 regression] 0.5% code size regression caused by r147852

OK, on i386 it has some effect according to our nightly tester
it is 3524421->3510754.  The size used to be as low as 3431090
so it is just small improvement.  I guess I will commit the patch anyway
as it is quite obvious fix.

The other problem might be the "likely_eliminated_by_inlining_p"
predicate that is very optimisitic.

This predicate makes inliner to believe that all indirect reads and
writes to/from pointers passed to function or function parameters will
be optimized out.  This is important to allow inlining of methods and
SRAing out objects in C++ and devirtualizing calls, but for C code it is
bit too optimistic.

Partly this can be cured by IPA-SRA and Martin has WIP patch for
clonning that contains more fine grained analysis of function body size
specialized for given parameters. I however doubt they will catch all
the cases we need for C++.  Perhaps simply disabling the predicate for
-Os or making it just weak hint (removing some percentage of estimated
cost) is best way to go, I am just re-testing it on vangelis with size
estimates ignoring it.

Honza


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40436



More information about the Gcc-bugs mailing list