OSDN Git Service
(root)
/
pf3gnuchains
/
gcc-fork.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
2008-11-03 Sebastian Pop <sebastian.pop@amd.com>
[pf3gnuchains/gcc-fork.git]
/
gcc
/
cfghooks.c
diff --git
a/gcc/cfghooks.c
b/gcc/cfghooks.c
index
0897b0d
..
10c04a8
100644
(file)
--- a/
gcc/cfghooks.c
+++ b/
gcc/cfghooks.c
@@
-425,6
+425,7
@@
edge
split_block (basic_block bb, void *i)
{
basic_block new_bb;
split_block (basic_block bb, void *i)
{
basic_block new_bb;
+ edge res;
if (!cfg_hooks->split_block)
internal_error ("%s does not support split_block", cfg_hooks->name);
if (!cfg_hooks->split_block)
internal_error ("%s does not support split_block", cfg_hooks->name);
@@
-450,7
+451,15
@@
split_block (basic_block bb, void *i)
bb->loop_father->latch = new_bb;
}
bb->loop_father->latch = new_bb;
}
- return make_single_succ_edge (bb, new_bb, EDGE_FALLTHRU);
+ res = make_single_succ_edge (bb, new_bb, EDGE_FALLTHRU);
+
+ if (bb->flags & BB_IRREDUCIBLE_LOOP)
+ {
+ new_bb->flags |= BB_IRREDUCIBLE_LOOP;
+ res->flags |= EDGE_IRREDUCIBLE_LOOP;
+ }
+
+ return res;
}
/* Splits block BB just after labels. The newly created edge is returned. */
}
/* Splits block BB just after labels. The newly created edge is returned. */