GCC Status Report (2004-03-09)
Mark Mitchell
mark@codesourcery.com
Thu Mar 18 19:15: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
mailing list