Disabling Verifier


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 :slight_smile: Please file a "verifier is slow" bugzilla with a bc file, thanks!