<div dir="ltr"><div></div><div class="gmail_extra"><div class="gmail_quote">On Mon, Apr 28, 2014 at 10:46 PM, Chen Li <span dir="ltr"><<a href="mailto:meloli87@gmail.com" target="_blank">meloli87@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="word-wrap:break-word">Hi Matthew,<div><br></div><div>Did you add your alias analysis pass initializeEverythingMustAliasPass() into llvm::initializeAnalysis(<span style="color:rgb(0,97,65)">PassRegistry</span> &Registry) {} ?</div>
<div>This will initialize it linked into the Analysis library.</div><div><br></div><div>thanks,</div><div>chen</div></div></blockquote><div> </div><div>I want to be able to load my pass from an external library & not have it compiled into opt.<br>
</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="word-wrap:break-word"><div><div class="h5"><div><div><div>On Apr 28, 2014, at 8:43 PM, Jingyue Wu <<a href="mailto:jingyue@google.com" target="_blank">jingyue@google.com</a>> wrote:</div>
<br><blockquote type="cite"><div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Apr 24, 2014 at 4:38 PM, Matthew O'Connor <span dir="ltr"><<a href="mailto:thegreendragon@gmail.com" target="_blank">thegreendragon@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><div><div><div>Hi,<br><br>I'm attempting to do some alias analysis & other memory inspection. I've written a pointless AliasAnalysis pass (that says everything must alias) to attempt to verify that my pass is getting picked up & run by opt.<br>


<br></div>I run opt with: opt -load ~/Applications/llvm/lib/MustAA.so -must-aa -aa-eval -debug < trace0.ll<br><br></div>I see my pass being initialized, but never being called (I see only may alias results). <br><br></div>


Any ideas as to what to do to debug this? Or what I'm missing? I've read through <a href="http://llvm.org/docs/AliasAnalysis.html" target="_blank">http://llvm.org/docs/AliasAnalysis.html</a> and don't see anything that I'm missing.<br>


<br></div>Thanks,<br>Matthew<br><br>P.S. Here's the full source code of my pass:<br><br>#define DEBUG_TYPE "must-aa"<br>#include "llvm/Pass.h"<br>#include "llvm/Analysis/AliasAnalysis.h"<br>


#include "llvm/Support/raw_ostream.h"<br>#include "llvm/Support/Debug.h"<br>using namespace llvm;<br><br>namespace {<br>struct EverythingMustAlias : public ImmutablePass, public AliasAnalysis {<br>  static char ID;<br>


  EverythingMustAlias() : ImmutablePass(ID) {}<br><br>  virtual void initializePass() {<br>    DEBUG(dbgs() << "Initializing everything-must-alias\n");<br>    InitializeAliasAnalysis(this);<br>  }<br><br>

  virtual void getAnalysisUsage(AnalysisUsage &AU) const {<br>
    AliasAnalysis::getAnalysisUsage(AU);<br>    AU.setPreservesAll();<br>  }<br><br>  virtual AliasResult alias(const Location &LocA, const Location &LocB) {<br>    DEBUG(dbgs() << "Everything must alias!\n");<br>


    return AliasAnalysis::MustAlias;<br>  }<br>};<br>}<br><br>namespace llvm {<br>void initializeEverythingMustAliasPass(PassRegistry &Registry);<br>}<br><br>char EverythingMustAlias::ID = 0;<br>static RegisterPass<EverythingMustAlias> A("must-aa", "Everything must alias");</div>

</blockquote><div> </div><div>static RegisterPass<EverythingMustAlias> A("must-aa", "Everything must alias", false, true);<br></div><div><br></div><div>Can you try this? </div></div></div></div>
</blockquote></div></div></div></div></div></blockquote><div> <div>I changed "static RegisterPass<EverythingMustAlias> A("must-aa", "Everything must alias");"<br>to<br>"static RegisterPass<</div>
<div class="im"><div>
EverythingMustAlias> A("must-aa", "Everything must alias", false, true);"<br></div></div>and am seeing the same behavior.<br><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div style="word-wrap:break-word"><div><div class="h5"><div><div><blockquote type="cite"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">

<div dir="ltr">
INITIALIZE_AG_PASS(EverythingMustAlias, AliasAnalysis, "must-aa",<br>                   "Everything must alias", false, true, false)<br><br></div>
<br>_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu" target="_blank">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu/" target="_blank">http://llvm.cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
<br></blockquote></div><br></div></div>
_______________________________________________<br>LLVM Developers mailing list<br><a href="mailto:LLVMdev@cs.uiuc.edu" target="_blank">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br></blockquote></div><br></div></div></div></div></blockquote></div><br></div></div>