Validation¶
Verify an IR-module for consistency.
This is a very useful module since it allows to isolate bugs in the compiler itself.
-
class
ppci.irutils.verify.Verifier¶ Checks an ir module for correctness
-
block_dominates(one: ppci.ir.Block, another: ppci.ir.Block)¶ Check if this block dominates other block
-
instruction_dominates(one, another)¶ Checks if one instruction dominates another instruction
-
verify(module)¶ Verifies a module for some sanity
-
verify_block(block)¶ Verify block for correctness
-
verify_block_termination(block)¶ Verify that the block is terminated correctly
-
verify_function(function)¶ Verify all blocks in the function
-
verify_instruction(instruction, block)¶ Verify that instruction belongs to block and that all uses are preceeded by defs
-
verify_subroutine_call(instruction)¶ Check some properties of a function call
-
-
ppci.irutils.verify.verify_module(module: ppci.ir.Module)¶ Check if the module is properly constructed
Parameters: module – The module to verify.