This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug rtl-optimization/80197] pgo dramatically pessimizes scimark2 MonteCarlo benchmark


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.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]