> This is an updated version of the patch. I have 2 new patches and an > updated testcase which I will sent out individually. > > Patch set was bootstrapped and reg-tested on x86_64. > > Ok for trunk? > > Thanks, > - Tom > > 2011-07-30 Tom de Vries <t...@codesourcery.com> > > PR middle-end/43513 > * Makefile.in (tree-ssa-ccp.o): Add $(PARAMS_H) to rule. > * tree-ssa-ccp.c (params.h): Include. > (fold_builtin_alloca_for_var): New function. > (ccp_fold_stmt): Use fold_builtin_alloca_for_var.
We have detected another fallout on some Ada code: the transformation replaces a call to __builtin_alloca with &var, i.e. it introduces an aliased variable, which invalidates the points-to information of some subsequent call, fooling DSE into thinking that it can eliminate a live store. The brute force approach Index: tree-ssa-ccp.c =================================================================== --- tree-ssa-ccp.c (revision 179038) +++ tree-ssa-ccp.c (working copy) @@ -2014,7 +2014,10 @@ do_ssa_ccp (void) ccp_initialize (); ssa_propagate (ccp_visit_stmt, ccp_visit_phi_node); if (ccp_finalize ()) - return (TODO_cleanup_cfg | TODO_update_ssa | TODO_remove_unused_locals); + return (TODO_cleanup_cfg + | TODO_update_ssa + | TODO_rebuild_alias + | TODO_remove_unused_locals); else return 0; } works, but we might want to be move clever. Thoughts? -- Eric Botcazou