http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54779

--- Comment #5 from Eric Botcazou <ebotcazou at gcc dot gnu.org> ---
> Eric, to what extent would this patch suffice?  It detects situations
> when an array is the only thing preventing a local scalar from being
> totally replaced disappearing and if it also complies with a number of
> conditions (most importantly, it must not be accessed as whole, only
> its elements), it creates a separate array and changes all array
> references to use that.  While it most certainly isn't as powerful as
> your specialized patch, it also works on non-FRAMEs and is good enough
> to break them up in your testcase (and its slightly more complex
> variant included as the second testcase in the patch).

The last sentence seems to comprise the answer.  The purpose of the patch is to
eliminate _all traces_ of the non-local frame when all the nested functions are
inlined, without any restrictions whatsoever.  The idea is that this artificial
construct must die when everything is unnested.

Reply via email to