[PATCH] D36663: [X86][Haswell] Updating HSW instruction scheduling information

Craig Topper via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 21 00:44:09 PDT 2017


craig.topper added inline comments.


================
Comment at: lib/Target/X86/X86SchedHaswell.td:2722
+def HWWriteResGroup52 : SchedWriteRes<[HWPort1,HWPort23]> {
+  let Latency = 3;
+  let NumMicroOps = 2;
----------------
gadi.haber wrote:
> craig.topper wrote:
> > gadi.haber wrote:
> > > craig.topper wrote:
> > > > Should this account for load latency?
> > > yes, according to the SNB architects.
> > If it shoudl include load latency shouldn't it have a latency of more than 3? ADDPDrr is in a group with latency 3. So shoudln't ADDPrm be more than 3?
> The scheduling model is based on the fact that there are no memory latencies effects, i.e., no cache misses and everything is in the 1st level cache.
> This is the model successfully used and constantly verified by the architects.
> The performance measurements we ran support this model.
> 
I understand assuming everyting is in L1.

But in the SandyBridge model you have ADDPDrr as 3 cycles and ADDPDrm as 9 cycles. So it seems you're accounting for the load as being 6 cycles. But in Haswell you have both as 3 cycles. So loads from the L1 are free on Haswell?



Repository:
  rL LLVM

https://reviews.llvm.org/D36663





More information about the llvm-commits mailing list