GCC Status Report (2004-03-09)
Mark Mitchell
mark@codesourcery.com
Fri Mar 19 19:29:00 GMT 2004
Eric Botcazou wrote:
>>Can't we at least detect the case where either the whole aggregate
>>is const or all its fields are const? Then we don't need any blockage.
>>
>>
>
>Guess what? The constness is not propagated to the RTL in the former case,
>because of the pessimization recently introduced in maybe_set_unchanging:
>
> We cannot do this for non-static aggregates, because of the double
> writes that can be generated by store_constructor, depending on the
> contents of the initializer. Yes, this does eliminate a good fraction
> of the number of uses of RTX_UNCHANGING_P for a language like Ada.
> It also eliminates a good quantity of bugs. Let this be incentive to
> eliminate RTX_UNCHANGING_P entirely in favor of a more reliable
> solution, perhaps based on alias sets. */
>
>This means that const automatic aggregates would take a double pessimization
>with the blockage scheme.
>
>
Well, so, let's remove that chunk of code; it should no longer be needed.
Eric, I can tell you're unhappy with this approach, and so you're
casting about for something better. That's good, but I think we've come
as far as we can for 3.4.0. If all this is sufficiently annoyhing to
you, maybe you can work on ripping out RTX_UNCHANGING_P for 3.5 and
replacing it with something better!
--
Mark Mitchell
CodeSourcery, LLC
(916) 791-8304
mark@codesourcery.com
More information about the Gcc
mailing list