aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-uninit.c
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2010-08-18 14:18:51 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2010-08-18 14:18:51 +0000
commit480161b52bd6c4080e5bc8a94a2288761b5bae04 (patch)
tree3d8541382eaec83fad8a9bad31639e0b8331e36f /gcc/tree-ssa-uninit.c
parente5f5fa2da0a140f132a7d69a715160698272de64 (diff)
downloadgcc-480161b52bd6c4080e5bc8a94a2288761b5bae04.zip
gcc-480161b52bd6c4080e5bc8a94a2288761b5bae04.tar.gz
gcc-480161b52bd6c4080e5bc8a94a2288761b5bae04.tar.bz2
tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts, use operand helpers.
2010-08-18 Richard Guenther <rguenther@suse.de> * tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts, use operand helpers. From-SVN: r163340
Diffstat (limited to 'gcc/tree-ssa-uninit.c')
-rw-r--r--gcc/tree-ssa-uninit.c24
1 files changed, 7 insertions, 17 deletions
diff --git a/gcc/tree-ssa-uninit.c b/gcc/tree-ssa-uninit.c
index 16adde3..4398db7 100644
--- a/gcc/tree-ssa-uninit.c
+++ b/gcc/tree-ssa-uninit.c
@@ -1598,27 +1598,17 @@ find_uninit_use (gimple phi, unsigned uninit_opnds,
struct pointer_set_t *visited_phis;
basic_block use_bb;
- use_stmt = use_p->loc.stmt;
+ use_stmt = USE_STMT (use_p);
+ if (is_gimple_debug (use_stmt))
+ continue;
visited_phis = pointer_set_create ();
- use_bb = gimple_bb (use_stmt);
if (gimple_code (use_stmt) == GIMPLE_PHI)
- {
- unsigned i, n;
- n = gimple_phi_num_args (use_stmt);
-
- /* Find the matching phi argument of the use. */
- for (i = 0; i < n; ++i)
- {
- if (gimple_phi_arg_def_ptr (use_stmt, i) == use_p->use)
- {
- edge e = gimple_phi_arg_edge (use_stmt, i);
- use_bb = e->src;
- break;
- }
- }
- }
+ use_bb = gimple_phi_arg_edge (use_stmt,
+ PHI_ARG_INDEX_FROM_USE (use_p))->src;
+ else
+ use_bb = gimple_bb (use_stmt);
if (is_use_properly_guarded (use_stmt,
use_bb,