llvm/cpsllvm.mli

Interface for module Cpsllvm

1.  This module translates CPS representation to the LLVM IR. CPS terms must observe that

  • Functions do not have free (unbound) variables or continuation variables (use closure conversion to get rid of free variables in functions)
  • Constants functions (such as +,−) have been η-expanded, and translated to the use of CPS primitive operations.


val from_stream : Cpsbase.definition Stream.t → Llvm.llvalue Stream.t