author | Jan Vrany <jan.vrany@fit.cvut.cz> |
Wed, 27 Jan 2016 14:20:58 +0000 | |
changeset 54 | a288aced3dd1 |
parent 32 | 1378060fadd6 |
child 79 | 6d6e5a3ec6b1 |
permissions | -rw-r--r-- |
26
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
1 |
//===- DIBuilderBindings.cpp - Bindings for DIBuilder ---------------------===// |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
2 |
// |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
3 |
// The LLVM Compiler Infrastructure |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
4 |
// |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
5 |
// This file is distributed under the University of Illinois Open Source |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
6 |
// License. See LICENSE.TXT for details. |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
7 |
// |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
8 |
//===----------------------------------------------------------------------===// |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
9 |
// |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
10 |
// This file defines C bindings for the DIBuilder class. |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
11 |
// |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
12 |
//===----------------------------------------------------------------------===// |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
13 |
|
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
14 |
/* |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
15 |
* Shamelessly based on DIBuilderBindings.cpp from LLVM's GO bindings. The original |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
16 |
* file could be found at bindings/go/llvm/DIBuilderBindings.cpp in LLVM source tree. |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
17 |
*/ |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
18 |
|
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
19 |
#include <llvm-c-ext/CoreExt.h> |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
20 |
#include <llvm-c-ext/DIBuilder.h> |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
21 |
#include "llvm/IR/DIBuilder.h" |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
22 |
#include "llvm/IR/IRBuilder.h" |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
23 |
#include "llvm/IR/Module.h" |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
24 |
|
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
25 |
|
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
26 |
|
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
27 |
using namespace llvm; |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
28 |
|
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
29 |
DEFINE_SIMPLE_CONVERSION_FUNCTIONS(DIBuilder, LLVMDIBuilderRef) |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
30 |
|
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
31 |
LLVMDIBuilderRef LLVMNewDIBuilder(LLVMModuleRef mref) { |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
32 |
Module *m = unwrap(mref); |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
33 |
return wrap(new DIBuilder(*m)); |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
34 |
} |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
35 |
|
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
36 |
void LLVMDIBuilderDestroy(LLVMDIBuilderRef dref) { |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
37 |
DIBuilder *d = unwrap(dref); |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
38 |
delete d; |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
39 |
} |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
40 |
|
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
41 |
void LLVMDIBuilderFinalize(LLVMDIBuilderRef dref) { unwrap(dref)->finalize(); } |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
42 |
|
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
43 |
LLVMMetadataRef LLVMDIBuilderCreateCompileUnit(LLVMDIBuilderRef Dref, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
44 |
unsigned Lang, const char *File, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
45 |
const char *Dir, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
46 |
const char *Producer, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
47 |
int Optimized, const char *Flags, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
48 |
unsigned RuntimeVersion) { |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
49 |
DIBuilder *D = unwrap(Dref); |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
50 |
return wrap(D->createCompileUnit(Lang, File, Dir, Producer, Optimized, Flags, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
51 |
RuntimeVersion)); |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
52 |
} |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
53 |
|
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
54 |
LLVMMetadataRef LLVMDIBuilderCreateFile(LLVMDIBuilderRef Dref, const char *File, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
55 |
const char *Dir) { |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
56 |
DIBuilder *D = unwrap(Dref); |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
57 |
return wrap(D->createFile(File, Dir)); |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
58 |
} |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
59 |
|
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
60 |
LLVMMetadataRef LLVMDIBuilderCreateLexicalBlock(LLVMDIBuilderRef Dref, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
61 |
LLVMMetadataRef Scope, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
62 |
LLVMMetadataRef File, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
63 |
unsigned Line, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
64 |
unsigned Column) { |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
65 |
DIBuilder *D = unwrap(Dref); |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
66 |
auto *LB = D->createLexicalBlock(unwrap<DILocalScope>(Scope), |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
67 |
unwrap<DIFile>(File), Line, Column); |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
68 |
return wrap(LB); |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
69 |
} |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
70 |
|
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
71 |
LLVMMetadataRef LLVMDIBuilderCreateLexicalBlockFile(LLVMDIBuilderRef Dref, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
72 |
LLVMMetadataRef Scope, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
73 |
LLVMMetadataRef File, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
74 |
unsigned Discriminator) { |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
75 |
DIBuilder *D = unwrap(Dref); |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
76 |
return wrap(D->createLexicalBlockFile(unwrap<DILocalScope>(Scope), |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
77 |
unwrap<DIFile>(File), Discriminator)); |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
78 |
} |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
79 |
|
54
a288aced3dd1
LLVM C API Extensions: Fixed DIBuilerCreateFunction() and DIBuilderCreateSubroutineType() for LLVM 3.9
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
80 |
#if (LLVM_VERSION_MAJOR <= 3) && (LLVM_VERSION_MINOR <= 8) |
26
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
81 |
LLVMMetadataRef LLVMDIBuilderCreateFunction( |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
82 |
LLVMDIBuilderRef Dref, LLVMMetadataRef Scope, const char *Name, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
83 |
const char *LinkageName, LLVMMetadataRef File, unsigned Line, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
84 |
LLVMMetadataRef CompositeType, int IsLocalToUnit, int IsDefinition, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
85 |
unsigned ScopeLine, unsigned Flags, int IsOptimized, LLVMValueRef Func) { |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
86 |
DIBuilder *D = unwrap(Dref); |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
87 |
return wrap(D->createFunction(unwrap<DIScope>(Scope), Name, LinkageName, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
88 |
File ? unwrap<DIFile>(File) : nullptr, Line, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
89 |
unwrap<DISubroutineType>(CompositeType), |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
90 |
IsLocalToUnit, IsDefinition, ScopeLine, Flags, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
91 |
IsOptimized, unwrap<Function>(Func))); |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
92 |
} |
54
a288aced3dd1
LLVM C API Extensions: Fixed DIBuilerCreateFunction() and DIBuilderCreateSubroutineType() for LLVM 3.9
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
93 |
#else |
a288aced3dd1
LLVM C API Extensions: Fixed DIBuilerCreateFunction() and DIBuilderCreateSubroutineType() for LLVM 3.9
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
94 |
LLVMMetadataRef LLVMDIBuilderCreateFunction( |
a288aced3dd1
LLVM C API Extensions: Fixed DIBuilerCreateFunction() and DIBuilderCreateSubroutineType() for LLVM 3.9
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
95 |
LLVMDIBuilderRef Dref, LLVMMetadataRef Scope, const char *Name, |
a288aced3dd1
LLVM C API Extensions: Fixed DIBuilerCreateFunction() and DIBuilderCreateSubroutineType() for LLVM 3.9
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
96 |
const char *LinkageName, LLVMMetadataRef File, unsigned Line, |
a288aced3dd1
LLVM C API Extensions: Fixed DIBuilerCreateFunction() and DIBuilderCreateSubroutineType() for LLVM 3.9
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
97 |
LLVMMetadataRef CompositeType, int IsLocalToUnit, int IsDefinition, |
a288aced3dd1
LLVM C API Extensions: Fixed DIBuilerCreateFunction() and DIBuilderCreateSubroutineType() for LLVM 3.9
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
98 |
unsigned ScopeLine, unsigned Flags, int IsOptimized) { |
a288aced3dd1
LLVM C API Extensions: Fixed DIBuilerCreateFunction() and DIBuilderCreateSubroutineType() for LLVM 3.9
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
99 |
DIBuilder *D = unwrap(Dref); |
a288aced3dd1
LLVM C API Extensions: Fixed DIBuilerCreateFunction() and DIBuilderCreateSubroutineType() for LLVM 3.9
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
100 |
return wrap(D->createFunction(unwrap<DIScope>(Scope), Name, LinkageName, |
a288aced3dd1
LLVM C API Extensions: Fixed DIBuilerCreateFunction() and DIBuilderCreateSubroutineType() for LLVM 3.9
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
101 |
File ? unwrap<DIFile>(File) : nullptr, Line, |
a288aced3dd1
LLVM C API Extensions: Fixed DIBuilerCreateFunction() and DIBuilderCreateSubroutineType() for LLVM 3.9
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
102 |
unwrap<DISubroutineType>(CompositeType), |
a288aced3dd1
LLVM C API Extensions: Fixed DIBuilerCreateFunction() and DIBuilderCreateSubroutineType() for LLVM 3.9
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
103 |
IsLocalToUnit, IsDefinition, ScopeLine, Flags, |
a288aced3dd1
LLVM C API Extensions: Fixed DIBuilerCreateFunction() and DIBuilderCreateSubroutineType() for LLVM 3.9
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
104 |
IsOptimized)); |
a288aced3dd1
LLVM C API Extensions: Fixed DIBuilerCreateFunction() and DIBuilderCreateSubroutineType() for LLVM 3.9
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
105 |
} |
a288aced3dd1
LLVM C API Extensions: Fixed DIBuilerCreateFunction() and DIBuilderCreateSubroutineType() for LLVM 3.9
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
106 |
#endif |
26
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
107 |
|
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
108 |
LLVMMetadataRef LLVMDIBuilderCreateAutoVariable( |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
109 |
LLVMDIBuilderRef Dref, LLVMMetadataRef Scope, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
110 |
const char *Name, LLVMMetadataRef File, unsigned Line, LLVMMetadataRef Ty, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
111 |
int AlwaysPreserve, unsigned Flags) { |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
112 |
DIBuilder *D = unwrap(Dref); |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
113 |
return wrap(D->createAutoVariable( |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
114 |
unwrap<DIScope>(Scope), StringRef(Name), unwrap<DIFile>(File), Line, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
115 |
unwrap<DIType>(Ty), (bool)AlwaysPreserve, Flags)); |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
116 |
} |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
117 |
|
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
118 |
|
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
119 |
LLVMMetadataRef LLVMDIBuilderCreateParameterVariable( |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
120 |
LLVMDIBuilderRef Dref, LLVMMetadataRef Scope, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
121 |
const char *Name, LLVMMetadataRef File, unsigned Line, LLVMMetadataRef Ty, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
122 |
int AlwaysPreserve, unsigned Flags, unsigned ArgNo) { |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
123 |
DIBuilder *D = unwrap(Dref); |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
124 |
return wrap(D->createParameterVariable( |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
125 |
unwrap<DIScope>(Scope), StringRef(Name), ArgNo, unwrap<DIFile>(File), Line, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
126 |
unwrap<DIType>(Ty), (bool)AlwaysPreserve, Flags)); |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
127 |
} |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
128 |
|
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
129 |
LLVMMetadataRef LLVMDIBuilderCreateBasicType(LLVMDIBuilderRef Dref, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
130 |
const char *Name, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
131 |
uint64_t SizeInBits, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
132 |
uint64_t AlignInBits, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
133 |
unsigned Encoding) { |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
134 |
DIBuilder *D = unwrap(Dref); |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
135 |
return wrap(D->createBasicType(Name, SizeInBits, AlignInBits, Encoding)); |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
136 |
} |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
137 |
|
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
138 |
LLVMMetadataRef LLVMDIBuilderCreatePointerType(LLVMDIBuilderRef Dref, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
139 |
LLVMMetadataRef PointeeType, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
140 |
uint64_t SizeInBits, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
141 |
uint64_t AlignInBits, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
142 |
const char *Name) { |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
143 |
DIBuilder *D = unwrap(Dref); |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
144 |
return wrap(D->createPointerType(unwrap<DIType>(PointeeType), SizeInBits, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
145 |
AlignInBits, Name)); |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
146 |
} |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
147 |
|
54
a288aced3dd1
LLVM C API Extensions: Fixed DIBuilerCreateFunction() and DIBuilderCreateSubroutineType() for LLVM 3.9
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
148 |
#if (LLVM_VERSION_MAJOR <= 3) && (LLVM_VERSION_MINOR <= 8) |
26
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
149 |
LLVMMetadataRef |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
150 |
LLVMDIBuilderCreateSubroutineType(LLVMDIBuilderRef Dref, LLVMMetadataRef File, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
151 |
LLVMMetadataRef ParameterTypes) { |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
152 |
DIBuilder *D = unwrap(Dref); |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
153 |
return wrap( |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
154 |
D->createSubroutineType(File ? unwrap<DIFile>(File) : nullptr, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
155 |
DITypeRefArray(unwrap<MDTuple>(ParameterTypes)))); |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
156 |
} |
54
a288aced3dd1
LLVM C API Extensions: Fixed DIBuilerCreateFunction() and DIBuilderCreateSubroutineType() for LLVM 3.9
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
157 |
#else |
a288aced3dd1
LLVM C API Extensions: Fixed DIBuilerCreateFunction() and DIBuilderCreateSubroutineType() for LLVM 3.9
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
158 |
LLVMMetadataRef |
a288aced3dd1
LLVM C API Extensions: Fixed DIBuilerCreateFunction() and DIBuilderCreateSubroutineType() for LLVM 3.9
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
159 |
LLVMDIBuilderCreateSubroutineType(LLVMDIBuilderRef Dref, |
a288aced3dd1
LLVM C API Extensions: Fixed DIBuilerCreateFunction() and DIBuilderCreateSubroutineType() for LLVM 3.9
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
160 |
LLVMMetadataRef ParameterTypes) { |
a288aced3dd1
LLVM C API Extensions: Fixed DIBuilerCreateFunction() and DIBuilderCreateSubroutineType() for LLVM 3.9
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
161 |
DIBuilder *D = unwrap(Dref); |
a288aced3dd1
LLVM C API Extensions: Fixed DIBuilerCreateFunction() and DIBuilderCreateSubroutineType() for LLVM 3.9
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
162 |
return wrap( |
a288aced3dd1
LLVM C API Extensions: Fixed DIBuilerCreateFunction() and DIBuilderCreateSubroutineType() for LLVM 3.9
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
163 |
D->createSubroutineType(DITypeRefArray(unwrap<MDTuple>(ParameterTypes)))); |
a288aced3dd1
LLVM C API Extensions: Fixed DIBuilerCreateFunction() and DIBuilderCreateSubroutineType() for LLVM 3.9
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
164 |
} |
a288aced3dd1
LLVM C API Extensions: Fixed DIBuilerCreateFunction() and DIBuilderCreateSubroutineType() for LLVM 3.9
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
165 |
#endif |
a288aced3dd1
LLVM C API Extensions: Fixed DIBuilerCreateFunction() and DIBuilderCreateSubroutineType() for LLVM 3.9
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
32
diff
changeset
|
166 |
|
26
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
167 |
|
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
168 |
LLVMMetadataRef LLVMDIBuilderCreateStructType( |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
169 |
LLVMDIBuilderRef Dref, LLVMMetadataRef Scope, const char *Name, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
170 |
LLVMMetadataRef File, unsigned Line, uint64_t SizeInBits, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
171 |
uint64_t AlignInBits, unsigned Flags, LLVMMetadataRef DerivedFrom, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
172 |
LLVMMetadataRef ElementTypes) { |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
173 |
DIBuilder *D = unwrap(Dref); |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
174 |
return wrap(D->createStructType( |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
175 |
unwrap<DIScope>(Scope), Name, File ? unwrap<DIFile>(File) : nullptr, Line, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
176 |
SizeInBits, AlignInBits, Flags, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
177 |
DerivedFrom ? unwrap<DIType>(DerivedFrom) : nullptr, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
178 |
ElementTypes ? DINodeArray(unwrap<MDTuple>(ElementTypes)) : nullptr)); |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
179 |
} |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
180 |
|
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
181 |
LLVMMetadataRef LLVMDIBuilderCreateReplaceableCompositeType( |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
182 |
LLVMDIBuilderRef Dref, unsigned Tag, const char *Name, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
183 |
LLVMMetadataRef Scope, LLVMMetadataRef File, unsigned Line, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
184 |
unsigned RuntimeLang, uint64_t SizeInBits, uint64_t AlignInBits, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
185 |
unsigned Flags) { |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
186 |
DIBuilder *D = unwrap(Dref); |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
187 |
return wrap(D->createReplaceableCompositeType( |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
188 |
Tag, Name, unwrap<DIScope>(Scope), File ? unwrap<DIFile>(File) : nullptr, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
189 |
Line, RuntimeLang, SizeInBits, AlignInBits, Flags)); |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
190 |
} |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
191 |
|
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
192 |
LLVMMetadataRef |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
193 |
LLVMDIBuilderCreateMemberType(LLVMDIBuilderRef Dref, LLVMMetadataRef Scope, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
194 |
const char *Name, LLVMMetadataRef File, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
195 |
unsigned Line, uint64_t SizeInBits, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
196 |
uint64_t AlignInBits, uint64_t OffsetInBits, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
197 |
unsigned Flags, LLVMMetadataRef Ty) { |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
198 |
DIBuilder *D = unwrap(Dref); |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
199 |
return wrap(D->createMemberType( |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
200 |
unwrap<DIScope>(Scope), Name, File ? unwrap<DIFile>(File) : nullptr, Line, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
201 |
SizeInBits, AlignInBits, OffsetInBits, Flags, unwrap<DIType>(Ty))); |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
202 |
} |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
203 |
|
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
204 |
LLVMMetadataRef LLVMDIBuilderCreateArrayType(LLVMDIBuilderRef Dref, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
205 |
uint64_t SizeInBits, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
206 |
uint64_t AlignInBits, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
207 |
LLVMMetadataRef ElementType, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
208 |
LLVMMetadataRef Subscripts) { |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
209 |
DIBuilder *D = unwrap(Dref); |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
210 |
return wrap(D->createArrayType(SizeInBits, AlignInBits, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
211 |
unwrap<DIType>(ElementType), |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
212 |
DINodeArray(unwrap<MDTuple>(Subscripts)))); |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
213 |
} |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
214 |
|
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
215 |
LLVMMetadataRef LLVMDIBuilderCreateTypedef(LLVMDIBuilderRef Dref, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
216 |
LLVMMetadataRef Ty, const char *Name, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
217 |
LLVMMetadataRef File, unsigned Line, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
218 |
LLVMMetadataRef Context) { |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
219 |
DIBuilder *D = unwrap(Dref); |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
220 |
return wrap(D->createTypedef(unwrap<DIType>(Ty), Name, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
221 |
File ? unwrap<DIFile>(File) : nullptr, Line, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
222 |
Context ? unwrap<DIScope>(Context) : nullptr)); |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
223 |
} |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
224 |
|
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
225 |
LLVMMetadataRef LLVMDIBuilderGetOrCreateSubrange(LLVMDIBuilderRef Dref, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
226 |
int64_t Lo, int64_t Count) { |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
227 |
DIBuilder *D = unwrap(Dref); |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
228 |
return wrap(D->getOrCreateSubrange(Lo, Count)); |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
229 |
} |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
230 |
|
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
231 |
LLVMMetadataRef LLVMDIBuilderGetOrCreateArray(LLVMDIBuilderRef Dref, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
232 |
LLVMMetadataRef *Data, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
233 |
size_t Length) { |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
234 |
DIBuilder *D = unwrap(Dref); |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
235 |
Metadata **DataValue = unwrap(Data); |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
236 |
ArrayRef<Metadata *> Elements(DataValue, Length); |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
237 |
DINodeArray A = D->getOrCreateArray(Elements); |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
238 |
return wrap(A.get()); |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
239 |
} |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
240 |
|
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
241 |
LLVMMetadataRef LLVMDIBuilderGetOrCreateTypeArray(LLVMDIBuilderRef Dref, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
242 |
LLVMMetadataRef *Data, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
243 |
size_t Length) { |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
244 |
DIBuilder *D = unwrap(Dref); |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
245 |
Metadata **DataValue = unwrap(Data); |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
246 |
ArrayRef<Metadata *> Elements(DataValue, Length); |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
247 |
DITypeRefArray A = D->getOrCreateTypeArray(Elements); |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
248 |
return wrap(A.get()); |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
249 |
} |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
250 |
|
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
251 |
LLVMMetadataRef LLVMDIBuilderCreateExpression(LLVMDIBuilderRef Dref, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
252 |
int64_t *Addr, size_t Length) { |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
253 |
DIBuilder *D = unwrap(Dref); |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
254 |
return wrap(D->createExpression(ArrayRef<int64_t>(Addr, Length))); |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
255 |
} |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
256 |
|
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
257 |
LLVMValueRef LLVMDIBuilderInsertDeclareAtEnd(LLVMDIBuilderRef Dref, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
258 |
LLVMValueRef Storage, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
259 |
LLVMMetadataRef VarInfo, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
260 |
LLVMMetadataRef Expr, |
32
1378060fadd6
LLVM C API Extensions: fixed LLVMDIBuilderInsert*AtEnd() functions for LLVM 3.8
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
261 |
LLVMMetadataRef Location, |
26
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
262 |
LLVMBasicBlockRef Block) { |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
263 |
DIBuilder *D = unwrap(Dref); |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
264 |
Instruction *Instr = D->insertDeclare( |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
265 |
unwrap(Storage), unwrap<DILocalVariable>(VarInfo), |
32
1378060fadd6
LLVM C API Extensions: fixed LLVMDIBuilderInsert*AtEnd() functions for LLVM 3.8
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
266 |
unwrap<DIExpression>(Expr), unwrap<DILocation>(Location), unwrap(Block)); |
26
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
267 |
return wrap(Instr); |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
268 |
} |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
269 |
|
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
270 |
LLVMValueRef LLVMDIBuilderInsertValueAtEnd(LLVMDIBuilderRef Dref, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
271 |
LLVMValueRef Val, uint64_t Offset, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
272 |
LLVMMetadataRef VarInfo, |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
273 |
LLVMMetadataRef Expr, |
32
1378060fadd6
LLVM C API Extensions: fixed LLVMDIBuilderInsert*AtEnd() functions for LLVM 3.8
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
274 |
LLVMMetadataRef Location, |
26
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
275 |
LLVMBasicBlockRef Block) { |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
276 |
DIBuilder *D = unwrap(Dref); |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
277 |
Instruction *Instr = D->insertDbgValueIntrinsic( |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
278 |
unwrap(Val), Offset, unwrap<DILocalVariable>(VarInfo), |
32
1378060fadd6
LLVM C API Extensions: fixed LLVMDIBuilderInsert*AtEnd() functions for LLVM 3.8
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
26
diff
changeset
|
279 |
unwrap<DIExpression>(Expr), unwrap<DILocation>(Location), unwrap(Block)); |
26
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
280 |
return wrap(Instr); |
f6379df4b5ea
Added DIBuilder API to LLVM C Ext library
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
281 |
} |