<div dir="ltr">Hi all,<div><br></div><div>I am Shen, a new LLVM learner. Now i am trying to call basic alias analysis in my own module pass, i hope to use -basicaa to check whether two pointers are aliases in the inner function passes.</div><div><br></div><div>After I run the command <i><span class="" style="white-space:pre">opt</span> -load  ./pdg.so <b>-basicaa</b> -dot-pdg -debug-pass=Structure < $1 > /dev/null</i></div><div><br></div><div>the compiler reports as follows:</div><div><br></div><div><div><font face="georgia, serif">Pass Arguments:  -targetlibinfo -datalayout -notti -basictti -x86tti -no-aa -basicaa -pdg -dot-pdg -verify -verify-di</font></div><div><font face="georgia, serif">Target Library Information</font></div><div><font face="georgia, serif">Data Layout</font></div><div><font face="georgia, serif">No target information</font></div><div><font face="georgia, serif">Target independent code generator's TTI</font></div><div><font face="georgia, serif">X86 Target Transform Info</font></div><div><font face="georgia, serif"><b>No Alias Analysis (always returns 'may' alias)</b></font></div><div><font face="georgia, serif"><b>Basic Alias Analysis (stateless AA impl)</b></font></div><div><font face="georgia, serif">  ModulePass Manager</font></div><div><font face="georgia, serif">    Program Dependency Graph</font></div><div><font face="georgia, serif">      Unnamed pass: implement Pass::getPassName()</font></div><div><font face="georgia, serif">    FunctionPass Manager</font></div><div><font face="georgia, serif">      Print instruction-level program dependency graph of function to 'dot' file</font></div><div><font face="georgia, serif">      Module Verifier</font></div><div><font face="georgia, serif">    Debug Info Verifier</font></div><div><font face="georgia, serif">    Bitcode Writer</font></div><div><font face="georgia, serif">Pass Arguments:  -no-aa -fda</font></div><div><font face="georgia, serif"><b>No Alias Analysis (always returns 'may' alias)</b></font></div><div><font face="georgia, serif">  FunctionPass Manager</font></div><div><font face="georgia, serif">    Flow  Dependence Analysis</font></div></div><div><br></div><div>If all passes are Function pass, -basicaa can be executed very well. But when I call -basicaa through a Module pass. It seems the basic AA was called during the runtime. However, the inner function pass didn't see -basicaa option but use default -no-aa instead.</div><div><br></div><div>So is there a good way to let my inner Function pass get the result from outer Module pass?</div><div><br></div><div>Best regards,</div><div><br></div><div>Shen</div></div>