aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-cfg.c
diff options
context:
space:
mode:
authorTom de Vries <tom@codesourcery.com>2015-07-07 16:25:12 +0000
committerTom de Vries <vries@gcc.gnu.org>2015-07-07 16:25:12 +0000
commit338392ed0fd9ca466905860e931b7a480179bce4 (patch)
tree3eb1e7150ba1a00608cd3f4c2b16ae22ac5438b1 /gcc/tree-cfg.c
parent9b20858a9ba7039a12cef6e724e541bdcce2ba25 (diff)
downloadgcc-338392ed0fd9ca466905860e931b7a480179bce4.zip
gcc-338392ed0fd9ca466905860e931b7a480179bce4.tar.gz
gcc-338392ed0fd9ca466905860e931b7a480179bce4.tar.bz2
Add rewrite_virtuals_into_loop_closed_ssa
2015-07-07 Tom de Vries <tom@codesourcery.com> * tree-cfg.c (get_virtual_phi): New function. * tree-cfg.h (get_virtual_phi): Declare. * tree-ssa-loop-manip.c (replace_uses_in_dominated_bbs) (rewrite_virtuals_into_loop_closed_ssa): New function. * tree-ssa-loop-manip.h (rewrite_virtuals_into_loop_closed_ssa): Declare. * tree-parloops.c (replace_uses_in_bbs_by): Remove. (transform_to_exit_first_loop_alt): Use rewrite_virtuals_into_loop_closed_ssa. From-SVN: r225520
Diffstat (limited to 'gcc/tree-cfg.c')
-rw-r--r--gcc/tree-cfg.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c
index f47795a..b7c4026 100644
--- a/gcc/tree-cfg.c
+++ b/gcc/tree-cfg.c
@@ -2623,6 +2623,23 @@ delete_tree_cfg_annotations (void)
vec_free (label_to_block_map_for_fn (cfun));
}
+/* Return the virtual phi in BB. */
+
+gphi *
+get_virtual_phi (basic_block bb)
+{
+ for (gphi_iterator gsi = gsi_start_phis (bb);
+ !gsi_end_p (gsi);
+ gsi_next (&gsi))
+ {
+ gphi *phi = gsi.phi ();
+
+ if (virtual_operand_p (PHI_RESULT (phi)))
+ return phi;
+ }
+
+ return NULL;
+}
/* Return the first statement in basic block BB. */