summaryrefslogtreecommitdiff
path: root/gcc/graphite.c
diff options
context:
space:
mode:
authorbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2009-02-10 08:00:24 +0000
committerbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2009-02-10 08:00:24 +0000
commit6f6c767ccfbaff75eb44beb7771df877dcd855bb (patch)
tree767977ecd796812aa67661af18ea9f29fcf760ee /gcc/graphite.c
parentd011df4af27ce866ffa9e531d6d208c1482b2afc (diff)
downloadgcc-6f6c767ccfbaff75eb44beb7771df877dcd855bb.tar.gz
2009-02-10 Basile Starynkevitch <basile@starynkevitch.net>
MELT branch merged with trunk r144050 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@144052 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/graphite.c')
-rw-r--r--gcc/graphite.c15
1 files changed, 4 insertions, 11 deletions
diff --git a/gcc/graphite.c b/gcc/graphite.c
index a4d5e36f132..13b9ad6f3c4 100644
--- a/gcc/graphite.c
+++ b/gcc/graphite.c
@@ -5024,6 +5024,7 @@ if_region_set_false_region (ifsese if_region, sese region)
{
basic_block condition = if_region_get_condition_block (if_region);
edge false_edge = get_false_edge_from_guard_bb (condition);
+ basic_block dummy = false_edge->dest;
edge entry_region = SESE_ENTRY (region);
edge exit_region = SESE_EXIT (region);
basic_block before_region = entry_region->src;
@@ -5038,11 +5039,13 @@ if_region_set_false_region (ifsese if_region, sese region)
redirect_edge_pred (entry_region, condition);
redirect_edge_pred (exit_region, before_region);
redirect_edge_pred (false_edge, last_in_region);
+ redirect_edge_succ (false_edge, single_succ (dummy));
+ delete_basic_block (dummy);
exit_region->flags = EDGE_FALLTHRU;
recompute_all_dominators ();
- SESE_EXIT (region) = single_succ_edge (false_edge->dest);
+ SESE_EXIT (region) = false_edge;
if_region->false_region = region;
if (slot)
@@ -5436,16 +5439,6 @@ gloog (scop_p scop, struct clast_stmt *stmt)
loop_p context_loop;
ifsese if_region = NULL;
- /* To maintain the loop closed SSA form, we have to keep the phi
- nodes after the last loop in the scop. */
- if (loop_depth (SESE_EXIT (SCOP_REGION (scop))->dest->loop_father)
- != loop_depth (SESE_EXIT (SCOP_REGION (scop))->src->loop_father))
- {
- basic_block bb = SESE_EXIT (SCOP_REGION (scop))->dest;
- SESE_EXIT (SCOP_REGION (scop)) = split_block_after_labels (bb);
- pointer_set_insert (SESE_REGION_BBS (SCOP_REGION (scop)), bb);
- }
-
recompute_all_dominators ();
graphite_verify ();
if_region = move_sese_in_condition (SCOP_REGION (scop));