[PATCH] D149563: [TRE] Mark alloca's as escaped if their call does not write memory

Eli Friedman via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon May 1 13:02:28 PDT 2023


efriedma added a comment.

There are basically two ways a pointer can be "captured": it can be written to memory, or it can be returned.

The code here is trying to reason more deeply about `memory(none)` functions: the `memory(none)` implies no writes to memory, so the only way a pointer can be captured is by returning it. The code follows the return value to figure out if it's actually used.  So the tail markings in test17 and test18 should be fine, I think.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D149563



More information about the llvm-commits mailing list