erichkeane added a comment.

In D147714#4251208 <https://reviews.llvm.org/D147714#4251208>, @xbolva00 wrote:

>>> Could we instead encode the platform specific tail-call rules in Sema? We 
>>> definitely have attributes that differ in behavior between platforms, and 
>>> this seems like a perfect candidate.
>
> But then you break promise of musttail that code with musttail will work on 
> any target supported by LLVM.

I should have been clearer: I meant this with a new attribute.

> Plus, while we can relax frontend checks (based on target info), it is true 
> that current LLVM LangRef says that there must be a  match between prototypes.

Right, this would require its own llvm-level concept as well.

>>> Higher-level question: are we sure there's enough evidence this will be 
>>> used in practice to warrant adding it to Clang?
>
> Originally mentioned as request for CTRE project, I have use cases as well, 
> @jacobsa (Github issue) mentioned it:
>
>> Personally I would like the semantics "give me an error if this can't be a 
>> tail call on this target", not the semantics "give me an error if this can't 
>> be a tail call on all targets clang supports". I suspect most people would 
>> be looking for the former, since most people care about nearly none of the 
>> supported targets by volume.
>
> I agree with that.

I see value in that, absolutely, but this isn't the way about it. Said new 
attribute (whether it be `[[should_tail]]` for `[[nonportable_musttail]]`) 
shouldn't be diagnosing the code generator, it should be diagnosing in SEMA.  
This requires encoding the platform specific/LLVM-IR specific rules. If LLVM-IR 
docs require `musttail` rules (that this patch seems to be breaking!), we 
perhaps need an alternative at the IR level as well.


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