<div dir="ltr">Hi there,<br><div class="gmail_quote"><div dir="ltr"><div><br></div><div>I was trying to see what kind of informations I can get on dependence/alias analysis from the trunk llvm, and stumbled upon two potencial problems. First of all, the most recent documentation I could find <a href="http://llvm.org/docs/AliasAnalysis.html" target="_blank">online</a> suggests the use of options not available on the code (like enabling globalsmodref-aa, or count-aa, for example). Is there a more recent one, or is just the documentation not being updated?</div><div><br></div><div>Second, after trying "opt --help" and scanning for everything that remotely resembled alias or dependency analysis, I ended up trying to run opt over part of the code of bzip2 from SPEC 2006, but unfortunately an assertion fail prevents it from finishing the analysis:</div><div><br></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div><div>Assertion failed: (dep.isUnknown() && "unexpected dependence type"), function getInstTypePair, file /Developer/llvm/lib/Analysis/MemDepPrinter.cpp, line 70.</div></div><div><div>Stack dump:</div></div><div><div>0.<span style="white-space:pre-wrap"> </span>Program arguments: /Developer/llvm/build/bin/opt -aa -aa-eval -basicaa -cfl-aa -external-aa -globals-aa -objc-arc-aa -print-alias-sets -scev-aa -scoped-noalias -tbaa -da -memdep -print-memdeps build_base_yosemite.0000/blocksort.bc -debug-pass=Structure -disable-output -S</div></div><div><div>1.<span style="white-space:pre-wrap"> </span>Running pass 'Function Pass Manager' on module 'build_base_yosemite.0000/blocksort.bc'.</div></div><div><div>2.<span style="white-space:pre-wrap"> </span>Running pass 'Print MemDeps of function' on function '@BZ2_blockSort'</div></div><div><div>Illegal instruction: 4</div></div></blockquote><div><div></div></div><div><br></div><div>I was kinda curious about which instruction was causing this assertion to be thrown, and I added a print to the MemDepPrinter class to see that the instruction was actually an llvm intrinsic: </div><div><br></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div>Instruction:   call void @llvm.memset.p0i8.i32(i8* %bigDone152.i, i8 0, i32 256, i32 1, i1 false) #6</div></blockquote><div><br></div><div>So, my question is: is this the expected behavior for MemDepPrinter? Is there anything I can do to avoid failing this assertion?</div><div><br></div><div>Thanks in advance,</div><div><br></div><div><div data-smartmail="gmail_signature">--<br>Cristianno Martins<br><a href="mailto:cristiannomartins@hotmail.com" target="_blank"></a></div></div>
</div>
</div><br></div>