rs6000.c (output_cbranch): Don't statically predict branches if using guessed profile.
* config/rs6000/rs6000.c (output_cbranch): Don't statically predict branches if using guessed profile. From-SVN: r232945
This commit is contained in:
parent
2036f41326
commit
d7e2ecf330
@ -1,3 +1,8 @@
|
||||
2016-01-28 Pat Haugen <pthaugen@us.ibm.com>
|
||||
|
||||
* config/rs6000/rs6000.c (output_cbranch): Don't statically predict
|
||||
branches if using guessed profile.
|
||||
|
||||
2016-01-28 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* graphite-optimize-isl.c (optimize_isl): Fix dump.
|
||||
|
@ -21432,14 +21432,15 @@ output_cbranch (rtx op, const char *label, int reversed, rtx_insn *insn)
|
||||
/* PROB is the difference from 50%. */
|
||||
int prob = XINT (note, 0) - REG_BR_PROB_BASE / 2;
|
||||
|
||||
/* Only hint for highly probable/improbable branches on newer
|
||||
cpus as static prediction overrides processor dynamic
|
||||
prediction. For older cpus we may as well always hint, but
|
||||
/* Only hint for highly probable/improbable branches on newer cpus when
|
||||
we have real profile data, as static prediction overrides processor
|
||||
dynamic prediction. For older cpus we may as well always hint, but
|
||||
assume not taken for branches that are very close to 50% as a
|
||||
mispredicted taken branch is more expensive than a
|
||||
mispredicted not-taken branch. */
|
||||
if (rs6000_always_hint
|
||||
|| (abs (prob) > REG_BR_PROB_BASE / 100 * 48
|
||||
&& (profile_status_for_fn (cfun) != PROFILE_GUESSED)
|
||||
&& br_prob_note_reliable_p (note)))
|
||||
{
|
||||
if (abs (prob) > REG_BR_PROB_BASE / 20
|
||||
|
Loading…
Reference in New Issue
Block a user