This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/50678] [4.7 Regression] FAIL: c52104y on x86_64-apple-darwin10
- From: "ebotcazou at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 11 Oct 2011 06:19:39 +0000
- Subject: [Bug tree-optimization/50678] [4.7 Regression] FAIL: c52104y on x86_64-apple-darwin10
- Auto-submitted: auto-generated
- References: <bug-50678-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50678
Eric Botcazou <ebotcazou at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2011-10-11
Component|ada |tree-optimization
Ever Confirmed|0 |1
--- Comment #6 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2011-10-11 06:19:39 UTC ---
> 2011-10-07 Tom de Vries <tom@codesourcery.com>
>
> PR middle-end/50527
> * tree.c (build_common_builtin_nodes): Add local_define_builtin for
> * builtins.c (expand_builtin_alloca): Handle BUILT_IN_ALLOCA_WITH_ALIGN
> * tree-ssa-ccp.c (evaluate_stmt): Set align for
> * builtins.def (BUILT_IN_ALLOCA_WITH_ALIGN): Declare using
> * ipa-pure-const.c (special_builtin_state): Handle
> * tree-ssa-alias.c (ref_maybe_used_by_call_p_1)
> * function.c (gimplify_parameters): Lower vla to
> * gimplify.c (gimplify_vla_decl): Same.
> * cfgexpand.c (expand_call_stmt): Handle BUILT_IN_ALLOCA_WITH_ALIGN.
> * tree-mudflap.c (mf_xform_statements): Same.
> * tree-ssa-dce.c (mark_stmt_if_obviously_necessary)
> * varasm.c (incorporeal_function_p): Same.
> * tree-object-size.c (alloc_object_size): Same.
> * gimple.c (gimple_build_call_from_tree): Same.
OK, I didn't realize that things were still ongoing on this front. Frankly,
this alloca folding seems to introduce far too much complication for what it's
worth.
Tom, did you consider reverting the whole thing and doing things differently?
If your canonical example is something like:
const int n = 5;
int array[n];
it's very easy to fold this in the front-end into:
const int n = 5;
int array[5];
As a matter of fact, that's what we do in Ada, which is by far the biggest user
of alloca in the compiler.