GCC Status Report (2004-03-09)

Mark Mitchell mark@codesourcery.com
Thu Mar 18 18:46:00 GMT 2004


Eric Botcazou wrote:

> 2004-03-18  Eric Botcazou <ebotcazou@libertysurf.fr>
>             Mark Mitchell <mark@codesourcery.com>
>
> 	PR optimization/13424
> 	* expr.c (store_constructor): Emit a blockage after clearing the
> 	aggregate because of an incomplete or mostly zero constructor if
>	the aggregate contains read-only fields.
>
>
>But this would still pessimize a lot, because life analysis would not be able 
>to delete the redundant writes anymore.
>  
>
We could only zero out the "holes" between the fields.  That would be 
slower than zeroing the hole thing at once, but usually not much, 
especially since memzero will be inlined for small chunks of memory.

We could also disable the use of RTX_UNCHANGING_P in alias.c.

We could make RTX_UNCHANGING_P a tri-state (with a don't-know option), 
which would probably be best.  That would allow us to keep most of the 
optimizations, but it's probably a lot more work and more invasive.

We have to pessimize something because we have a poorly-designed feature 
(i.e., one with an incomplete specification) that results in generating 
wrong code.

What solution do you dislike least?

How about the idea above of just zeroing the holes?

-- 
Mark Mitchell
CodeSourcery, LLC
(916) 791-8304
mark@codesourcery.com



More information about the Gcc-patches mailing list