mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 18:54:02 +01:00
Reorganize the C API headers to improve build times.
Type specific declarations have been moved to Type.h and error handling routines have been moved to ErrorHandling.h. Both are included in Core.h so nothing should change for projects directly including the headers, but transitive dependencies may be affected. llvm-svn: 255965
This commit is contained in:
parent
aa1b085a4c
commit
359dea2a6b
@ -15,6 +15,7 @@ package llvm
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
#include "llvm-c/Analysis.h" // If you are getting an error here read bindings/go/README.txt
|
#include "llvm-c/Analysis.h" // If you are getting an error here read bindings/go/README.txt
|
||||||
|
#include "llvm-c/Core.h"
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
*/
|
*/
|
||||||
import "C"
|
import "C"
|
||||||
|
@ -15,6 +15,7 @@ package llvm
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
#include "llvm-c/BitReader.h"
|
#include "llvm-c/BitReader.h"
|
||||||
|
#include "llvm-c/Core.h"
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
*/
|
*/
|
||||||
import "C"
|
import "C"
|
||||||
|
@ -14,6 +14,7 @@
|
|||||||
package llvm
|
package llvm
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
#include "llvm-c/Core.h"
|
||||||
#include "llvm-c/ExecutionEngine.h"
|
#include "llvm-c/ExecutionEngine.h"
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
*/
|
*/
|
||||||
|
@ -14,6 +14,7 @@
|
|||||||
package llvm
|
package llvm
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
#include "llvm-c/Core.h"
|
||||||
#include "llvm-c/Linker.h"
|
#include "llvm-c/Linker.h"
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
*/
|
*/
|
||||||
|
@ -14,6 +14,7 @@
|
|||||||
package llvm
|
package llvm
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
#include "llvm-c/Core.h"
|
||||||
#include "llvm-c/Target.h"
|
#include "llvm-c/Target.h"
|
||||||
#include "llvm-c/TargetMachine.h"
|
#include "llvm-c/TargetMachine.h"
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
@ -52,6 +52,12 @@ Non-comprehensive list of changes in this release
|
|||||||
* The deprecated C APIs LLVMGetBitcodeModuleProviderInContext and
|
* The deprecated C APIs LLVMGetBitcodeModuleProviderInContext and
|
||||||
LLVMGetBitcodeModuleProvider have been removed.
|
LLVMGetBitcodeModuleProvider have been removed.
|
||||||
|
|
||||||
|
* With this release, the C API headers have been reorganized to improve build
|
||||||
|
time. Type specific declarations have been moved to Type.h, and error
|
||||||
|
handling routines have been moved to ErrorHandling.h. Both are included in
|
||||||
|
Core.h so nothing should change for projects directly including the headers,
|
||||||
|
but transitive dependencies may be affected.
|
||||||
|
|
||||||
.. NOTE
|
.. NOTE
|
||||||
For small 1-3 sentence descriptions, just add an entry at the end of
|
For small 1-3 sentence descriptions, just add an entry at the end of
|
||||||
this list. If your description won't fit comfortably in one bullet
|
this list. If your description won't fit comfortably in one bullet
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
#ifndef LLVM_C_ANALYSIS_H
|
#ifndef LLVM_C_ANALYSIS_H
|
||||||
#define LLVM_C_ANALYSIS_H
|
#define LLVM_C_ANALYSIS_H
|
||||||
|
|
||||||
#include "llvm-c/Core.h"
|
#include "llvm-c/Types.h"
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
#ifndef LLVM_C_BITREADER_H
|
#ifndef LLVM_C_BITREADER_H
|
||||||
#define LLVM_C_BITREADER_H
|
#define LLVM_C_BITREADER_H
|
||||||
|
|
||||||
#include "llvm-c/Core.h"
|
#include "llvm-c/Types.h"
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
#ifndef LLVM_C_BITWRITER_H
|
#ifndef LLVM_C_BITWRITER_H
|
||||||
#define LLVM_C_BITWRITER_H
|
#define LLVM_C_BITWRITER_H
|
||||||
|
|
||||||
#include "llvm-c/Core.h"
|
#include "llvm-c/Types.h"
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
@ -15,7 +15,8 @@
|
|||||||
#ifndef LLVM_C_CORE_H
|
#ifndef LLVM_C_CORE_H
|
||||||
#define LLVM_C_CORE_H
|
#define LLVM_C_CORE_H
|
||||||
|
|
||||||
#include "llvm-c/Support.h"
|
#include "llvm-c/ErrorHandling.h"
|
||||||
|
#include "llvm-c/Types.h"
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
@ -40,15 +41,6 @@ extern "C" {
|
|||||||
* the LLVM intermediate representation as well as other related types
|
* the LLVM intermediate representation as well as other related types
|
||||||
* and utilities.
|
* and utilities.
|
||||||
*
|
*
|
||||||
* LLVM uses a polymorphic type hierarchy which C cannot represent, therefore
|
|
||||||
* parameters must be passed as base types. Despite the declared types, most
|
|
||||||
* of the functions provided operate only on branches of the type hierarchy.
|
|
||||||
* The declared parameter names are descriptive and specify which type is
|
|
||||||
* required. Additionally, each type hierarchy is documented along with the
|
|
||||||
* functions that operate upon it. For more detail, refer to LLVM's C++ code.
|
|
||||||
* If in doubt, refer to Core.cpp, which performs parameter downcasts in the
|
|
||||||
* form unwrap<RequiredType>(Param).
|
|
||||||
*
|
|
||||||
* Many exotic languages can interoperate with C code but have a harder time
|
* Many exotic languages can interoperate with C code but have a harder time
|
||||||
* with C++ due to name mangling. So in addition to C, this interface enables
|
* with C++ due to name mangling. So in addition to C, this interface enables
|
||||||
* tools written in such languages.
|
* tools written in such languages.
|
||||||
@ -62,74 +54,6 @@ extern "C" {
|
|||||||
* @{
|
* @{
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Opaque types. */
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The top-level container for all LLVM global data. See the LLVMContext class.
|
|
||||||
*/
|
|
||||||
typedef struct LLVMOpaqueContext *LLVMContextRef;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The top-level container for all other LLVM Intermediate Representation (IR)
|
|
||||||
* objects.
|
|
||||||
*
|
|
||||||
* @see llvm::Module
|
|
||||||
*/
|
|
||||||
typedef struct LLVMOpaqueModule *LLVMModuleRef;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Each value in the LLVM IR has a type, an LLVMTypeRef.
|
|
||||||
*
|
|
||||||
* @see llvm::Type
|
|
||||||
*/
|
|
||||||
typedef struct LLVMOpaqueType *LLVMTypeRef;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Represents an individual value in LLVM IR.
|
|
||||||
*
|
|
||||||
* This models llvm::Value.
|
|
||||||
*/
|
|
||||||
typedef struct LLVMOpaqueValue *LLVMValueRef;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Represents a basic block of instructions in LLVM IR.
|
|
||||||
*
|
|
||||||
* This models llvm::BasicBlock.
|
|
||||||
*/
|
|
||||||
typedef struct LLVMOpaqueBasicBlock *LLVMBasicBlockRef;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Represents an LLVM basic block builder.
|
|
||||||
*
|
|
||||||
* This models llvm::IRBuilder.
|
|
||||||
*/
|
|
||||||
typedef struct LLVMOpaqueBuilder *LLVMBuilderRef;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Interface used to provide a module to JIT or interpreter.
|
|
||||||
* This is now just a synonym for llvm::Module, but we have to keep using the
|
|
||||||
* different type to keep binary compatibility.
|
|
||||||
*/
|
|
||||||
typedef struct LLVMOpaqueModuleProvider *LLVMModuleProviderRef;
|
|
||||||
|
|
||||||
/** @see llvm::PassManagerBase */
|
|
||||||
typedef struct LLVMOpaquePassManager *LLVMPassManagerRef;
|
|
||||||
|
|
||||||
/** @see llvm::PassRegistry */
|
|
||||||
typedef struct LLVMOpaquePassRegistry *LLVMPassRegistryRef;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Used to get the users and usees of a Value.
|
|
||||||
*
|
|
||||||
* @see llvm::Use */
|
|
||||||
typedef struct LLVMOpaqueUse *LLVMUseRef;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @see llvm::DiagnosticInfo
|
|
||||||
*/
|
|
||||||
typedef struct LLVMOpaqueDiagnosticInfo *LLVMDiagnosticInfoRef;
|
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
LLVMZExtAttribute = 1<<0,
|
LLVMZExtAttribute = 1<<0,
|
||||||
LLVMSExtAttribute = 1<<1,
|
LLVMSExtAttribute = 1<<1,
|
||||||
@ -438,30 +362,6 @@ void LLVMShutdown(void);
|
|||||||
char *LLVMCreateMessage(const char *Message);
|
char *LLVMCreateMessage(const char *Message);
|
||||||
void LLVMDisposeMessage(char *Message);
|
void LLVMDisposeMessage(char *Message);
|
||||||
|
|
||||||
typedef void (*LLVMFatalErrorHandler)(const char *Reason);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Install a fatal error handler. By default, if LLVM detects a fatal error, it
|
|
||||||
* will call exit(1). This may not be appropriate in many contexts. For example,
|
|
||||||
* doing exit(1) will bypass many crash reporting/tracing system tools. This
|
|
||||||
* function allows you to install a callback that will be invoked prior to the
|
|
||||||
* call to exit(1).
|
|
||||||
*/
|
|
||||||
void LLVMInstallFatalErrorHandler(LLVMFatalErrorHandler Handler);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Reset the fatal error handler. This resets LLVM's fatal error handling
|
|
||||||
* behavior to the default.
|
|
||||||
*/
|
|
||||||
void LLVMResetFatalErrorHandler(void);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Enable LLVM's built-in stack trace code. This intercepts the OS's crash
|
|
||||||
* signals and prints which component of LLVM you were in at the time if the
|
|
||||||
* crash.
|
|
||||||
*/
|
|
||||||
void LLVMEnablePrettyStackTrace(void);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @defgroup LLVMCCoreContext Contexts
|
* @defgroup LLVMCCoreContext Contexts
|
||||||
*
|
*
|
||||||
|
51
include/llvm-c/ErrorHandling.h
Normal file
51
include/llvm-c/ErrorHandling.h
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
/*===-- llvm-c/ErrorHandling.h - Error Handling C Interface -------*- C -*-===*\
|
||||||
|
|* *|
|
||||||
|
|* The LLVM Compiler Infrastructure *|
|
||||||
|
|* *|
|
||||||
|
|* This file is distributed under the University of Illinois Open Source *|
|
||||||
|
|* License. See LICENSE.TXT for details. *|
|
||||||
|
|* *|
|
||||||
|
|*===----------------------------------------------------------------------===*|
|
||||||
|
|* *|
|
||||||
|
|* This file defines the C interface to LLVM's error handling mechanism. *|
|
||||||
|
|* *|
|
||||||
|
\*===----------------------------------------------------------------------===*/
|
||||||
|
|
||||||
|
#ifndef LLVM_C_ERROR_HANDLING_H
|
||||||
|
#define LLVM_C_ERROR_HANDLING_H
|
||||||
|
|
||||||
|
#include "llvm-c/Types.h"
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef void (*LLVMFatalErrorHandler)(const char *Reason);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Install a fatal error handler. By default, if LLVM detects a fatal error, it
|
||||||
|
* will call exit(1). This may not be appropriate in many contexts. For example,
|
||||||
|
* doing exit(1) will bypass many crash reporting/tracing system tools. This
|
||||||
|
* function allows you to install a callback that will be invoked prior to the
|
||||||
|
* call to exit(1).
|
||||||
|
*/
|
||||||
|
void LLVMInstallFatalErrorHandler(LLVMFatalErrorHandler Handler);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reset the fatal error handler. This resets LLVM's fatal error handling
|
||||||
|
* behavior to the default.
|
||||||
|
*/
|
||||||
|
void LLVMResetFatalErrorHandler(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Enable LLVM's built-in stack trace code. This intercepts the OS's crash
|
||||||
|
* signals and prints which component of LLVM you were in at the time if the
|
||||||
|
* crash.
|
||||||
|
*/
|
||||||
|
void LLVMEnablePrettyStackTrace(void);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
@ -19,7 +19,7 @@
|
|||||||
#ifndef LLVM_C_EXECUTIONENGINE_H
|
#ifndef LLVM_C_EXECUTIONENGINE_H
|
||||||
#define LLVM_C_EXECUTIONENGINE_H
|
#define LLVM_C_EXECUTIONENGINE_H
|
||||||
|
|
||||||
#include "llvm-c/Core.h"
|
#include "llvm-c/Types.h"
|
||||||
#include "llvm-c/Target.h"
|
#include "llvm-c/Target.h"
|
||||||
#include "llvm-c/TargetMachine.h"
|
#include "llvm-c/TargetMachine.h"
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
#ifndef LLVM_C_IRREADER_H
|
#ifndef LLVM_C_IRREADER_H
|
||||||
#define LLVM_C_IRREADER_H
|
#define LLVM_C_IRREADER_H
|
||||||
|
|
||||||
#include "llvm-c/Core.h"
|
#include "llvm-c/Types.h"
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
#ifndef LLVM_C_INITIALIZATION_H
|
#ifndef LLVM_C_INITIALIZATION_H
|
||||||
#define LLVM_C_INITIALIZATION_H
|
#define LLVM_C_INITIALIZATION_H
|
||||||
|
|
||||||
#include "llvm-c/Core.h"
|
#include "llvm-c/Types.h"
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
#ifndef LLVM_C_LINKER_H
|
#ifndef LLVM_C_LINKER_H
|
||||||
#define LLVM_C_LINKER_H
|
#define LLVM_C_LINKER_H
|
||||||
|
|
||||||
#include "llvm-c/Core.h"
|
#include "llvm-c/Types.h"
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
#ifndef LLVM_C_OBJECT_H
|
#ifndef LLVM_C_OBJECT_H
|
||||||
#define LLVM_C_OBJECT_H
|
#define LLVM_C_OBJECT_H
|
||||||
|
|
||||||
#include "llvm-c/Core.h"
|
#include "llvm-c/Types.h"
|
||||||
#include "llvm/Config/llvm-config.h"
|
#include "llvm/Config/llvm-config.h"
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
@ -15,30 +15,12 @@
|
|||||||
#define LLVM_C_SUPPORT_H
|
#define LLVM_C_SUPPORT_H
|
||||||
|
|
||||||
#include "llvm/Support/DataTypes.h"
|
#include "llvm/Support/DataTypes.h"
|
||||||
|
#include "llvm-c/Types.h"
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
|
||||||
* @defgroup LLVMCSupportTypes Types and Enumerations
|
|
||||||
*
|
|
||||||
* @{
|
|
||||||
*/
|
|
||||||
|
|
||||||
typedef int LLVMBool;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Used to pass regions of memory through LLVM interfaces.
|
|
||||||
*
|
|
||||||
* @see llvm::MemoryBuffer
|
|
||||||
*/
|
|
||||||
typedef struct LLVMOpaqueMemoryBuffer *LLVMMemoryBufferRef;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @}
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This function permanently loads the dynamic library at the given path.
|
* This function permanently loads the dynamic library at the given path.
|
||||||
* It is safe to call this function multiple times for the same library.
|
* It is safe to call this function multiple times for the same library.
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
#ifndef LLVM_C_TARGET_H
|
#ifndef LLVM_C_TARGET_H
|
||||||
#define LLVM_C_TARGET_H
|
#define LLVM_C_TARGET_H
|
||||||
|
|
||||||
#include "llvm-c/Core.h"
|
#include "llvm-c/Types.h"
|
||||||
#include "llvm/Config/llvm-config.h"
|
#include "llvm/Config/llvm-config.h"
|
||||||
|
|
||||||
#if defined(_MSC_VER) && !defined(inline)
|
#if defined(_MSC_VER) && !defined(inline)
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
#ifndef LLVM_C_TARGETMACHINE_H
|
#ifndef LLVM_C_TARGETMACHINE_H
|
||||||
#define LLVM_C_TARGETMACHINE_H
|
#define LLVM_C_TARGETMACHINE_H
|
||||||
|
|
||||||
#include "llvm-c/Core.h"
|
#include "llvm-c/Types.h"
|
||||||
#include "llvm-c/Target.h"
|
#include "llvm-c/Target.h"
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
#ifndef LLVM_C_TRANSFORMS_IPO_H
|
#ifndef LLVM_C_TRANSFORMS_IPO_H
|
||||||
#define LLVM_C_TRANSFORMS_IPO_H
|
#define LLVM_C_TRANSFORMS_IPO_H
|
||||||
|
|
||||||
#include "llvm-c/Core.h"
|
#include "llvm-c/Types.h"
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
#ifndef LLVM_C_TRANSFORMS_PASSMANAGERBUILDER_H
|
#ifndef LLVM_C_TRANSFORMS_PASSMANAGERBUILDER_H
|
||||||
#define LLVM_C_TRANSFORMS_PASSMANAGERBUILDER_H
|
#define LLVM_C_TRANSFORMS_PASSMANAGERBUILDER_H
|
||||||
|
|
||||||
#include "llvm-c/Core.h"
|
#include "llvm-c/Types.h"
|
||||||
|
|
||||||
typedef struct LLVMOpaquePassManagerBuilder *LLVMPassManagerBuilderRef;
|
typedef struct LLVMOpaquePassManagerBuilder *LLVMPassManagerBuilderRef;
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
#ifndef LLVM_C_TRANSFORMS_SCALAR_H
|
#ifndef LLVM_C_TRANSFORMS_SCALAR_H
|
||||||
#define LLVM_C_TRANSFORMS_SCALAR_H
|
#define LLVM_C_TRANSFORMS_SCALAR_H
|
||||||
|
|
||||||
#include "llvm-c/Core.h"
|
#include "llvm-c/Types.h"
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
#ifndef LLVM_C_TRANSFORMS_VECTORIZE_H
|
#ifndef LLVM_C_TRANSFORMS_VECTORIZE_H
|
||||||
#define LLVM_C_TRANSFORMS_VECTORIZE_H
|
#define LLVM_C_TRANSFORMS_VECTORIZE_H
|
||||||
|
|
||||||
#include "llvm-c/Core.h"
|
#include "llvm-c/Types.h"
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
@ -51,4 +51,3 @@ void LLVMAddSLPVectorizePass(LLVMPassManagerRef PM);
|
|||||||
#endif /* defined(__cplusplus) */
|
#endif /* defined(__cplusplus) */
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
124
include/llvm-c/Types.h
Normal file
124
include/llvm-c/Types.h
Normal file
@ -0,0 +1,124 @@
|
|||||||
|
/*===-- llvm-c/Support.h - C Interface Types declarations ---------*- C -*-===*\
|
||||||
|
|* *|
|
||||||
|
|* The LLVM Compiler Infrastructure *|
|
||||||
|
|* *|
|
||||||
|
|* This file is distributed under the University of Illinois Open Source *|
|
||||||
|
|* License. See LICENSE.TXT for details. *|
|
||||||
|
|* *|
|
||||||
|
|*===----------------------------------------------------------------------===*|
|
||||||
|
|* *|
|
||||||
|
|* This file defines types used by the the C interface to LLVM. *|
|
||||||
|
|* *|
|
||||||
|
\*===----------------------------------------------------------------------===*/
|
||||||
|
|
||||||
|
#ifndef LLVM_C_TYPES_H
|
||||||
|
#define LLVM_C_TYPES_H
|
||||||
|
|
||||||
|
#include "llvm/Support/DataTypes.h"
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @defgroup LLVMCSupportTypes Types and Enumerations
|
||||||
|
*
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
typedef int LLVMBool;
|
||||||
|
|
||||||
|
/* Opaque types. */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* LLVM uses a polymorphic type hierarchy which C cannot represent, therefore
|
||||||
|
* parameters must be passed as base types. Despite the declared types, most
|
||||||
|
* of the functions provided operate only on branches of the type hierarchy.
|
||||||
|
* The declared parameter names are descriptive and specify which type is
|
||||||
|
* required. Additionally, each type hierarchy is documented along with the
|
||||||
|
* functions that operate upon it. For more detail, refer to LLVM's C++ code.
|
||||||
|
* If in doubt, refer to Core.cpp, which performs parameter downcasts in the
|
||||||
|
* form unwrap<RequiredType>(Param).
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Used to pass regions of memory through LLVM interfaces.
|
||||||
|
*
|
||||||
|
* @see llvm::MemoryBuffer
|
||||||
|
*/
|
||||||
|
typedef struct LLVMOpaqueMemoryBuffer *LLVMMemoryBufferRef;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The top-level container for all LLVM global data. See the LLVMContext class.
|
||||||
|
*/
|
||||||
|
typedef struct LLVMOpaqueContext *LLVMContextRef;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The top-level container for all other LLVM Intermediate Representation (IR)
|
||||||
|
* objects.
|
||||||
|
*
|
||||||
|
* @see llvm::Module
|
||||||
|
*/
|
||||||
|
typedef struct LLVMOpaqueModule *LLVMModuleRef;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Each value in the LLVM IR has a type, an LLVMTypeRef.
|
||||||
|
*
|
||||||
|
* @see llvm::Type
|
||||||
|
*/
|
||||||
|
typedef struct LLVMOpaqueType *LLVMTypeRef;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents an individual value in LLVM IR.
|
||||||
|
*
|
||||||
|
* This models llvm::Value.
|
||||||
|
*/
|
||||||
|
typedef struct LLVMOpaqueValue *LLVMValueRef;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents a basic block of instructions in LLVM IR.
|
||||||
|
*
|
||||||
|
* This models llvm::BasicBlock.
|
||||||
|
*/
|
||||||
|
typedef struct LLVMOpaqueBasicBlock *LLVMBasicBlockRef;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Represents an LLVM basic block builder.
|
||||||
|
*
|
||||||
|
* This models llvm::IRBuilder.
|
||||||
|
*/
|
||||||
|
typedef struct LLVMOpaqueBuilder *LLVMBuilderRef;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Interface used to provide a module to JIT or interpreter.
|
||||||
|
* This is now just a synonym for llvm::Module, but we have to keep using the
|
||||||
|
* different type to keep binary compatibility.
|
||||||
|
*/
|
||||||
|
typedef struct LLVMOpaqueModuleProvider *LLVMModuleProviderRef;
|
||||||
|
|
||||||
|
/** @see llvm::PassManagerBase */
|
||||||
|
typedef struct LLVMOpaquePassManager *LLVMPassManagerRef;
|
||||||
|
|
||||||
|
/** @see llvm::PassRegistry */
|
||||||
|
typedef struct LLVMOpaquePassRegistry *LLVMPassRegistryRef;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Used to get the users and usees of a Value.
|
||||||
|
*
|
||||||
|
* @see llvm::Use */
|
||||||
|
typedef struct LLVMOpaqueUse *LLVMUseRef;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see llvm::DiagnosticInfo
|
||||||
|
*/
|
||||||
|
typedef struct LLVMOpaqueDiagnosticInfo *LLVMDiagnosticInfoRef;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
@ -15,7 +15,6 @@
|
|||||||
#ifndef LLVM_IR_DIAGNOSTICINFO_H
|
#ifndef LLVM_IR_DIAGNOSTICINFO_H
|
||||||
#define LLVM_IR_DIAGNOSTICINFO_H
|
#define LLVM_IR_DIAGNOSTICINFO_H
|
||||||
|
|
||||||
#include "llvm-c/Core.h"
|
|
||||||
#include "llvm/ADT/ArrayRef.h"
|
#include "llvm/ADT/ArrayRef.h"
|
||||||
#include "llvm/IR/DebugLoc.h"
|
#include "llvm/IR/DebugLoc.h"
|
||||||
#include "llvm/IR/Module.h"
|
#include "llvm/IR/Module.h"
|
||||||
|
@ -15,7 +15,6 @@
|
|||||||
#ifndef LLVM_IR_LLVMCONTEXT_H
|
#ifndef LLVM_IR_LLVMCONTEXT_H
|
||||||
#define LLVM_IR_LLVMCONTEXT_H
|
#define LLVM_IR_LLVMCONTEXT_H
|
||||||
|
|
||||||
#include "llvm-c/Core.h"
|
|
||||||
#include "llvm/Support/CBindingWrapping.h"
|
#include "llvm/Support/CBindingWrapping.h"
|
||||||
#include "llvm/Support/Compiler.h"
|
#include "llvm/Support/Compiler.h"
|
||||||
#include "llvm/Support/Options.h"
|
#include "llvm/Support/Options.h"
|
||||||
|
@ -15,7 +15,6 @@
|
|||||||
#ifndef LLVM_IR_TYPE_H
|
#ifndef LLVM_IR_TYPE_H
|
||||||
#define LLVM_IR_TYPE_H
|
#define LLVM_IR_TYPE_H
|
||||||
|
|
||||||
#include "llvm-c/Core.h"
|
|
||||||
#include "llvm/ADT/APFloat.h"
|
#include "llvm/ADT/APFloat.h"
|
||||||
#include "llvm/ADT/SmallPtrSet.h"
|
#include "llvm/ADT/SmallPtrSet.h"
|
||||||
#include "llvm/Support/CBindingWrapping.h"
|
#include "llvm/Support/CBindingWrapping.h"
|
||||||
|
@ -25,7 +25,6 @@
|
|||||||
#ifndef LLVM_IR_USE_H
|
#ifndef LLVM_IR_USE_H
|
||||||
#define LLVM_IR_USE_H
|
#define LLVM_IR_USE_H
|
||||||
|
|
||||||
#include "llvm-c/Core.h"
|
|
||||||
#include "llvm/ADT/PointerIntPair.h"
|
#include "llvm/ADT/PointerIntPair.h"
|
||||||
#include "llvm/Support/CBindingWrapping.h"
|
#include "llvm/Support/CBindingWrapping.h"
|
||||||
#include "llvm/Support/Compiler.h"
|
#include "llvm/Support/Compiler.h"
|
||||||
|
@ -14,7 +14,6 @@
|
|||||||
#ifndef LLVM_IR_VALUE_H
|
#ifndef LLVM_IR_VALUE_H
|
||||||
#define LLVM_IR_VALUE_H
|
#define LLVM_IR_VALUE_H
|
||||||
|
|
||||||
#include "llvm-c/Core.h"
|
|
||||||
#include "llvm/ADT/iterator_range.h"
|
#include "llvm/ADT/iterator_range.h"
|
||||||
#include "llvm/IR/Use.h"
|
#include "llvm/IR/Use.h"
|
||||||
#include "llvm/Support/CBindingWrapping.h"
|
#include "llvm/Support/CBindingWrapping.h"
|
||||||
|
@ -17,7 +17,6 @@
|
|||||||
#ifndef LLVM_PASSREGISTRY_H
|
#ifndef LLVM_PASSREGISTRY_H
|
||||||
#define LLVM_PASSREGISTRY_H
|
#define LLVM_PASSREGISTRY_H
|
||||||
|
|
||||||
#include "llvm-c/Core.h"
|
|
||||||
#include "llvm/ADT/DenseMap.h"
|
#include "llvm/ADT/DenseMap.h"
|
||||||
#include "llvm/ADT/SmallPtrSet.h"
|
#include "llvm/ADT/SmallPtrSet.h"
|
||||||
#include "llvm/ADT/StringMap.h"
|
#include "llvm/ADT/StringMap.h"
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
#define LLVM_SUPPORT_CBINDINGWRAPPING_H
|
#define LLVM_SUPPORT_CBINDINGWRAPPING_H
|
||||||
|
|
||||||
#include "llvm/Support/Casting.h"
|
#include "llvm/Support/Casting.h"
|
||||||
|
#include "llvm-c/Types.h"
|
||||||
|
|
||||||
#define DEFINE_SIMPLE_CONVERSION_FUNCTIONS(ty, ref) \
|
#define DEFINE_SIMPLE_CONVERSION_FUNCTIONS(ty, ref) \
|
||||||
inline ty *unwrap(ref P) { \
|
inline ty *unwrap(ref P) { \
|
||||||
|
@ -14,7 +14,6 @@
|
|||||||
#ifndef LLVM_SUPPORT_MEMORYBUFFER_H
|
#ifndef LLVM_SUPPORT_MEMORYBUFFER_H
|
||||||
#define LLVM_SUPPORT_MEMORYBUFFER_H
|
#define LLVM_SUPPORT_MEMORYBUFFER_H
|
||||||
|
|
||||||
#include "llvm-c/Support.h"
|
|
||||||
#include "llvm/ADT/Twine.h"
|
#include "llvm/ADT/Twine.h"
|
||||||
#include "llvm/Support/CBindingWrapping.h"
|
#include "llvm/Support/CBindingWrapping.h"
|
||||||
#include "llvm/Support/DataTypes.h"
|
#include "llvm/Support/DataTypes.h"
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
#include "llvm-c/BitReader.h"
|
#include "llvm-c/BitReader.h"
|
||||||
|
#include "llvm-c/Core.h"
|
||||||
#include "llvm/Bitcode/ReaderWriter.h"
|
#include "llvm/Bitcode/ReaderWriter.h"
|
||||||
#include "llvm/IR/DiagnosticPrinter.h"
|
#include "llvm/IR/DiagnosticPrinter.h"
|
||||||
#include "llvm/IR/LLVMContext.h"
|
#include "llvm/IR/LLVMContext.h"
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
#include "llvm/Support/ErrorHandling.h"
|
#include "llvm/Support/ErrorHandling.h"
|
||||||
#include "llvm-c/Core.h"
|
#include "llvm-c/ErrorHandling.h"
|
||||||
#include "llvm/ADT/SmallVector.h"
|
#include "llvm/ADT/SmallVector.h"
|
||||||
#include "llvm/ADT/Twine.h"
|
#include "llvm/ADT/Twine.h"
|
||||||
#include "llvm/Config/config.h"
|
#include "llvm/Config/config.h"
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
#include "llvm/Support/PrettyStackTrace.h"
|
#include "llvm/Support/PrettyStackTrace.h"
|
||||||
#include "llvm-c/Core.h"
|
#include "llvm-c/ErrorHandling.h"
|
||||||
#include "llvm/ADT/SmallString.h"
|
#include "llvm/ADT/SmallString.h"
|
||||||
#include "llvm/Config/config.h" // Get autoconf configuration settings
|
#include "llvm/Config/config.h" // Get autoconf configuration settings
|
||||||
#include "llvm/Support/Compiler.h"
|
#include "llvm/Support/Compiler.h"
|
||||||
|
@ -13,6 +13,7 @@
|
|||||||
\*===----------------------------------------------------------------------===*/
|
\*===----------------------------------------------------------------------===*/
|
||||||
|
|
||||||
#include "llvm-c-test.h"
|
#include "llvm-c-test.h"
|
||||||
|
#include "llvm-c/Core.h"
|
||||||
#include "llvm-c/Object.h"
|
#include "llvm-c/Object.h"
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
|
|
||||||
#include "OrcTestCommon.h"
|
#include "OrcTestCommon.h"
|
||||||
#include "gtest/gtest.h"
|
#include "gtest/gtest.h"
|
||||||
|
#include "llvm-c/Core.h"
|
||||||
#include "llvm-c/OrcBindings.h"
|
#include "llvm-c/OrcBindings.h"
|
||||||
#include "llvm-c/Target.h"
|
#include "llvm-c/Target.h"
|
||||||
#include "llvm-c/TargetMachine.h"
|
#include "llvm-c/TargetMachine.h"
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
#include "llvm/IR/LLVMContext.h"
|
#include "llvm/IR/LLVMContext.h"
|
||||||
#include "llvm/IR/Module.h"
|
#include "llvm/IR/Module.h"
|
||||||
#include "llvm/Support/SourceMgr.h"
|
#include "llvm/Support/SourceMgr.h"
|
||||||
|
#include "llvm-c/Core.h"
|
||||||
#include "gtest/gtest.h"
|
#include "gtest/gtest.h"
|
||||||
|
|
||||||
namespace llvm {
|
namespace llvm {
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
#include "llvm/IR/Module.h"
|
#include "llvm/IR/Module.h"
|
||||||
#include "llvm/Linker/Linker.h"
|
#include "llvm/Linker/Linker.h"
|
||||||
#include "llvm/Support/SourceMgr.h"
|
#include "llvm/Support/SourceMgr.h"
|
||||||
|
#include "llvm-c/Core.h"
|
||||||
#include "llvm-c/Linker.h"
|
#include "llvm-c/Linker.h"
|
||||||
#include "gtest/gtest.h"
|
#include "gtest/gtest.h"
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user