Missing qualifications

Paolo Carlini pcarlini@suse.de
Thu Mar 10 15:05:00 GMT 2005


Hi Gaby and thanks for the interesting reply,

>Yes.  One of curiosities of GCC ABI is insisting on allocating registers
>for values of empty classes and insisting on filling them with zero.
>Nobody cares about those values but GCC thinks it must issue useless
>loads and stores.  GCC needs to be taught that nobody really cares
>about those values. And refrain from allocating registers for emmpty
>classes (but then you go into ABI breaking territory).
>
>start with EMPTY_CLASS_EXPR in cp/expr.c::cxx_expand_expr()
>  
>
Argh! Therefore const0_rtx means a zeroed (pseudo) register.

>I would think that is a requirement for proper support for the kind of
>refactorying you're doing. Ask a middle-end expert how to annotate
>an expression nobody cares about.
>  
>
Ok, let's think a bit more about this issue, humpf! Maybe, for the time 
being
better not pushing this refactoring too far, then.

My idea would be submitting a PR about this, and wait a bit for 
reactions. Indeed,
seems not too difficult, in principle, at least not zeroing that damn 
register basing
on an annotation. And, hopefully, something downstream will recognize 
that it's
not really used and will optimize it out.

Paolo.



More information about the Libstdc++ mailing list