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

Reply via email to