[Bug c++/13776] [tree-ssa] Many C++ compile-time regression in 3.5-tree-ssa 040120
rguenth at tat dot physik dot uni-tuebingen dot de
gcc-bugzilla@gcc.gnu.org
Sat Apr 10 15:36:00 GMT 2004
------- Additional Comments From rguenth at tat dot physik dot uni-tuebingen dot de 2004-04-10 15:20 -------
Subject: Re: [tree-ssa] Many C++ compile-time regression in
3.5-tree-ssa 040120
dnovillo at redhat dot com wrote:
> ------- Additional Comments From dnovillo at redhat dot com 2004-04-10 14:58 -------
> Subject: Re: [tree-ssa] Many C++ compile-time regression in
> 3.5-tree-ssa 040120
>
> 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?
Yes, I have cc1plus binaries from all days lying around (though with
checking disabled). Just tell me what to do.
Richard.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13776
More information about the Gcc-bugs
mailing list