aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorTom de Vries <tom@codesourcery.com>2015-11-17 21:42:18 +0000
committerTom de Vries <vries@gcc.gnu.org>2015-11-17 21:42:18 +0000
commit635d5dd516a2d4512a2d90dade2f1d7b54632907 (patch)
tree8b600ea7ddcf61bab17ed51f133760c271cd696e /gcc
parent886c388d74901f294841263f2c2400fe8a586eae (diff)
downloadgcc-635d5dd516a2d4512a2d90dade2f1d7b54632907.zip
gcc-635d5dd516a2d4512a2d90dade2f1d7b54632907.tar.gz
gcc-635d5dd516a2d4512a2d90dade2f1d7b54632907.tar.bz2
Clear LOOP_CLOSED_SSA after pass_ccp
2015-11-17 Tom de Vries <tom@codesourcery.com> * tree-ssa-ccp.c (do_ssa_ccp): Clear LOOP_CLOSED_SSA in loops state if something changed. From-SVN: r230503
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/tree-ssa-ccp.c10
2 files changed, 14 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b208b47..a21f18b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2015-11-17 Tom de Vries <tom@codesourcery.com>
+ * tree-ssa-ccp.c (do_ssa_ccp): Clear LOOP_CLOSED_SSA in loops state if
+ something changed.
+
+2015-11-17 Tom de Vries <tom@codesourcery.com>
+
* cfgloop.h (struct loop): Add in_oacc_kernels_region field.
* omp-low.c (mark_loops_in_oacc_kernels_region): New function.
(expand_omp_target): Call mark_loops_in_oacc_kernels_region.
diff --git a/gcc/tree-ssa-ccp.c b/gcc/tree-ssa-ccp.c
index 7b6b451..7e8bc52 100644
--- a/gcc/tree-ssa-ccp.c
+++ b/gcc/tree-ssa-ccp.c
@@ -139,6 +139,7 @@ along with GCC; see the file COPYING3. If not see
#include "params.h"
#include "builtins.h"
#include "tree-chkp.h"
+#include "cfgloop.h"
/* Possible lattice values. */
@@ -2402,10 +2403,17 @@ do_ssa_ccp (bool nonzero_p)
{
unsigned int todo = 0;
calculate_dominance_info (CDI_DOMINATORS);
+
ccp_initialize ();
ssa_propagate (ccp_visit_stmt, ccp_visit_phi_node);
if (ccp_finalize (nonzero_p))
- todo = (TODO_cleanup_cfg | TODO_update_ssa);
+ {
+ todo = (TODO_cleanup_cfg | TODO_update_ssa);
+
+ /* ccp_finalize does not preserve loop-closed ssa. */
+ loops_state_clear (LOOP_CLOSED_SSA);
+ }
+
free_dominance_info (CDI_DOMINATORS);
return todo;
}