From 973162ec9dd144e6637a9fc775c3e9ce308b054c Mon Sep 17 00:00:00 2001 From: Daniel Berlin Date: Tue, 8 Nov 2005 16:34:48 +0000 Subject: [PATCH] re PR tree-optimization/23382 (Does not remove the old HEAP virtual variables in clobbered) 2005-11-08 Daniel Berlin Fix PR tree-optimization/23382 * tree-ssa-alias.c (compute_may_aliases): Call delete_old_heap_vars. * tree-dfa.c (referenced_var_remove): New function. * tree-ssa.c (delete_tree_ssa): Call delete_old_heap_vars. * tree-flow.h (referenced_var_remove): Add prototype. (delete_old_heap_vars): Ditto. * tree-ssa-structalias.c (heapvars): New variable. (oldheapvars): Ditto. (get_constraint_for): Put heap vars on heapvars list. (delete_old_heap_vars): New function. From-SVN: r106643 --- gcc/ChangeLog | 15 ++++++++ gcc/testsuite/gcc.dg/tree-ssa/pr23382.c | 24 +++++++++++++ gcc/tree-dfa.c | 12 +++++++ gcc/tree-flow.h | 2 ++ gcc/tree-ssa-alias.c | 2 ++ gcc/tree-ssa-structalias.c | 47 +++++++++++++++++++++++++ gcc/tree-ssa.c | 1 + 7 files changed, 103 insertions(+) create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/pr23382.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bd9a3e04504..d6d939ba0d2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,18 @@ +2005-11-08 Daniel Berlin + + Fix PR tree-optimization/23382 + + * tree-ssa-alias.c (compute_may_aliases): Call + delete_old_heap_vars. + * tree-dfa.c (referenced_var_remove): New function. + * tree-ssa.c (delete_tree_ssa): Call delete_old_heap_vars. + * tree-flow.h (referenced_var_remove): Add prototype. + (delete_old_heap_vars): Ditto. + * tree-ssa-structalias.c (heapvars): New variable. + (oldheapvars): Ditto. + (get_constraint_for): Put heap vars on heapvars list. + (delete_old_heap_vars): New function. + 2005-11-08 Jason Merrill * tree.h (CALL_FROM_THUNK_P): Add CALL_EXPR_CHECK. diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr23382.c b/gcc/testsuite/gcc.dg/tree-ssa/pr23382.c new file mode 100644 index 00000000000..eeeb0ffd0d7 --- /dev/null +++ b/gcc/testsuite/gcc.dg/tree-ssa/pr23382.c @@ -0,0 +1,24 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fdump-tree-alias-vops" } */ +struct a +{ + int length; + int a1[256]; +}; + +void *malloc(long size) __attribute__((malloc)); + +void f(void) +{ + struct a *a = malloc(sizeof(struct a)); +} +/* { dg-final { scan-tree-dump-times "V_MAY_DEF