2014-10-17 00:48:02 +02:00
|
|
|
//===- DIBuilderBindings.h - Bindings for DIBuilder -------------*- 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 C bindings for the DIBuilder class.
|
|
|
|
//
|
|
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
|
|
|
|
#ifndef LLVM_BINDINGS_GO_LLVM_DIBUILDERBINDINGS_H
|
|
|
|
#define LLVM_BINDINGS_GO_LLVM_DIBUILDERBINDINGS_H
|
|
|
|
|
2014-12-13 03:25:49 +01:00
|
|
|
#include "IRBindings.h"
|
2015-02-13 10:14:30 +01:00
|
|
|
#include "llvm-c/Core.h"
|
2014-10-17 00:48:02 +02:00
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
|
|
|
// FIXME: These bindings shouldn't be Go-specific and should eventually move to
|
|
|
|
// a (somewhat) less stable collection of C APIs for use in creating bindings of
|
|
|
|
// LLVM in other languages.
|
|
|
|
|
|
|
|
typedef struct LLVMOpaqueDIBuilder *LLVMDIBuilderRef;
|
|
|
|
|
|
|
|
LLVMDIBuilderRef LLVMNewDIBuilder(LLVMModuleRef m);
|
|
|
|
|
|
|
|
void LLVMDIBuilderDestroy(LLVMDIBuilderRef d);
|
|
|
|
void LLVMDIBuilderFinalize(LLVMDIBuilderRef d);
|
|
|
|
|
2014-12-13 03:25:49 +01:00
|
|
|
LLVMMetadataRef
|
|
|
|
LLVMDIBuilderCreateCompileUnit(LLVMDIBuilderRef D, unsigned Language,
|
|
|
|
const char *File, const char *Dir,
|
|
|
|
const char *Producer, int Optimized,
|
|
|
|
const char *Flags, unsigned RuntimeVersion);
|
|
|
|
|
|
|
|
LLVMMetadataRef LLVMDIBuilderCreateFile(LLVMDIBuilderRef D, const char *File,
|
|
|
|
const char *Dir);
|
|
|
|
|
|
|
|
LLVMMetadataRef LLVMDIBuilderCreateLexicalBlock(LLVMDIBuilderRef D,
|
|
|
|
LLVMMetadataRef Scope,
|
|
|
|
LLVMMetadataRef File,
|
|
|
|
unsigned Line, unsigned Column);
|
|
|
|
|
|
|
|
LLVMMetadataRef LLVMDIBuilderCreateLexicalBlockFile(LLVMDIBuilderRef D,
|
|
|
|
LLVMMetadataRef Scope,
|
|
|
|
LLVMMetadataRef File,
|
|
|
|
unsigned Discriminator);
|
|
|
|
|
|
|
|
LLVMMetadataRef LLVMDIBuilderCreateFunction(
|
|
|
|
LLVMDIBuilderRef D, LLVMMetadataRef Scope, const char *Name,
|
|
|
|
const char *LinkageName, LLVMMetadataRef File, unsigned Line,
|
|
|
|
LLVMMetadataRef CompositeType, int IsLocalToUnit, int IsDefinition,
|
2015-11-05 23:03:56 +01:00
|
|
|
unsigned ScopeLine, unsigned Flags, int IsOptimized);
|
2014-10-17 00:48:02 +02:00
|
|
|
|
2015-09-06 04:22:15 +02:00
|
|
|
LLVMMetadataRef
|
|
|
|
LLVMDIBuilderCreateAutoVariable(LLVMDIBuilderRef D, LLVMMetadataRef Scope,
|
|
|
|
const char *Name, LLVMMetadataRef File,
|
|
|
|
unsigned Line, LLVMMetadataRef Ty,
|
|
|
|
int AlwaysPreserve, unsigned Flags);
|
|
|
|
|
|
|
|
LLVMMetadataRef LLVMDIBuilderCreateParameterVariable(
|
|
|
|
LLVMDIBuilderRef D, LLVMMetadataRef Scope, const char *Name, unsigned ArgNo,
|
2014-12-13 03:25:49 +01:00
|
|
|
LLVMMetadataRef File, unsigned Line, LLVMMetadataRef Ty, int AlwaysPreserve,
|
2015-09-06 04:22:15 +02:00
|
|
|
unsigned Flags);
|
2014-10-17 00:48:02 +02:00
|
|
|
|
2014-12-13 03:25:49 +01:00
|
|
|
LLVMMetadataRef LLVMDIBuilderCreateBasicType(LLVMDIBuilderRef D,
|
|
|
|
const char *Name,
|
|
|
|
uint64_t SizeInBits,
|
|
|
|
uint64_t AlignInBits,
|
|
|
|
unsigned Encoding);
|
|
|
|
|
|
|
|
LLVMMetadataRef LLVMDIBuilderCreatePointerType(LLVMDIBuilderRef D,
|
|
|
|
LLVMMetadataRef PointeeType,
|
|
|
|
uint64_t SizeInBits,
|
|
|
|
uint64_t AlignInBits,
|
|
|
|
const char *Name);
|
|
|
|
|
|
|
|
LLVMMetadataRef
|
|
|
|
LLVMDIBuilderCreateSubroutineType(LLVMDIBuilderRef D, LLVMMetadataRef File,
|
|
|
|
LLVMMetadataRef ParameterTypes);
|
|
|
|
|
|
|
|
LLVMMetadataRef LLVMDIBuilderCreateStructType(
|
|
|
|
LLVMDIBuilderRef D, LLVMMetadataRef Scope, const char *Name,
|
|
|
|
LLVMMetadataRef File, unsigned Line, uint64_t SizeInBits,
|
|
|
|
uint64_t AlignInBits, unsigned Flags, LLVMMetadataRef DerivedFrom,
|
|
|
|
LLVMMetadataRef ElementTypes);
|
|
|
|
|
2015-03-02 13:27:04 +01:00
|
|
|
LLVMMetadataRef LLVMDIBuilderCreateReplaceableCompositeType(
|
|
|
|
LLVMDIBuilderRef D, unsigned Tag, const char *Name, LLVMMetadataRef Scope,
|
|
|
|
LLVMMetadataRef File, unsigned Line, unsigned RuntimeLang,
|
|
|
|
uint64_t SizeInBits, uint64_t AlignInBits, unsigned Flags);
|
|
|
|
|
2014-12-13 03:25:49 +01:00
|
|
|
LLVMMetadataRef
|
|
|
|
LLVMDIBuilderCreateMemberType(LLVMDIBuilderRef D, LLVMMetadataRef Scope,
|
|
|
|
const char *Name, LLVMMetadataRef File,
|
|
|
|
unsigned Line, uint64_t SizeInBits,
|
|
|
|
uint64_t AlignInBits, uint64_t OffsetInBits,
|
|
|
|
unsigned Flags, LLVMMetadataRef Ty);
|
|
|
|
|
|
|
|
LLVMMetadataRef LLVMDIBuilderCreateArrayType(LLVMDIBuilderRef D,
|
|
|
|
uint64_t SizeInBits,
|
|
|
|
uint64_t AlignInBits,
|
|
|
|
LLVMMetadataRef ElementType,
|
|
|
|
LLVMMetadataRef Subscripts);
|
|
|
|
|
|
|
|
LLVMMetadataRef LLVMDIBuilderCreateTypedef(LLVMDIBuilderRef D,
|
|
|
|
LLVMMetadataRef Ty, const char *Name,
|
|
|
|
LLVMMetadataRef File, unsigned Line,
|
|
|
|
LLVMMetadataRef Context);
|
|
|
|
|
|
|
|
LLVMMetadataRef LLVMDIBuilderGetOrCreateSubrange(LLVMDIBuilderRef D, int64_t Lo,
|
|
|
|
int64_t Count);
|
|
|
|
|
|
|
|
LLVMMetadataRef LLVMDIBuilderGetOrCreateArray(LLVMDIBuilderRef D,
|
|
|
|
LLVMMetadataRef *Data,
|
|
|
|
size_t Length);
|
|
|
|
|
|
|
|
LLVMMetadataRef LLVMDIBuilderGetOrCreateTypeArray(LLVMDIBuilderRef D,
|
|
|
|
LLVMMetadataRef *Data,
|
|
|
|
size_t Length);
|
|
|
|
|
|
|
|
LLVMMetadataRef LLVMDIBuilderCreateExpression(LLVMDIBuilderRef Dref,
|
|
|
|
int64_t *Addr, size_t Length);
|
2014-10-17 00:48:02 +02:00
|
|
|
|
|
|
|
LLVMValueRef LLVMDIBuilderInsertDeclareAtEnd(LLVMDIBuilderRef D,
|
|
|
|
LLVMValueRef Storage,
|
2014-12-13 03:25:49 +01:00
|
|
|
LLVMMetadataRef VarInfo,
|
|
|
|
LLVMMetadataRef Expr,
|
2014-10-17 00:48:02 +02:00
|
|
|
LLVMBasicBlockRef Block);
|
|
|
|
|
2014-12-13 03:25:49 +01:00
|
|
|
LLVMValueRef LLVMDIBuilderInsertValueAtEnd(LLVMDIBuilderRef D, LLVMValueRef Val,
|
2014-11-25 22:05:04 +01:00
|
|
|
uint64_t Offset,
|
2014-12-13 03:25:49 +01:00
|
|
|
LLVMMetadataRef VarInfo,
|
|
|
|
LLVMMetadataRef Expr,
|
2014-11-25 22:05:04 +01:00
|
|
|
LLVMBasicBlockRef Block);
|
|
|
|
|
2014-10-17 00:48:02 +02:00
|
|
|
#ifdef __cplusplus
|
2014-12-13 03:25:49 +01:00
|
|
|
} // extern "C"
|
2014-10-17 00:48:02 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif
|