[PATCH] D126700: [MachineScheduler] Order more stores by ascending address

Dave Green via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jun 13 02:15:37 PDT 2022


dmgreen accepted this revision.
dmgreen added a comment.
This revision is now accepted and ready to land.

Thanks. LGTM



================
Comment at: llvm/lib/Target/AArch64/AArch64.td:219
+def FeatureAscendStoreAddress : SubtargetFeature<"ascend-store-address",
+    "IsStoreAddressAscend", "false", "schedule to ascend the address of stores">;
+
----------------
Allen wrote:
> dmgreen wrote:
> > Capitalize Schedule. Maybe reword as "Schedule vector stores by ascending address".
> Thanks, apply your comment.
A q store is a store of a vector. This subtarget feature doesn't alter the scalar scores like x/w/s.


================
Comment at: llvm/lib/Target/AArch64/AArch64MachineScheduler.cpp:29
+  case AArch64::STPQi:
+    return getLdStOffsetOp(*MI).getType() == MachineOperand::MO_Immediate;
+  }
----------------
Allen wrote:
> dmgreen wrote:
> > Allen wrote:
> > > dmgreen wrote:
> > > > Why do we need to check it is an immediate?
> > > this is because some IR used to match the **str	q0, [x8, :lo12:seed_lo] ** for example, and we can't get its offset
> > > 
> > > 
> > > 
> > Why is this needed?
> if we don't check this, it will crash to use  **getImm()** get the  immediate with the above **str q0, [x8, :lo12:seed_lo] ** 
OK I see, it is a TargetFlags. That makes sense. It doesn't look like we ever generate them for STQP.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D126700/new/

https://reviews.llvm.org/D126700



More information about the llvm-commits mailing list