aboutsummaryrefslogtreecommitdiff
path: root/gcc/bb-reorder.c
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2017-07-21 09:17:22 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2017-07-21 07:17:22 +0000
commitd9af4feaf09350974d2cefcc284ebc3716f6829f (patch)
treebbcc41e64d2b3293e4771166e8e4862896583e81 /gcc/bb-reorder.c
parent1dae21ad9797ae5cb77db3f2d85e854f3ae121f4 (diff)
downloadgcc-d9af4feaf09350974d2cefcc284ebc3716f6829f.zip
gcc-d9af4feaf09350974d2cefcc284ebc3716f6829f.tar.gz
gcc-d9af4feaf09350974d2cefcc284ebc3716f6829f.tar.bz2
bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges): Put all BBs reachable only via paths crossing cold region to cold region.
* bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges): Put all BBs reachable only via paths crossing cold region to cold region. * cfgrtl.c (find_bbs_reachable_by_hot_paths): New function. From-SVN: r250417
Diffstat (limited to 'gcc/bb-reorder.c')
-rw-r--r--gcc/bb-reorder.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/bb-reorder.c b/gcc/bb-reorder.c
index 3b7278f..dc50546 100644
--- a/gcc/bb-reorder.c
+++ b/gcc/bb-reorder.c
@@ -1665,6 +1665,12 @@ find_rarely_executed_basic_blocks_and_crossing_edges (void)
&bbs_in_hot_partition);
if (cold_bb_count)
sanitize_hot_paths (false, cold_bb_count, &bbs_in_hot_partition);
+
+ hash_set <basic_block> set;
+ find_bbs_reachable_by_hot_paths (&set);
+ FOR_EACH_BB_FN (bb, cfun)
+ if (!set.contains (bb))
+ BB_SET_PARTITION (bb, BB_COLD_PARTITION);
}
/* The format of .gcc_except_table does not allow landing pads to