aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-operands.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/tree-ssa-operands.cc')
-rw-r--r--gcc/tree-ssa-operands.cc20
1 files changed, 20 insertions, 0 deletions
diff --git a/gcc/tree-ssa-operands.cc b/gcc/tree-ssa-operands.cc
index a5970ac..c32cb36 100644
--- a/gcc/tree-ssa-operands.cc
+++ b/gcc/tree-ssa-operands.cc
@@ -1416,3 +1416,23 @@ single_imm_use_1 (const ssa_use_operand_t *head,
return single_use;
}
+/* Gather all stmts SSAVAR is used on, eliminating duplicates. */
+
+auto_vec<gimple *, 2>
+gather_imm_use_stmts (tree ssavar)
+{
+ auto_vec<gimple *, 2> stmts;
+ imm_use_iterator iter;
+ use_operand_p use_p;
+ FOR_EACH_IMM_USE_FAST (use_p, iter, ssavar)
+ {
+ gimple *use_stmt = USE_STMT (use_p);
+ if (use_stmt->ilf)
+ continue;
+ use_stmt->ilf = 1;
+ stmts.safe_push (use_stmt);
+ }
+ for (gimple *use_stmt : stmts)
+ use_stmt->ilf = 0;
+ return stmts;
+}