aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa.c
diff options
context:
space:
mode:
authorKazu Hirata <kazu@cs.umass.edu>2004-10-28 13:31:53 +0000
committerKazu Hirata <kazu@gcc.gnu.org>2004-10-28 13:31:53 +0000
commit71882046281f1414174fb8ff14b072e159c5a2d4 (patch)
tree0f497db2d97527ca7579bbfe5ed4c65acb24d5e8 /gcc/tree-ssa.c
parent63058091fa0045a82d1777bd5046a80f920797ab (diff)
downloadgcc-71882046281f1414174fb8ff14b072e159c5a2d4.zip
gcc-71882046281f1414174fb8ff14b072e159c5a2d4.tar.gz
gcc-71882046281f1414174fb8ff14b072e159c5a2d4.tar.bz2
lambda-code.c (nestify_update_pending_stmts): Remove.
* lambda-code.c (nestify_update_pending_stmts): Remove. (perfect_nestify): Use flush_pending_stmts instead of nestify_update_pending_stmts. * tree-cfg.c (tree_make_forwarder_block): Use flush_pending_stmts. * tree-flow.h: Add a prototype for flush_pending_stmts. * tree-ssa-loop-manip.c (tree_duplicate_loop_to_header_edge): Use flush_pending_stmts. (lv_update_pending_stmts): Remove. (tree_ssa_loop_version): Use flush_pending_stmts instead of lv_update_pending_stmts. * tree-ssa.c (flush_pending_stmts): New. From-SVN: r89757
Diffstat (limited to 'gcc/tree-ssa.c')
-rw-r--r--gcc/tree-ssa.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/gcc/tree-ssa.c b/gcc/tree-ssa.c
index d9379ba..6fb711a 100644
--- a/gcc/tree-ssa.c
+++ b/gcc/tree-ssa.c
@@ -100,6 +100,27 @@ ssa_redirect_edge (edge e, basic_block dest)
return e;
}
+/* Add PHI arguments queued in PENDINT_STMT list on edge E to edge
+ E->dest. */
+
+void
+flush_pending_stmts (edge e)
+{
+ tree phi, arg;
+
+ if (!PENDING_STMT (e))
+ return;
+
+ for (phi = phi_nodes (e->dest), arg = PENDING_STMT (e);
+ phi;
+ phi = TREE_CHAIN (phi), arg = TREE_CHAIN (arg))
+ {
+ tree def = TREE_VALUE (arg);
+ add_phi_arg (&phi, def, e);
+ }
+
+ PENDING_STMT (e) = NULL;
+}
/* Return true if SSA_NAME is malformed and mark it visited.