diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/tree-if-conv.c | 9 |
2 files changed, 14 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0e9bd83..34afcc1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2010-06-25 Sebastian Pop <sebastian.pop@amd.com> + * tree-if-conv.c (insert_gimplified_predicates): Do not insert + statements computing the true predicate. + +2010-06-25 Sebastian Pop <sebastian.pop@amd.com> + * tree-if-conv.c (init_bb_predicate): Initialize the predicate to boolean_true_node. (reset_bb_predicate): New. diff --git a/gcc/tree-if-conv.c b/gcc/tree-if-conv.c index 80a53a8..8d5d226 100644 --- a/gcc/tree-if-conv.c +++ b/gcc/tree-if-conv.c @@ -1021,6 +1021,15 @@ insert_gimplified_predicates (loop_p loop) basic_block bb = ifc_bbs[i]; gimple_seq stmts = bb_predicate_gimplified_stmts (bb); + if (!is_predicated (bb)) + { + /* Do not insert statements for a basic block that is not + predicated. Also make sure that the predicate of the + basic block is set to true. */ + reset_bb_predicate (bb); + continue; + } + if (stmts) { gimple_stmt_iterator gsi = gsi_last_bb (bb); |