From 54e7d067d5f79ec637ca301e69b70665df0d16dd Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Sat, 30 Dec 2006 13:15:16 +0100 Subject: [PATCH] ipa-pure-const.c (check_operand): SSA_NAME is safe. * ipa-pure-const.c (check_operand): SSA_NAME is safe. * ipa-type-escape.c (scan_for_refs): Look into SSA_NAMEs. From-SVN: r120286 --- gcc/ChangeLog | 5 +++++ gcc/ipa-pure-const.c | 3 ++- gcc/ipa-type-escape.c | 6 +++++- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 83440dd795b..b7bae1a1cfd 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2006-12-30 Jan Hubicka + + * ipa-pure-const.c (check_operand): SSA_NAME is safe. + * ipa-type-escape.c (scan_for_refs): Look into SSA_NAMEs. + 2006-12-30 Jan Hubicka * tree.h (DECL_CALL_CLOBBERED): Remove. diff --git a/gcc/ipa-pure-const.c b/gcc/ipa-pure-const.c index bd1d72b7506..5f19af8c61e 100644 --- a/gcc/ipa-pure-const.c +++ b/gcc/ipa-pure-const.c @@ -163,7 +163,8 @@ check_operand (funct_state local, static void check_tree (funct_state local, tree t, bool checking_write) { - if ((TREE_CODE (t) == EXC_PTR_EXPR) || (TREE_CODE (t) == FILTER_EXPR)) + if ((TREE_CODE (t) == EXC_PTR_EXPR) || (TREE_CODE (t) == FILTER_EXPR) + || TREE_CODE (t) == SSA_NAME) return; /* Any tree which is volatile disqualifies thie function from being diff --git a/gcc/ipa-type-escape.c b/gcc/ipa-type-escape.c index a7749f46a27..7b2fac104bc 100644 --- a/gcc/ipa-type-escape.c +++ b/gcc/ipa-type-escape.c @@ -1267,7 +1267,11 @@ scan_for_refs (tree *tp, int *walk_subtrees, void *data) result so we do mark the resulting cast as being bad. */ if (check_call (rhs)) - bitmap_set_bit (results_of_malloc, DECL_UID (lhs)); + { + if (TREE_CODE (lhs) == SSA_NAME) + lhs = SSA_NAME_VAR (lhs); + bitmap_set_bit (results_of_malloc, DECL_UID (lhs)); + } break; default: break;