[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