Hi, I have a simple Function pass, and I am trying to get loop info in the code. But when I try to add AU.addRequired<LoopInfo>(); in getAnalysisUsage(), the module crashes. This happens even before getAnalysis<LoopInfo>() is called. It is a dynamically loaded pass (.so). namespace { class TestPass : public FunctionPass { public: static char ID; TestPass() : FunctionPass(ID) {} virtual void getAnalysisUsage(AnalysisUsage &AU) const { AU.addRequired<LoopInfo>(); AU.setPreservesAll(); } bool runOnFunction(Function &F) override { errs() << F.getName() << " : " << F.getBasicBlockList().size() << "\n"; // LoopInfo &LI = getAnalysis<LoopInfo>(); return false; } }; } char TestPass::ID = 0; static RegisterPass<TestPass> X("TestPass", "Test pass"); // register pass for clang use static void registerTestPassPass(const PassManagerBuilder &, PassManagerBase &PM) { PM.add(new TestPass()); } static RegisterStandardPasses RegisterTestPassPass(PassManagerBuilder::EP_EarlyAsPossible , registerTestPassPass); Here is the stack trace. [armeabi-v7a] Compile thumb : test <= test.c Pass 'Test pass' is not initialized. Verify if there is a pass dependency cycle. Required Passes: 0 clang 0x0000000001492ec2 llvm::sys::PrintStackTrace(_IO_FILE*) + 34 1 clang 0x0000000001490f61 2 libpthread.so.0 0x00002b15cbb4e340 3 clang 0x00000000011c86f7 llvm::PMTopLevelManager::schedulePass(llvm::Pass*) + 343 4 clang 0x00000000019c0401 llvm::PassManagerBuilder::addExtensionsToPM(llvm::PassManagerBuilder::ExtensionPointTy, llvm::legacy::PassManagerBase&) const + 225 5 clang 0x00000000019c054a llvm::PassManagerBuilder::populateFunctionPassManager(llvm::legacy::FunctionPassManager&) + 26 6 clang 0x0000000001837de3 clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef, llvm::Module*, clang::BackendAction, llvm::raw_ostream*) + 1171 7 clang 0x000000000182a47f 8 clang 0x0000000001bdf043 clang::ParseAST(clang::Sema&, bool, bool) + 483 9 clang 0x0000000001603ba6 clang::FrontendAction::Execute() + 118 10 clang 0x00000000015e47b8 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 280 11 clang 0x0000000001673b41 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 1921 12 clang 0x0000000000820358 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) + 1320 13 clang 0x00000000007fceaa main + 8298 14 libc.so.6 0x00002b15cc7b6ec5 __libc_start_main + 245 15 clang 0x000000000081e5d9 Am I missing something? Any help would be appreciated. Thanks, Pankaj -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150507/b3e00180/attachment.html>