Regarding llvm


I am trying to run a profiling pass for each Machine Basic Block so that I can get execution count for them, but I am getting assertion error when I run it through clang. I have used MachineProfileInfo and Profile estimator as dependent passes over my pass. I am sending you the code for my pass. the error says:
void llvm::PMTopLevelManager::schedulePass(llvm::Pass*): Assertion `PI && “Expected required passes to be initialized”’ failed.

I am attaching the code. Can you help me out? also can you suggest better ways for getting execution count of loops corresponding to each machine basic block?

Thanks and Regards,
Ranajoy Pal

ARMInstrStats.cpp (2.83 KB)