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