LLVM Ada language bindings. Credit to Rod Kay and the AuroraUX team.
[oota-llvm.git] / bindings / ada / llvm / llvm_link_time_optimizer-binding.ads
1 -- This file is generated by SWIG. Do *not* modify by hand.
2 --
3
4 with Interfaces.C.Strings;
5
6
7 package LLVM_link_time_Optimizer.Binding is
8
9    LTO_H           : constant := 1;
10    LTO_API_VERSION : constant := 3;
11
12    function lto_get_version return  Interfaces.C.Strings.chars_ptr;
13
14    function lto_get_error_message return  Interfaces.C.Strings.chars_ptr;
15
16    function lto_module_is_object_file
17      (path : in Interfaces.C.Strings.chars_ptr)
18       return Interfaces.C.Extensions.bool;
19
20    function lto_module_is_object_file_for_target
21      (path                 : in Interfaces.C.Strings.chars_ptr;
22       target_triple_prefix : in Interfaces.C.Strings.chars_ptr)
23       return                 Interfaces.C.Extensions.bool;
24
25    function lto_module_is_object_file_in_memory
26      (mem    : access Interfaces.C.Extensions.void;
27       length : in Interfaces.C.size_t)
28       return   Interfaces.C.Extensions.bool;
29
30    function lto_module_is_object_file_in_memory_for_target
31      (mem                  : access Interfaces.C.Extensions.void;
32       length               : in Interfaces.C.size_t;
33       target_triple_prefix : in Interfaces.C.Strings.chars_ptr)
34       return                 Interfaces.C.Extensions.bool;
35
36    function lto_module_create
37      (path : in Interfaces.C.Strings.chars_ptr)
38       return LLVM_link_time_Optimizer.lto_module_t;
39
40    function lto_module_create_from_memory
41      (mem    : access Interfaces.C.Extensions.void;
42       length : in Interfaces.C.size_t)
43       return   LLVM_link_time_Optimizer.lto_module_t;
44
45    procedure lto_module_dispose
46      (the_mod : in LLVM_link_time_Optimizer.lto_module_t);
47
48    function lto_module_get_target_triple
49      (the_mod : in LLVM_link_time_Optimizer.lto_module_t)
50       return    Interfaces.C.Strings.chars_ptr;
51
52    function lto_module_get_num_symbols
53      (the_mod : in LLVM_link_time_Optimizer.lto_module_t)
54       return    Interfaces.C.unsigned;
55
56    function lto_module_get_symbol_name
57      (the_mod : in LLVM_link_time_Optimizer.lto_module_t;
58       index   : in Interfaces.C.unsigned)
59       return    Interfaces.C.Strings.chars_ptr;
60
61    function lto_module_get_symbol_attribute
62      (the_mod : in LLVM_link_time_Optimizer.lto_module_t;
63       index   : in Interfaces.C.unsigned)
64       return    LLVM_link_time_Optimizer.lto_symbol_attributes;
65
66    function lto_codegen_create return  LLVM_link_time_Optimizer.lto_code_gen_t;
67
68    procedure lto_codegen_dispose
69      (arg_1 : in LLVM_link_time_Optimizer.lto_code_gen_t);
70
71    function lto_codegen_add_module
72      (cg      : in LLVM_link_time_Optimizer.lto_code_gen_t;
73       the_mod : in LLVM_link_time_Optimizer.lto_module_t)
74       return    Interfaces.C.Extensions.bool;
75
76    function lto_codegen_set_debug_model
77      (cg    : in LLVM_link_time_Optimizer.lto_code_gen_t;
78       arg_1 : in LLVM_link_time_Optimizer.lto_debug_model)
79       return  Interfaces.C.Extensions.bool;
80
81    function lto_codegen_set_pic_model
82      (cg    : in LLVM_link_time_Optimizer.lto_code_gen_t;
83       arg_1 : in LLVM_link_time_Optimizer.lto_codegen_model)
84       return  Interfaces.C.Extensions.bool;
85
86    procedure lto_codegen_set_gcc_path
87      (cg   : in LLVM_link_time_Optimizer.lto_code_gen_t;
88       path : in Interfaces.C.Strings.chars_ptr);
89
90    procedure lto_codegen_set_assembler_path
91      (cg   : in LLVM_link_time_Optimizer.lto_code_gen_t;
92       path : in Interfaces.C.Strings.chars_ptr);
93
94    procedure lto_codegen_add_must_preserve_symbol
95      (cg     : in LLVM_link_time_Optimizer.lto_code_gen_t;
96       symbol : in Interfaces.C.Strings.chars_ptr);
97
98    function lto_codegen_write_merged_modules
99      (cg   : in LLVM_link_time_Optimizer.lto_code_gen_t;
100       path : in Interfaces.C.Strings.chars_ptr)
101       return Interfaces.C.Extensions.bool;
102
103    function lto_codegen_compile
104      (cg     : in LLVM_link_time_Optimizer.lto_code_gen_t;
105       length : access Interfaces.C.size_t)
106       return   access Interfaces.C.Extensions.void;
107
108    procedure lto_codegen_debug_options
109      (cg    : in LLVM_link_time_Optimizer.lto_code_gen_t;
110       arg_1 : in Interfaces.C.Strings.chars_ptr);
111
112    function llvm_create_optimizer return
113      LLVM_link_time_Optimizer.llvm_lto_t;
114
115    procedure llvm_destroy_optimizer
116      (lto : in LLVM_link_time_Optimizer.llvm_lto_t);
117
118    function llvm_read_object_file
119      (lto            : in LLVM_link_time_Optimizer.llvm_lto_t;
120       input_filename : in Interfaces.C.Strings.chars_ptr)
121       return           LLVM_link_time_Optimizer.llvm_lto_status_t;
122
123    function llvm_optimize_modules
124      (lto             : in LLVM_link_time_Optimizer.llvm_lto_t;
125       output_filename : in Interfaces.C.Strings.chars_ptr)
126       return            LLVM_link_time_Optimizer.llvm_lto_status_t;
127
128 private
129
130    pragma Import (C, lto_get_version, "Ada_lto_get_version");
131    pragma Import (C, lto_get_error_message, "Ada_lto_get_error_message");
132    pragma Import
133      (C,
134       lto_module_is_object_file,
135       "Ada_lto_module_is_object_file");
136    pragma Import
137      (C,
138       lto_module_is_object_file_for_target,
139       "Ada_lto_module_is_object_file_for_target");
140    pragma Import
141      (C,
142       lto_module_is_object_file_in_memory,
143       "Ada_lto_module_is_object_file_in_memory");
144    pragma Import
145      (C,
146       lto_module_is_object_file_in_memory_for_target,
147       "Ada_lto_module_is_object_file_in_memory_for_target");
148    pragma Import (C, lto_module_create, "Ada_lto_module_create");
149    pragma Import
150      (C,
151       lto_module_create_from_memory,
152       "Ada_lto_module_create_from_memory");
153    pragma Import (C, lto_module_dispose, "Ada_lto_module_dispose");
154    pragma Import
155      (C,
156       lto_module_get_target_triple,
157       "Ada_lto_module_get_target_triple");
158    pragma Import
159      (C,
160       lto_module_get_num_symbols,
161       "Ada_lto_module_get_num_symbols");
162    pragma Import
163      (C,
164       lto_module_get_symbol_name,
165       "Ada_lto_module_get_symbol_name");
166    pragma Import
167      (C,
168       lto_module_get_symbol_attribute,
169       "Ada_lto_module_get_symbol_attribute");
170    pragma Import (C, lto_codegen_create, "Ada_lto_codegen_create");
171    pragma Import (C, lto_codegen_dispose, "Ada_lto_codegen_dispose");
172    pragma Import (C, lto_codegen_add_module, "Ada_lto_codegen_add_module");
173    pragma Import
174      (C,
175       lto_codegen_set_debug_model,
176       "Ada_lto_codegen_set_debug_model");
177    pragma Import
178      (C,
179       lto_codegen_set_pic_model,
180       "Ada_lto_codegen_set_pic_model");
181    pragma Import
182      (C,
183       lto_codegen_set_gcc_path,
184       "Ada_lto_codegen_set_gcc_path");
185    pragma Import
186      (C,
187       lto_codegen_set_assembler_path,
188       "Ada_lto_codegen_set_assembler_path");
189    pragma Import
190      (C,
191       lto_codegen_add_must_preserve_symbol,
192       "Ada_lto_codegen_add_must_preserve_symbol");
193    pragma Import
194      (C,
195       lto_codegen_write_merged_modules,
196       "Ada_lto_codegen_write_merged_modules");
197    pragma Import (C, lto_codegen_compile, "Ada_lto_codegen_compile");
198    pragma Import
199      (C,
200       lto_codegen_debug_options,
201       "Ada_lto_codegen_debug_options");
202    pragma Import (C, llvm_create_optimizer, "Ada_llvm_create_optimizer");
203    pragma Import (C, llvm_destroy_optimizer, "Ada_llvm_destroy_optimizer");
204    pragma Import (C, llvm_read_object_file, "Ada_llvm_read_object_file");
205    pragma Import (C, llvm_optimize_modules, "Ada_llvm_optimize_modules");
206
207 end LLVM_link_time_Optimizer.Binding;