diff options
author | Harsha Jagasia <harsha.jagasia@amd.com> | 2009-01-05 21:03:45 +0000 |
---|---|---|
committer | Sebastian Pop <spop@gcc.gnu.org> | 2009-01-05 21:03:45 +0000 |
commit | 9761fcc7baae374bd42e9bb9608c8317fcb5658d (patch) | |
tree | 64647e1b99479b8f262929b8c381f1c409440a7e /gcc/graphite.c | |
parent | 4564ac62c5ff525b7846e0557aa2037ee5c4dba4 (diff) | |
download | gcc-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.c | 7 |
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 (); |