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...