haberman added a comment. `[[nonportable_musttail]]` makes sense to me as a semantic. It indicates that the algorithm requires tail calls, but the author is willing to accept that the algorithm may be non-portable.
"Non-portable" here can mean architecture-specific, but it can also mean "sensitive to compiler flags." For example, I think there are architectures where tail calls can be optimized for statically-linked code but not across a shared library boundary. Since the circumstances for when tail calls are supported can be complicated and subtle, architecture-specific attributes don't make as much sense to me. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D147714/new/ https://reviews.llvm.org/D147714 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits