I'm trying to write two LLVM passes, one of which uses the results of the
other. The first is LiveVars and the second is RemoveUseless. In the
RemoveUseless class I have:
virtual void getAnalysisUsage(AnalysisUsage &AU) const {
AU.addRequired<LiveVars>();
}
This compiles fine, but when I try to run it I get an error:
Pass class not registered!
The error goes away if I take out that "addRequired".
The code for the LiveVars pass includes
RegisterPass<LiveVars> X("liveVars", "Live vars analysis", true,
true);
and I can run the LiveVars pass like this:
opt -load Debug/lib/dataflowAnalysis.so -f -analyze -liveVars ...
I've tried running the RemoveUseless pass with various combinations of flags (just -removeUseless, both -liveVars and -removeUseles, with and without -analyze), but I always get the same error.
Any help will be much appreciated!