Module Architecture.Llvm_backend

type instr =
  1. | Add of Llvm.llvalue * Llvm.llvalue * string
  2. | Sub of Llvm.llvalue * Llvm.llvalue * string
  3. | Mul of Llvm.llvalue * Llvm.llvalue * string
  4. | Sdiv of Llvm.llvalue * Llvm.llvalue * string
  5. | Neg of Llvm.llvalue * string
  6. | Icmp of Llvm.Icmp.t * Llvm.llvalue * Llvm.llvalue * string
  7. | And of Llvm.llvalue * Llvm.llvalue * string
  8. | Or of Llvm.llvalue * Llvm.llvalue * string
  9. | Not of Llvm.llvalue * string
  10. | Load of Llvm.lltype * Llvm.llvalue * string
  11. | Store of Llvm.llvalue * Llvm.llvalue
  12. | Alloca of Llvm.lltype * string
  13. | Call of Llvm.lltype * Llvm.llvalue * Llvm.llvalue array * string
  14. | Ret of Llvm.llvalue option
  15. | Br of Llvm.llbasicblock
  16. | CondBr of Llvm.llvalue * Llvm.llbasicblock * Llvm.llbasicblock
  17. | Phi of (Llvm.llvalue * Llvm.llbasicblock) list * string
  18. | Bitcast of Llvm.llvalue * Llvm.lltype * string
  19. | PtrToInt of Llvm.llvalue * Llvm.lltype * string
  20. | IntToPtr of Llvm.llvalue * Llvm.lltype * string
val emit : Llvm.llbuilder -> instr -> Llvm.llvalue option
val add : Llvm.llbuilder -> Llvm.llvalue -> Llvm.llvalue -> string -> Llvm.llvalue option
val sub : Llvm.llbuilder -> Llvm.llvalue -> Llvm.llvalue -> string -> Llvm.llvalue option
val mul : Llvm.llbuilder -> Llvm.llvalue -> Llvm.llvalue -> string -> Llvm.llvalue option
val sdiv : Llvm.llbuilder -> Llvm.llvalue -> Llvm.llvalue -> string -> Llvm.llvalue option
val neg : Llvm.llbuilder -> Llvm.llvalue -> string -> Llvm.llvalue option
val icmp : Llvm.llbuilder -> Llvm.Icmp.t -> Llvm.llvalue -> Llvm.llvalue -> string -> Llvm.llvalue option
val and_ : Llvm.llbuilder -> Llvm.llvalue -> Llvm.llvalue -> string -> Llvm.llvalue option
val or_ : Llvm.llbuilder -> Llvm.llvalue -> Llvm.llvalue -> string -> Llvm.llvalue option
val not : Llvm.llbuilder -> Llvm.llvalue -> string -> Llvm.llvalue option
val load : Llvm.llbuilder -> Llvm.lltype -> Llvm.llvalue -> string -> Llvm.llvalue option
val alloca : Llvm.llbuilder -> Llvm.lltype -> string -> Llvm.llvalue option
val call : Llvm.llbuilder -> Llvm.lltype -> Llvm.llvalue -> Llvm.llvalue array -> string -> Llvm.llvalue option
val phi : Llvm.llbuilder -> (Llvm.llvalue * Llvm.llbasicblock) list -> string -> Llvm.llvalue option
val bitcast : Llvm.llbuilder -> Llvm.llvalue -> Llvm.lltype -> string -> Llvm.llvalue option
val ptrtoint : Llvm.llbuilder -> Llvm.llvalue -> Llvm.lltype -> string -> Llvm.llvalue option
val inttoptr : Llvm.llbuilder -> Llvm.llvalue -> Llvm.lltype -> string -> Llvm.llvalue option
val store : Llvm.llbuilder -> Llvm.llvalue -> Llvm.llvalue -> unit
val ret_void : Llvm.llbuilder -> unit
val ret : Llvm.llbuilder -> Llvm.llvalue -> unit
val br : Llvm.llbuilder -> Llvm.llbasicblock -> unit
val cond_br : Llvm.llbuilder -> Llvm.llvalue -> Llvm.llbasicblock -> Llvm.llbasicblock -> unit