Ping. https://gcc.gnu.org/ml/gcc-patches/2017-07/msg00779.html
On Thu, Jul 13, 2017 at 3:00 PM, Jim Wilson <jim.wil...@linaro.org> wrote: > The AArch64 port uses SCHED_GROUP to mark instructions that get fused > at issue time, to ensure that they will be issued together. However, > in the scheduler, use of a SCHED_GROUP forces all other instructions > to issue in the next cycle. This is wrong for AArch64 ports using > insn fusing which can issue multiple insns per cycle, as aarch64 > SCHED_GROUP insns can all issue in the same cycle, and other insns can > issue in the same cycle also. > > I put a testcase and some info in bug 81434. > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81434 > > The attached patch fixes the problem. The behavior in pass == 0 is > same as now. All non sched group insns are ignored, and all sched > group insns are checked to see if they need to be queued for a latter > cycle. The difference is in the second pass where non sched group > insns are queued for a latter cycle only if there is a sched group > insn that got queued. Since sched group insns always sort to the top > of the list of insns to schedule, all sched group insns still get > scheduled together as before. > > This has been tested with an Aarch64 bootstrap and make check. > > OK? > > Jim