[Bug c++/13776] [tree-ssa] Many C++ compile-time regression in 3.5-tree-ssa 040120
Diego Novillo
dnovillo@redhat.com
Sat Apr 10 15:32:00 GMT 2004
On Sat, 2004-04-10 at 10:04, rguenth at tat dot physik dot uni-tuebingen
dot de wrote:
> There aren't that much changes on tree-ssa right now, so I suspect
> changes causing the regression be
>
> 2004-04-07 Diego Novillo <dnovillo@redhat.com>
>
> * gimplify.c (gimplify_call_expr): Remove argument POST_P.
> Update all callers.
> Don't use POST_P when gimplifying the call expression.
>
Hmm, odd. This is a correctness fix. Side effects in function call
arguments must occur before the actual call takes place.
What may be happening here is that we are getting fewer commoning
opportunities for call-clobbered variables. Before, foo (a++) would
expand to:
foo (a);
a = a + 1;
But now, it expands to:
t = a;
a = a + 1;
foo (t);
If 'a' is call-clobbered, the second form will not allow us to common
out 'a + 1' because of the clobbering of 'a' by the call to foo.
However, it is a bit surprising that this would cause a significant
decline in compile time. Would you have a pre-patched cc1plus binary to
compare dump files?
Thanks. Diego.
More information about the Gcc-bugs
mailing list