Displaying 4 results from an estimated 4 matches for "getmicroopfactor".
2019 Sep 10
2
MachineScheduler not scheduling for latency
...a/lib/CodeGen/MachineScheduler.cpp
+++ b/lib/CodeGen/MachineScheduler.cpp
@@ -2062,10 +2062,13 @@ getOtherResourceCount(unsigned &OtherCritIdx) {
if (!SchedModel->hasInstrSchedModel())
return 0;
- unsigned OtherCritCount = Rem->RemIssueCount
- + (RetiredMOps * SchedModel->getMicroOpFactor());
- LLVM_DEBUG(dbgs() << " " << Available.getName() << " + Remain MOps: "
- << OtherCritCount /
SchedModel->getMicroOpFactor() << '\n');
+ unsigned OtherCritCount = 0;
+ if (some condition) {
+ OtherCritCount =...
2019 Sep 09
2
Fwd: MachineScheduler not scheduling for latency
Hi,
I'm trying to understand why MachineScheduler does a poor job in
straight line code in cases like the one in the attached debug dump.
This is on AMDGPU, an in-order target, and the problem is that the
IMAGE_SAMPLE instructions have very high (80 cycle) latency, but in
the resulting schedule they are often placed right next to their uses
like this:
1784B %140:vgpr_32 =
2013 Jul 23
0
[LLVMdev] Questions about MachineScheduler
...t;;
}
Now since you’ll want to plugin your own scheduling strategy, how you interpret the machine model is mostly up to you. What the TargetSchedModel interface does for you is normalize the resources to processor cycles. This is exposed with scaling factors (to avoid division): getResourceFactor, getMicroOpFactor, getLatencyFactor.
So if you have
def HW1 : ProcResource<15>;
def HW2 : ProcResource<3>;
LatencyFactor=15
ResourceFactor(HW1)=1
ResourceFactor(HW2)=5
> 2. Southern Islands has 256 registers, but there is a significant
> performance penalty if you use more than a certain amou...
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 : ProcResource<1>;
}
2. Southern Islands has