[LLVMdev] Disabling Verifier

Chris Lattner sabre at nondot.org
Fri Apr 18 10:34:56 PDT 2008


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



More information about the llvm-dev mailing list