[LLVMdev] PassManager Mysteries
David Greene
dag at cray.com
Tue Jan 29 07:28:09 PST 2008
On Monday 28 January 2008 21:55, David A. Greene wrote:
> On Monday 28 January 2008 09:31:11 pm Owen Anderson wrote:
> > From experience, an important point that is often forgotten is that
> > the order of declaration of dependencies matter. If you declare that
> > you require pass A, and then pass B, and B doesn't preserve A, you'll
> > get an error like this.
> >
> > Just some advice from having had similar problems in the past.
>
> I'll have to double-check my code, but I don't think I have this particular
> problem.
Well, I was wrong. I found the missing addPreserved and everything's
hunky-dorey.
BTW, -debug-pass=Details wasn't all that helpful. An excerpt:
Live Interval Analysis
MachineDominator Tree Construction
Machine Natural Loop Construction
Iterated Register Coalescing
llvm/lib/VMCore/PassManager.cpp:938: virtual void
llvm::PMDataManager::addLowerLevelRequiredPass(llvm::Pass*, llvm::Pass*):
Assertion `0 && "Unable to handle Pass that requires lower level Analysis
pass"' failed.
ftn-2116 ftn: INTERNAL
That doesn't say anything about which pass triggered the error or which
dependency was unavailable. PassManager should be able to dump
this information.
-Dave
More information about the llvm-dev
mailing list