On 9/11/18 9:00 AM, Kyrill Tkachov wrote:
> Hi Ramana,
> 
> On 11/09/18 15:55, Ramana Radhakrishnan wrote:
>> On Tue, 11 Sep 2018, 14:38 Vlad Lazar, <vlad.la...@arm.com> wrote:
>>
>> > Hi.
>> >
>> > This patch makes the scheduler prefer instructions with higher cost
>> if two
>> > given instructions are equally good.
>> > Issuing more restricted instructions first is particularly useful on
>> > in-order cores because it increases the
>> > number of dual issue opportunities.
>> >
>> > For example, on AArch64, instead of:
>> >
>> >    add     x11, x2, 96
>> >    mov     x4, x2
>> >    mov     w10, 1
>> >    ldrh    w5, [x0]
>> >    ldrh    w13, [x0, 2]
>> >    ldrh    w9, [x0, 4]
>> >    ldrh    w12, [x0, 6]
>> >    b       .L759
>> >
>> > Generate:
>> >
>> >    ldrh    w5, [x0]
>> >    add     x11, x2, 96
>> >    ldrh    w13, [x0, 2]
>> >    mov     x4, x2
>> >    ldrh    w9, [x0, 4]
>> >    mov     w10, 1
>> >    ldrh    w12, [x0, 6]
>> >    b       .L759
>> >
>> > Bootstrapped and regtested on aarch64-none-linux-gnu and there are no
>> > regressions.
>> > Ok for trunk?
>> >
>>
>> This to me feels like the wrong approach as it feels like you are
>> assuming
>> INSN_COST is latency in some way ? Surely, we shouldn't be introducing
>> INSN_COST based stuff into the scheduler.
>>
>> Have you investigated  using TARGET_SCHED_ADJUST_COST (IIRC, look for the
>> right name in the internals documents) and such hooks that come from the
>> scheduler rather than trying to massage INSN_COST into the target
>> independent parts of the scheduler ?
>>
> 
> In the context of haifa-sched.c, INSN_COST is the latency cost.
> It is not the rtx_cost of the insn, as used by combine and others.
> So this approach looks reasonable to me (though I haven't done a deep
> review).
It looks reasonable to me as well.  Essentially it's a new tie-breaker
if everything else is equal.

jeff

Reply via email to