aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-into-ssa.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/tree-into-ssa.c')
-rw-r--r--gcc/tree-into-ssa.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/gcc/tree-into-ssa.c b/gcc/tree-into-ssa.c
index e6e8a3a..726744d 100644
--- a/gcc/tree-into-ssa.c
+++ b/gcc/tree-into-ssa.c
@@ -2409,6 +2409,14 @@ rewrite_into_ssa (void)
return 0;
}
+/* Gate for IPCP optimization. */
+
+static bool
+gate_into_ssa (void)
+{
+ /* Do nothing for funcions that was produced already in SSA form. */
+ return !(cfun->curr_properties & PROP_ssa);
+}
namespace {
@@ -2417,7 +2425,7 @@ const pass_data pass_data_build_ssa =
GIMPLE_PASS, /* type */
"ssa", /* name */
OPTGROUP_NONE, /* optinfo_flags */
- false, /* has_gate */
+ true, /* has_gate */
true, /* has_execute */
TV_TREE_SSA_OTHER, /* tv_id */
PROP_cfg, /* properties_required */
@@ -2435,6 +2443,7 @@ public:
{}
/* opt_pass methods: */
+ bool gate () { return gate_into_ssa (); }
unsigned int execute () { return rewrite_into_ssa (); }
}; // class pass_build_ssa