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

Avinash Jayakar <avinashd at gcc dot gnu.org> changed:

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

--- Comment #2 from Avinash Jayakar <avinashd at gcc dot gnu.org> ---
before sched2 pass, below is the rtl:
   18: %3:DI=high(unspec[`*.LANCHOR0',%2:DI] 47)
   19: %3:DI=%3:DI+low(unspec[`*.LANCHOR0',%2:DI] 47)
   20: %9:DI=high(unspec[`*.LANCHOR0',%2:DI] 47+0x4)
   21: %9:DI=%9:DI+low(unspec[`*.LANCHOR0',%2:DI] 47+0x4)
      REG_DEAD %2:DI
      REG_EQUAL const(`*.LANCHOR0'+0x4)
   13: %3:DI=%3:DI+%9:DI

and this is after the scheduling runs post reg alloc (sched2):
   18: %3:DI=high(unspec[`*.LANCHOR0',%2:DI] 47)
   20: %9:DI=high(unspec[`*.LANCHOR0',%2:DI] 47+0x4)
   19: %3:DI=%3:DI+low(unspec[`*.LANCHOR0',%2:DI] 47)
   21: %9:DI=%9:DI+low(unspec[`*.LANCHOR0',%2:DI] 47+0x4)
      REG_DEAD %2:DI
      REG_EQUAL const(`*.LANCHOR0'+0x4)
   13: %3:DI=%3:DI+%9:DI
19 and 20 are reordered to favour dependency delays.

The scheduler only looks if target has implemented
TARGET_SCHED_MACRO_FUSION_PAIR_P, and does not reorder if it has for specific
sequence.
Just adding define_insn for the sequence actually did not help. Should we
implement TARGET_SCHED_MACRO_FUSION_PAIR_P for rs6000?

Reply via email to