1bbc6597f02d108f32b5bdc7711cc67386196017bGordon Henriksen(*===-- llvm_bitreader.mli - LLVM Ocaml Interface ---------------*- C++ -*-===*
2bbc6597f02d108f32b5bdc7711cc67386196017bGordon Henriksen *
3bbc6597f02d108f32b5bdc7711cc67386196017bGordon Henriksen *                     The LLVM Compiler Infrastructure
4bbc6597f02d108f32b5bdc7711cc67386196017bGordon Henriksen *
5234d529e582963ad4b5d83b911cd057fe99d1435Chris Lattner * This file is distributed under the University of Illinois Open Source
6234d529e582963ad4b5d83b911cd057fe99d1435Chris Lattner * License. See LICENSE.TXT for details.
7bbc6597f02d108f32b5bdc7711cc67386196017bGordon Henriksen *
8bbc6597f02d108f32b5bdc7711cc67386196017bGordon Henriksen *===----------------------------------------------------------------------===*)
9bbc6597f02d108f32b5bdc7711cc67386196017bGordon Henriksen
103b646de03668fed630f4e3fa9df56a7332a905e4Gordon Henriksen(** Bitcode reader.
113b646de03668fed630f4e3fa9df56a7332a905e4Gordon Henriksen
123b646de03668fed630f4e3fa9df56a7332a905e4Gordon Henriksen    This interface provides an ocaml API for the LLVM bitcode reader, the
133b646de03668fed630f4e3fa9df56a7332a905e4Gordon Henriksen    classes in the Bitreader library. *)
14bbc6597f02d108f32b5bdc7711cc67386196017bGordon Henriksen
15da1435f86ebc9886dd7704294e01d192d79e069cGordon Henriksenexception Error of string
16bbc6597f02d108f32b5bdc7711cc67386196017bGordon Henriksen
1716609f3c5c26ba34603ae0d7ebab86fb11a72722Erick Tryzelaar(** [get_module context mb] reads the bitcode for a new module [m] from the
1816609f3c5c26ba34603ae0d7ebab86fb11a72722Erick Tryzelaar    memory buffer [mb] in the context [context].  Returns [m] if successful, or
1916609f3c5c26ba34603ae0d7ebab86fb11a72722Erick Tryzelaar    raises [Error msg] otherwise, where [msg] is a description of the error
2016609f3c5c26ba34603ae0d7ebab86fb11a72722Erick Tryzelaar    encountered. See the function [llvm::getBitcodeModule]. *)
21a156efdf71bc668093e31593713694cf076db895Torok Edwinval get_module : Llvm.llcontext -> Llvm.llmemorybuffer -> Llvm.llmodule
22a156efdf71bc668093e31593713694cf076db895Torok Edwin
23bbc6597f02d108f32b5bdc7711cc67386196017bGordon Henriksen
245371aa2a1c9a4eeecffdb9ab7b2175732e49475bErick Tryzelaar(** [parse_bitcode context mb] parses the bitcode for a new module [m] from the
255371aa2a1c9a4eeecffdb9ab7b2175732e49475bErick Tryzelaar    memory buffer [mb] in the context [context]. Returns [m] if successful, or
26df6c55155c4e93f06e8d5bf0a8031c2e850e08a5Bill Wendling    raises [Error msg] otherwise, where [msg] is a description of the error
27df6c55155c4e93f06e8d5bf0a8031c2e850e08a5Bill Wendling    encountered. See the function [llvm::ParseBitcodeFile]. *)
28a156efdf71bc668093e31593713694cf076db895Torok Edwinval parse_bitcode : Llvm.llcontext -> Llvm.llmemorybuffer -> Llvm.llmodule
29