[PATCH] D66457: MemTag: unchecked load/store optimization.

Vitaly Buka via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 19 18:47:24 PDT 2019


vitalybuka added a comment.

LGTM



================
Comment at: llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp:491
+        MFI.getObjectOffset(FrameIndex) + (int64_t)MFI.getStackSize(), MVT::i8};
+    if (!MFI.hasVarSizedObjects() &&
+        isAArch64FrameOffsetLegal(MI, SPOffset, nullptr, nullptr, nullptr) ==
----------------
```
    if (MFI.hasVarSizedObjects() ||
        isAArch64FrameOffsetLegal(MI, SPOffset, nullptr, nullptr, nullptr) !=
            (AArch64FrameOffsetCanUpdate | AArch64FrameOffsetIsLegal)) {
      // Can't update to SP + offset in place. Precalculate the tagged pointer
      // in a scratch register.
      Offset = TFI->resolveFrameIndexReference(
          MF, FrameIndex, FrameReg, /*PreferFP=*/false, /*ForSimm=*/true);
     ...
      return;
    }
    FrameReg = AArch64::SP;
    Offset = {MFI.getObjectOffset(FrameIndex) + (int64_t)MFI.getStackSize(),
                MVT::i8};

```


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D66457





More information about the llvm-commits mailing list