[llvm-dev] Confusing ERROR with LoopAccessLegacyAnalysis: Pass 'Unnamed pass: implement Pass::getPassName()' is not initialized.

Tingyuan LIANG via llvm-dev llvm-dev at lists.llvm.org
Thu Jan 31 12:18:32 PST 2019


Dear all,

    I write a new LoopPass which wants to use passes including LoopInfoWrapperPass, ScalarEvolutionWrapperPass and LoopAccessLegacyAnalysis.
    Therefore, I implement the following code based on LLVM 9.0.0:

=====================================================================
bool LoopInformationCollect::runOnLoop(Loop *L, LPPassManager &)
{

    auto &SE = getAnalysis<ScalarEvolutionWrapperPass>().getSE();
    auto &LI = getAnalysis<LoopInfoWrapperPass>().getLoopInfo();
    // auto *LAA = &getAnalysis<LoopAccessLegacyAnalysis>();
    if (Loop_id.find(L)==Loop_id.end()) // traverse instructions in the block assign instruction ID
    {
        Loop_id[L] = ++Loop_Counter;
    }
    // *Loop_out << "---------------Loop report----------------\n";
    // *Loop_out << LAA->getInfo(L).getReport();
    return false;
}

char LoopInformationCollect::ID = 0;

void LoopInformationCollect::getAnalysisUsage(AnalysisUsage &AU) const {
    AU.addRequired<LoopInfoWrapperPass>();
    AU.addRequired<ScalarEvolutionWrapperPass>();
    AU.addRequired<LoopAccessLegacyAnalysis>();
    AU.setPreservesAll();
}
=====================================================================

   I can make the project with GNU make successfully but get the error "Pass 'Unnamed pass: implement Pass::getPassName()' is not initialized." during runtime. When I remove the line "AU.addRequired<LoopAccessLegacyAnalysis>();" and make the project again, I run the program successfully.

   Detailed error report is shown below:

---------------------------------------------------------------------------------------------------------
Pass 'Unnamed pass: implement Pass::getPassName()' is not initialized.
Verify if there is a pass dependency cycle.
Required Passes:
        Natural Loop Information
        Scalar Evolution Analysis
---------------------------------------------------------------------------------------------------------

   Please note that I am not using "opt" in the terminal to run the passes but utilize PassManager in a main() function. It seems that the problem is caused by "LoopAccessLegacyAnalysis", since I have not faced this problem with other passes. I am wondering how I can fix this situation.
   Thanks a lot for your time and suggestions!

Best regards,
------------------------------------------
Tingyuan LIANG
MPhil Student
Department of Electronic and Computer Engineering
The Hong Kong University of Science and Technology
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190131/5b4d4179/attachment.html>


More information about the llvm-dev mailing list