ping^2

On Fri, Jul 21, 2017 at 3:09 PM, Jim Wilson <jim.wil...@linaro.org> wrote:
> 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