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