[PATCH] D28152: Cortex-A57 scheduling model for ARM backend (AArch32)
Andrew Zhogin via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed May 17 09:43:52 PDT 2017
andrew.zhogin marked 3 inline comments as done.
andrew.zhogin added inline comments.
================
Comment at: lib/Target/ARM/ARMScheduleA57.td:263
+// latency from documentration: 4 ‐ 20, maximum taken
+def : InstRW<[A57Write_20cyc_1M], (instregex "(t2)?SDIV", "(t2)?UDIV")>;
+
----------------
javed.absar wrote:
> andrew.zhogin wrote:
> > javed.absar wrote:
> > > Would it be possible to Alias some of these to Sched classes that are pre-defined in ARMSchedule.td e.g. SchedAlias A57Write_20cyc_1M to WriteMUL/WriteDIV. That way the model could be more compact.
> > I don't think it is a good idea. For example, SDIV/UDIV instructions are not binded to WriteDIV SchedWrite. They are binded to IIC_iDIV InstrItinClass (as I see in ARMInstrInfo.td).
> > That's why I prefer to have full target-specific model binded only to instruction names.
> > Am I missing something?
> They are bound to both IIC_iDIV and " Sched<[WriteDIV]>;" Please see last item in the list:
>
> def SDIV : ADivA1I<0b001, (outs GPR:$Rd), (ins GPR:$Rn, GPR:$Rm), IIC_iDIV,
> "sdiv", "\t$Rd, $Rn, $Rm",
> [(set GPR:$Rd, (sdiv GPR:$Rn, GPR:$Rm))]>,
> Requires<[IsARM, HasDivideInARM]>,
> Sched<[WriteDIV]>;
Yes, I have updated code to the current repository state and implemented aliases.
Do you think this patch is ok now?
https://reviews.llvm.org/D28152
More information about the llvm-commits
mailing list