diff options
author | Jan Hubicka <hubicka@gcc.gnu.org> | 2017-07-19 18:09:39 +0000 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2017-07-19 18:09:39 +0000 |
commit | 8b5d71cd61ecf0793cab732aad7232d6da4620fc (patch) | |
tree | 67f93353f64100487da1968df36ba48d260db79d /gcc/cfgexpand.c | |
parent | 95a60a5c8c5620da65d588b6b8c71f8145a31993 (diff) | |
download | gcc-8b5d71cd61ecf0793cab732aad7232d6da4620fc.zip gcc-8b5d71cd61ecf0793cab732aad7232d6da4620fc.tar.gz gcc-8b5d71cd61ecf0793cab732aad7232d6da4620fc.tar.bz2 |
predict.c (propagate_unlikely_bbs_forward): Break out from ...
* predict.c (propagate_unlikely_bbs_forward): Break out from ...
(determine_unlikely_bbs): ... here.
* predict.h (propagate_unlikely_bbs_forward): Declare.
* cfgexpand.c (pass_expand::execute): Use it.
* bb-reorder.c (sanitize_hot_paths): Do not consider known to be
unlikely edges.
(find_rarely_executed_basic_blocks_and_crossing_edges): Use
propagate_unlikely_bbs_forward.
From-SVN: r250360
Diffstat (limited to 'gcc/cfgexpand.c')
-rw-r--r-- | gcc/cfgexpand.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c index 3e1d24d..c9d8118 100644 --- a/gcc/cfgexpand.c +++ b/gcc/cfgexpand.c @@ -6480,6 +6480,11 @@ pass_expand::execute (function *fun) if (fun->eh->region_tree != NULL) finish_eh_generation (); + /* BB subdivision may have created basic blocks that are are only reachable + from unlikely bbs but not marked as such in the profile. */ + if (optimize) + propagate_unlikely_bbs_forward (); + /* Remove unreachable blocks, otherwise we cannot compute dominators which are needed for loop state verification. As a side-effect this also compacts blocks. |