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

Reply via email to