[LLVMdev] LLVM 2.4 Dominance Frontier Problem

David Greene dag at cray.com
Wed Feb 18 09:35:38 PST 2009


On Wednesday 18 February 2009 10:35, Devang Patel wrote:
> On Feb 18, 2009, at 8:00 AM, David Greene wrote:
> > I just finished upgrading our LLVM to 2.4 and I immediately ran into
> > a problem
> > with dominance frontier calculation:
> >
> > llvm/lib/VMCore/PassManager.cpp:714: void
> > llvm::PMDataManager::verifyDomInfo(llvm::Pass&, llvm::Function&):
> > Assertion
> > `0 && "Invalid dominator info"' failed.
> >
> > Strangely enough, the Pass running when the assert triggers is
> > Dominance
> > Frontier Construction.
> >
> > This is somewhat puzzling.  Any idea where to start looking?
>
> The PassManager must have printed dominator diffs. before this
> assertion.

Yes, it did.  There are no diffs.

> Go and fix the last pass that mainpulated dominator info or 
> file a PR with reproducible test case for mainline. IIRC, dom info
> verifier is not enabled by default.

No, it's not and it looks like that was the problem.

This looks like it's another misuse of C++.  When I turn on 
--enable-expensive-checks, things blow up all over the place.  There's an 
increment of a singular iterator in CominanceFrontierBase::compare.

I fixed this issue and that solved the problem on my current testcase.

We really need to start testing with --enable-expensive-checks.  After
finishing up the details of our merge, I'm going to go polish the validator 
some more.

                                                 -Dave



More information about the llvm-dev mailing list