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

Reply via email to