[PATCH] D79822: [AArch64] Emit CFI instruction for updating x18 when using ShadowCallStack with exception unwinding

Roland McGrath via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue May 12 17:15:36 PDT 2020


mcgrathr added a comment.

This is a direct revert of https://reviews.llvm.org/D54988.  The rationale stated in that change was incorrect IMHO.  When CFI is enabled, correct CFI is required, period.  Making assumptions about how CFI will be used and thus when incomplete or incorrect CFI is adequate is a bad idea.  The only proper distinctions are between no CFI at all, correct CFI at call return sites (-funwind-tables), and correct CFI at every instruction (-fasynchronous-unwind-tables).  If generating CFI at all, then all CFI required to recover all caller registers not explicitly call-clobbered is required from at least every call return site in the function.  As SCS CFI is necessary after the first or second prologue instruction, there is effectively no situation in which CFI omitting the x18 register is valid.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D79822





More information about the llvm-commits mailing list