Skip to content
  • Chandler Carruth's avatar
    [PM] Make the verifier work independently of any pass manager. · 043949d4
    Chandler Carruth authored
    This makes the 'verifyFunction' and 'verifyModule' functions totally
    independent operations on the LLVM IR. It also cleans up their API a bit
    by lifting the abort behavior into their clients and just using an
    optional raw_ostream parameter to control printing.
    
    The implementation of the verifier is now just an InstVisitor with no
    multiple inheritance. It also is significantly more const-correct, and
    hides the const violations internally. The two layers that force us to
    break const correctness are building a DomTree and dispatching through
    the InstVisitor.
    
    A new VerifierPass is used to implement the legacy pass manager
    interface in terms of the other pieces.
    
    The error messages produced may be slightly different now, and we may
    have slightly different short circuiting behavior with different usage
    models of the verifier, but generally everything works equivalently and
    this unblocks wiring the verifier up to the new pass manager.
    
    llvm-svn: 199569
    043949d4
Loading