Commit 9c7a7155 by Jan Hubicka Committed by Jan Hubicka

tree-ssa-ifcombine.c (update_profile_after_ifcombine): Handle profile_probability::always better.


	* tree-ssa-ifcombine.c (update_profile_after_ifcombine): Handle
	profile_probability::always better.

From-SVN: r266585
parent f0dbeec7
2018-11-28 Jan Hubicka <jh@suse.cz> 2018-11-28 Jan Hubicka <jh@suse.cz>
* tree-ssa-ifcombine.c (update_profile_after_ifcombine): Handle
profile_probability::always better.
2018-11-28 Jan Hubicka <jh@suse.cz>
* profile-count.h (profile_count::split): Give better result when * profile-count.h (profile_count::split): Give better result when
splitting profile_probability::always. splitting profile_probability::always.
...@@ -360,8 +360,15 @@ update_profile_after_ifcombine (basic_block inner_cond_bb, ...@@ -360,8 +360,15 @@ update_profile_after_ifcombine (basic_block inner_cond_bb,
inner_cond_bb->count = outer_cond_bb->count; inner_cond_bb->count = outer_cond_bb->count;
inner_taken->probability = outer2->probability + outer_to_inner->probability /* Handle special case where inner_taken probability is always. In this case
* inner_taken->probability; we know that the overall outcome will be always as well, but combining
probabilities will be conservative because it does not know that
outer2->probability is inverse of outer_to_inner->probability. */
if (inner_taken->probability == profile_probability::always ())
;
else
inner_taken->probability = outer2->probability + outer_to_inner->probability
* inner_taken->probability;
inner_not_taken->probability = profile_probability::always () inner_not_taken->probability = profile_probability::always ()
- inner_taken->probability; - inner_taken->probability;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment