LLVM Ada language bindings. Credit to Rod Kay and the AuroraUX team.
[oota-llvm.git] / bindings / ada / llvm / llvm_link_time_optimizer.ads
1 -- This file is generated by SWIG. Do *not* modify by hand.
2 --
3
4 with Interfaces.C.Extensions;
5
6
7 package LLVM_link_time_Optimizer is
8
9    -- lto_symbol_attributes
10    --
11    type lto_symbol_attributes is (
12       LTO_SYMBOL_ALIGNMENT_MASK,
13       LTO_SYMBOL_PERMISSIONS_RODATA,
14       LTO_SYMBOL_PERMISSIONS_CODE,
15       LTO_SYMBOL_PERMISSIONS_DATA,
16       LTO_SYMBOL_PERMISSIONS_MASK,
17       LTO_SYMBOL_DEFINITION_REGULAR,
18       LTO_SYMBOL_DEFINITION_TENTATIVE,
19       LTO_SYMBOL_DEFINITION_WEAK,
20       LTO_SYMBOL_DEFINITION_UNDEFINED,
21       LTO_SYMBOL_DEFINITION_WEAKUNDEF,
22       LTO_SYMBOL_DEFINITION_MASK,
23       LTO_SYMBOL_SCOPE_INTERNAL,
24       LTO_SYMBOL_SCOPE_HIDDEN,
25       LTO_SYMBOL_SCOPE_DEFAULT,
26       LTO_SYMBOL_SCOPE_PROTECTED,
27       LTO_SYMBOL_SCOPE_MASK);
28
29    for lto_symbol_attributes use
30      (LTO_SYMBOL_ALIGNMENT_MASK       => 31,
31       LTO_SYMBOL_PERMISSIONS_RODATA   => 128,
32       LTO_SYMBOL_PERMISSIONS_CODE     => 160,
33       LTO_SYMBOL_PERMISSIONS_DATA     => 192,
34       LTO_SYMBOL_PERMISSIONS_MASK     => 224,
35       LTO_SYMBOL_DEFINITION_REGULAR   => 256,
36       LTO_SYMBOL_DEFINITION_TENTATIVE => 512,
37       LTO_SYMBOL_DEFINITION_WEAK      => 768,
38       LTO_SYMBOL_DEFINITION_UNDEFINED => 1024,
39       LTO_SYMBOL_DEFINITION_WEAKUNDEF => 1280,
40       LTO_SYMBOL_DEFINITION_MASK      => 1792,
41       LTO_SYMBOL_SCOPE_INTERNAL       => 2048,
42       LTO_SYMBOL_SCOPE_HIDDEN         => 4096,
43       LTO_SYMBOL_SCOPE_DEFAULT        => 6144,
44       LTO_SYMBOL_SCOPE_PROTECTED      => 8192,
45       LTO_SYMBOL_SCOPE_MASK           => 14336);
46
47    pragma Convention (C, lto_symbol_attributes);
48
49    type lto_symbol_attributes_array is
50      array (Interfaces.C.size_t range <>)
51             of aliased LLVM_link_time_Optimizer.lto_symbol_attributes;
52
53    type lto_symbol_attributes_view is access all
54      LLVM_link_time_Optimizer.lto_symbol_attributes;
55
56    -- lto_debug_model
57    --
58    type lto_debug_model is (LTO_DEBUG_MODEL_NONE, LTO_DEBUG_MODEL_DWARF);
59
60    for lto_debug_model use
61      (LTO_DEBUG_MODEL_NONE  => 0,
62       LTO_DEBUG_MODEL_DWARF => 1);
63
64    pragma Convention (C, lto_debug_model);
65
66    type lto_debug_model_array is
67      array (Interfaces.C.size_t range <>)
68             of aliased LLVM_link_time_Optimizer.lto_debug_model;
69
70    type lto_debug_model_view is access all
71      LLVM_link_time_Optimizer.lto_debug_model;
72
73    -- lto_codegen_model
74    --
75    type lto_codegen_model is (
76       LTO_CODEGEN_PIC_MODEL_STATIC,
77       LTO_CODEGEN_PIC_MODEL_DYNAMIC,
78       LTO_CODEGEN_PIC_MODEL_DYNAMIC_NO_PIC);
79
80    for lto_codegen_model use
81      (LTO_CODEGEN_PIC_MODEL_STATIC         => 0,
82       LTO_CODEGEN_PIC_MODEL_DYNAMIC        => 1,
83       LTO_CODEGEN_PIC_MODEL_DYNAMIC_NO_PIC => 2);
84
85    pragma Convention (C, lto_codegen_model);
86
87    type lto_codegen_model_array is
88      array (Interfaces.C.size_t range <>)
89             of aliased LLVM_link_time_Optimizer.lto_codegen_model;
90
91    type lto_codegen_model_view is access all
92      LLVM_link_time_Optimizer.lto_codegen_model;
93
94    -- LTOModule
95    --
96    type LTOModule is new Interfaces.C.Extensions.opaque_structure_def;
97
98    type LTOModule_array is
99      array (Interfaces.C.size_t range <>)
100             of aliased LLVM_link_time_Optimizer.LTOModule;
101
102    type LTOModule_view is access all LLVM_link_time_Optimizer.LTOModule;
103
104    -- lto_module_t
105    --
106    type lto_module_t is access all LLVM_link_time_Optimizer.LTOModule;
107
108    type lto_module_t_array is
109      array (Interfaces.C.size_t range <>)
110             of aliased LLVM_link_time_Optimizer.lto_module_t;
111
112    type lto_module_t_view is access all LLVM_link_time_Optimizer.lto_module_t;
113
114    -- LTOCodeGenerator
115    --
116    type LTOCodeGenerator is new Interfaces.C.Extensions.opaque_structure_def;
117
118    type LTOCodeGenerator_array is
119      array (Interfaces.C.size_t range <>)
120             of aliased LLVM_link_time_Optimizer.LTOCodeGenerator;
121
122    type LTOCodeGenerator_view is access all
123      LLVM_link_time_Optimizer.LTOCodeGenerator;
124
125    -- lto_code_gen_t
126    --
127    type lto_code_gen_t is access all LLVM_link_time_Optimizer.LTOCodeGenerator;
128
129    type lto_code_gen_t_array is
130      array (Interfaces.C.size_t range <>)
131             of aliased LLVM_link_time_Optimizer.lto_code_gen_t;
132
133    type lto_code_gen_t_view is access all
134      LLVM_link_time_Optimizer.lto_code_gen_t;
135
136    -- llvm_lto_status_t
137    --
138    type llvm_lto_status_t is (
139       LLVM_LTO_UNKNOWN,
140       LLVM_LTO_OPT_SUCCESS,
141       LLVM_LTO_READ_SUCCESS,
142       LLVM_LTO_READ_FAILURE,
143       LLVM_LTO_WRITE_FAILURE,
144       LLVM_LTO_NO_TARGET,
145       LLVM_LTO_NO_WORK,
146       LLVM_LTO_MODULE_MERGE_FAILURE,
147       LLVM_LTO_ASM_FAILURE,
148       LLVM_LTO_NULL_OBJECT);
149
150    for llvm_lto_status_t use
151      (LLVM_LTO_UNKNOWN              => 0,
152       LLVM_LTO_OPT_SUCCESS          => 1,
153       LLVM_LTO_READ_SUCCESS         => 2,
154       LLVM_LTO_READ_FAILURE         => 3,
155       LLVM_LTO_WRITE_FAILURE        => 4,
156       LLVM_LTO_NO_TARGET            => 5,
157       LLVM_LTO_NO_WORK              => 6,
158       LLVM_LTO_MODULE_MERGE_FAILURE => 7,
159       LLVM_LTO_ASM_FAILURE          => 8,
160       LLVM_LTO_NULL_OBJECT          => 9);
161
162    pragma Convention (C, llvm_lto_status_t);
163
164    type llvm_lto_status_t_array is
165      array (Interfaces.C.size_t range <>)
166             of aliased LLVM_link_time_Optimizer.llvm_lto_status_t;
167
168    type llvm_lto_status_t_view is access all
169      LLVM_link_time_Optimizer.llvm_lto_status_t;
170
171
172    -- llvm_lto_t
173    --
174    type llvm_lto_t is access all Interfaces.C.Extensions.void;
175
176    type llvm_lto_t_array is
177      array (Interfaces.C.size_t range <>)
178             of aliased LLVM_link_time_Optimizer.llvm_lto_t;
179
180    type llvm_lto_t_view is access all
181      LLVM_link_time_Optimizer.llvm_lto_t;
182
183
184 end LLVM_link_time_Optimizer;