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