<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Thu, Jun 12, 2014 at 1:46 PM, Jeremy Salwen <span dir="ltr"><<a href="mailto:jeremysalwen@gmail.com" target="_blank">jeremysalwen@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div>Hi Eli,<br><br>Thanks for the link! I'm able to compile a standalone pass outside of the source tree, and I'm obviously ably to compile analysis groups inside the source tree.  However, the problem comes when I try to do what the tutorial suggests to create an analysis group outside of the source tree.<br>



<br>My understanding is that building out of tree requires different methods to register the passes.  </div></div></div></blockquote><div><br></div><div>I don't think so; or I may be misunderstanding what you mean by "out of tree"?</div>

<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div>For example, the class RegisterPass, which the tutorial instructs you to use (and is used by sample repository you linked), never shows up in the source tree.  Likewise for RegisterAnalysisGroup.  </div>

</div></div></blockquote><div><br></div><div>What makes you say that? Both appear there.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">

<div><div>Furthermore I've found that just copying the way it's done in the source tree and not using RegisterPass causes opt to not recognize your command-line arguments.<br>

<br></div><div>Do you know of any other projects that will demonstrate how to build passes out of tree, only creating an analysis group as well?<br></div><div><br></div></div></div></blockquote><div><br></div><div>Nope, sorry.</div>

<div><br></div><div>Eli</div><div><br></div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div></div>Thanks<span class="HOEnZb"><font color="#888888"><br>

</font></span></div><span class="HOEnZb"><font color="#888888">Jeremy<br></font></span></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra">

<br><br><div class="gmail_quote">On Thu, Jun 12, 2014 at 4:20 PM, Eli Bendersky <span dir="ltr"><<a href="mailto:eliben@google.com" target="_blank">eliben@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">



<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote"><div><div>On Thu, Jun 12, 2014 at 1:10 PM, Jeremy Salwen <span dir="ltr"><<a href="mailto:jeremysalwen@gmail.com" target="_blank">jeremysalwen@gmail.com</a>></span> wrote:<br>





<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div><div><div>Hello all,<br><br></div>I'm trying to follow the guide <a href="http://llvm.org/docs/WritingAnLLVMPass.html" target="_blank">http://llvm.org/docs/WritingAnLLVMPass.html</a> to build an some passes and analysis groups out of tree. However, I'm having some trouble with crashes when I try to follow the guide.  <br>







The first section provides a very useful example of what the whole .cpp file should look like for the HelloWorld pass.  Obviously it's a bit more complex to write the whole setup with an analysis group, an analysis pass, and a transform pass that uses the analysis, but example code would be extremely helpful, and could serve as a good starting point for anyone who wants to do something similar.  Is there anywhere i could find such example code, perhaps as part of a project, that demonstrates how to define and use an analysis group out of tree?<br>





</div></div></div></blockquote><div><br></div></div></div><div>It's not entirely clear which part you're having a problem with. If it's creating an analysis group, there should be samples within the LLVM source code. If it's building out-of-tree, take a look at <a href="https://github.com/eliben/llvm-clang-samples" target="_blank">https://github.com/eliben/llvm-clang-samples</a> -- it's a repository with a bunch of LLVM/Clang samples, all built out of tree. It keeps pretty close track to ToT, as well as having branches for prior releases (3.3 and 3.4, for now).</div>



<span><font color="#888888">

<div><br></div><div>Eli</div><div> </div></font></span></div><br></div></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div></div>