> 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 <[email protected]>
>
> 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