[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