foad added a comment.

> markTails function set IsTailcall bit for functions which are not
>  last calls:

It's OK to set "tail" on any call that satisfies these requirements (from 
https://llvm.org/docs/LangRef.html#call-instruction): "Both markers [tail and 
musttail] imply that the callee does not access allocas from the caller. The 
tail marker additionally implies that the callee does not access varargs from 
the caller."

"tail" does not mean that the call *must* be generated as a tail call. It just 
means that it's safe to generate it as a tail call if it turns out to be 
possible (e.g. if the compiler can prove that @noarg doesn't return, or if it 
can prove that all the code after the call to @noarg has no effect, or so on).

So I don't think there is a bug here that needs to be fixed.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D82085



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to