Hi Benjamin,
On 2011/7/30 06:22, Benjamin Redelings I wrote:
I had some performance degradation with 4.6 as well.
However, I was able to cure it by using -finline-limit=800 or 1000 I
think. However, this lead to a code size increase. Were the old
higher-performance binaries larger?
Yes, the older binary for the degraded test was indeed larger: 107K vs 88K.
However, I have just re-built and re-run the test and there was no
significant difference in performance. IE the degradation in
"simple_types_constant_folding" test remains when building with
-finline-limit=800 (or =1000)
IIRC, setting finline-limit=n actually sets two params to n/2, but I
think you may only need to change 1 to get the old performance back.
--param max-inline-insns-single defaults to 450, but --param
max-inline-insns-auto defaults to 90. Perhaps you can get the old
performance back by adjusting just one of these two parameters, or by
setting them to different values, instead of the same value, as would
be achieved by -finline-limit.
"--param max-inline-insns-auto=800" by itself does not help. The
"--param max-inline-insns-single=800 --param max-inline-insns-auto=1000"
combination makes no significant difference either.
BTW, some of these tweaks increase the binary size to 99K, yet there is
no performance increase.
Oleg.