https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125792
Bug ID: 125792
Summary: phiopt late in gimple should do some ifcvt
Product: gcc
Version: 16.0
Status: UNCONFIRMED
Keywords: missed-optimization
Severity: enhancement
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: pinskia at gcc dot gnu.org
Blocks: 67962, 80874, 122837, 125557
Target Milestone: ---
With some costing model, phiopt should do some ifcvt in the last phiopt.
First phase would be when the 1/2 middle bbs are empty (PR 67962, PR 122837,PR
80874). And then handle that.
Second phase (like what is needed for PR 125557) would be when the middle basic
blocks are not empty and that is more complex and the costing there is more
complex.
Referenced Bugs:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67962
[Bug 67962] Optimization opportunity with conditional swap to two MIN/MAX in
phiopt
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80874
[Bug 80874] gcc does not emit cmov for minmax
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122837
[Bug 122837] Suboptimal codegen for std::midpoint
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125557
[Bug 125557] Missed if-conversion of load addresses