<div dir="ltr">Hello,<div><br></div><div style id="">I want to write a modulePass in addPreEmitPass() for NVPTX, but I encounter an assertion failed when executing clang.</div><div style id=""><br></div><div style>Here is my error message.</div>
<div style>====<br></div><div style id=""><div id="">Pass 'NVPTX Assembly Printer' is not initialized.</div><div id="">Verify if there is a pass dependency cycle.</div><div id="">Required Passes:</div><div id="">llc: /home/pyyu/local/llvm/lib/IR/PassManager.cpp:637: void llvm::PMTopLevelManager::schedulePass(llvm::Pass*): Assertion `PI && "Expected required passes to be initialized"' failed.</div>
<div id="">0  llc             0x000000000176cd86 llvm::sys::PrintStackTrace(_IO_FILE*) + 38</div><div id="">1  llc             0x000000000176d00d</div><div id="">2  llc             0x000000000176ca5c</div><div id="">3  libpthread.so.0 0x00007f9867638cb0</div>
<div id="">4  libc.so.6       0x00007f986688a425 gsignal + 53</div><div id="">5  libc.so.6       0x00007f986688db8b abort + 379</div><div id="">6  libc.so.6       0x00007f98668830ee</div><div id="">7  libc.so.6       0x00007f9866883192</div>
<div id="">8  llc             0x00000000016ec3b1 llvm::PMTopLevelManager::schedulePass(llvm::Pass*) + 983</div><div id="">9  llc             0x00000000016f2990</div><div id="">10 llc             0x00000000016f0e91 llvm::PassManager::add(llvm::Pass*) + 39</div>
<div id="">11 llc             0x00000000011c119b llvm::LLVMTargetMachine::addPassesToEmitFile(llvm::PassManagerBase&, llvm::formatted_raw_ostream&, llvm::TargetMachine::CodeGenFileType, bool, void const*, void const*) + 1705</div>
<div id="">12 llc             0x00000000008c08b5</div><div id="">13 llc             0x00000000008bf8cd main + 237</div><div id="">14 libc.so.6       0x00007f986687576d __libc_start_main + 237</div><div id="">15 llc             0x00000000008bf229</div>
<div>=====</div><div id=""><br></div><div id="">What my modulePass does is to print all of the function name in the module. </div><div id="">I use setPreservesAll() in getAnalysisUsage(), so there isn't any pass dependency cycle.<br>
</div><div id=""><br></div><div id="" style>I notice that NVPTXAsmPrinter says it does static initialization. I'm not sure if it is related to this error.</div><div id="" style><br></div><div id="" style>Is there any advice to solve this error? And I also want to know if there is a way to verify if there is a pass dependency cycle.</div>
<div id="" style><br></div><div id="" style><br></div><div id="aeaoofnhgocdbnbeljkmbjdmhbcokfdb-mousedown" style>Thanks for any advice.</div><div id="" style>Antony Yu</div><div id="aeaoofnhgocdbnbeljkmbjdmhbcokfdb-mousedown" style>
<br></div><div id="" style><br></div></div></div>