diff options
author | ctice <ctice@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-03-31 14:59:59 +0000 |
---|---|---|
committer | ctice <ctice@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-03-31 14:59:59 +0000 |
commit | 1897b88152df894079137aba336a65361e09a9c8 (patch) | |
tree | ade60c4c4ed198b0036370e03ebd3a1f64ee4817 /gcc/ifcvt.c | |
parent | d6b5203d8dbe5fffec8c3aea15a308aa64faebd5 (diff) | |
download | gcc-1897b88152df894079137aba336a65361e09a9c8.tar.gz |
Fix problems with hot/cold partitioning optimization.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@97322 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ifcvt.c')
-rw-r--r-- | gcc/ifcvt.c | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/gcc/ifcvt.c b/gcc/ifcvt.c index b0df6dae3ac..7a934ee6acf 100644 --- a/gcc/ifcvt.c +++ b/gcc/ifcvt.c @@ -2865,12 +2865,13 @@ find_if_case_1 (basic_block test_bb, edge then_edge, edge else_edge) partition boundaries). See the comments at the top of bb-reorder.c:partition_hot_cold_basic_blocks for complete details. */ - if (flag_reorder_blocks_and_partition - && ((BB_END (then_bb) - && find_reg_note (BB_END (then_bb), REG_CROSSING_JUMP, NULL_RTX)) - || (BB_END (else_bb) - && find_reg_note (BB_END (else_bb), REG_CROSSING_JUMP, - NULL_RTX)))) + if ((BB_END (then_bb) + && find_reg_note (BB_END (then_bb), REG_CROSSING_JUMP, NULL_RTX)) + || (BB_END (test_bb) + && find_reg_note (BB_END (test_bb), REG_CROSSING_JUMP, NULL_RTX)) + || (BB_END (else_bb) + && find_reg_note (BB_END (else_bb), REG_CROSSING_JUMP, + NULL_RTX))) return FALSE; /* THEN has one successor. */ @@ -2970,12 +2971,13 @@ find_if_case_2 (basic_block test_bb, edge then_edge, edge else_edge) partition boundaries). See the comments at the top of bb-reorder.c:partition_hot_cold_basic_blocks for complete details. */ - if (flag_reorder_blocks_and_partition - && ((BB_END (then_bb) - && find_reg_note (BB_END (then_bb), REG_CROSSING_JUMP, NULL_RTX)) - || (BB_END (else_bb) - && find_reg_note (BB_END (else_bb), REG_CROSSING_JUMP, - NULL_RTX)))) + if ((BB_END (then_bb) + && find_reg_note (BB_END (then_bb), REG_CROSSING_JUMP, NULL_RTX)) + || (BB_END (test_bb) + && find_reg_note (BB_END (test_bb), REG_CROSSING_JUMP, NULL_RTX)) + || (BB_END (else_bb) + && find_reg_note (BB_END (else_bb), REG_CROSSING_JUMP, + NULL_RTX))) return FALSE; /* ELSE has one successor. */ |