On Apr 18, 2008, at 6:55 AM, Roman Levenstein wrote:
> Hi,
>
> I've noticed that the funcionality in the Verifier.cpp significantely
> slows down the compilation, especially for big basic blocks. In this
> case the llvm::DominatorTree::dominates() seems to consume a lot of
> time.
>
> Some debugging has shown that it is the Assert2() macro usage in the
> Verifier::visitInstruction(), arount this place:
> // Definition must dominate use unless use is unreachable!
> Assert2(DT->dominates(Op, &I) ||
> !DT->dominates(&BB->getParent()->getEntryBlock(), BB),
> "Instruction does not dominate all uses!", Op, &I);
>
>
> Question: Is it possible to switch off/disable this checks? I'm
> exprimenting with speeding up the instruction scheduling and
> instruction
> selection and these checks in Verifer.cpp introduce too much of
> interference with results of my optimizations, so that it becomes
> difficult to decide what are the most time-consuming parts of the
> compiler.
You can just stop running the verifier with '-disable-verifier' to
opt, for example. However, it would be better to make this check more
scalable :) Please file a "verifier is slow" bugzilla with a bc file,
thanks!
-Chris