[PATCH] D73943: [WebAssembly] Make stack pointer args inhibit tail calls

Derek Schuff via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Feb 4 17:17:42 PST 2020


dschuff added a comment.

The langref says (https://llvm.org/docs/LangRef.html#call-instruction) that the tail call marker implies that the callee does not access allocas from the caller. So it seems like it *should* mean that the backend can depend on this property (that you're checking for here).  It also means that the frontend should guarantee it as best it knows how, and optimizations should not introduce it (or remove the attribute if they do?). There are lots of ways to sneak pointers into places (aliasing, going through memory, etc etc) so I'd expect the check in this CL to be brittle.

But if other backends are checking for this kind of property anyway that would be fishy, so now I'm a bit confused. Are they just checking for particular target-specific (or calling-convention-specific) properties?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D73943





More information about the llvm-commits mailing list