https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125929
Bug ID: 125929
Summary: phiopt's hoist loads is not needed after commonization
of loads on non plain MEM_REFs
Product: gcc
Version: 17.0
Status: UNCONFIRMED
Keywords: compile-time-hog, internal-improvement
Severity: enhancement
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: pinskia at gcc dot gnu.org
Depends on: 125896
Target Milestone: ---
So hoist loads in phiopt was added to workaround not having factoring of loads.
It is very limited on what it could do. And it might even cause some issues
with the vectorizer in some cases.
Oh and it limits itself to not dealing with floating point compares:
!FLOAT_TYPE_P (TREE_TYPE (gimple_cond_lhs (cond_stmt)))
Which is only a limitation to rs6000's isel. Both x86 and aarch64's cmov/csel
supports floating point compares.
Note hoist loads still does something right now due to factoring of loads does
not support non-plain MEM_REFs.
Referenced Bugs:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125896
[Bug 125896] load common does not support non-only MEM_REF-refences