search for: schedmachinemodel

Displaying 20 results from an estimated 33 matches for "schedmachinemodel".

2015 Nov 09
2
Is there a way to convert between SchedMachineModel and Itineraries?
----- Original Message ----- > From: "Rail Shafigulin via llvm-dev" <llvm-dev at lists.llvm.org> > To: "llvm-dev" <llvm-dev at lists.llvm.org> > Sent: Monday, November 9, 2015 10:09:07 AM > Subject: Re: [llvm-dev] Is there a way to convert between SchedMachineModel and Itineraries? > > > Anybody? Does anyone at all know how to do it? There is no direct conversion. Although they are similar models, they are different. The strength of Itineraries lies in modeling pipelines with complex hazards (especially those that are not fully pipelined, or have...
2015 Nov 07
2
Is there a way to convert between SchedMachineModel and Itineraries?
Is there a way to convert between SchedMachineModel and Itineraries? I was trying to write a very simple VLIW packetizer (Hexagon was my starting point). It turns out that current DFAPacketizer is using itineraries, but my schedule is based on SchedMachineModel (I was recommended to use it since the itineraries are being phased out). I was wonderin...
2015 Nov 09
4
Is there a way to convert between SchedMachineModel and Itineraries?
...ev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> > > To: "llvm-dev" <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> > > Sent: Monday, November 9, 2015 10:09:07 AM > > Subject: Re: [llvm-dev] Is there a way to convert between SchedMachineModel and Itineraries? > > > > > > Anybody? Does anyone at all know how to do it? > > There is no direct conversion. Although they are similar models, they are different. The strength of Itineraries lies in modeling pipelines with complex hazards (especially those that are not...
2016 Apr 26
3
How to get started with instruction scheduling? Advice needed.
Hi Phil. You more or less answered your own question, but let me give you some more info. Maybe it is of use. >From what I understand the SchedMachineModel is the future, although it is not as powerful as itineraries at present. The mi-scheduler is mostly developed around out-of-orders cores, I believe (I love to hear arguments on the contrary). Some of the constraints that can be found in in-order micro architectures cannot be expressed in the per-o...
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...
2013 Nov 13
2
[LLVMdev] SchedMachineModel clarifications
Dear Andrew and the Group, I’m trying come up with a SchedMachineModel for the AMD bulldozer http://en.wikipedia.org/wiki/Bulldozer_(microarchitecture). The model is not exist for the same .Please correct me if am i wrong here. I was going through your reference @ https://llvm.org/svn/llvm-project/llvm/trunk/include/llvm/Target/TargetSchedule.td . But I coul...
2013 Nov 21
0
[LLVMdev] SchedMachineModel clarifications
...valuables features implemented. Request to the group or someone from AMD for the comments on the implementation. Thanks ~umesh On Wed, Nov 13, 2013 at 8:14 PM, Umesh Kalappa <umesh.kalappa0 at gmail.com>wrote: > Dear Andrew and the Group, > > > > I’m trying come up with a SchedMachineModel for the AMD bulldozer http://en.wikipedia.org/wiki/Bulldozer_(microarchitecture). > > > > The model is not exist for the same .Please correct me if am i wrong here. > > > > I was going through your reference @ > https://llvm.org/svn/llvm-project/llvm/trunk/include/llvm/T...
2013 Nov 22
0
[LLVMdev] [PATCH] Bulldozer SchedMachineModel
...t; > > Thanks > > ~umesh > > > > > > On Wed, Nov 13, 2013 at 8:14 PM, Umesh Kalappa <umesh.kalappa0 at gmail.com > >wrote: > > > > > Dear Andrew and the Group, > > > > > > > > > > > > I?m trying come up with a SchedMachineModel for the AMD bulldozer > http://en.wikipedia.org/wiki/Bulldozer_(microarchitecture). > > > > > > > > > > > > The model is not exist for the same .Please correct me if am i wrong > here. > > > > > > > > > > > > I was going...
2013 Nov 22
1
[LLVMdev] SchedMachineModel clarifications
I made a quick cross check with information in the SWOG (Software Optimization Guide). The port assignments look consistent. A few of the latency values are slightly different from the SWOG, e.g. WriteFRcp --> 6, WriteFSqrt --> 29 and WriteCvt* --> 4 seem to be suggested instead. Others are in better position to describe how to use llvm performance framework. --mev, Mike Vermeulen
2013 Nov 22
0
[LLVMdev] SchedMachineModel clarifications
Hi Mike, Thank you for the link and my bad last mail has the old patch file. Please have look at the attached patch file herewith,which has the latest changes. i'm new to llvm testing framework and cross compilation as such ,Please can you through some lights like references etc ,Which states that how can i cross compile the llvm for Bulldozer and run the performance test against my
2013 Nov 22
2
[LLVMdev] SchedMachineModel clarifications
If you haven't found it yet, the last public AMD Software Optimization Guide for Family 15h is here: http://developer.amd.com/wordpress/media/2012/03/47414_15h_sw_opt_guide.pdf This one describes both Bulldozer and Piledriver processors. Chapter 2 will given an overview of the Microarchitecture and Appendix B gives some additional details on which pipes are used for where. I haven't yet
2013 Apr 30
1
[LLVMdev] Instruction Scheduling - migration from v3.1 to v3.2
...-opcode tables In this case, only one helper is used: unsigned TargetInstrInfo::defaultDefLatency(const MCSchedModel *SchedModel, const MachineInstr *DefMI) const; This is currently non-virtual because it is designed to directly query the fields in the SchedMachineModel tablegen class using another hook to select high latency ops: virtual bool isHighLatencyDef(int opc) const; Instructions that are not high latency default to one cycle. Example: def GenericModel : SchedMachineModel { let LoadLatency = 4; let HighLatency = 10; } If it really helps, you coul...
2016 Dec 16
1
help/hints/suggestions/tips please: how to give _generic_ compilation for a particular ISA a non-zero LoopMicroOpBufferSize?
...of features, but I have no idea how to change the LoopMicroOpBufferSize, 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> { [...] Sched...
2018 May 09
2
[MachineScheduler] Question about IssueWidth / NumMicroOps
...rmally NumMicroOps // is sufficient to limit dispatch/issue groups. However, some // processors can form groups of with only certain combinitions of // instruction types. e.g. POWER7. This seems to say that in MachineScheduler, (1) is in effect, right? Furthermore, I see def SkylakeServerModel : SchedMachineModel { // All x86 instructions are modeled as a single micro-op, and SKylake can // decode 6 instructions per cycle.    let IssueWidth = 6; def BroadwellModel : SchedMachineModel { // All x86 instructions are modeled as a single micro-op, and HW can decode 4 // instructions per cycle.    let IssueWi...
2016 Mar 08
2
Head at revision #262824 - breaks Movidius Out-of-Tree target
[I tweaked the subject, #262824 did not introduce the problem, it is just the version I am first seeing this problem] A quick update - I have added 'Sched<[]>' as a base class for all instructions, and also: let hasNoSchedulingInfo = 1; to all the Pseudos, but while most of the errors have gone, I still get the diagnostic for 'COPY' thus: error : No schedule
2016 Mar 05
2
Enable / Disable a processor feature
..."Enable add with carry instruction">; //===----------------------------------------------------------------------===// // Esencia processors supported. //===----------------------------------------------------------------------===// class Proc<string Name, SchedMachineModel Model, list<SubtargetFeature> Features> : ProcessorModel<Name, Model, Features>; def : Proc<"esencia", EsenciaModel, [FeatureMul, FeatureDiv, FeatureCmov,...
2017 Nov 09
2
Get basic-block cycle cost from LLVM
...fo class. If i sum the latencies of the instructions in a basic block i suppose i will get the total cycle cost for the cortex-m0. >From what i understand is that there are multiple ways of doing scheduling in LLVM. I have read about one way which is using Itenaries and another which is using SchedMachineModel. Will the above function always give me the latencies, independent on the scheduling method used ? Sorry if this is a stupid question, i'm a beginner to LLVM. Best regards, Rick Veens -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/p...
2017 Apr 03
2
Scheduler: modelling long register reservations?
...instructions which overwrite only one lane of the vector result. Am I specifying 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< [IIFlexR...
2013 Jul 22
2
[LLVMdev] Questions about MachineScheduler
Hi, I'm working on defining a SchedMachineModel for the Southern Islands family of GPUs, and I have two questions related to the MachineScheduler. 1. I have a resource that can process 15 instructions at the same time. In the TableGen definitions, should I do: def HWVMEM : ProcResource<15>; or let BufferSize = 15 in { def HWVMEM : Pr...
2016 Jan 17
2
Need help with changes to 'ScheduleDAGInstrs' on the v3.8 branch
I am stuck trying to adapt my out-of-target implementation to build on SVN head (actually the v3.8 branch, rev #257626). This is currently working on the v3.7.1 sources, but the changes to 'llvm::ScheduleDAGInstrs' have me stumped as to how to revise my implementation to track the changes to this class. Our 'SHAVEAsmScheduler' derives from 'ScheduleDAGInstrs' and uses