LLVM_C_EXTERN_C_BEGIN
+/**
+ * @defgroup LLVMCCoreComdat Comdats
+ * @ingroup LLVMCCore
+ *
+ * @{
+ */
+
typedef enum {
LLVMAnyComdatSelectionKind, ///< The linker may choose any COMDAT.
LLVMExactMatchComdatSelectionKind, ///< The data referenced by the COMDAT must
*/
void LLVMSetComdatSelectionKind(LLVMComdatRef C, LLVMComdatSelectionKind Kind);
+/**
+ * @}
+ */
+
LLVM_C_EXTERN_C_END
#endif
/**
* @defgroup LLVMCCorePassRegistry Pass Registry
+ * @ingroup LLVMCCore
*
* @{
*/
/**
* @defgroup LLVMCCorePassManagers Pass Managers
+ * @ingroup LLVMCCore
*
* @{
*/
LLVM_C_EXTERN_C_BEGIN
/**
+ * @defgroup LLVMCCoreDebugInfo Debug Information
+ * @ingroup LLVMCCore
+ *
+ * @{
+ */
+
+/**
* Debug info flags.
*/
typedef enum {
*/
LLVMMetadataKind LLVMGetMetadataKind(LLVMMetadataRef Metadata);
+/**
+ * @}
+ */
+
LLVM_C_EXTERN_C_END
#endif
#endif
/**
+ * @addtogroup LLVMCDisassembler
+ *
+ * @{
+ */
+
+/**
* An opaque reference to a disassembler context.
*/
typedef void *LLVMDisasmContextRef;
/* The output reference is to a C++ symbol name. */
#define LLVMDisassembler_ReferenceType_DeMangled_Name 9
+/**
+ * @}
+ */
+
#endif
LLVM_C_EXTERN_C_BEGIN
+/**
+ * @defgroup LLVMCError Error Handling
+ * @ingroup LLVMC
+ *
+ * @{
+ */
+
#define LLVMErrorSuccess 0
/**
*/
LLVMErrorRef LLVMCreateStringError(const char *ErrMsg);
+/**
+ * @}
+ */
+
LLVM_C_EXTERN_C_END
#endif
LLVM_C_EXTERN_C_BEGIN
+/**
+ * @addtogroup LLVMCError
+ *
+ * @{
+ */
+
typedef void (*LLVMFatalErrorHandler)(const char *Reason);
/**
*/
void LLVMEnablePrettyStackTrace(void);
+/**
+ * @}
+ */
+
LLVM_C_EXTERN_C_END
#endif
LLVM_C_EXTERN_C_BEGIN
/**
+ * @defgroup LLVMCCoreIRReader IR Reader
+ * @ingroup LLVMCCore
+ *
+ * @{
+ */
+
+/**
* Read LLVM IR from a memory buffer and convert it into an in-memory Module
* object. Returns 0 on success.
* Optionally returns a human-readable description of any errors that
LLVMMemoryBufferRef MemBuf, LLVMModuleRef *OutM,
char **OutMessage);
+/**
+ * @}
+ */
+
LLVM_C_EXTERN_C_END
#endif
LLVM_C_EXTERN_C_BEGIN
/**
+ * @defgroup LLVMCExecutionEngineLLJIT LLJIT
+ * @ingroup LLVMCExecutionEngine
+ *
+ * @{
+ */
+
+/**
* A function for constructing an ObjectLinkingLayer instance to be used
* by an LLJIT instance.
*
*/
const char *LLVMOrcLLJITGetDataLayoutStr(LLVMOrcLLJITRef J);
+/**
+ * @}
+ */
+
LLVM_C_EXTERN_C_END
#endif /* LLVM_C_LLJIT_H */
LLVM_C_EXTERN_C_BEGIN
+/**
+ * @defgroup LLVMCCoreLinker Linker
+ * @ingroup LLVMCCore
+ *
+ * @{
+ */
+
/* This enum is provided for backwards-compatibility only. It has no effect. */
typedef enum {
LLVMLinkerDestroySource = 0, /* This is the default behavior. */
LLVM_C_EXTERN_C_END
+/**
+ * @}
+ */
+
#endif
LLVM_C_EXTERN_C_BEGIN
/**
+ * @defgroup LLVMCExecutionEngineORC On-Request-Compilation
+ * @ingroup LLVMCExecutionEngine
+ *
+ * @{
+ */
+
+/**
* Represents an address in the executor process.
*/
typedef uint64_t LLVMOrcJITTargetAddress;
LLVMErrorRef LLVMOrcDumpObjects_CallOperator(LLVMOrcDumpObjectsRef DumpObjects,
LLVMMemoryBufferRef *ObjBuffer);
+/**
+ * @}
+ */
+
LLVM_C_EXTERN_C_END
#endif /* LLVM_C_ORC_H */
LLVM_C_EXTERN_C_BEGIN
/**
+ * @defgroup LLVMCExecutionEngineORCEE ExecutionEngine-based ORC Utils
+ * @ingroup LLVMCExecutionEngine
+ *
+ * @{
+ */
+
+/**
* Create a RTDyldObjectLinkingLayer instance using the standard
* SectionMemoryManager for memory management.
*/
LLVMOrcObjectLayerRef RTDyldObjLinkingLayer,
LLVMJITEventListenerRef Listener);
+/**
+ * @}
+ */
+
LLVM_C_EXTERN_C_END
#endif /* LLVM_C_ORCEE_H */
LLVM_C_EXTERN_C_BEGIN
/**
+ * @addtogroup LLVMCCore
+ *
+ * @{
+ */
+
+/**
* This function permanently loads the dynamic library at the given path.
* It is safe to call this function multiple times for the same library.
*
*/
void LLVMAddSymbol(const char *symbolName, void *symbolValue);
+/**
+ * @}
+ */
+
LLVM_C_EXTERN_C_END
#endif
LLVM_C_EXTERN_C_BEGIN
+/**
+ * @addtogroup LLVMCTarget
+ *
+ * @{
+ */
+
typedef struct LLVMOpaqueTargetMachine *LLVMTargetMachineRef;
typedef struct LLVMTarget *LLVMTargetRef;
/** Adds the target-specific analysis passes to the pass manager. */
void LLVMAddAnalysisPasses(LLVMTargetMachineRef T, LLVMPassManagerRef PM);
+/**
+ * @}
+ */
+
LLVM_C_EXTERN_C_END
#endif
#include "llvm-c/TargetMachine.h"
#include "llvm-c/Types.h"
+/**
+ * @defgroup LLVMCCoreNewPM New Pass Manager
+ * @ingroup LLVMCCore
+ *
+ * @{
+ */
+
LLVM_C_EXTERN_C_BEGIN
/**
*/
void LLVMDisposePassBuilderOptions(LLVMPassBuilderOptionsRef Options);
+/**
+ * @}
+ */
+
LLVM_C_EXTERN_C_END
#endif // LLVM_C_TRANSFORMS_PASSBUILDER_H