This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/80197] pgo dramatically pessimizes scimark2 MonteCarlo benchmark
- From: "ubizjak at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Mon, 27 Mar 2017 14:32:30 +0000
- Subject: [Bug rtl-optimization/80197] pgo dramatically pessimizes scimark2 MonteCarlo benchmark
- Auto-submitted: auto-generated
- References: <bug-80197-4@http.gcc.gnu.org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80197
--- Comment #3 from Uroš Bizjak <ubizjak at gmail dot com> ---
(In reply to rguenther@suse.de from comment #2)
> I think that if FDO says either the true or false edge is very likely
> then not if-converting the loop is best? Or is a well-predicted
> conditional move as good as a well-predicted if? 10% missed branches
> would be more than
Please note that when if-conversion succeeded through noce_try_addcc, we don't
care about prediction anymore. The conversion converts:
ucomisd %xmm5, %xmm4
jb .L17
.L16:
addl $1, %ebp
.L17:
to:
ucomisd %xmm0, %xmm3 # 195 *cmpiudf/2 [length = 4]
sbbl $-1, %ebx # 196 subsi3_carry/1 [length = 3]
IMO, this conversion should always be performed, as it is always a win.