This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: GCC Status Report (2004-03-09)
> 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.
This can probably be awful in certain cases too (mix const/non-const,
bitfields, packed fields, ...). And this would defeat the clrstr patterns,
on x86 for example.
> We could also disable the use of RTX_UNCHANGING_P in alias.c.
Could this be done somewhat selectively?
> 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.
Unfortunately, yes, this appears to be unavoidable.
> What solution do you dislike least?
Nice formulation :-) Richard (rth) even proposed to disable entirely
RTX_UNCHANGING_P in 3.4/3.5. I personally think the 3.3.x code is cleaner
(albeit probably not 100% safe).
> How about the idea above of just zeroing the holes?
If you're fine with the blockage approach...
--
Eric Botcazou