<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, Apr 9, 2014 at 2:24 PM, Philip Reames <span dir="ltr"><<a href="mailto:listmail@philipreames.com" target="_blank">listmail@philipreames.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF" text="#000000">
    For the LangRef, I suggest we remove the text related to when a
    "tail" call is guaranteed.  With the addition of "musttail" these
    semantics are redundant.  Instead, "tail" should be advisory only. 
    This would involve breaking backwards compatibility.<br>
    <br>
    With the new option, should GauranteedTailCallOpt exist?  I suggest
    not.  <br></div></blockquote><div><br></div><div>I agree, this feature obsoletes GTCO.  I don't think it's exposed via the C API, so we can probably just get rid of it.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
    In code, it would be useful to refer to the old "tail" attribute as
    "may tail".  This clarifies the semantics in code even if we don't
    change the IR name.  In particular, I'm referring to
    CallSite/Instruction here.<br>
    <br>
    In the verifier you need to handle chains of bitcasts.  These will
    reduce to a single bitcast, but InstCombine may not have run yet. 
    We don't want each opto pass to need to do this simplification.<br></div></blockquote><div><br></div><div>I don't think this is worth supporting.  The frontend should be able to handle this by avoiding such chains.  They already have to be careful about the other rules for musttail, so this isn't much burden.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div bgcolor="#FFFFFF" text="#000000">
    Otherwise, LGTM and I support the addition.  <br></div></blockquote><div><br></div><div>Thanks for the feedback!</div></div></div></div>