https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63986

Eric Botcazou <ebotcazou at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ebotcazou at gcc dot gnu.org

--- Comment #4 from Eric Botcazou <ebotcazou at gcc dot gnu.org> ---
> I suppose RTL CSE cannot CSE flag register sets...?

Yes, it can, if you define

 -- Target Hook: bool TARGET_FIXED_CONDITION_CODE_REGS (unsigned int
          *P1, unsigned int *P2)
     On targets which do not use `(cc0)', and which use a hard register
     rather than a pseudo-register to hold condition codes, the regular
     CSE passes are often not able to identify cases in which the hard
     register is set to a common value.  Use this hook to enable a
     small pass which optimizes such cases.  This hook should return
     true to enable this pass, and it should set the integers to which
     its arguments point to the hard register numbers used for
     condition codes.  When there is only one such register, as is true
     on most systems, the integer pointed to by P2 should be set to
     `INVALID_REGNUM'.

Reply via email to