1c6099db476ea863d0e897e3c311bfe490293e04fPeter Zotov/*===-- llvm-c/IRReader.h - IR Reader C Interface -----------------*- C -*-===*\
2c6099db476ea863d0e897e3c311bfe490293e04fPeter Zotov|*                                                                            *|
3c6099db476ea863d0e897e3c311bfe490293e04fPeter Zotov|*                     The LLVM Compiler Infrastructure                       *|
4c6099db476ea863d0e897e3c311bfe490293e04fPeter Zotov|*                                                                            *|
5c6099db476ea863d0e897e3c311bfe490293e04fPeter Zotov|* This file is distributed under the University of Illinois Open Source      *|
6c6099db476ea863d0e897e3c311bfe490293e04fPeter Zotov|* License. See LICENSE.TXT for details.                                      *|
7c6099db476ea863d0e897e3c311bfe490293e04fPeter Zotov|*                                                                            *|
8c6099db476ea863d0e897e3c311bfe490293e04fPeter Zotov|*===----------------------------------------------------------------------===*|
9c6099db476ea863d0e897e3c311bfe490293e04fPeter Zotov|*                                                                            *|
10c6099db476ea863d0e897e3c311bfe490293e04fPeter Zotov|* This file defines the C interface to the IR Reader.                        *|
11c6099db476ea863d0e897e3c311bfe490293e04fPeter Zotov|*                                                                            *|
12c6099db476ea863d0e897e3c311bfe490293e04fPeter Zotov\*===----------------------------------------------------------------------===*/
13c6099db476ea863d0e897e3c311bfe490293e04fPeter Zotov
14c6099db476ea863d0e897e3c311bfe490293e04fPeter Zotov#ifndef LLVM_C_IRREADER_H
15c6099db476ea863d0e897e3c311bfe490293e04fPeter Zotov#define LLVM_C_IRREADER_H
16c6099db476ea863d0e897e3c311bfe490293e04fPeter Zotov
17c6099db476ea863d0e897e3c311bfe490293e04fPeter Zotov#include "llvm-c/Core.h"
18c6099db476ea863d0e897e3c311bfe490293e04fPeter Zotov
19c6099db476ea863d0e897e3c311bfe490293e04fPeter Zotov#ifdef __cplusplus
20c6099db476ea863d0e897e3c311bfe490293e04fPeter Zotovextern "C" {
21c6099db476ea863d0e897e3c311bfe490293e04fPeter Zotov#endif
22c6099db476ea863d0e897e3c311bfe490293e04fPeter Zotov
23c6099db476ea863d0e897e3c311bfe490293e04fPeter Zotov/**
24c6099db476ea863d0e897e3c311bfe490293e04fPeter Zotov * Read LLVM IR from a memory buffer and convert it into an in-memory Module
25c6099db476ea863d0e897e3c311bfe490293e04fPeter Zotov * object. Returns 0 on success.
26c6099db476ea863d0e897e3c311bfe490293e04fPeter Zotov * Optionally returns a human-readable description of any errors that
2736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines * occurred during parsing IR. OutMessage must be disposed with
28c6099db476ea863d0e897e3c311bfe490293e04fPeter Zotov * LLVMDisposeMessage.
29c6099db476ea863d0e897e3c311bfe490293e04fPeter Zotov *
30c6099db476ea863d0e897e3c311bfe490293e04fPeter Zotov * @see llvm::ParseIR()
31c6099db476ea863d0e897e3c311bfe490293e04fPeter Zotov */
32c6099db476ea863d0e897e3c311bfe490293e04fPeter ZotovLLVMBool LLVMParseIRInContext(LLVMContextRef ContextRef,
33c6099db476ea863d0e897e3c311bfe490293e04fPeter Zotov                              LLVMMemoryBufferRef MemBuf, LLVMModuleRef *OutM,
34c6099db476ea863d0e897e3c311bfe490293e04fPeter Zotov                              char **OutMessage);
35c6099db476ea863d0e897e3c311bfe490293e04fPeter Zotov
36c6099db476ea863d0e897e3c311bfe490293e04fPeter Zotov#ifdef __cplusplus
37c6099db476ea863d0e897e3c311bfe490293e04fPeter Zotov}
38c6099db476ea863d0e897e3c311bfe490293e04fPeter Zotov#endif
39c6099db476ea863d0e897e3c311bfe490293e04fPeter Zotov
40c6099db476ea863d0e897e3c311bfe490293e04fPeter Zotov#endif
41