> Well, the current code assumes that the replacements are gimple
> register types and, perhaps more importantly, it assumes there are no
> to-be-replaced pieces within to-be-replaced pieces.  If we were to put
> a structure outside of a frame structure and scalarize some field
> within it at the same time... a lot of places would probably need to
> be slightly re-thought.

Yes, IIRC I came to the conclusion that the splitting of the FRAME variables 
and the splitting (or not) of its aggregate fields couldn't be (easily) done 
in one pass with SRA.  After that, it's easy to understand why I wrote the 
special sub-pass instead of patching SRA.

> OTOH, I assume the frame structure is never being assigned to or read as a
> whole so that would simplify a lot of things.

Yes, that's one of the special properties of the FRAME variables, in addition 
to the addressability thing.

> Please CC me in the bug.  I probably won't be able to try anything
> myself for a few weeks but I'm interested in helping.

Sure, but, as I said, I don't plan to work on it myself either.  The current 
patch is small, localized, straightforward to understand and we haven't had a 
single bug reported for it since its inception 2 years ago, so...

-- 
Eric Botcazou

Reply via email to