[PATCH] D72758: Add OffsetIsScalable to getMemOperandWithOffset

Sander de Smalen via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Feb 17 08:41:18 PST 2020


sdesmalen marked 2 inline comments as done.
sdesmalen added inline comments.


================
Comment at: llvm/include/llvm/CodeGen/TargetInstrInfo.h:1245
                                        int64_t &Offset,
+                                       bool &OffsetIsScalable,
                                        const TargetRegisterInfo *TRI) const {
----------------
efriedma wrote:
> sdesmalen wrote:
> > efriedma wrote:
> > > I'm not sure why this modification is necessary.  The offset doesn't actually scale, does it?  The width of memory operation does, but getMemOperandWithOffset doesn't return that anyway.
> > For e.g. `AArch64::LDR_ZXI` and `AArch64::STR_ZXI`, it is actually the offset that is scaled by VL elements (i.e. load/store at `ptr + (N * sizeof(vector)`).
> Oh, that makes sense.
> 
> I guess there are theoretically two separate dimensions: whether the width is scalable, and whether the offset is scalable.  For SVE, I guess those happen to be the same for all the defined instructions?
Yes, that's correct.


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

https://reviews.llvm.org/D72758





More information about the llvm-commits mailing list