<div dir="ltr">Richard, this is still optional, right? (the AST matchers need to control visitation)</div><br><div class="gmail_quote"><div dir="ltr">On Tue, Nov 17, 2015 at 2:26 AM Argyrios Kyrtzidis via cfe-commits <<a href="mailto:cfe-commits@lists.llvm.org">cfe-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div>W00t! That’s awesome Richard!</div><br><div><blockquote type="cite"></blockquote></div></div><div style="word-wrap:break-word"><div><blockquote type="cite"><div>On Nov 16, 2015, at 5:10 PM, Richard Smith <<a href="mailto:richard@metafoo.co.uk" target="_blank">richard@metafoo.co.uk</a>> wrote:</div><br></blockquote></div></div><div style="word-wrap:break-word"><div><blockquote type="cite"><div><div dir="ltr">Attached patch makes RAV fully data-recursive when visiting statements, except in cases where the derived class could tell the difference (when it falls back to a normal recursive walk). The queue representation is slightly less compact than before: instead of storing a child iterator, we now store a list of all children. This allows us to handle any Stmt subclass that we can traverse, not just those ones that finish by traversing all their children in the usual order.<div><br></div><div>Thoughts?</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Nov 16, 2015 at 2:28 PM, Craig, Ben via cfe-commits <span dir="ltr"><<a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</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">
    I'm fine with this approach.  How about I leave the file in place,
    but replace the contents with a "using DataRecursiveASTVisitor =
    RecursiveASTVisitor;" and see what breaks?  That way I won't need to
    go through a large retrofit.<div><div><br>
    <br>
    <div>On 11/16/2015 3:28 PM, Richard Smith
      wrote:<br>
    </div>
    <blockquote type="cite">
      <div dir="ltr">Rather than trying to maintain the horrible
        duplication between DataRecursiveASTVisitor and
        RecursiveASTVisitor, can we just delete DataRecursiveASTVisitor?
        RecursiveASTVisitor is data-recursive too these days (and has a
        smarter implementation than DataRecursiveASTVisitor's from what
        I can see), but doesn't yet apply data recursion in so many
        cases.<br>
      </div>
      <div class="gmail_extra"><br>
        <div class="gmail_quote">On Mon, Nov 16, 2015 at 1:07 PM,
          Argyrios Kyrtzidis <span dir="ltr"><<a href="mailto:akyrtzi@gmail.com" target="_blank"></a><a href="mailto:akyrtzi@gmail.com" target="_blank">akyrtzi@gmail.com</a>></span> wrote:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">LGTM.<br>
            <div>
              <div><br>
                > On Nov 16, 2015, at 12:32 PM, Ben Craig <<a href="mailto:ben.craig@codeaurora.org" target="_blank"></a><a href="mailto:ben.craig@codeaurora.org" target="_blank">ben.craig@codeaurora.org</a>>
                wrote:<br>
                ><br>
                > bcraig added a comment.<br>
                ><br>
                > Ping.  Note that the test is basically a copy /
                paste job, and the new code in DataRecursiveASTVisitor.h
                is a very direct translation from the 'regular'
                RecursiveASTVisitor.h.<br>
                ><br>
                ><br>
                > <a href="http://reviews.llvm.org/D14506" rel="noreferrer" target="_blank">http://reviews.llvm.org/D14506</a><br>
                ><br>
                ><br>
                ><br>
                <br>
              </div>
            </div>
          </blockquote>
        </div>
        <br>
      </div>
    </blockquote>
    <br>
    </div></div><span><font color="#888888"><pre cols="72">-- 
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project
</pre>
  </font></span></div>

<br>_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits</a><br>
<br></blockquote></div><br></div>
</div></blockquote></div></div><div style="word-wrap:break-word"><div><blockquote type="cite"><div><span><make-rav-fully-data-recursive.diff></span></div></blockquote></div><br></div>_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits</a><br>
</blockquote></div>