diff options
author | Sebastian Pop <sebastian.pop@amd.com> | 2010-06-25 18:38:14 +0000 |
---|---|---|
committer | Sebastian Pop <spop@gcc.gnu.org> | 2010-06-25 18:38:14 +0000 |
commit | 29caa68aa5ee0e2defeb6331d15b458f3e6853ba (patch) | |
tree | 7397dfd8fdb71bbd08d9b75bbb20ea4f22b9fef1 /gcc | |
parent | 0f741287d6f41e37052c58fdb2bb3eee9ab3cd79 (diff) | |
download | gcc-29caa68aa5ee0e2defeb6331d15b458f3e6853ba.tar.gz |
Use reset_bb_predicate whenever the predicate of a BB should be reset to true.
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.
(predicate_bbs): Call reset_bb_predicate.
From-SVN: r161397
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/tree-if-conv.c | 17 |
2 files changed, 20 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b7fbcb99dcf..0e9bd8320bd 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,12 @@ 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. + (predicate_bbs): Call reset_bb_predicate. + +2010-06-25 Sebastian Pop <sebastian.pop@amd.com> + * tree-if-conv.c (combine_blocks): Remove FIXME comment. (tree_if_conversion): Returns true when something has been changed. (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion diff --git a/gcc/tree-if-conv.c b/gcc/tree-if-conv.c index f200d480b59..80a53a807bb 100644 --- a/gcc/tree-if-conv.c +++ b/gcc/tree-if-conv.c @@ -175,7 +175,7 @@ init_bb_predicate (basic_block bb) { bb->aux = XNEW (struct bb_predicate_s); set_bb_predicate_gimplified_stmts (bb, NULL); - set_bb_predicate (bb, NULL_TREE); + set_bb_predicate (bb, boolean_true_node); } /* Free the predicate of basic block BB. */ @@ -203,6 +203,16 @@ free_bb_predicate (basic_block bb) bb->aux = NULL; } +/* Free the predicate of BB and reinitialize it with the true + predicate. */ + +static inline void +reset_bb_predicate (basic_block bb) +{ + free_bb_predicate (bb); + init_bb_predicate (bb); +} + /* Create a new temp variable of type TYPE. Add GIMPLE_ASSIGN to assign EXP to the new variable. */ @@ -605,8 +615,7 @@ predicate_bbs (loop_p loop) to be processed: skip it. */ if (bb == loop->latch) { - set_bb_predicate (loop->latch, boolean_true_node); - set_bb_predicate_gimplified_stmts (loop->latch, NULL); + reset_bb_predicate (loop->latch); continue; } @@ -680,7 +689,7 @@ predicate_bbs (loop_p loop) } /* The loop header is always executed. */ - set_bb_predicate (loop->header, boolean_true_node); + reset_bb_predicate (loop->header); gcc_assert (bb_predicate_gimplified_stmts (loop->header) == NULL && bb_predicate_gimplified_stmts (loop->latch) == NULL); |