Remember/restore ALLOCA_FOR_VAR_P over tuples

H.J. Lu hjl.tools@gmail.com
Wed May 11 09:08:00 GMT 2011


On Fri, Apr 15, 2011 at 1:20 PM, Michael Matz <matz@suse.de> wrote:
> Hi,
>
> On Thu, 14 Apr 2011, Michael Matz wrote:
>
>> > Btw, I don't remember why I chose ALLOCA_FOR_VAR_P over
>> > CALL_ALLOCA_FOR_VAR_P but, given the name of the GIMPLE flag and
>> > predicate, it's probably time to change it.
>>
>> Good idea, I'll rename it before checking in.
>
> r172516, for reference also below.  I later saw that my patch causes
> cxg2001 to fail.  I've analyzed it enough to be sure that it's only
> exposed by this patch (due to inlining now happening), in fact it's a
> problem in IRA that is reproducible with a C++ testcase even without the
> patch.  I've filed PR48633 for this.
>
>
> Ciao,
> Michael.
>
>        * tree.h (ALLOCA_FOR_VAR_P): Rename to CALL_ALLOCA_FOR_VAR_P.
>        * builtins.c (expand_builtin): Use CALL_ALLOCA_FOR_VAR_P.
>        * function.c (gimplify_parameters): Ditto.
>        * gimplify.c (gimplify_vla_decl): Ditto.
>
>        * gimple.h (enum gf_mask): Add GF_CALL_ALLOCA_FOR_VAR.
>        (gimple_call_set_alloca_for_var): New inline function.
>        (gimple_call_alloca_for_var_p): Ditto.
>        * gimple.c (gimple_build_call_from_tree): Remember CALL_ALLOCA_FOR_VAR_P
>        state.
>        * cfgexpand.c (expand_call_stmt): Restore CALL_ALLOCA_FOR_VAR_P state.
>
>        * tree-inline.c (inline_forbidden_p_stmt): Don't reject alloca
>        calls if they were for VLA objects.
>

This caused:

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

-- 
H.J.



More information about the Gcc-patches mailing list