search for: completemodel

Displaying 11 results from an estimated 11 matches for "completemodel".

2016 Mar 08
2
Head at revision #262824 - breaks Movidius Out-of-Tree target
...to all the Pseudos, but while most of the errors have gone, I still get the diagnostic for 'COPY' thus: error : No schedule information for instruction 'COPY' but I don't have an instruction called COPY (this is a target-independent default). I also tried adding: let CompleteModel = 0; to my base instruction type, but it is unrecognised. Thanks, MartinO -----Original Message----- From: Martin J. O'Riordan [mailto:martin.oriordan at movidius.com] Sent: 08 March 2016 15:51 To: 'Tim Northover' <t.p.northover at gmail.com> Cc: 'LLVM Developers'...
2016 Apr 26
3
How to get started with instruction scheduling? Advice needed.
...he mi-scheduler next to the SchedMachineModel to detect hazards. I think that is the only place where the mi-scheduler uses itineraries. There are some magic numbers you need for in-order operation. Most notably MicroOpBufferSize should be set to 0 for full in-order behaviour. You also want to set CompleteModel to 0 as that prevents asserts due to instructions without scheduling information. There is a script that might help you to visualise if you have provided scheduling information in the SchedMachineModel for all instructions (utils/schedcover.py). It is very simplistic and takes as input the debug ou...
2017 Apr 03
2
Scheduler: modelling long register reservations?
...ing the scheduling constraints incorrectly? Can llvm support this kind of constraint? Thank you, Nick Johnson D. E. Shaw Research // Excerpted from lib/Target/MyTarget/MyTargetSchedule.td: // def DesGCv3GenericModel : SchedMachineModel { let IssueWidth = 1; let MicroOpBufferSize = 0; let CompleteModel = 1; } // ... def FlexU : ProcResource<64> { let BufferSize = 1; } def : WriteRes<IIFlexRead, [FlexU]> { let Latency = 25; let ResourceCycles = [25]; } class SchedFlexRead : Sched< [IIFlexRead] >; // I apply this to the definition of FXLV instruction // ...
2016 Dec 16
1
help/hints/suggestions/tips please: how to give _generic_ compilation for a particular ISA a non-zero LoopMicroOpBufferSize?
...oopMicroOpBufferSize, default or otherwise. Furthermore, "NoSchedModel" seems to be a cross-ISA entity that is defined by code generated from this snippet of "llvm/include/llvm/Target/TargetSchedule.td": def NoSchedModel : SchedMachineModel { let NoModel = 1; let CompleteModel = 0; } ... which is made the default model in code generated from this snippet of "llvm/include/llvm/Target/Target.td": class Processor<string n, ProcessorItineraries pi, list<SubtargetFeature> f> { [...] SchedMachineModel SchedModel = NoSchedModel; So,...
2016 Apr 20
2
How to get started with instruction scheduling? Advice needed.
So if I use the SchedMachineModel method, can I just skip itineraries? Phil On Wed, Apr 20, 2016 at 12:29 PM, Sergei Larin <slarin at codeaurora.org> wrote: > Target does make a difference. VLIW needs more hand-holding. For what you > are describing it should be fairly simple. > > > > Best strategy – see what other targets do. ARM might be a good start for > generic
2016 Mar 08
2
Head revision #262824 - breaks Movidius Out-of-Tree target
Hi LLVM-Dev, I have just integrated the changes from top-of-tree at SVN #262824 (yesterday) having been previously at #262217 (a week ago). I am getting the following error for every instruction: CUSTOMBUILD : error : No schedule information for instruction 'FOOBAR' What has changed that would cause this and how can I fix it in my target? Thanks, MartinO
2017 Sep 30
1
SchedClasses
On Fri, Sep 29, 2017 at 7:51 PM, Andrew Trick via llvm-dev < llvm-dev at lists.llvm.org> wrote: > > > > On Sep 22, 2017, at 10:34 AM, Thorsten Schütt via llvm-dev < > llvm-dev at lists.llvm.org> wrote: > > > > > > > #define GET_REGINFO_ENUM > > #include "AArch64GenRegisterInfo.inc" > > > > #define GET_INSTRINFO_ENUM >
2015 Oct 15
3
what can cause a "CPU table is not sorted" assertion
...an initial MyTargetSchedule.td def MyTargetModel : SchedMachineModel { // HW can decode 2 instructions per cycle. let IssueWidth = 2; let LoadLatency = 4; let MispredictPenalty = 16; // This flag is set to allow the scheduler to assign a default model to // unrecognized opcodes. let CompleteModel = 0; } def WriteALU : SchedWrite; def WriteBranch : SchedWrite; let SchedModel = MyTargetModel in { // SLOT0 can handles everything def Slot0 : ProcResource<1>; // SLOT1 can't handles branches def Slot1 : ProcResource<1>; // Many micro-ops are capable of issuing on multiple ports...
2017 Sep 29
0
SchedClasses
> On Sep 22, 2017, at 10:34 AM, Thorsten Schütt via llvm-dev <llvm-dev at lists.llvm.org> wrote: > > Hi all, > > I am looking at the scheduling model of the ThunderX2. I am trying to figure out the cost of the LDADDALX instruction. The following program’s output is: > name LDADDALX; class 872 > microops 65535 > I would have assumed that the microops are less than
2014 Jan 24
2
[LLVMdev] New machine model questions
Hi Andrew, I seem to be making good progress on the P5600 scheduler using the new machine model but I've got a few questions about it. How would you represent an instruction that splits into two micro-ops and is dispatched to two different reservation stations? For example, I have two reservation stations (AGQ and FPQ). An FPU load instruction is split into a load micro-op which is
2014 Jan 28
3
[LLVMdev] New machine model questions
...rget -gen-subtarget -o ARMGenSubtargetInfo.inc /s/fix/lib/Target/ARM/ARM.td -debug-only=subtarget-emitter It will list all instructions and print "No machine model for <subtarget>" You will also get an assert in the scheduler, unless you add the following flag to your mode: let CompleteModel = 0; That's perfect, thanks. Thanks Daniel Sanders Leading Software Design Engineer, MIPS Processor IP Imagination Technologies Limited www.imgtec.com<http://www.imgtec.com/> [1] I added support for the itineraries into the new MI scheduler because I realized that some out-of-tree ba...