Taking the same issue slot is not enough for x86. The compare and branch need to be consecutive in binary to be macro-fused on x86.
Thanks, Wei Mi. On Wed, Sep 11, 2013 at 10:45 AM, Andrew Pinski <pins...@gmail.com> wrote: > On Wed, Sep 4, 2013 at 12:33 PM, Alexander Monakov <amona...@ispras.ru> wrote: >> On Wed, Sep 4, 2013 at 9:53 PM, Steven Bosscher <stevenb....@gmail.com> >> wrote: >>> >>> On Wed, Sep 4, 2013 at 10:58 AM, Alexander Monakov wrote: >>> > Hello, >>> > >>> > Could you use the existing facilities instead, such as adjust_priority >>> > hook, >>> > or making the compare-branch insn sequence a SCHED_GROUP? >>> >>> >>> Or a define_bypass? >> >> Hm, I don't think define_bypass would work: it still leaves the >> scheduler freedom to move the compare up. > > Even though it allows the scheduler freedom to move the compare up, > the schedule does due to the schedule model not being correct for the > processor. I have done the same for Octeon2 where it is able to > combine the compare and the branch and found the resulting schedule is > much better than even what this hack could do due to the instructions > still take a issue slot. Is it true that for these two processors it > takes an issue slot or is it being done before issue? > > Thanks, > Andrew Pinski > >> >> IMO adjust_priority would be preferable if it allows to achieve the goal. >> >> Alexander