[PATCH] D66167: MemTag: stack initializer merging.

Evgenii Stepanov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 15 16:54:58 PDT 2019


eugenis marked an inline comment as done.
eugenis added inline comments.


================
Comment at: llvm/lib/Target/AArch64/AArch64StackTagging.cpp:196
+      if (Offset > LastOffset)
+        emitZeroes(IRB, LastOffset, Offset - LastOffset);
+
----------------
pcc wrote:
> This could call `emitUndef`, right? Is there an advantage in using `STZG` instead of `STG` here, and if so, should we be doing the same thing on line 181?
No, because memset(0) does not update Out[] (see applyMemset), so we don't know if the tail is zero or undef. Line 181 is different - with Ranges.empty() we know that the entire allocation is undef.

If we wanted to change this, Out[] would need to remember which bytes have been written to in a separate mask.

I did not do this because STG and STGZ are expected to have approximately same overhead.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D66167





More information about the llvm-commits mailing list