This is the mail archive of the
mailing list for the GCC project.
Re: GCC Status Report (2004-03-09)
Eric Botcazou wrote:
Well, it's only awful if you have a structure with a really annoying
initializer (like, they initialized every other field). If they
initialized the first part of the structure, but not the end, or the
first few elements of an array, this approach isn't bad at all. So, in
practice, I bet it wouldn't be much worse for most real code.
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.
I dunno. That's why I suggested making it a tri-state; then, the
selectivity comes from the places where you said "don't know".
We could also disable the use of RTX_UNCHANGING_P in alias.c.
Could this be done somewhat selectively?
I'm OK with the blockage approach. We can try to do better for 3.4.1,
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...
Would you go ahead and check that in, and close the PRs?
Thank you for all your help with this issue; this was a very important
one to fix.