# Module Llvm_analysis

    module Llvm_analysis: sig .. end

Intermediate representation analysis.

This interface provides an OCaml API for LLVM IR analyses, the classes in the Analysis library.

    val verify_module : Llvm.llmodule -> string option

`verify_module m` returns `None` if the module `m` is valid, and `Some reason` if it is invalid. `reason` is a string containing a human-readable validation report. See `llvm::verifyModule`.

    val verify_function : Llvm.llvalue -> bool

`verify_function f` returns `None` if the function `f` is valid, and `Some reason` if it is invalid. `reason` is a string containing a human-readable validation report. See `llvm::verifyFunction`.

    val assert_valid_module : Llvm.llmodule -> unit

`verify_module m` returns if the module `m` is valid, but prints a validation report to `stderr` and aborts the program if it is invalid. See `llvm::verifyModule`.

    val assert_valid_function : Llvm.llvalue -> unit

`verify_function f` returns if the function `f` is valid, but prints a validation report to `stderr` and aborts the program if it is invalid. See `llvm::verifyFunction`.

    val view_function_cfg : Llvm.llvalue -> unit

`view_function_cfg f` opens up a ghostscript window displaying the CFG of the current function with the code for each basic block inside. See `llvm::Function::viewCFG`.

    val view_function_cfg_only : Llvm.llvalue -> unit

`view_function_cfg_only f` works just like `view_function_cfg`, but does not include the contents of basic blocks into the nodes. See `llvm::Function::viewCFGOnly`.