llvm_c_ext/include/llvm-c-ext/DIBuilder.h
changeset 32 1378060fadd6
parent 26 f6379df4b5ea
child 54 a288aced3dd1
equal deleted inserted replaced
31:5280c546bd37 32:1378060fadd6
    17  */
    17  */
    18 
    18 
    19 #ifndef LLVM_BINDINGS_GO_LLVM_DIBUILDERBINDINGS_H
    19 #ifndef LLVM_BINDINGS_GO_LLVM_DIBUILDERBINDINGS_H
    20 #define LLVM_BINDINGS_GO_LLVM_DIBUILDERBINDINGS_H
    20 #define LLVM_BINDINGS_GO_LLVM_DIBUILDERBINDINGS_H
    21 
    21 
       
    22 #include <llvm-c/Core.h>
    22 #include <llvm-c-ext/CoreExt.h>
    23 #include <llvm-c-ext/CoreExt.h>
    23 #include "llvm-c/Core.h"
       
    24 
    24 
    25 #ifdef __cplusplus
    25 #ifdef __cplusplus
    26 extern "C" {
    26 extern "C" {
    27 #endif
    27 #endif
    28 
    28 
    35 LLVMDIBuilderRef LLVMNewDIBuilder(LLVMModuleRef m);
    35 LLVMDIBuilderRef LLVMNewDIBuilder(LLVMModuleRef m);
    36 
    36 
    37 void LLVMDIBuilderDestroy(LLVMDIBuilderRef d);
    37 void LLVMDIBuilderDestroy(LLVMDIBuilderRef d);
    38 void LLVMDIBuilderFinalize(LLVMDIBuilderRef d);
    38 void LLVMDIBuilderFinalize(LLVMDIBuilderRef d);
    39 
    39 
       
    40 /**
       
    41  * A CompileUnit provides an anchor for all debugging
       
    42  * information generated during this instance of compilation.
       
    43  * \param Lang          Source programming language, eg. LLVM_DW_LANG_C99.
       
    44  *                      User-defined languages should start at 0x8000.
       
    45  * \param File          File name
       
    46  * \param Dir           Directory
       
    47  * \param Producer      Identify the producer of debugging information
       
    48  *                      and code.  Usually this is a compiler
       
    49  *                      version string.
       
    50  * \param isOptimized   A boolean flag which indicates whether optimization
       
    51  *                      is enabled or not.
       
    52  * \param Flags         This string lists command line options. This
       
    53  *                      string is directly embedded in debug info
       
    54  *                      output which may be used by a tool
       
    55  *                      analyzing generated debugging information.
       
    56  * \param RuntimeVersion This indicates runtime version for languages like
       
    57  *                      Objective-C.
       
    58  *
       
    59  * \see LLVMDWARFLamguage
       
    60  * \see llvm::DIBuilder::createCompileUnit()
       
    61  */
    40 LLVMMetadataRef
    62 LLVMMetadataRef
    41 LLVMDIBuilderCreateCompileUnit(LLVMDIBuilderRef D, unsigned Language,
    63 LLVMDIBuilderCreateCompileUnit(LLVMDIBuilderRef D, unsigned Language,
    42                                const char *File, const char *Dir,
    64                                const char *File, const char *Dir,
    43                                const char *Producer, int Optimized,
    65                                const char *Producer, int Optimized,
    44                                const char *Flags, unsigned RuntimeVersion);
    66                                const char *Flags, unsigned RuntimeVersion);
    71     LLVMDIBuilderRef Dref, LLVMMetadataRef Scope,
    93     LLVMDIBuilderRef Dref, LLVMMetadataRef Scope,
    72     const char *Name, LLVMMetadataRef File, unsigned Line, LLVMMetadataRef Ty,
    94     const char *Name, LLVMMetadataRef File, unsigned Line, LLVMMetadataRef Ty,
    73     int AlwaysPreserve, unsigned Flags, unsigned ArgNo);
    95     int AlwaysPreserve, unsigned Flags, unsigned ArgNo);
    74 
    96 
    75 
    97 
       
    98 /**
       
    99  * Create debugging information entry for a basic type.
       
   100  *
       
   101  * \param Name        Type name.
       
   102  * \param SizeInBits  Size of the type.
       
   103  * \param AlignInBits Type alignment.
       
   104  * \param Encoding    DWARF encoding code, e.g. LLVM_DW_ATE_float.
       
   105  */
    76 LLVMMetadataRef LLVMDIBuilderCreateBasicType(LLVMDIBuilderRef D,
   106 LLVMMetadataRef LLVMDIBuilderCreateBasicType(LLVMDIBuilderRef D,
    77                                              const char *Name,
   107                                              const char *Name,
    78                                              uint64_t SizeInBits,
   108                                              uint64_t SizeInBits,
    79                                              uint64_t AlignInBits,
   109                                              uint64_t AlignInBits,
    80                                              unsigned Encoding);
   110                                              unsigned Encoding);
   134 
   164 
   135 LLVMValueRef LLVMDIBuilderInsertDeclareAtEnd(LLVMDIBuilderRef D,
   165 LLVMValueRef LLVMDIBuilderInsertDeclareAtEnd(LLVMDIBuilderRef D,
   136                                              LLVMValueRef Storage,
   166                                              LLVMValueRef Storage,
   137                                              LLVMMetadataRef VarInfo,
   167                                              LLVMMetadataRef VarInfo,
   138                                              LLVMMetadataRef Expr,
   168                                              LLVMMetadataRef Expr,
       
   169 											 LLVMMetadataRef Location,
   139                                              LLVMBasicBlockRef Block);
   170                                              LLVMBasicBlockRef Block);
   140 
   171 
   141 LLVMValueRef LLVMDIBuilderInsertValueAtEnd(LLVMDIBuilderRef D, LLVMValueRef Val,
   172 LLVMValueRef LLVMDIBuilderInsertValueAtEnd(LLVMDIBuilderRef D, LLVMValueRef Val,
   142                                            uint64_t Offset,
   173                                            uint64_t Offset,
   143                                            LLVMMetadataRef VarInfo,
   174                                            LLVMMetadataRef VarInfo,
   144                                            LLVMMetadataRef Expr,
   175                                            LLVMMetadataRef Expr,
       
   176 										   LLVMMetadataRef Location,
   145                                            LLVMBasicBlockRef Block);
   177                                            LLVMBasicBlockRef Block);
   146 
   178 
   147 #ifdef __cplusplus
   179 #ifdef __cplusplus
   148 } // extern "C"
   180 } // extern "C"
   149 #endif
   181 #endif