aboutsummaryrefslogtreecommitdiff
path: root/gcc/graphite.c
diff options
context:
space:
mode:
authorHarsha Jagasia <harsha.jagasia@amd.com>2009-01-05 21:03:45 +0000
committerSebastian Pop <spop@gcc.gnu.org>2009-01-05 21:03:45 +0000
commit9761fcc7baae374bd42e9bb9608c8317fcb5658d (patch)
tree64647e1b99479b8f262929b8c381f1c409440a7e /gcc/graphite.c
parent4564ac62c5ff525b7846e0557aa2037ee5c4dba4 (diff)
downloadgcc-9761fcc7baae374bd42e9bb9608c8317fcb5658d.zip
gcc-9761fcc7baae374bd42e9bb9608c8317fcb5658d.tar.gz
gcc-9761fcc7baae374bd42e9bb9608c8317fcb5658d.tar.bz2
re PR middle-end/38510 (Matrix.c from pymol 1.1r2 fails to compile with -O2 -fgraphite)
2009-01-05 Harsha Jagasia <harsha.jagasia@amd.com> PR tree-optimization/38510 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops. (translate_clast): Call recompute_all_dominators before graphite_verify. (gloog): Call recompute_all_dominators before graphite_verify. 2009-01-05 Harsha Jagasia <harsha.jagasia@amd.com> Jan Sjodin <jan.sjodin@amd.com> PR tree-optimization/38500 * graphite.c (create_sese_edges): Call fix_loop_structure after splitting blocks. 2009-01-05 Harsha Jagasia <harsha.jagasia@amd.com> PR tree-optimization/38510 * gcc.dg/graphite/pr38510.c: New. 2009-01-05 Harsha Jagasia <harsha.jagasia@amd.com> Jan Sjodin <jan.sjodin@amd.com> PR tree-optimization/38500 * gcc.dg/graphite/pr38500.c: New. Co-Authored-By: Jan Sjodin <jan.sjodin@amd.com> From-SVN: r143094
Diffstat (limited to 'gcc/graphite.c')
-rw-r--r--gcc/graphite.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/graphite.c b/gcc/graphite.c
index eda09f8..b051b5b 100644
--- a/gcc/graphite.c
+++ b/gcc/graphite.c
@@ -1951,6 +1951,7 @@ mark_exit_edges (VEC (sd_region, heap) *regions)
static inline void
recompute_all_dominators (void)
{
+ mark_irreducible_loops ();
free_dominance_info (CDI_DOMINATORS);
free_dominance_info (CDI_POST_DOMINATORS);
calculate_dominance_info (CDI_DOMINATORS);
@@ -1988,6 +1989,8 @@ create_sese_edges (VEC (sd_region, heap) *regions)
unmark_exit_edges (regions);
+ fix_loop_structure (NULL);
+
#ifdef ENABLE_CHECKING
verify_loop_structure ();
verify_dominators (CDI_DOMINATORS);
@@ -4283,6 +4286,7 @@ translate_clast (scop_p scop, struct loop *context_loop,
next_e = translate_clast (scop, context_loop,
((struct clast_guard *) stmt)->then,
true_e, ivstack);
+ recompute_all_dominators ();
graphite_verify ();
return translate_clast (scop, context_loop, stmt->next, last_e, ivstack);
}
@@ -4292,6 +4296,7 @@ translate_clast (scop_p scop, struct loop *context_loop,
next_e = translate_clast (scop, context_loop,
((struct clast_block *) stmt)->body,
next_e, ivstack);
+ recompute_all_dominators ();
graphite_verify ();
return translate_clast (scop, context_loop, stmt->next, next_e, ivstack);
}
@@ -4975,12 +4980,14 @@ gloog (scop_p scop, struct clast_stmt *stmt)
if_region->region->exit->src,
if_region->false_region->exit,
if_region->true_region->exit);
+ recompute_all_dominators ();
graphite_verify ();
context_loop = SESE_ENTRY (SCOP_REGION (scop))->src->loop_father;
compute_cloog_iv_types (stmt);
new_scop_exit_edge = translate_clast (scop, context_loop,
stmt, if_region->true_region->entry,
&ivstack);
+ recompute_all_dominators ();
graphite_verify ();
cleanup_tree_cfg ();
recompute_all_dominators ();