]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/jit/ChangeLog
Adjust testcase.
[thirdparty/gcc.git] / gcc / jit / ChangeLog
CommitLineData
a784ed8d
GA
12025-11-12 Antoni Boucher <bouanto@zoho.com>
2
3 * jit-playback.cc: Support new function attributes.
4 * jit-recording.cc: Support new function attributes.
5 * libgccjit.h: Support new function attributes.
6
596633aa
GA
72025-10-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8
9 * jit-recording.cc (recording::array_type::make_debug_string,
10 recording::array_type::write_reproducer): Use PRIu64 format
11 specifier for uint64_t.
12
ccafcb3f
GA
132025-10-22 Antoni Boucher <bouanto@zoho.com>
14
15 * docs/topics/types.rst: Document new types.
16 * dummy-frontend.cc: Support new types in tree_type_to_jit_type.
17 * jit-common.h: Update NUM_GCC_JIT_TYPES.
18 * jit-playback.cc: Support new types in get_tree_node_for_type.
19 * jit-recording.cc: Support new types.
20 * libgccjit.h (gcc_jit_types): Add new types.
21
1ea18259
GA
222025-10-20 Antoni Boucher <bouanto@zoho.com>
23
24 * docs/topics/compatibility.rst (LIBGCCJIT_ABI_37): New ABI tag.
25 * docs/topics/types.rst: Document
26 gcc_jit_context_new_array_type_u64.
27 * jit-playback.cc (new_array_type): Change num_elements type to
28 uint64_t.
29 * jit-playback.h (new_array_type): Change num_elements type to
30 uint64_t.
31 * jit-recording.cc (recording::context::new_array_type): Change
32 num_elements type to uint64_t.
33 (recording::array_type::make_debug_string): Use uint64_t
34 format.
35 (recording::array_type::write_reproducer): Switch to
36 gcc_jit_context_new_array_type_u64.
37 * jit-recording.h (class array_type): Change num_elements type
38 to uint64_t.
39 (new_array_type): Change num_elements type to uint64_t.
40 (num_elements): Change return type to uint64_t.
41 * libgccjit.cc (gcc_jit_context_new_array_type_u64):
42 New function.
43 * libgccjit.h (gcc_jit_context_new_array_type_u64):
44 New function.
45 * libgccjit.exports: New function.
46 * libgccjit.map: New function.
47
482025-10-20 Antoni Boucher <bouanto@zoho.com>
49
50 * jit-playback.cc (add_error, add_error_va): Send DK_ERROR to
51 add_error_va.
52 (add_diagnostic): Call add_diagnostic instead of add_error.
53 * jit-recording.cc (DEFINE_DIAGNOSTIC_KIND): New define.
54 (recording::context::add_diagnostic): New function.
55 (recording::context::add_error): Send DK_ERROR to add_error_va.
56 (recording::context::add_error_va): New parameter diagnostic_kind.
57 * jit-recording.h (add_diagnostic): New function.
58 (add_error_va): New parameter diagnostic_kind.
59 * libgccjit.cc (jit_error): Send DK_ERROR to add_error_va.
60
612025-10-20 Antoni Boucher <bouanto@zoho.com>
62
63 PR jit/105827
64 * dummy-frontend.cc: Fix lang_tree_node.
65 * jit-common.h: New function (jit_tree_chain_next) used by
66 lang_tree_node.
67
682025-10-20 Antoni Boucher <bouanto@zoho.com>
69
70 PR jit/117886
71 * dummy-frontend.cc: Support some missing types.
72 * jit-playback.h (get_abort_on_unsupported_target_builtin): New
73 function.
74 * jit-recording.cc (get_abort_on_unsupported_target_builtin,
75 set_abort_on_unsupported_target_builtin): New functions.
76 * jit-recording.h (get_abort_on_unsupported_target_builtin,
77 set_abort_on_unsupported_target_builtin): New functions.
78 (m_abort_on_unsupported_target_builtin): New field.
79 * libgccjit.cc
80 (gcc_jit_context_set_abort_on_unsupported_target_builtin): New
81 function.
82 * libgccjit.h
83 (gcc_jit_context_set_abort_on_unsupported_target_builtin): New
84 function.
85 * libgccjit.exports (LIBGCCJIT_ABI_36): New ABI tag.
86 * libgccjit.map (LIBGCCJIT_ABI_36): New ABI tag.
87 * docs/topics/compatibility.rst (LIBGCCJIT_ABI_36): New ABI tag.
88 * docs/topics/contexts.rst: Document new function.
89
954b6791
GA
902025-10-08 Antoni Boucher <bouanto@zoho.com>
91
92 PR jit/112466
93 * Make-lang.in (JIT_OBJS): New variable.
94 * jit-playback.cc (replay): Include jit-target.h and initialize
95 target.
96 * jit-playback.h (class populate_target_info): New class.
97 * jit-recording.cc (recording::context::populate_target_info): New
98 method.
99 * jit-recording.h (recording::context::populate_target_info): New
100 method.
101 (recording::context::m_populated_target_info): New field.
102 * libgccjit.cc: Include jit-target.h.
103 (struct gcc_jit_target_info): New struct.
104 (gcc_jit_context_get_target_info, gcc_jit_target_info_release,
105 gcc_jit_target_info_cpu_supports, gcc_jit_target_info_arch,
106 gcc_jit_target_info_supports_target_dependent_type): New functions.
107 * libgccjit.h (gcc_jit_context_get_target_info,
108 gcc_jit_target_info_release, gcc_jit_target_info_cpu_supports,
109 gcc_jit_target_info_arch,
110 gcc_jit_target_info_supports_target_dependent_type):
111 New functions.
112 * libgccjit.map (LIBGCCJIT_ABI_35): New ABI tag.
113 * docs/topics/compilation.rst: Add documentation for the
114 functions gcc_jit_context_get_target_info, gcc_jit_target_info_release,
115 gcc_jit_target_info_cpu_supports, gcc_jit_target_info_arch,
116 gcc_jit_target_info_supports_target_dependent_type.
117 * docs/topics/compatibility.rst (LIBGCCJIT_ABI_35): New ABI tag.
118 * jit-target-def.h: New file.
119 * jit-target.cc: New file.
120 * jit-target.def: New file.
121 * jit-target.h: New file.
122
491cae7d
GA
1232025-10-07 Jonathan Wakely <jwakely@redhat.com>
124
125 * docs/_build/texinfo/libgccjit.texi: Fix spelling.
126 * docs/internals/index.rst: Likewise.
127
6520bb9e
GA
1282025-08-13 David Malcolm <dmalcolm@redhat.com>
129
130 PR jit/121516
131 * libgccjit++.h (context::new_struct_type): Replace use of
132 &fields[0] with fields.data ().
133 (context::new_function): Likewise for params.
134 (context::new_rvalue): Likewise for elements.
135 (context::new_call): Likewise for args.
136 (block::end_with_switch): Likewise for cases.
137 (block::end_with_extended_asm_goto): Likewise for goto_blocks.
138 (context::new_struct_ctor): Likewise for fields and values.
139 (context::new_array_ctor): Likewise for values.
140
13516aff
GA
1412025-07-25 David Malcolm <dmalcolm@redhat.com>
142
143 * dummy-frontend.cc: Update usage of "diagnostic_info" to
144 explicitly refer to "diagnostics::diagnostic_info".
145
1462025-07-25 David Malcolm <dmalcolm@redhat.com>
147
148 * dummy-frontend.cc: Update for diagnostic_t becoming
149 enum class diagnostics::kind.
150
1512025-07-25 David Malcolm <dmalcolm@redhat.com>
152
153 * dummy-frontend.cc: Update for diagnostic_context becoming
154 diagnostics::context.
155 * jit-playback.h: Likewise.
156
1572025-07-25 David Malcolm <dmalcolm@redhat.com>
158
159 * jit-playback.cc: Update for diagnostic_info moving into
160 namespace diagnostics.
161 * jit-playback.h: Likewise.
162
1632025-07-25 David Malcolm <dmalcolm@redhat.com>
164
165 * dummy-frontend.cc: Update for move of diagnostics output formats
166 into namespace "diagnostics" as "sinks".
167
1c0cbc1b
GA
1682025-04-28 David Malcolm <dmalcolm@redhat.com>
169
170 * dummy-frontend.cc: Drop include of "make-unique.h".
171 Replace uses of ::make_unique with std::make_unique.
172
cc63163f
GA
1732025-03-29 Iain Sandoe <iain@sandoe.co.uk>
174
175 * libgccjit.exports: Add symbols for ABI 28 to 34.
176
82294e9e
GA
1772025-03-13 Matthias Klose <doko@ubuntu.com>
178
179 * Make-lang.in (LIBGCCJIT_VERSION_NUM): Move to ../Makefile.in.
180
397c56af
GA
1812025-02-13 David Malcolm <dmalcolm@redhat.com>
182
183 PR other/116613
184 * dummy-frontend.cc
185 (jit_diagnostic_listener::on_report_diagnostic): Add
186 "final override".
187
278bf572
GA
1882025-02-07 Richard Biener <rguenther@suse.de>
189
190 PR jit/118780
191 * jit-playback.cc: Define INCLUDE_DLFCN_H.
192 * jit-result.cc: Likewise.
193
3fafd9cb
GA
1942025-01-24 David Malcolm <dmalcolm@redhat.com>
195
196 PR jit/117886
197 * jit-recording.cc (reproducer::get_identifier_as_rvalue): Handle
198 null memento.
199 (reproducer::get_identifier_as_lvalue): Likewise.
200 (reproducer::get_identifier_as_type): Likewise.
201 (recording::ctor::write_reproducer): Use get_identifier_as_rvalue
202 rather than get_identifier when writing out gcc_jit_rvalue *
203 expressions.
204
4d1befa4
GA
2052025-01-22 David Malcolm <dmalcolm@redhat.com>
206
207 * dummy-frontend.cc (tree_type_to_jit_type): For POINTER_TYPE,
208 bail out if the inner call to tree_type_to_jit_type fails.
209 Don't abort on unknown types.
210 (jit_langhook_pushdecl): Replace gcc_unreachable with return of
211 NULL_TREE.
212
8223841b
GA
2132024-11-22 Andrew Pinski <quic_apinski@quicinc.com>
214
215 PR bootstrap/117737
216 * dummy-frontend.cc (INCLUDE_MEMORY): Remove.
217 * jit-playback.cc (INCLUDE_MEMORY): Remove.
218 * jit-recording.cc (INCLUDE_MEMORY): Remove.
219
cf261dd5
GA
2202024-11-20 Antoni Boucher <bouanto@zoho.com>
221
222 * docs/topics/compatibility.rst (LIBGCCJIT_ABI_34): New ABI tag.
223 * docs/topics/contexts.rst: Document gcc_jit_context_set_output_ident.
224 * jit-playback.cc (set_output_ident): New method.
225 * jit-playback.h (set_output_ident): New method.
226 * jit-recording.cc (recording::context::set_output_ident,
227 recording::output_ident::output_ident,
228 recording::output_ident::~output_ident,
229 recording::output_ident::replay_into,
230 recording::output_ident::make_debug_string,
231 recording::output_ident::write_reproducer): New methods.
232 * jit-recording.h (class output_ident): New class.
233 * libgccjit.cc (gcc_jit_context_set_output_ident): New function.
234 * libgccjit.h (gcc_jit_context_set_output_ident): New function.
235 * libgccjit.map: New function.
236
2372024-01-18 Antoni Boucher <bouanto@zoho.com>
238
239 * docs/topics/compatibility.rst (LIBGCCJIT_ABI_33): New ABI tag.
240 * docs/topics/functions.rst: Document gcc_jit_function_new_temp.
241 * jit-playback.cc (new_local): Add support for temporary
242 variables.
243 * jit-recording.cc (recording::function::new_temp): New method.
244 (recording::local::write_reproducer): Support temporary
245 variables.
246 * jit-recording.h (new_temp): New method.
247 * libgccjit.cc (gcc_jit_function_new_temp): New function.
248 * libgccjit.h (gcc_jit_function_new_temp): New function.
249 * libgccjit.map: New function.
250
2512024-11-20 Antoni Boucher <bouanto@zoho.com>
252
253 PR jit/108762
254 * docs/topics/compatibility.rst (LIBGCCJIT_ABI_32): New ABI tag.
255 * docs/topics/functions.rst: Add documentation for the function
256 gcc_jit_context_get_target_builtin_function.
257 * dummy-frontend.cc: Include headers target.h, jit-recording.h,
258 print-tree.h, unordered_map and string, new variables (target_builtins,
259 target_function_types, and target_builtins_ctxt), new function
260 (tree_type_to_jit_type).
261 * jit-builtins.cc: Specify that the function types are not from
262 target builtins.
263 * jit-playback.cc: New argument is_target_builtin to new_function.
264 * jit-playback.h: New argument is_target_builtin to
265 new_function.
266 * jit-recording.cc: New argument is_target_builtin to
267 new_function_type, function_type constructor and function
268 constructor, new function
269 (get_target_builtin_function).
270 * jit-recording.h: Include headers string and unordered_map, new
271 variable target_function_types, new argument is_target_builtin
272 to new_function_type, function_type and function, new functions
273 (get_target_builtin_function, copy).
274 * libgccjit.cc: New function
275 (gcc_jit_context_get_target_builtin_function).
276 * libgccjit.h: New function
277 (gcc_jit_context_get_target_builtin_function).
278 * libgccjit.map: New functions
279 (gcc_jit_context_get_target_builtin_function).
280
2812024-11-20 Antoni Boucher <bouanto@zoho.com>
282
283 * jit-common.h: Add forward declaration of memento_of_get_aligned.
284 * jit-recording.h (type::is_same_type_as): Compare integer
285 types.
286 (dyn_cast_aligned_type): New method.
287 (type::is_aligned, memento_of_get_aligned::is_same_type_as,
288 memento_of_get_aligned::is_aligned): new methods.
289
2902024-11-20 Antoni Boucher <bouanto@zoho.com>
291
292 * docs/topics/contexts.rst: Add documentation for new option.
293 * jit-recording.cc (recording::context::get_str_option): New
294 method.
295 * jit-recording.h (get_str_option): New method.
296 * libgccjit.cc (gcc_jit_context_new_function): Allow special
297 characters in function names.
298 * libgccjit.h (enum gcc_jit_str_option): New option.
299
3002024-11-20 Antoni Boucher <bouanto@zoho.com>
301
302 PR jit/112602
303 * docs/topics/compatibility.rst (LIBGCCJIT_ABI_31): New ABI tag.
304 * docs/topics/expressions.rst: Document
305 gcc_jit_context_new_rvalue_vector_perm and
306 gcc_jit_context_new_vector_access.
307 * jit-playback.cc (playback::context::new_rvalue_vector_perm,
308 common_mark_addressable_vec,
309 gnu_vector_type_p,
310 lvalue_p,
311 convert_vector_to_array_for_subscript,
312 new_vector_access): new functions.
313 * jit-playback.h (new_rvalue_vector_perm, new_vector_access):
314 New functions.
315 * jit-recording.cc (recording::context::new_rvalue_vector_perm,
316 recording::context::new_vector_access,
317 memento_of_new_rvalue_vector_perm,
318 recording::memento_of_new_rvalue_vector_perm::replay_into,
319 recording::memento_of_new_rvalue_vector_perm::visit_children,
320 recording::memento_of_new_rvalue_vector_perm::make_debug_string,
321 recording::memento_of_new_rvalue_vector_perm::write_reproducer,
322 recording::vector_access::replay_into,
323 recording::vector_access::visit_children,
324 recording::vector_access::make_debug_string,
325 recording::vector_access::write_reproducer): New methods.
326 * jit-recording.h (class memento_of_new_rvalue_vector_perm,
327 class vector_access): New classes.
328 * libgccjit.cc (gcc_jit_context_new_vector_access,
329 gcc_jit_context_new_rvalue_vector_perm): New functions.
330 * libgccjit.h (gcc_jit_context_new_rvalue_vector_perm,
331 gcc_jit_context_new_vector_access): New functions.
332 * libgccjit.map: New functions.
333
3342024-11-20 Antoni Boucher <bouanto@zoho.com>
335
336 PR jit/113343
337 * jit-playback.cc (new_rvalue_from_const): Fix to have the
338 correct value when cross-compiling.
339
3402024-11-20 Antoni Boucher <bouanto@zoho.com>
341
342 * libgccjit.cc (RETURN_IF_FAIL_PRINTF3): New macro.
343 (gcc_jit_block_add_assignment_op): Add numeric checks.
344
3452024-11-20 Antoni Boucher <bouanto@zoho.com>
346
347 * dummy-frontend.cc (jit_langhook_init): Send flag_signed_char
348 argument to build_common_tree_nodes.
349
ad1f1129
GA
3502024-11-04 Antoni Boucher <bouanto@zoho.com>
351
352 * docs/topics/compatibility.rst (LIBGCCJIT_ABI_30): New ABI tag.
353 * docs/topics/expressions.rst: Document gcc_jit_context_convert_vector.
354 * jit-playback.cc (convert_vector): New method.
355 * jit-playback.h: New method.
356 * jit-recording.cc (recording::context::new_convert_vector,
357 recording::convert_vector::replay_into,
358 recording::convert_vector::visit_children,
359 recording::convert_vector::make_debug_string,
360 recording::convert_vector::write_reproducer): New methods.
361 * jit-recording.h (class convert_vector): New class.
362 (context::new_convert_vector): New method.
363 * libgccjit.cc (gcc_jit_context_convert_vector): New function.
364 * libgccjit.h (gcc_jit_context_convert_vector): New function.
365 * libgccjit.map: New function.
366
3672024-11-04 Antoni Boucher <bouanto@zoho.com>
368
369 * docs/topics/compatibility.rst (LIBGCCJIT_ABI_29): New ABI tag.
370 * docs/topics/expressions.rst: Document gcc_jit_global_set_readonly.
371 * jit-playback.cc (global_new_decl, new_global,
372 new_global_initialized): New parameter readonly.
373 * jit-playback.h (global_new_decl, new_global,
374 new_global_initialized): New parameter readonly.
375 * jit-recording.cc (recording::global::replay_into): Use
376 m_readonly.
377 (recording::global::write_reproducer): Dump reproducer for
378 gcc_jit_global_set_readonly.
379 * jit-recording.h (get_readonly, set_readonly): New methods.
380 (m_readonly): New attribute.
381 * libgccjit.cc (gcc_jit_global_set_readonly): New function.
382 (gcc_jit_block_add_assignment): Check that we don't assign to a
383 readonly variable.
384 * libgccjit.h (gcc_jit_global_set_readonly): New function.
385 (LIBGCCJIT_HAVE_gcc_jit_global_set_readonly): New define.
386 * libgccjit.map: New function.
387
3882024-11-04 Antoni Boucher <bouanto@zoho.com>
389
390 * jit-builtins.cc (ensure_optimization_builtins_exist): Add
391 missing builtins.
392
17643e5a
GA
3932024-10-29 David Malcolm <dmalcolm@redhat.com>
394
395 PR other/116613
396 * dummy-frontend.cc: Include "make-unique.h".
397 (class jit_diagnostic_listener): New.
398 (jit_begin_diagnostic): Update comment.
399 (jit_end_diagnostic): Drop call to add_diagnostic.
400 (jit_langhook_init): Set the output format to a new
401 jit_diagnostic_listener.
402 * jit-playback.cc (playback::context::add_diagnostic): Add "text"
403 param and use that rather than trying to get the text from a
404 pretty_printer.
405 * jit-playback.h (playback::context::add_diagnostic): Add "text"
406 param.
407
c232f921
GA
4082024-10-25 Jakub Jelinek <jakub@redhat.com>
409
410 * docs/examples/tut04-toyvm/toyvm.cc: Remove trailing whitespace.
411
4122024-10-24 David Malcolm <dmalcolm@redhat.com>
413 Gaius Mulley <gaiusmod2@gmail.com>
414
415 PR other/116613
416 * dummy-frontend.cc: Add #define INCLUDE_MEMORY.
417 * jit-playback.cc: Likewise.
418 * jit-recording.cc: Likewise.
419
c8f19fab
GA
4202024-09-20 David Malcolm <dmalcolm@redhat.com>
421
422 PR other/116613
423 * dummy-frontend.cc: Include "diagnostic-format-text.h".
424 (jit_begin_diagnostic): Convert first param from
425 diagnostic_context * to diagnostic_text_output_format &
426 (jit_end_diagnostic): Likewise. Update accordingly.
427 (jit_langhook_init): Update for renamings.
428
57faabfb
GA
4292024-09-18 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
430
431 * libgccjit.h: Include <sys/types.h>
432
852cff82
GA
4332024-09-09 David Malcolm <dmalcolm@redhat.com>
434
435 PR other/116613
436 * jit-playback.cc (add_diagnostic): Rename diagnostic_context's
437 "printer" field to "m_printer".
438
519ec1cf
GA
4392024-09-02 Richard Sandiford <richard.sandiford@arm.com>
440
441 * jit-playback.cc (playback::block::add_extended_asm): Rename
442 ASM_INPUT_P to ASM_BASIC_P.
443
25256af1
GA
4442024-07-24 David Malcolm <dmalcolm@redhat.com>
445
446 * jit-playback.cc (jit::playback_context::compile) Add a trailing
447 null to argvec.
448
92e4d73d
GA
4492024-07-05 Antoni Boucher <bouanto@zoho.com>
450
451 * jit-common.h: Add array_type class.
452 * jit-recording.h (type::dyn_cast_array_type,
453 memento_of_get_aligned::dyn_cast_array_type,
454 array_type::dyn_cast_array_type, array_type::is_same_type_as):
455 New methods.
456
4572024-07-05 Antoni Boucher <bouanto@zoho.com>
458
459 PR jit/112574
460 * docs/topics/types.rst: Document GCC_JIT_TYPE_BFLOAT16.
461 * jit-common.h: Update NUM_GCC_JIT_TYPES.
462 * jit-playback.cc (get_tree_node_for_type): Support bfloat16.
463 * jit-recording.cc (recording::memento_of_get_type::get_size,
464 recording::memento_of_get_type::dereference,
465 recording::memento_of_get_type::is_int,
466 recording::memento_of_get_type::is_signed,
467 recording::memento_of_get_type::is_float,
468 recording::memento_of_get_type::is_bool): Support bfloat16.
469 * libgccjit.h (enum gcc_jit_types): Add GCC_JIT_TYPE_BFLOAT16.
470
1bcfed4c
GA
4712024-06-29 Iain Sandoe <iain@sandoe.co.uk>
472
473 * jit-recording.cc
474 (recording::memento_of_typeinfo::make_debug_string): Default the value
475 of ident.
476 (recording::memento_of_typeinfo::write_reproducer): Default the value
477 of type.
478
4fda39e7
GA
4792024-06-27 Antoni Boucher <bouanto@zoho.com>
480
481 * docs/topics/compatibility.rst (LIBGCCJIT_ABI_28): New ABI tag.
482 * docs/topics/expressions.rst: Document gcc_jit_context_new_alignof.
483 * jit-playback.cc (new_alignof): New method.
484 * jit-playback.h: New method.
485 * jit-recording.cc (recording::context::new_alignof): New
486 method.
487 (recording::memento_of_sizeof::replay_into,
488 recording::memento_of_typeinfo::replay_into,
489 recording::memento_of_sizeof::make_debug_string,
490 recording::memento_of_typeinfo::make_debug_string,
491 recording::memento_of_sizeof::write_reproducer,
492 recording::memento_of_typeinfo::write_reproducer): Rename.
493 * jit-recording.h (enum type_info_type): New enum.
494 (class memento_of_sizeof class memento_of_typeinfo): Rename.
495 * libgccjit.cc (gcc_jit_context_new_alignof): New function.
496 * libgccjit.h (gcc_jit_context_new_alignof): New function.
497 * libgccjit.map: New function.
498
9fe669ce
GA
4992024-06-25 Kewen Lin <linkw@linux.ibm.com>
500
501 * jit-recording.cc (recording::memento_of_get_type::get_size): Update
502 macros {FLOAT,DOUBLE,LONG_DOUBLE}_TYPE_SIZE by calling
503 targetm.c.mode_for_floating_type with
504 TI_{FLOAT,DOUBLE,LONG_DOUBLE}_TYPE.
505
158ce8ad
GA
5062024-06-12 David Malcolm <dmalcolm@redhat.com>
507
508 * jit-recording.cc (recording::function::dump_to_dot): Update for
509 fields of pretty_printer becoming private.
510
7fa4b335
GA
5112024-06-11 Andrew Pinski <quic_apinski@quicinc.com>
512
513 PR jit/115442
514 * jit-recording.cc: Define INCLUDE_SSTREAM before including
515 system.h and don't directly incldue sstream.
516
0753ae15
GA
5172024-04-09 Jakub Jelinek <jakub@redhat.com>
518
519 * docs/topics/expressions.rst (Constructor expressions): Fix
520 duplicated words; have have -> have.
521
a1e6798a
GA
5222024-04-02 Iain Sandoe <iain@sandoe.co.uk>
523
524 * Make-lang.in: Implement exports list, and use a shared
525 libgcc.
526 * libgccjit.exports: New file.
527
4921bd8c
GA
5282024-03-29 Guillaume Gomez <guillaume1.gomez@gmail.com>
529
530 * libgccjit.cc (gcc_jit_type_get_size): Add pointer support
531
67d5b10e
GA
5322024-02-10 Jakub Jelinek <jakub@redhat.com>
533
534 * jit-playback.cc (new_bitcast): Use HOST_WIDE_INT_PRINT_DEC instead
535 of "%ld" and casts to long.
536
4b7d4d8a
GA
5372024-02-02 Antoni Boucher <bouanto@zoho.com>
538
539 * docs/topics/compatibility.rst (LIBGCCJIT_ABI_27): New ABI tag.
540 * docs/topics/expressions.rst: Document gcc_jit_context_new_sizeof.
541 * jit-playback.cc (new_sizeof): New method.
542 * jit-playback.h (new_sizeof): New method.
543 * jit-recording.cc (recording::context::new_sizeof,
544 recording::memento_of_sizeof::replay_into,
545 recording::memento_of_sizeof::make_debug_string,
546 recording::memento_of_sizeof::write_reproducer): New methods.
547 * jit-recording.h (class memento_of_sizeof): New class.
548 * libgccjit.cc (gcc_jit_context_new_sizeof): New function.
549 * libgccjit.h (gcc_jit_context_new_sizeof): New function.
550 * libgccjit.map: New function.
551
c2544854
GA
5522024-01-19 Antoni Boucher <bouanto@zoho.com>
553
554 * jit-builtins.cc (ensure_optimization_builtins_exist): Add
555 popcount builtins.
556
5572024-01-19 Antoni Boucher <bouanto@zoho.com>
558
559 * jit-recording.h (is_numeric_vector, vector_type::new_int): New
560 functions.
561 * libgccjit.cc (gcc_jit_context_new_unary_op,
562 gcc_jit_context_new_binary_op): add checks for
563 is_numeric_vector.
564
444a31f3
GA
5652024-01-12 Guillaume Gomez <guillaume1.gomez@gmail.com>
566 Antoni Boucher <bouanto@zoho.com>
567
568 * docs/topics/compatibility.rst: Add documentation for LIBGCCJIT_ABI_26.
569 * docs/topics/functions.rst: Add documentation for new functions.
570 * docs/topics/expressions.rst: Add documentation for new functions.
571
5722024-01-12 Guillaume Gomez <guillaume1.gomez@gmail.com>
573 Antoni Boucher <bouanto@zoho.com>
574
575 * dummy-frontend.cc (handle_alias_attribute): New function.
576 (handle_always_inline_attribute): New function.
577 (handle_cold_attribute): New function.
578 (handle_fnspec_attribute): New function.
579 (handle_format_arg_attribute): New function.
580 (handle_format_attribute): New function.
581 (handle_noinline_attribute): New function.
582 (handle_target_attribute): New function.
583 (handle_used_attribute): New function.
584 (handle_visibility_attribute): New function.
585 (handle_weak_attribute): New function.
586 (handle_alias_ifunc_attribute): New function.
587 * jit-playback.cc (fn_attribute_to_string): New function.
588 (variable_attribute_to_string): New function.
589 (global_new_decl): Add attributes support.
590 (set_variable_attribute): New function.
591 (new_global): Add attributes support.
592 (new_global_initialized): Add attributes support.
593 (new_local): Add attributes support.
594 * jit-playback.h (fn_attribute_to_string): New function.
595 (set_variable_attribute): New function.
596 * jit-recording.cc (recording::lvalue::add_attribute): New function.
597 (recording::function::function): New function.
598 (recording::function::write_to_dump): Add attributes support.
599 (recording::function::add_attribute): New function.
600 (recording::function::add_string_attribute): New function.
601 (recording::function::add_integer_array_attribute): New function.
602 (recording::global::replay_into): Add attributes support.
603 (recording::local::replay_into): Add attributes support.
604 * jit-recording.h: Add attributes support.
605 * libgccjit.cc (gcc_jit_function_add_attribute): New function.
606 (gcc_jit_function_add_string_attribute): New function.
607 (gcc_jit_function_add_integer_array_attribute): New function.
608 (gcc_jit_lvalue_add_attribute): New function.
609 * libgccjit.h (enum gcc_jit_fn_attribute): New enum.
610 (gcc_jit_function_add_attribute): New function.
611 (gcc_jit_function_add_string_attribute): New function.
612 (gcc_jit_function_add_integer_array_attribute): New function.
613 (enum gcc_jit_variable_attribute): New function.
614 (gcc_jit_lvalue_add_string_attribute): New function.
615 * libgccjit.map: Declare new functions.
616
ae9e48e5
GA
6172023-12-06 David Malcolm <dmalcolm@redhat.com>
618
619 * dummy-frontend.cc (jit_begin_diagnostic): Make diagnostic_info
620 param const.
621 (jit_end_diagnostic): Likewise. Pass to add_diagnostic by
622 reference.
623 * jit-playback.cc (jit::playback::context::add_diagnostic):
624 Convert diagnostic_info to const reference.
625 * jit-playback.h (jit::playback::context::add_diagnostic):
626 Likewise.
627
3dd09cd9
GA
6282023-12-05 Richard Sandiford <richard.sandiford@arm.com>
629
630 * dummy-frontend.cc (jit_gnu_attribute_table): Add extra braces
631 to work around PR 16333 in older compilers.
632 (jit_format_attribute_table): Likewise.
633
04d4a494
GA
6342023-12-02 Richard Sandiford <richard.sandiford@arm.com>
635
636 * dummy-frontend.cc (jit_format_attribute_table): Change type to
637 scoped_attribute_specs, using...
638 (jit_format_attributes): ...this as the underlying array.
639 (jit_attribute_table): Change to an array of scoped_attribute_specs
640 pointers, using...
641 (jit_gnu_attributes, jit_gnu_attribute_table): ...these new globals
642 for the original array. Include the format attributes.
643 (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE): Delete.
644 (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Delete.
645 (LANG_HOOKS_ATTRIBUTE_TABLE): Define.
646
b9fd8399
GA
6472023-11-09 Guillaume Gomez <guillaume1.gomez@gmail.com>
648
649 * libgccjit++.h:
650
eb4e1b62
GA
6512023-11-04 David Malcolm <dmalcolm@redhat.com>
652
653 * jit-playback.cc: Update for changes to diagnostic_context.
654 * jit-playback.h: Likewise.
655
f75fc1f0
GA
6562023-10-25 Vibhav Pant <vibhavp@gmail.com>
657
658 * jit-recording.cc (recording::global::write_to_dump): Fix
659 dump of string literal initializers.
660
3b632746
GA
6612023-10-22 Iain Sandoe <iain@sandoe.co.uk>
662
663 * Make-lang.in: Handle Darwin rpaths.
664
41d1c9a9
GA
6652023-10-02 David Malcolm <dmalcolm@redhat.com>
666
667 * dummy-frontend.cc (jit_langhook_init): Update for change to
668 diagnostic_context callbacks.
669
65c36ecc
GA
6702023-08-31 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
671
672 * jit-playback.cc: Change spelling to macOS.
673
ded52c9f
GA
6742023-08-29 Guillaume Gomez <guillaume1.gomez@gmail.com>
675
676 * docs/topics/compatibility.rst: Add documentation for LIBGCCJIT_ABI_25.
677 * docs/topics/types.rst: Add documentation for gcc_jit_type_get_restrict.
678
6792023-08-29 Guillaume Gomez <guillaume1.gomez@gmail.com>
680
681 * jit-playback.cc: Remove trailing whitespace characters.
682 * jit-playback.h: Add get_restrict method.
683 * jit-recording.cc: Add get_restrict methods.
684 * jit-recording.h: Add get_restrict methods.
685 * libgccjit++.h: Add get_restrict methods.
686 * libgccjit.cc: Add gcc_jit_type_get_restrict.
687 * libgccjit.h: Declare gcc_jit_type_get_restrict.
688 * libgccjit.map: Declare gcc_jit_type_get_restrict.
689
88cc4495
GA
6902023-02-16 Patrick Palka <ppalka@redhat.com>
691
692 * jit-dejagnu.h: Mechanically drop static from static inline
693 functions via s/^static inline/inline/g.
694 * jit-recording.h: Likewise.
695
d901bf8a
GA
6962023-01-07 LIU Hao <lh_mouse@126.com>
697
698 PR middle-end/108300
699 * jit-w32.h: Define `WIN32_LEAN_AND_MEAN` before <windows.h>.
700
de282a20
GA
7012022-12-21 Martin Liska <mliska@suse.cz>
702
703 * jit-playback.h: Use unused attribute.
704
26f4aefa
GA
7052022-12-14 Antoni Boucher <bouanto@zoho.com>
706 Guillaume Gomez <guillaume1.gomez@gmail.com>
707
708 PR jit/108078
709 * jit-recording.h: Add vector_type::is_same_type_as method
710
4bc2d9f6
GA
7112022-12-07 Antoni Boucher <bouanto@zoho.com>
712 Guillaume Gomez <guillaume1.gomez@gmail.com>
713
714 PR jit/107770
715 * jit-playback.cc: Fix vector float comparison
716 * jit-playback.h: Update comparison function signature
717 * jit-recording.cc: Update call for "new_comparison" function
718 * jit-recording.h: Fix vector float comparison
719
fb98ede8
GA
7202022-11-20 Jeff Law <jlaw@ventanamicro.com>
721
722 PR other/104044
723 * jit-playback.cc (playback::lvale::mark_addressable): Remove
724 extraeous semicolon
725
7262022-11-19 Jonathan Wakely <jwakely@redhat.com>
727 LIU Hao <lh_mouse@126.com>
728
729 * jit-playback.cc (playback::context::scoped_lock): Define RAII
730 lock type.
731 (playback::context::compile): Use scoped_lock to acquire mutex
732 for the active playback context.
733 (jit_mutex): Change to std::mutex.
734 (playback::context::acquire_mutex): Rename to ...
735 (playback::context::lock): ... this.
736 (playback::context::release_mutex): Rename to ...
737 (playback::context::unlock): ... this.
738 * jit-playback.h (playback::context): Rename members and declare
739 scoped_lock.
740 * jit-recording.cc (INCLUDE_PTHREAD_H): Remove unused define.
741 * libgccjit.cc (version_mutex): Change to std::mutex.
742 (struct jit_version_info): Use std::lock_guard to acquire and
743 release mutex.
744
83d400bd
GA
7452022-11-14 Martin Liska <mliska@suse.cz>
746
747 Revert:
748 2022-11-09 Martin Liska <mliska@suse.cz>
749
750 * Make-lang.in:
751 * docs/cp/index.rst: Moved to...
752 * doc/cp/index.rst: ...here.
753 * docs/cp/intro/index.rst: Moved to...
754 * doc/cp/intro/index.rst: ...here.
755 * docs/cp/intro/tutorial01.rst: Moved to...
756 * doc/cp/intro/tutorial01.rst: ...here.
757 * docs/cp/intro/tutorial02.rst: Moved to...
758 * doc/cp/intro/tutorial02.rst: ...here.
759 * docs/cp/intro/tutorial03.rst: Moved to...
760 * doc/cp/intro/tutorial03.rst: ...here.
761 * docs/cp/intro/tutorial04.rst: Moved to...
762 * doc/cp/intro/tutorial04.rst: ...here.
763 * docs/cp/topics/asm.rst: Moved to...
764 * doc/cp/topics/asm.rst: ...here.
765 * docs/cp/topics/compilation.rst: Moved to...
766 * doc/cp/topics/compilation.rst: ...here.
767 * docs/cp/topics/contexts.rst: Moved to...
768 * doc/cp/topics/contexts.rst: ...here.
769 * docs/cp/topics/expressions.rst: Moved to...
770 * doc/cp/topics/expressions.rst: ...here.
771 * docs/cp/topics/functions.rst: Moved to...
772 * doc/cp/topics/functions.rst: ...here.
773 * docs/cp/topics/index.rst: Moved to...
774 * doc/cp/topics/index.rst: ...here.
775 * docs/cp/topics/locations.rst: Moved to...
776 * doc/cp/topics/locations.rst: ...here.
777 * docs/cp/topics/objects.rst: Moved to...
778 * doc/cp/topics/objects.rst: ...here.
779 * docs/cp/topics/types.rst: Moved to...
780 * doc/cp/topics/types.rst: ...here.
781 * docs/examples/emit-alphabet.bf: Moved to...
782 * doc/examples/emit-alphabet.bf: ...here.
783 * docs/examples/tut01-hello-world.c: Moved to...
784 * doc/examples/tut01-hello-world.c: ...here.
785 * docs/examples/tut01-hello-world.cc: Moved to...
786 * doc/examples/tut01-hello-world.cc: ...here.
787 * docs/examples/tut02-square.c: Moved to...
788 * doc/examples/tut02-square.c: ...here.
789 * docs/examples/tut02-square.cc: Moved to...
790 * doc/examples/tut02-square.cc: ...here.
791 * docs/examples/tut03-sum-of-squares.c: Moved to...
792 * doc/examples/tut03-sum-of-squares.c: ...here.
793 * docs/examples/tut03-sum-of-squares.cc: Moved to...
794 * doc/examples/tut03-sum-of-squares.cc: ...here.
795 * docs/examples/tut04-toyvm/Makefile: Moved to...
796 * doc/examples/tut04-toyvm/Makefile: ...here.
797 * docs/examples/tut04-toyvm/factorial.toy: Moved to...
798 * doc/examples/tut04-toyvm/factorial.toy: ...here.
799 * docs/examples/tut04-toyvm/fibonacci.toy: Moved to...
800 * doc/examples/tut04-toyvm/fibonacci.toy: ...here.
801 * docs/examples/tut04-toyvm/toyvm.c: Moved to...
802 * doc/examples/tut04-toyvm/toyvm.c: ...here.
803 * docs/examples/tut04-toyvm/toyvm.cc: Moved to...
804 * doc/examples/tut04-toyvm/toyvm.cc: ...here.
805 * docs/examples/tut05-bf.c: Moved to...
806 * doc/examples/tut05-bf.c: ...here.
807 * docs/index.rst: Moved to...
808 * doc/index.rst: ...here.
809 * docs/internals/index.rst: Moved to...
810 * doc/internals/index.rst: ...here.
811 * docs/internals/test-hello-world.exe.log.txt: Moved to...
812 * doc/internals/test-hello-world.exe.log.txt: ...here.
813 * docs/_build/texinfo/libgccjit-figures/factorial.png: Moved to...
814 * doc/intro/factorial.png: ...here.
815 * docs/intro/index.rst: Moved to...
816 * doc/intro/index.rst: ...here.
817 * docs/_build/texinfo/libgccjit-figures/sum-of-squares.png: Moved to...
818 * doc/intro/sum-of-squares.png: ...here.
819 * docs/intro/tutorial01.rst: Moved to...
820 * doc/intro/tutorial01.rst: ...here.
821 * docs/intro/tutorial02.rst: Moved to...
822 * doc/intro/tutorial02.rst: ...here.
823 * docs/intro/tutorial03.rst: Moved to...
824 * doc/intro/tutorial03.rst: ...here.
825 * docs/intro/tutorial04.rst: Moved to...
826 * doc/intro/tutorial04.rst: ...here.
827 * docs/intro/tutorial05.rst: Moved to...
828 * doc/intro/tutorial05.rst: ...here.
829 * docs/topics/asm.rst: Moved to...
830 * doc/topics/asm.rst: ...here.
831 * docs/topics/compatibility.rst: Moved to...
832 * doc/topics/compatibility.rst: ...here.
833 * docs/topics/compilation.rst: Moved to...
834 * doc/topics/compilation.rst: ...here.
835 * docs/topics/contexts.rst: Moved to...
836 * doc/topics/contexts.rst: ...here.
837 * docs/topics/expressions.rst: Moved to...
838 * doc/topics/expressions.rst: ...here.
839 * docs/topics/function-pointers.rst: Moved to...
840 * doc/topics/function-pointers.rst: ...here.
841 * docs/topics/functions.rst: Moved to...
842 * doc/topics/functions.rst: ...here.
843 * docs/topics/index.rst: Moved to...
844 * doc/topics/index.rst: ...here.
845 * docs/topics/locations.rst: Moved to...
846 * doc/topics/locations.rst: ...here.
847 * docs/topics/objects.rst: Moved to...
848 * doc/topics/objects.rst: ...here.
849 * docs/topics/performance.rst: Moved to...
850 * doc/topics/performance.rst: ...here.
851 * docs/topics/types.rst: Moved to...
852 * doc/topics/types.rst: ...here.
853 * docs/Makefile: Removed.
854 * docs/_build/texinfo/Makefile: Removed.
855 * docs/_build/texinfo/libgccjit-figures/factorial1.png: Removed.
856 * docs/_build/texinfo/libgccjit-figures/sum-of-squares1.png: Removed.
857 * docs/_build/texinfo/libgccjit.texi: Removed.
858 * docs/conf.py: Removed.
859 * docs/intro/factorial.png: Removed.
860 * docs/intro/sum-of-squares.png: Removed.
861 * doc/conf.py: New file.
862
8632022-11-14 Martin Liska <mliska@suse.cz>
864
865 Revert:
866 2022-11-14 Martin Liska <mliska@suse.cz>
867
868 * Make-lang.in: Support --with-sphinx-build.
869
8702022-11-14 Martin Liska <mliska@suse.cz>
871
872 Revert:
873 2022-11-14 Martin Liska <mliska@suse.cz>
874
875 * doc/internals/index.rst: Fix cross manual refs.
876 * doc/topics/contexts.rst: Likewise.
877
8782022-11-14 Martin Liska <mliska@suse.cz>
879
880 Revert:
881 2022-11-14 Martin Liska <mliska@suse.cz>
882
883 * Make-lang.in:
884 Support installation if sphinx-build is missing.
885
8862022-11-14 Martin Liska <mliska@suse.cz>
887
888 Revert:
889 2022-11-14 Martin Liska <mliska@suse.cz>
890
891 * doc/cp/index.rst: Remove trailing .rst in toctree.
892 * doc/cp/intro/index.rst: Likewise.
893 * doc/cp/topics/index.rst: Likewise.
894 * doc/index.rst: Likewise.
895 * doc/intro/index.rst: Likewise.
896 * doc/topics/index.rst: Likewise.
897 * doc/indices-and-tables.rst: New file.
898
5b6ce16a
GA
8992022-11-11 Martin Liska <mliska@suse.cz>
900
901 * doc/cp/index.rst: Remove trailing .rst in toctree.
902 * doc/cp/intro/index.rst: Likewise.
903 * doc/cp/topics/index.rst: Likewise.
904 * doc/index.rst: Likewise.
905 * doc/intro/index.rst: Likewise.
906 * doc/topics/index.rst: Likewise.
907 * doc/indices-and-tables.rst: New file.
908
1cdfd0e5
GA
9092022-11-09 Martin Liska <mliska@suse.cz>
910
911 * Make-lang.in:
912 Support installation if sphinx-build is missing.
913
9142022-11-09 Martin Liska <mliska@suse.cz>
915
916 * doc/internals/index.rst: Fix cross manual refs.
917 * doc/topics/contexts.rst: Likewise.
918
9192022-11-09 Martin Liska <mliska@suse.cz>
920
921 * Make-lang.in: Support --with-sphinx-build.
922
9232022-11-09 Martin Liska <mliska@suse.cz>
924
925 * Make-lang.in:
926 * docs/cp/index.rst: Moved to...
927 * doc/cp/index.rst: ...here.
928 * docs/cp/intro/index.rst: Moved to...
929 * doc/cp/intro/index.rst: ...here.
930 * docs/cp/intro/tutorial01.rst: Moved to...
931 * doc/cp/intro/tutorial01.rst: ...here.
932 * docs/cp/intro/tutorial02.rst: Moved to...
933 * doc/cp/intro/tutorial02.rst: ...here.
934 * docs/cp/intro/tutorial03.rst: Moved to...
935 * doc/cp/intro/tutorial03.rst: ...here.
936 * docs/cp/intro/tutorial04.rst: Moved to...
937 * doc/cp/intro/tutorial04.rst: ...here.
938 * docs/cp/topics/asm.rst: Moved to...
939 * doc/cp/topics/asm.rst: ...here.
940 * docs/cp/topics/compilation.rst: Moved to...
941 * doc/cp/topics/compilation.rst: ...here.
942 * docs/cp/topics/contexts.rst: Moved to...
943 * doc/cp/topics/contexts.rst: ...here.
944 * docs/cp/topics/expressions.rst: Moved to...
945 * doc/cp/topics/expressions.rst: ...here.
946 * docs/cp/topics/functions.rst: Moved to...
947 * doc/cp/topics/functions.rst: ...here.
948 * docs/cp/topics/index.rst: Moved to...
949 * doc/cp/topics/index.rst: ...here.
950 * docs/cp/topics/locations.rst: Moved to...
951 * doc/cp/topics/locations.rst: ...here.
952 * docs/cp/topics/objects.rst: Moved to...
953 * doc/cp/topics/objects.rst: ...here.
954 * docs/cp/topics/types.rst: Moved to...
955 * doc/cp/topics/types.rst: ...here.
956 * docs/examples/emit-alphabet.bf: Moved to...
957 * doc/examples/emit-alphabet.bf: ...here.
958 * docs/examples/tut01-hello-world.c: Moved to...
959 * doc/examples/tut01-hello-world.c: ...here.
960 * docs/examples/tut01-hello-world.cc: Moved to...
961 * doc/examples/tut01-hello-world.cc: ...here.
962 * docs/examples/tut02-square.c: Moved to...
963 * doc/examples/tut02-square.c: ...here.
964 * docs/examples/tut02-square.cc: Moved to...
965 * doc/examples/tut02-square.cc: ...here.
966 * docs/examples/tut03-sum-of-squares.c: Moved to...
967 * doc/examples/tut03-sum-of-squares.c: ...here.
968 * docs/examples/tut03-sum-of-squares.cc: Moved to...
969 * doc/examples/tut03-sum-of-squares.cc: ...here.
970 * docs/examples/tut04-toyvm/Makefile: Moved to...
971 * doc/examples/tut04-toyvm/Makefile: ...here.
972 * docs/examples/tut04-toyvm/factorial.toy: Moved to...
973 * doc/examples/tut04-toyvm/factorial.toy: ...here.
974 * docs/examples/tut04-toyvm/fibonacci.toy: Moved to...
975 * doc/examples/tut04-toyvm/fibonacci.toy: ...here.
976 * docs/examples/tut04-toyvm/toyvm.c: Moved to...
977 * doc/examples/tut04-toyvm/toyvm.c: ...here.
978 * docs/examples/tut04-toyvm/toyvm.cc: Moved to...
979 * doc/examples/tut04-toyvm/toyvm.cc: ...here.
980 * docs/examples/tut05-bf.c: Moved to...
981 * doc/examples/tut05-bf.c: ...here.
982 * docs/index.rst: Moved to...
983 * doc/index.rst: ...here.
984 * docs/internals/index.rst: Moved to...
985 * doc/internals/index.rst: ...here.
986 * docs/internals/test-hello-world.exe.log.txt: Moved to...
987 * doc/internals/test-hello-world.exe.log.txt: ...here.
988 * docs/_build/texinfo/libgccjit-figures/factorial.png: Moved to...
989 * doc/intro/factorial.png: ...here.
990 * docs/intro/index.rst: Moved to...
991 * doc/intro/index.rst: ...here.
992 * docs/_build/texinfo/libgccjit-figures/sum-of-squares.png: Moved to...
993 * doc/intro/sum-of-squares.png: ...here.
994 * docs/intro/tutorial01.rst: Moved to...
995 * doc/intro/tutorial01.rst: ...here.
996 * docs/intro/tutorial02.rst: Moved to...
997 * doc/intro/tutorial02.rst: ...here.
998 * docs/intro/tutorial03.rst: Moved to...
999 * doc/intro/tutorial03.rst: ...here.
1000 * docs/intro/tutorial04.rst: Moved to...
1001 * doc/intro/tutorial04.rst: ...here.
1002 * docs/intro/tutorial05.rst: Moved to...
1003 * doc/intro/tutorial05.rst: ...here.
1004 * docs/topics/asm.rst: Moved to...
1005 * doc/topics/asm.rst: ...here.
1006 * docs/topics/compatibility.rst: Moved to...
1007 * doc/topics/compatibility.rst: ...here.
1008 * docs/topics/compilation.rst: Moved to...
1009 * doc/topics/compilation.rst: ...here.
1010 * docs/topics/contexts.rst: Moved to...
1011 * doc/topics/contexts.rst: ...here.
1012 * docs/topics/expressions.rst: Moved to...
1013 * doc/topics/expressions.rst: ...here.
1014 * docs/topics/function-pointers.rst: Moved to...
1015 * doc/topics/function-pointers.rst: ...here.
1016 * docs/topics/functions.rst: Moved to...
1017 * doc/topics/functions.rst: ...here.
1018 * docs/topics/index.rst: Moved to...
1019 * doc/topics/index.rst: ...here.
1020 * docs/topics/locations.rst: Moved to...
1021 * doc/topics/locations.rst: ...here.
1022 * docs/topics/objects.rst: Moved to...
1023 * doc/topics/objects.rst: ...here.
1024 * docs/topics/performance.rst: Moved to...
1025 * doc/topics/performance.rst: ...here.
1026 * docs/topics/types.rst: Moved to...
1027 * doc/topics/types.rst: ...here.
1028 * docs/Makefile: Removed.
1029 * docs/_build/texinfo/Makefile: Removed.
1030 * docs/_build/texinfo/libgccjit-figures/factorial1.png: Removed.
1031 * docs/_build/texinfo/libgccjit-figures/sum-of-squares1.png: Removed.
1032 * docs/_build/texinfo/libgccjit.texi: Removed.
1033 * docs/conf.py: Removed.
1034 * docs/intro/factorial.png: Removed.
1035 * docs/intro/sum-of-squares.png: Removed.
1036 * doc/conf.py: New file.
1037
d0fc05e8
GA
10382022-09-15 Richard Biener <rguenther@suse.de>
1039
1040 * dummy-frontend.cc (jit_langhook_init): Do not initialize
1041 void_list_node.
1042
6d001ec1
GA
10432022-08-09 Vibhav Pant <vibhavp@gmail.com>
1044
1045 * libgccjit.h (LIBGCCJIT_HAVE_gcc_jit_context_new_bitcast): Move
1046 definition out of comment.
1047
af086d19
GA
10482022-07-28 David Malcolm <dmalcolm@redhat.com>
1049
1050 * docs/internals/index.rst: Remove reference to ".c" extensions
1051 of source files.
1052
10532022-07-28 Martin Liška <mliska@suse.cz>
1054
1055 * docs/cp/intro/tutorial02.rst:
1056 Shorten the assembly example so that there is not slider.
1057 * docs/cp/intro/tutorial04.rst: Likewise.
1058 * docs/intro/tutorial02.rst: Likewise.
1059 * docs/intro/tutorial04.rst: Likewise.
1060 * docs/topics/contexts.rst: Likewise.
1061
10622022-07-28 marxin <mliska@suse.cz>
1063
1064 * docs/index.rst: Remove reference to module index
1065 as we don't emit any.
1066
10672022-07-28 marxin <mliska@suse.cz>
1068
1069 * docs/cp/intro/tutorial02.rst: Use :expr:`type *` for pointers to a type
1070 * docs/cp/topics/asm.rst: Likewise.
1071 * docs/cp/topics/contexts.rst: Likewise.
1072 * docs/cp/topics/expressions.rst: Likewise.
1073 * docs/cp/topics/functions.rst: Likewise.
1074 * docs/cp/topics/objects.rst: Likewise.
1075 * docs/intro/tutorial02.rst: Likewise.
1076 * docs/intro/tutorial03.rst: Likewise.
1077 * docs/intro/tutorial04.rst: Likewise.
1078 * docs/intro/tutorial05.rst: Likewise.
1079 * docs/topics/compilation.rst: Likewise.
1080 * docs/topics/contexts.rst: Likewise.
1081 * docs/topics/objects.rst: Likewise.
1082
10832022-07-28 marxin <mliska@suse.cz>
1084
1085 * docs/cp/intro/tutorial04.rst: Use list-table.
1086 * docs/intro/tutorial04.rst: Likewise.
1087 * docs/intro/tutorial05.rst: Likewise.
1088 * docs/topics/compilation.rst: Likewise.
1089 * docs/topics/expressions.rst: Likewise.
1090 * docs/topics/types.rst: Likewise.
1091
10922022-07-28 marxin <mliska@suse.cz>
1093
1094 * docs/cp/topics/expressions.rst: Compact so that the generated
1095 output is also more compact.
1096
10972022-07-28 marxin <mliska@suse.cz>
1098
1099 * docs/cp/intro/tutorial02.rst: Use proper reference.
1100 * docs/cp/topics/contexts.rst: Likewise.
1101 * docs/cp/topics/functions.rst: Put `class` directive before a
1102 function as it is not allowed declaring a class in a fn.
1103 * docs/cp/topics/types.rst: Add template keyword.
1104 * docs/examples/tut04-toyvm/toyvm.c (toyvm_function_compile):
1105 Add removed comment used for code snippet ending detection.
1106 * docs/intro/tutorial04.rst: Fix to match the real comment.
1107
11082022-07-28 marxin <mliska@suse.cz>
1109
1110 * docs/cp/topics/expressions.rst: Use :expr: for basic types.
1111 * docs/topics/compilation.rst: Likewise.
1112 * docs/topics/expressions.rst: Likewise.
1113 * docs/topics/function-pointers.rst: Likewise.
1114
11152022-07-28 marxin <mliska@suse.cz>
1116
1117 * docs/conf.py: Add needs_sphinx = '3.0' where c:type was added.
1118 * docs/index.rst: Remove note about it.
1119 * docs/topics/compilation.rst: Use enum directive and reference.
1120 * docs/topics/contexts.rst: Likewise.
1121 * docs/topics/expressions.rst: Likewise.
1122 * docs/topics/functions.rst: Likewise.
1123
e0e07bc7
GA
11242022-07-14 Jonathan Wakely <jwakely@redhat.com>
1125
1126 * jit-recording.h (recording::memento): Define copy constructor
1127 and copy assignment operator as deleted.
1128 (recording::string): Likewise.
1129 (recording::string::c_str): Add const qualifier.
1130
ce600bc4
GA
11312022-06-29 Antoni Boucher <bouanto@zoho.com>
1132
1133 PR jit/105812
1134 * jit-playback.cc: Use the correct return type when folding in
1135 as_truth_value.
1136
11372022-06-29 Sergei Trofimovich <siarheit@google.com>
1138
1139 PR c++/106102
1140 * jit-playback.cc: Include <pthread.h> via "system.h" to avoid calloc()
1141 poisoning.
1142 * jit-recording.cc: Ditto.
1143 * libgccjit.cc: Ditto.
1144
ef1e4d80
GA
11452022-06-10 Antoni Boucher <bouanto@zoho.com>
1146
1147 PR jit/105829
1148 * libgccjit.cc: Add support for floating-point types in
1149 gcc_jit_type_get_size.
1150
02b4e2de
GA
11512022-06-08 Yang Yujie <yangyujie@loongson.cn>
1152
1153 * Make-lang.in: only link objects from $(EXTRA_GCC_OBJS)
1154 that's not in $(EXTRA_OBJS) into libgccjit.
1155
168fc8bd
GA
11562022-05-23 David Malcolm <dmalcolm@redhat.com>
1157
1158 * jit-recording.h: Add "final" and "override" to all vfunc
1159 implementations that were missing them, as appropriate.
1160
57f2ce6a
GA
11612022-05-20 David Malcolm <dmalcolm@redhat.com>
1162
1163 * jit-playback.h: Replace uses of "FINAL" and "OVERRIDE" with
1164 "final" and "override".
1165 * jit-recording.cc: Likewise.
1166 * jit-recording.h: Likewise.
1167
702bd11f
GA
11682022-05-16 Martin Liska <mliska@suse.cz>
1169
1170 * jit-builtins.cc (find_builtin_by_name): Use ARRAY_SIZE.
1171 (get_string_for_type_id): Likewise.
1172 * jit-recording.cc (recording::context::context): Likewise.
1173
031bd52e
GA
11742022-04-14 Iain Sandoe <iain@sandoe.co.uk>
1175
1176 * jit-playback.cc (new_bitcast): Cast values returned by tree_to_uhwi
1177 to 'long' to match the print format.
1178
504dae1d
GA
11792022-04-12 Antoni Boucher <bouanto@zoho.com>
1180
1181 PR jit/104293
1182 * docs/_build/texinfo/libgccjit.texi: Regenerate.
1183 * docs/topics/compatibility.rst (LIBGCCJIT_ABI_24): New ABI tag.
1184 * docs/topics/expressions.rst: Add documentation for the
1185 functions gcc_jit_lvalue_set_alignment and
1186 gcc_jit_lvalue_get_alignment.
1187 * jit-playback.h: New function (set_alignment).
1188 * jit-recording.cc: New function (set_alignment).
1189 * jit-recording.h: New functions (set_alignment, get_alignment)
1190 and new field (m_alignment).
1191 * libgccjit.cc: New functions (gcc_jit_lvalue_get_alignment,
1192 gcc_jit_lvalue_set_alignment)
1193 * libgccjit.h: New functions (gcc_jit_lvalue_get_alignment,
1194 gcc_jit_lvalue_set_alignment)
1195 * libgccjit.map (LIBGCCJIT_ABI_24): New ABI tag.
1196
11972022-04-12 Antoni Boucher <bouanto@zoho.com>
1198
1199 PR jit/104073
1200 * docs/_build/texinfo/libgccjit.texi: Regenerate.
1201 * docs/topics/compatibility.rst (LIBGCCJIT_ABI_23): New ABI tag.
1202 * docs/topics/contexts.rst: Add documentation for the new
1203 function gcc_jit_context_set_bool_print_errors_to_stderr.
1204 * jit-common.h: New enum value
1205 (INNER_BOOL_OPTION_PRINT_ERRORS_TO_STDERR).
1206 * jit-recording.cc: Handle the new option
1207 INNER_BOOL_OPTION_PRINT_ERRORS_TO_STDERR.
1208 * libgccjit.cc: New function
1209 (gcc_jit_context_set_bool_print_errors_to_stderr).
1210 * libgccjit.h: New function
1211 (gcc_jit_context_set_bool_print_errors_to_stderr).
1212 * libgccjit.map (LIBGCCJIT_ABI_23): New ABI tag.
1213
12142022-04-12 Antoni Boucher <bouanto@zoho.com>
1215
1216 PR jit/104072
1217 * docs/_build/texinfo/libgccjit.texi: Regenerate.
1218 * docs/topics/compatibility.rst (LIBGCCJIT_ABI_22): New ABI tag.
1219 * docs/topics/expressions.rst: Add documentation for the
1220 function gcc_jit_lvalue_set_register_name.
1221 * jit-playback.h: New function (set_register_name).
1222 * jit-recording.cc: New function (set_register_name) and add
1223 support for register variables.
1224 * jit-recording.h: New field (m_reg_name) and new function
1225 (set_register_name).
1226 * libgccjit.cc: New function (gcc_jit_lvalue_set_register_name).
1227 * libgccjit.h: New function (gcc_jit_lvalue_set_register_name).
1228 * libgccjit.map (LIBGCCJIT_ABI_22): New ABI tag.
1229
12302022-04-12 Antoni Boucher <bouanto@zoho.com>
1231
1232 PR jit/104071
1233 * docs/_build/texinfo/libgccjit.texi: Regenerate.
1234 * docs/topics/compatibility.rst (LIBGCCJIT_ABI_21): New ABI tag.
1235 * docs/topics/expressions.rst: Add documentation for the
1236 function gcc_jit_context_new_bitcast.
1237 * jit-playback.cc: New function (new_bitcast).
1238 * jit-playback.h: New function (new_bitcast).
1239 * jit-recording.cc: New functions (new_bitcast,
1240 bitcast::replay_into, bitcast::visit_children,
1241 bitcast::make_debug_string, bitcast::write_reproducer).
1242 * jit-recording.h: New class (bitcast) and new function
1243 (new_bitcast, bitcast::replay_into, bitcast::visit_children,
1244 bitcast::make_debug_string, bitcast::write_reproducer,
1245 bitcast::get_precedence).
1246 * libgccjit.cc: New function (gcc_jit_context_new_bitcast)
1247 * libgccjit.h: New function (gcc_jit_context_new_bitcast)
1248 * libgccjit.map (LIBGCCJIT_ABI_21): New ABI tag.
1249
12502022-04-12 Antoni Boucher <bouanto@zoho.com>
1251
1252 PR target/95325
1253 * docs/_build/texinfo/libgccjit.texi: Regenerate
1254 * docs/topics/compatibility.rst (LIBGCCJIT_ABI_20): New ABI tag.
1255 * docs/topics/types.rst: Add documentation for the new types
1256 GCC_JIT_TYPE_UINT8_T, GCC_JIT_TYPE_UINT16_T,
1257 GCC_JIT_TYPE_UINT32_T, GCC_JIT_TYPE_UINT64_T,
1258 GCC_JIT_TYPE_UINT128_T, GCC_JIT_TYPE_INT8_T, GCC_JIT_TYPE_INT16_T,
1259 GCC_JIT_TYPE_INT32_T, GCC_JIT_TYPE_INT64_T, GCC_JIT_TYPE_INT128_T and
1260 new functions (gcc_jit_compatible_types, gcc_jit_type_get_size).
1261 * jit-builtins.cc: Add support for BT_UINT128.
1262 * jit-common.h: Update the value of NUM_GCC_JIT_TYPES.
1263 * jit-playback.cc: Add support for the sized integer types.
1264 * jit-recording.cc: Add support for the sized integer types.
1265 * jit-recording.h: Add support for comparing integer types
1266 and new function (is_signed).
1267 * libgccjit.cc (gcc_jit_compatible_types): New.
1268 (gcc_jit_type_get_size) New.
1269 * libgccjit.h: New enum variants for gcc_jit_types
1270 (GCC_JIT_TYPE_UINT8_T, GCC_JIT_TYPE_UINT16_T,
1271 GCC_JIT_TYPE_UINT32_T, GCC_JIT_TYPE_UINT64_T,
1272 GCC_JIT_TYPE_UINT128_T, GCC_JIT_TYPE_INT8_T,
1273 GCC_JIT_TYPE_INT16_T, GCC_JIT_TYPE_INT32_T,
1274 GCC_JIT_TYPE_INT64_T, GCC_JIT_TYPE_INT128_T) and new functions
1275 (gcc_jit_compatible_types, gcc_jit_type_get_size).
1276 * libgccjit.map (LIBGCCJIT_ABI_20): New ABI tag.
1277
80eb8ec6
GA
12782022-04-06 David Malcolm <dmalcolm@redhat.com>
1279
1280 PR jit/102824
1281 * docs/_build/texinfo/factorial.png: Move to...
1282 * docs/_build/texinfo/libgccjit-figures/factorial.png: ...here.
1283 * docs/_build/texinfo/factorial1.png: Move to...
1284 * docs/_build/texinfo/libgccjit-figures/factorial1.png: ...here.
1285 * docs/_build/texinfo/sum-of-squares.png: Move to...
1286 * docs/_build/texinfo/libgccjit-figures/sum-of-squares.png: ...here.
1287 * docs/_build/texinfo/sum-of-squares1.png: Move to...
1288 * docs/_build/texinfo/libgccjit-figures/sum-of-squares1.png: ...here.
1289
8af4270d
GA
12902022-04-01 David Malcolm <dmalcolm@redhat.com>
1291
1292 * docs/topics/expressions.rst: Fix formatting.
1293 * docs/topics/types.rst: Likewise.
1294 * docs/_build/texinfo/libgccjit.texi: Regenerate
1295
12962022-04-01 Petter Tomner <tomner@kth.se>
1297
1298 * docs/topics/compatibility.rst: Add 19 tag
1299 * docs/topics/compilation.rst: Linking
1300 * docs/topics/contexts.rst: Linking example
1301 * docs/topics/expressions.rst: Fix formatting and dropped 's'
1302
e6533e2e
GA
13032022-03-07 Jakub Jelinek <jakub@redhat.com>
1304
1305 * libgccjit.h: Fix up duplicated word issue in a comment.
1306
fc829782
GA
13072022-01-17 Martin Liska <mliska@suse.cz>
1308
1309 * config-lang.in: Rename .c names to .cc.
1310 * docs/_build/texinfo/libgccjit.texi: Likewise.
1311 * docs/internals/index.rst: Likewise.
1312 * jit-builtins.cc (builtins_manager::make_builtin_function): Likewise.
1313 * jit-playback.cc (fold_const_var): Likewise.
1314 (playback::context::~context): Likewise.
1315 (new_field): Likewise.
1316 (new_bitfield): Likewise.
1317 (new_compound_type): Likewise.
1318 (playback::compound_type::set_fields): Likewise.
1319 (global_set_init_rvalue): Likewise.
1320 (load_blob_in_ctor): Likewise.
1321 (new_global_initialized): Likewise.
1322 (double>): Likewise.
1323 (new_string_literal): Likewise.
1324 (as_truth_value): Likewise.
1325 (build_call): Likewise.
1326 (playback::context::build_cast): Likewise.
1327 (new_array_access): Likewise.
1328 (new_field_access): Likewise.
1329 (dereference): Likewise.
1330 (postprocess): Likewise.
1331 (add_jump): Likewise.
1332 (add_switch): Likewise.
1333 (build_goto_operands): Likewise.
1334 (playback::context::read_dump_file): Likewise.
1335 (init_types): Likewise.
1336 * jit-recording.cc (recording::context::get_int_type): Likewise.
1337 * jit-recording.h: Likewise.
1338 * libgccjit.cc (compatible_types): Likewise.
1339 (gcc_jit_context_acquire): Likewise.
1340 (gcc_jit_context_release): Likewise.
1341 (gcc_jit_context_new_child_context): Likewise.
1342 (gcc_jit_type_as_object): Likewise.
1343 (gcc_jit_context_get_type): Likewise.
1344 (gcc_jit_context_get_int_type): Likewise.
1345 (gcc_jit_type_get_pointer): Likewise.
1346 (gcc_jit_type_get_const): Likewise.
1347 (gcc_jit_type_get_volatile): Likewise.
1348 (gcc_jit_type_dyncast_array): Likewise.
1349 (gcc_jit_type_is_bool): Likewise.
1350 (gcc_jit_type_is_pointer): Likewise.
1351 (gcc_jit_type_is_integral): Likewise.
1352 (gcc_jit_type_dyncast_vector): Likewise.
1353 (gcc_jit_type_is_struct): Likewise.
1354 (gcc_jit_vector_type_get_num_units): Likewise.
1355 (gcc_jit_vector_type_get_element_type): Likewise.
1356 (gcc_jit_type_unqualified): Likewise.
1357 (gcc_jit_type_dyncast_function_ptr_type): Likewise.
1358 (gcc_jit_function_type_get_return_type): Likewise.
1359 (gcc_jit_function_type_get_param_count): Likewise.
1360 (gcc_jit_function_type_get_param_type): Likewise.
1361 (gcc_jit_context_new_array_type): Likewise.
1362 (gcc_jit_context_new_field): Likewise.
1363 (gcc_jit_field_as_object): Likewise.
1364 (gcc_jit_context_new_struct_type): Likewise.
1365 (gcc_jit_struct_as_type): Likewise.
1366 (gcc_jit_struct_set_fields): Likewise.
1367 (gcc_jit_struct_get_field_count): Likewise.
1368 (gcc_jit_context_new_union_type): Likewise.
1369 (gcc_jit_context_new_function_ptr_type): Likewise.
1370 (gcc_jit_param_as_rvalue): Likewise.
1371 (gcc_jit_context_new_function): Likewise.
1372 (gcc_jit_function_get_return_type): Likewise.
1373 (gcc_jit_function_dump_to_dot): Likewise.
1374 (gcc_jit_block_get_function): Likewise.
1375 (gcc_jit_global_set_initializer_rvalue): Likewise.
1376 (gcc_jit_rvalue_get_type): Likewise.
1377 (gcc_jit_context_new_rvalue_from_int): Likewise.
1378 (gcc_jit_context_one): Likewise.
1379 (gcc_jit_context_new_rvalue_from_double): Likewise.
1380 (gcc_jit_context_null): Likewise.
1381 (gcc_jit_context_new_string_literal): Likewise.
1382 (valid_binary_op_p): Likewise.
1383 (gcc_jit_context_new_binary_op): Likewise.
1384 (gcc_jit_context_new_comparison): Likewise.
1385 (gcc_jit_context_new_call): Likewise.
1386 (is_valid_cast): Likewise.
1387 (gcc_jit_context_new_cast): Likewise.
1388 (gcc_jit_object_get_context): Likewise.
1389 (gcc_jit_object_get_debug_string): Likewise.
1390 (gcc_jit_lvalue_access_field): Likewise.
1391 (gcc_jit_rvalue_access_field): Likewise.
1392 (gcc_jit_rvalue_dereference_field): Likewise.
1393 (gcc_jit_rvalue_dereference): Likewise.
1394 (gcc_jit_lvalue_get_address): Likewise.
1395 (gcc_jit_lvalue_set_tls_model): Likewise.
1396 (gcc_jit_lvalue_set_link_section): Likewise.
1397 (gcc_jit_function_new_local): Likewise.
1398 (gcc_jit_block_add_eval): Likewise.
1399 (gcc_jit_block_add_assignment): Likewise.
1400 (is_bool): Likewise.
1401 (gcc_jit_block_end_with_conditional): Likewise.
1402 (gcc_jit_block_add_comment): Likewise.
1403 (gcc_jit_block_end_with_jump): Likewise.
1404 (gcc_jit_block_end_with_return): Likewise.
1405 (gcc_jit_block_end_with_void_return): Likewise.
1406 (case_range_validator::case_range_validator): Likewise.
1407 (case_range_validator::validate): Likewise.
1408 (case_range_validator::get_wide_int): Likewise.
1409 (gcc_jit_block_end_with_switch): Likewise.
1410 (gcc_jit_context_set_str_option): Likewise.
1411 (gcc_jit_context_set_int_option): Likewise.
1412 (gcc_jit_context_set_bool_option): Likewise.
1413 (gcc_jit_context_set_bool_allow_unreachable_blocks): Likewise.
1414 (gcc_jit_context_set_bool_use_external_driver): Likewise.
1415 (gcc_jit_context_add_command_line_option): Likewise.
1416 (gcc_jit_context_add_driver_option): Likewise.
1417 (gcc_jit_context_enable_dump): Likewise.
1418 (gcc_jit_context_compile): Likewise.
1419 (gcc_jit_context_compile_to_file): Likewise.
1420 (gcc_jit_context_set_logfile): Likewise.
1421 (gcc_jit_context_dump_reproducer_to_file): Likewise.
1422 (gcc_jit_context_get_first_error): Likewise.
1423 (gcc_jit_context_get_last_error): Likewise.
1424 (gcc_jit_result_get_code): Likewise.
1425 (gcc_jit_result_get_global): Likewise.
1426 (gcc_jit_rvalue_set_bool_require_tail_call): Likewise.
1427 (gcc_jit_type_get_aligned): Likewise.
1428 (gcc_jit_type_get_vector): Likewise.
1429 (gcc_jit_function_get_address): Likewise.
1430 (gcc_jit_version_patchlevel): Likewise.
1431 (gcc_jit_block_add_extended_asm): Likewise.
1432 (gcc_jit_extended_asm_as_object): Likewise.
1433 (gcc_jit_extended_asm_set_volatile_flag): Likewise.
1434 (gcc_jit_extended_asm_set_inline_flag): Likewise.
1435 (gcc_jit_extended_asm_add_output_operand): Likewise.
1436 (gcc_jit_extended_asm_add_input_operand): Likewise.
1437 (gcc_jit_extended_asm_add_clobber): Likewise.
1438 * notes.txt: Likewise.
1439
14402022-01-17 Martin Liska <mliska@suse.cz>
1441
1442 * dummy-frontend.c: Moved to...
1443 * dummy-frontend.cc: ...here.
1444 * jit-builtins.c: Moved to...
1445 * jit-builtins.cc: ...here.
1446 * jit-logging.c: Moved to...
1447 * jit-logging.cc: ...here.
1448 * jit-playback.c: Moved to...
1449 * jit-playback.cc: ...here.
1450 * jit-recording.c: Moved to...
1451 * jit-recording.cc: ...here.
1452 * jit-result.c: Moved to...
1453 * jit-result.cc: ...here.
1454 * jit-spec.c: Moved to...
1455 * jit-spec.cc: ...here.
1456 * jit-tempdir.c: Moved to...
1457 * jit-tempdir.cc: ...here.
1458 * jit-w32.c: Moved to...
1459 * jit-w32.cc: ...here.
1460 * libgccjit.c: Moved to...
1461 * libgccjit.cc: ...here.
1462
054e57e4
GA
14632021-12-28 Martin Liska <mliska@suse.cz>
1464
1465 * docs/_build/texinfo/libgccjit.texi: Replace http:// with https.
1466 * docs/cp/index.rst: Likewise.
1467 * docs/cp/intro/index.rst: Likewise.
1468 * docs/cp/intro/tutorial01.rst: Likewise.
1469 * docs/cp/intro/tutorial02.rst: Likewise.
1470 * docs/cp/intro/tutorial03.rst: Likewise.
1471 * docs/cp/intro/tutorial04.rst: Likewise.
1472 * docs/cp/topics/asm.rst: Likewise.
1473 * docs/cp/topics/compilation.rst: Likewise.
1474 * docs/cp/topics/contexts.rst: Likewise.
1475 * docs/cp/topics/expressions.rst: Likewise.
1476 * docs/cp/topics/functions.rst: Likewise.
1477 * docs/cp/topics/index.rst: Likewise.
1478 * docs/cp/topics/locations.rst: Likewise.
1479 * docs/cp/topics/objects.rst: Likewise.
1480 * docs/cp/topics/types.rst: Likewise.
1481 * docs/index.rst: Likewise.
1482 * docs/internals/index.rst: Likewise.
1483 * docs/intro/index.rst: Likewise.
1484 * docs/intro/tutorial01.rst: Likewise.
1485 * docs/intro/tutorial02.rst: Likewise.
1486 * docs/intro/tutorial03.rst: Likewise.
1487 * docs/intro/tutorial04.rst: Likewise.
1488 * docs/intro/tutorial05.rst: Likewise.
1489 * docs/topics/asm.rst: Likewise.
1490 * docs/topics/compatibility.rst: Likewise.
1491 * docs/topics/compilation.rst: Likewise.
1492 * docs/topics/contexts.rst: Likewise.
1493 * docs/topics/expressions.rst: Likewise.
1494 * docs/topics/function-pointers.rst: Likewise.
1495 * docs/topics/functions.rst: Likewise.
1496 * docs/topics/index.rst: Likewise.
1497 * docs/topics/locations.rst: Likewise.
1498 * docs/topics/objects.rst: Likewise.
1499 * docs/topics/performance.rst: Likewise.
1500 * docs/topics/types.rst: Likewise.
1501
7631a4d1
GA
15022021-12-20 Martin Liska <mliska@suse.cz>
1503
1504 * libgccjit.c (struct version_info): Rename to jit_version_info.
1505 (struct jit_version_info): Likewise.
1506 (gcc_jit_version_major): Likewise.
1507 (gcc_jit_version_minor): Likewise.
1508 (gcc_jit_version_patchlevel): Likewise.
1509
9c6586bc
GA
15102021-12-14 Petter Tomner <tomner@kth.se>
1511
1512 * jit-common.h: New enum
1513 * jit-playback.c : Folding an setting intitial
1514 (global_new_decl) : Handle const global generation
1515 (new_global) : New flag
1516 (global_set_init_rvalue) : New
1517 (new_ctor) : New
1518 (new_global_initialized) : Flag
1519 (as_truth_value) : Fold
1520 (new_unary_op) : Fold
1521 (new_binary_op) : Fold
1522 (new_comparison) : Fold
1523 (new_array_access) : Fold
1524 (new_dereference) : Fold
1525 (get_address) : Fold
1526 * jit-playback.h :
1527 (global_set_init_rvalue) : New
1528 (new_ctor) : New
1529 * jit-recording.c :
1530 * jit-recording.h :
1531 (new_global_init_rvalue) : New
1532 (new_ctor) : New
1533 (ctor) : New, inherits rvalue
1534 (global_init_rvalue) : New, inherits memento
1535 (type::is_union) : New
1536 * libgccjit++.h : New entrypoints, see C-header
1537 * libgccjit.c : See .h
1538 * libgccjit.h : New entrypoints
1539 (gcc_jit_context_new_array_constructor) : New
1540 (gcc_jit_context_new_struct_constructor) : New
1541 (gcc_jit_context_new_union_constructor) : New
1542 (gcc_jit_global_set_initializer_rvalue) : New
1543 (LIBGCCJIT_HAVE_CTORS) : New feuture macro
1544 * libgccjit.map : New entrypoints added to ABI 19
1545 * docs/topics/expressions.rst : Updated docs
1546
c8dcf64b
GA
15472021-12-12 Antoni Boucher <bouanto@zoho.com>
1548
1549 PR target/100688
1550 * docs/topics/compatibility.rst (LIBGCCJIT_ABI_18): New ABI
1551 tag.
1552 * docs/topics/expressions.rst: Add documentation for the
1553 function gcc_jit_lvalue_set_link_section.
1554 * jit-playback.h: New function (set_link_section).
1555 * jit-recording.c: New function (set_link_section) and
1556 support for setting the link section.
1557 * jit-recording.h: New function (set_link_section) and new
1558 field m_link_section.
1559 * libgccjit.c: New function (gcc_jit_lvalue_set_link_section).
1560 * libgccjit.h: New function (gcc_jit_lvalue_set_link_section).
1561 * libgccjit.map (LIBGCCJIT_ABI_18): New ABI tag.
1562
e8decbe7
GA
15632021-12-12 Antoni Boucher <bouanto@zoho.com>
1564
1565 PR target/95415
1566 * docs/topics/compatibility.rst (LIBGCCJIT_ABI_17): New ABI
1567 tag.
1568 * docs/topics/expressions.rst: Add document for the function
1569 gcc_jit_lvalue_set_tls_model.
1570 * jit-playback.h: New function (set_tls_model).
1571 * jit-recording.c: New function (set_tls_model), new
1572 variables (tls_models and tls_model_enum_strings) and support
1573 for setting the tls model.
1574 * jit-recording.h: New function (set_tls_model) and new
1575 field m_tls_model.
1576 * libgccjit.c: New function (gcc_jit_lvalue_set_tls_model).
1577 * libgccjit.h: New function (gcc_jit_lvalue_set_tls_model)
1578 and new enum (gcc_jit_tls_model).
1579 * libgccjit.map (LIBGCCJIT_ABI_17): New ABI tag.
1580
15812021-12-11 Antoni Boucher <bouanto@zoho.com>
1582
1583 PR target/96066
1584 PR target/96067
1585 * jit-builtins.c: Implement missing types for builtins.
1586 * jit-recording.c:: Allow sending a volatile const void * as
1587 argument.
1588 * jit-recording.h: New functions (is_volatile, is_const) and
1589 allow comparing qualified types.
1590
0bceef16
GA
15912021-12-10 David Malcolm <dmalcolm@redhat.com>
1592
1593 PR jit/103562
1594 * jit-playback.c (gcc::jit::playback::context::new_function): Set
1595 DECL_CONTEXT of the result_decl.
1596
d62c8c74
GA
15972021-11-27 Petter Tomner <tomner@kth.se>
1598
1599 * libgccjit.c: %ld -> %zu
1600
d9ca4b45
GA
16012021-11-24 Martin Liska <mliska@suse.cz>
1602
1603 * jit-playback.c (function): Initialize m_blocks vector.
1604
f658f1d7
GA
16052021-11-20 Antoni Boucher <bouanto@zoho.com>
1606
1607 PR target/96889
1608 * docs/topics/compatibility.rst (LIBGCCJIT_ABI_16): New ABI tag.
1609 * docs/topics/functions.rst: Add documentation for the
1610 functions gcc_jit_function_get_return_type and
1611 gcc_jit_function_get_param_count
1612 * docs/topics/types.rst: Add documentation for the functions
1613 gcc_jit_function_type_get_return_type,
1614 gcc_jit_function_type_get_param_count,
1615 gcc_jit_function_type_get_param_type,
1616 gcc_jit_type_unqualified, gcc_jit_type_dyncast_array,
1617 gcc_jit_type_is_bool,
1618 gcc_jit_type_dyncast_function_ptr_type,
1619 gcc_jit_type_is_integral, gcc_jit_type_is_pointer,
1620 gcc_jit_type_dyncast_vector,
1621 gcc_jit_vector_type_get_element_type,
1622 gcc_jit_vector_type_get_num_units,
1623 gcc_jit_struct_get_field, gcc_jit_type_is_struct,
1624 and gcc_jit_struct_get_field_count
1625 * libgccjit.c:
1626 (gcc_jit_function_get_return_type, gcc_jit_function_get_param_count,
1627 gcc_jit_function_type_get_return_type,
1628 gcc_jit_function_type_get_param_count,
1629 gcc_jit_function_type_get_param_type, gcc_jit_type_unqualified,
1630 gcc_jit_type_dyncast_array, gcc_jit_type_is_bool,
1631 gcc_jit_type_dyncast_function_ptr_type, gcc_jit_type_is_integral,
1632 gcc_jit_type_is_pointer, gcc_jit_type_dyncast_vector,
1633 gcc_jit_vector_type_get_element_type,
1634 gcc_jit_vector_type_get_num_units, gcc_jit_struct_get_field,
1635 gcc_jit_type_is_struct, gcc_jit_struct_get_field_count): New
1636 functions.
1637 (struct gcc_jit_function_type, struct gcc_jit_vector_type):
1638 New types.
1639 * libgccjit.h:
1640 (gcc_jit_function_get_return_type, gcc_jit_function_get_param_count,
1641 gcc_jit_function_type_get_return_type,
1642 gcc_jit_function_type_get_param_count,
1643 gcc_jit_function_type_get_param_type, gcc_jit_type_unqualified,
1644 gcc_jit_type_dyncast_array, gcc_jit_type_is_bool,
1645 gcc_jit_type_dyncast_function_ptr_type, gcc_jit_type_is_integral,
1646 gcc_jit_type_is_pointer, gcc_jit_type_dyncast_vector,
1647 gcc_jit_vector_type_get_element_type,
1648 gcc_jit_vector_type_get_num_units, gcc_jit_struct_get_field,
1649 gcc_jit_type_is_struct, gcc_jit_struct_get_field_count): New
1650 function declarations.
1651 (struct gcc_jit_function_type, struct gcc_jit_vector_type):
1652 New types.
1653 * jit-recording.h: New functions (is_struct and is_vector)
1654 * libgccjit.map (LIBGCCJIT_ABI_16): New ABI tag.
1655
af2852b9
GA
16562021-11-12 David Malcolm <dmalcolm@redhat.com>
1657
1658 PR jit/103199
1659 * docs/examples/tut04-toyvm/toyvm.c (toyvm_function_compile):
1660 Increase size of buffer.
1661 * docs/examples/tut04-toyvm/toyvm.cc
1662 (compilation_state::create_function): Likewise.
1663
a26206ec
GA
16642021-09-10 Petter Tomner <tomner@kth.se>
1665
1666 * jit-playback.c: Moved global var processing to after loc handling.
3d3b561f
ML
1667 Setting TYPE_NAME for fundamental types.
1668 Using common functions for finalizing globals.
a26206ec 1669 * jit-playback.h: New method init_types().
3d3b561f 1670 Changed get_tree_node_for_type() to method.
a26206ec 1671
b57fba5e
GA
16722021-08-19 Iain Sandoe <iain@sandoe.co.uk>
1673
1674 * docs/examples/tut04-toyvm/toyvm.c: Include jit-dejagnu.h.
1675 * docs/examples/tut04-toyvm/toyvm.cc: Likewise.
1676 * jit-dejagnu.h: New file, imported from dejagnu-1.6.2 and
1677 patched for this application.
1678
6e529985
GA
16792021-08-18 Iain Sandoe <iain@sandoe.co.uk>
1680
1681 PR jit/100613
1682 * Make-lang.in: Provide clauses for Darwin hosts.
1683
bdea84c4
GA
16842021-07-18 Antoni Boucher <bouanto@zoho.com>
1685
1686 PR target/95498
1687 * jit-playback.c (convert): Add support to handle truncation and
1688 extension in the convert function.
1689
65f32e5d
GA
16902021-05-19 Martin Liska <mliska@suse.cz>
1691
1692 PR testsuite/100658
1693 * libgccjit.c (gcc_jit_context_new_function): Fix typos.
1694
8bf52ffa
GA
16952021-03-24 Matthias Klose <doko@ubuntu.com>
1696
1697 * Make-lang.in (jit.sphinx.html, jit.sphinx.pdf): Use $(mkinstalldirs),
1698 (jit.install-headers): Depend on installdirs.
1699
50352c6c
GA
17002021-02-19 David Malcolm <dmalcolm@redhat.com>
1701
1702 PR jit/99126
1703 * jit-builtins.c
1704 (gcc::jit::builtins_manager::get_builtin_function_by_id):
1705 Update assertion to reject BUILT_IN_NONE.
1706 (gcc::jit::builtins_manager::ensure_optimization_builtins_exist):
1707 New.
1708 * jit-builtins.h
1709 (gcc::jit::builtins_manager::ensure_optimization_builtins_exist):
1710 New decl.
1711 * jit-playback.c (gcc::jit::playback::context::replay): Call it.
1712 Remove redundant conditional on bm.
1713
5fff80fd
GA
17142021-01-14 David Malcolm <dmalcolm@redhat.com>
1715
1716 * docs/cp/index.rst: Remove "Alpha" warning.
1717 * docs/index.rst: Likewise.
1718 * docs/_build/texinfo/libgccjit.texi: Regenerate
1719
360258da
GA
17202020-11-25 Martin Sebor <msebor@redhat.com>
1721
1722 PR bootstrap/94982
1723 * jit-recording.c (recording::function::dump_to_dot): Avoid
1724 -Wformat-diag.
1725 (recording::block::dump_to_dot): Same.
1726
82e5048e
GA
17272020-11-20 Jakub Jelinek <jakub@redhat.com>
1728
1729 PR other/97911
1730 * Make-lang.in (jit.serial): Change from goal to a
1731 variable.
1732 (.PHONY): Drop jit.serial and jit.prev.
1733 ($(LIBGCCJIT_FILENAME)): Depend on $(jit.serial) rather than
1734 jit.serial.
1735
25bb75f8
GA
17362020-11-18 Jakub Jelinek <jakub@redhat.com>
1737
1738 * Make-lang.in (jit.serial): New goal.
1739 (.PHONY): Add jit.serial jit.prev.
1740 ($(LIBGCCJIT_FILENAME)): Depend on jit.prev. Call LINK_PROGRESS.
1741
a5a11525
GA
17422020-11-12 David Malcolm <dmalcolm@redhat.com>
1743
1744 PR jit/87291
1745 * docs/cp/topics/asm.rst: New file.
1746 * docs/cp/topics/index.rst (Topic Reference): Add it.
1747 * docs/topics/asm.rst: New file.
1748 * docs/topics/compatibility.rst (LIBGCCJIT_ABI_15): New.
1749 * docs/topics/functions.rst (Statements): Add link to extended
1750 asm.
1751 * docs/topics/index.rst (Topic Reference): Add asm.rst.
1752 * docs/topics/objects.rst: Add gcc_jit_extended_asm to ASCII art.
1753 * docs/_build/texinfo/Makefile: Regenerate.
1754 * docs/_build/texinfo/libgccjit.texi: Regenerate.
1755 * jit-common.h (gcc::jit::recording::extended_asm): New forward
1756 decl.
1757 (gcc::jit::recording::top_level_asm): Likewise.
1758 * jit-playback.c: Include "stmt.h".
1759 (build_string): New.
1760 (gcc::jit::playback::context::new_string_literal): Disambiguate
1761 build_string call.
1762 (gcc::jit::playback::context::add_top_level_asm): New.
1763 (build_operand_chain): New.
1764 (build_clobbers): New.
1765 (build_goto_operands): New.
1766 (gcc::jit::playback::block::add_extended_asm): New.
1767 * jit-playback.h (gcc::jit::playback::context::add_top_level_asm):
1768 New decl.
1769 (struct gcc::jit::playback::asm_operand): New struct.
1770 (gcc::jit::playback::block::add_extended_asm): New decl.
1771 * jit-recording.c (gcc::jit::recording::context::dump_to_file):
1772 Dump top-level asms.
1773 (gcc::jit::recording::context::add_top_level_asm): New.
1774 (gcc::jit::recording::block::add_extended_asm): New.
1775 (gcc::jit::recording::block::end_with_extended_asm_goto): New.
1776 (gcc::jit::recording::asm_operand::asm_operand): New.
1777 (gcc::jit::recording::asm_operand::print): New.
1778 (gcc::jit::recording::asm_operand::make_debug_string): New.
1779 (gcc::jit::recording::output_asm_operand::write_reproducer): New.
1780 (gcc::jit::recording::output_asm_operand::print): New.
1781 (gcc::jit::recording::input_asm_operand::write_reproducer): New.
1782 (gcc::jit::recording::input_asm_operand::print): New.
1783 (gcc::jit::recording::extended_asm::add_output_operand): New.
1784 (gcc::jit::recording::extended_asm::add_input_operand): New.
1785 (gcc::jit::recording::extended_asm::add_clobber): New.
1786 (gcc::jit::recording::extended_asm::replay_into): New.
1787 (gcc::jit::recording::extended_asm::make_debug_string): New.
1788 (gcc::jit::recording::extended_asm::write_flags): New.
1789 (gcc::jit::recording::extended_asm::write_clobbers): New.
1790 (gcc::jit::recording::extended_asm_simple::write_reproducer): New.
1791 (gcc::jit::recording::extended_asm::maybe_populate_playback_blocks):
1792 New.
1793 (gcc::jit::recording::extended_asm_goto::extended_asm_goto): New.
1794 (gcc::jit::recording::extended_asm_goto::replay_into): New.
1795 (gcc::jit::recording::extended_asm_goto::write_reproducer): New.
1796 (gcc::jit::recording::extended_asm_goto::get_successor_blocks):
1797 New.
1798 (gcc::jit::recording::extended_asm_goto::maybe_print_gotos): New.
1799 (gcc::jit::recording::extended_asm_goto::maybe_populate_playback_blocks):
1800 New.
1801 (gcc::jit::recording::top_level_asm::top_level_asm): New.
1802 (gcc::jit::recording::top_level_asm::replay_into): New.
1803 (gcc::jit::recording::top_level_asm::make_debug_string): New.
1804 (gcc::jit::recording::top_level_asm::write_to_dump): New.
1805 (gcc::jit::recording::top_level_asm::write_reproducer): New.
1806 * jit-recording.h
1807 (gcc::jit::recording::context::add_top_level_asm): New decl.
1808 (gcc::jit::recording::context::m_top_level_asms): New field.
1809 (gcc::jit::recording::block::add_extended_asm): New decl.
1810 (gcc::jit::recording::block::end_with_extended_asm_goto): New
1811 decl.
1812 (gcc::jit::recording::asm_operand): New class.
1813 (gcc::jit::recording::output_asm_operand): New class.
1814 (gcc::jit::recording::input_asm_operand): New class.
1815 (gcc::jit::recording::extended_asm): New class.
1816 (gcc::jit::recording::extended_asm_simple): New class.
1817 (gcc::jit::recording::extended_asm_goto): New class.
1818 (gcc::jit::recording::top_level_asm): New class.
1819 * libgccjit++.h (gccjit::extended_asm): New forward decl.
1820 (gccjit::context::add_top_level_asm): New.
1821 (gccjit::block::add_extended_asm): New.
1822 (gccjit::block::end_with_extended_asm_goto): New.
1823 (gccjit::extended_asm): New class.
1824 (gccjit::extended_asm::extended_asm): New ctors.
1825 (gccjit::extended_asm::set_volatile_flag): New.
1826 (gccjit::extended_asm::set_inline_flag): New.
1827 (gccjit::extended_asm::add_output_operand): New.
1828 (gccjit::extended_asm::add_input_operand): New.
1829 (gccjit::extended_asm::add_clobber): New.
1830 (gccjit::extended_asm::get_inner_extended_asm): New.
1831 * libgccjit.c (struct gcc_jit_extended_asm): New.
1832 (jit_error): Make "loc" param take a gcc::jit::recording::location *
1833 rather than a gcc_jit_location *.
1834 (gcc_jit_block_add_extended_asm): New entrypoint.
1835 (gcc_jit_block_end_with_extended_asm_goto): New entrypoint.
1836 (gcc_jit_extended_asm_as_object): New entrypoint.
1837 (gcc_jit_extended_asm_set_volatile_flag): New entrypoint.
1838 (gcc_jit_extended_asm_set_inline_flag): New entrypoint.
1839 (gcc_jit_extended_asm_add_output_operand): New entrypoint.
1840 (gcc_jit_extended_asm_add_clobber): New entrypoint.
1841 (gcc_jit_context_add_top_level_asm): New entrypoint.
1842 * libgccjit.h: Add gcc_jit_extended_asm to ASCII art.
1843 (gcc_jit_extended_asm): New typedef.
1844 (LIBGCCJIT_HAVE_ASM_STATEMENTS): New define.
1845 (gcc_jit_block_add_extended_asm): New entrypoint.
1846 (gcc_jit_block_end_with_extended_asm_goto): New entrypoint.
1847 (gcc_jit_extended_asm_as_object): New entrypoint.
1848 (gcc_jit_extended_asm_set_volatile_flag): New entrypoint.
1849 (gcc_jit_extended_asm_set_inline_flag): New entrypoint.
1850 (gcc_jit_extended_asm_add_output_operand): New entrypoint.
1851 (gcc_jit_extended_asm_add_input_operand): New entrypoint.
1852 (gcc_jit_extended_asm_add_clobber): New entrypoint.
1853 (gcc_jit_context_add_top_level_asm): New entrypoint.
1854 * libgccjit.map (LIBGCCJIT_ABI_15): New.
1855
18562020-11-12 David Malcolm <dmalcolm@redhat.com>
1857
1858 * jit-recording.c (recording::context::new_string): Add "escaped"
1859 param and use it when creating the new recording::string instance.
1860 (recording::string::string): Add "escaped" param and use it to
1861 initialize m_escaped.
1862 (recording::string::make_debug_string): Replace check that first
1863 char is double-quote with use of m_escaped. Fix escaping of
1864 '\t' and '\n'. Set "escaped" on the result.
1865 * jit-recording.h (recording::context::new_string): Add "escaped"
1866 param.
1867 (recording::string::string): Add "escaped" param.
1868 (recording::string::m_escaped): New field.
1869
18702020-11-12 David Malcolm <dmalcolm@redhat.com>
1871
1872 * libgccjit.h: Fix typo in comment.
1873
50a71cd0
GA
18742020-09-14 Andrea Corallo <andrea.corallo@arm.com>
1875
1876 * docs/_build/texinfo/libgccjit.texi: Regenerate.
1877
ac35c090
GA
18782020-09-11 Andrea Corallo <andrea.corallo@arm.com>
1879
1880 * docs/topics/compatibility.rst (LIBGCCJIT_ABI_14): New ABI tag.
1881 * docs/topics/expressions.rst (gcc_jit_global_set_initializer):
1882 Document new entry point in section 'Global variables'.
1883 * jit-playback.c (global_new_decl, global_finalize_lvalue): New
1884 method.
1885 (playback::context::new_global): Make use of global_new_decl,
1886 global_finalize_lvalue.
1887 (load_blob_in_ctor): New template function in use by the
1888 following.
1889 (playback::context::new_global_initialized): New method.
1890 * jit-playback.h (class context): Decl 'new_global_initialized',
1891 'global_new_decl', 'global_finalize_lvalue'.
1892 (lvalue::set_initializer): Add implementation.
1893 * jit-recording.c (recording::memento_of_get_pointer::get_size)
1894 (recording::memento_of_get_type::get_size): Add implementation.
1895 (recording::global::write_initializer_reproducer): New function in
1896 use by 'recording::global::write_reproducer'.
1897 (recording::global::replay_into)
1898 (recording::global::write_to_dump)
1899 (recording::global::write_reproducer): Handle
1900 initialized case.
1901 * jit-recording.h (class type): Decl 'get_size' and
1902 'num_elements'.
1903 * libgccjit++.h (class lvalue): Declare new 'set_initializer'
1904 method.
1905 (class lvalue): Decl 'is_global' and 'set_initializer'.
1906 (class global) Decl 'write_initializer_reproducer'. Add
1907 'm_initializer', 'm_initializer_num_bytes' fields. Implement
1908 'set_initializer'. Add a destructor to free 'm_initializer'.
1909 * libgccjit.c (gcc_jit_global_set_initializer): New function.
1910 * libgccjit.h (gcc_jit_global_set_initializer): New function
1911 declaration.
1912 * libgccjit.map (LIBGCCJIT_ABI_14): New ABI tag.
1913
8f7ea26a
GA
19142020-08-28 Martin Sebor <msebor@redhat.com>
1915
1916 * jit-recording.c (recording::switch_::make_debug_string): Add argument
1917 to a call.
1918
e769f970
GA
19192020-08-22 Andrea Corallo <andrea.corallo@arm.com>
1920
1921 * libgccjit.c:
1922 (gcc_jit_context_new_rvalue_from_int)
1923 (gcc_jit_context_new_rvalue_from_long)
1924 (gcc_jit_context_new_rvalue_from_double)
1925 (gcc_jit_context_new_rvalue_from_ptr): Update function heading
1926 comments.
1927
6fb94d67
GA
19282020-06-16 Nicolas Bértolo <nicolasbertolo@gmail.com>
1929
1930 * Make-lang.in: Always define version, minor and release
1931 numbers. Create the Windows shared library as
1932 libgccjit-$(LIBGCCJIT_VERSION_NUM).dll.
1933
9a5b7438
GA
19342020-06-03 David Malcolm <dmalcolm@redhat.com>
1935
1936 PR jit/95306
1937 * jit-builtins.c (builtins_manager::make_primitive_type):
1938 Implement BT_CONST_VOLATILE_PTR.
1939
a9312a79
GA
19402020-06-02 David Malcolm <dmalcolm@redhat.com>
1941
1942 PR jit/95426
1943 * dummy-frontend.c: Include "options.h", "stringpool.h", and
1944 "attribs.h".
1945 (ATTR_EXCL): New, copied from lto/lto-lang.c.
1946 (attr_noreturn_exclusions): Likewise.
1947 (attr_returns_twice_exclusions): Likewise.
1948 (attr_const_pure_exclusions): Likewise.
1949 (jit_attribute_table): Likewise, copied from lto_attribute_table.
1950 (jit_format_attribute_table): Likewise, copied from
1951 lto_format_attribute_table.
1952 (handle_noreturn_attribute): New, copied from lto/lto-lang.c.
1953 (handle_leaf_attribute): Likewise.
1954 (handle_const_attribute): Likewise.
1955 (handle_malloc_attribute): Likewise.
1956 (handle_pure_attribute): Likewise.
1957 (handle_novops_attribute): Likewise.
1958 (get_nonnull_operand): Likewise.
1959 (handle_nonnull_attribute): Likewise.
1960 (handle_nothrow_attribute): Likewise.
1961 (handle_sentinel_attribute): Likewise.
1962 (handle_type_generic_attribute): Likewise.
1963 (handle_transaction_pure_attribute): Likewise.
1964 (handle_returns_twice_attribute): Likewise.
1965 (handle_patchable_function_entry_attribute): Likewise.
1966 (ignore_attribute): Likewise.
1967 (handle_format_attribute): Likewise.
1968 (handle_format_arg_attribute): Likewise.
1969 (handle_fnspec_attribute): Likewise.
1970 (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE): Define.
1971 (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Define.
1972
53ffb43a
GA
19732020-05-28 Nicolas Bértolo <nicolasbertolo@gmail.com>
1974
1975 * Make-lang.in: Remove extra slash. Build libgccjit.dll and its
1976 import library in Windows.
1977 * config-lang.in: Update comment about --enable-host-shared.
1978 * jit-w32.h: New file.
1979 * jit-w32.c: New file.
1980 (print_last_error): New function that prints the error
1981 string corresponding to GetLastError().
1982 (get_TOKEN_USER_current_user): Helper function used for getting
1983 the SID belonging to the current user.
1984 (create_directory_for_current_user): Helper function to create
1985 a directory with permissions such that only the current user can
1986 access it.
1987 (win_mkdtemp): Create a temporary directory using Windows APIs.
1988 * jit-playback.c: Do not chmod files in Windows. Use LoadLibrary,
1989 FreeLibrary and GetProcAddress instead of libdl.
1990 * jit-result.h, jit-result.c: Introduce result::handle_t to
1991 abstract over the types used for dynamic library handles.
1992 * jit-tempdir.c: Do not use mkdtemp() in Windows, use
1993 win_mkdtemp().
1994
61f3b605
GA
19952020-05-27 David Malcolm <dmalcolm@redhat.com>
1996
1997 PR jit/95314
1998 * dummy-frontend.c (LANG_HOOKS_DEEP_UNSHARING): Define to be true.
1999 * jit-playback.h (gcc::jit::playback::rvalue): Mark tree node with
2000 TREE_VISITED.
2001
20022020-05-27 Tom Tromey <tromey@gcc.gnu.org>
2003
2004 PR jit/91330
2005 * docs/conf.py (texinfo_documents): Set description.
2006 * docs/_build/texinfo/libgccjit.texi: Regenerate.
2007
c3a4169b
GA
20082020-05-26 David Malcolm <dmalcolm@redhat.com>
2009
2010 PR jit/95306
2011 * docs/topics/functions.rst
2012 (gcc_jit_context_get_builtin_function): Document.
2013 * docs/_build/texinfo/libgccjit.texi: Regenerate.
2014 * dummy-frontend.c (jit_langhook_global_bindings_p): Remove
2015 gcc_unreachable.
2016 * jit-builtins.c (type_names): New array.
2017 (get_string_for_type_id): New function.
2018 (gcc::jit::builtins_manager::make_primitive_type): Show name of
2019 type in error messages. Update cases to reflect the order in
2020 builtin-types.def. Implement cases for BT_INT8, BT_INT16,
2021 BT_UINT8, BT_CONST_PTR, BT_VOLATILE_PTR, BT_INT_PTR, BT_FLOAT_PTR,
2022 BT_CONST_DOUBLE_PTR, BT_SIZE, BT_CONST_SIZE.
2023
20242020-05-26 David Malcolm <dmalcolm@redhat.com>
2025
2026 * docs/topics/compatibility.rst: Fix underline.
2027 Fix missing labels.
2028 * docs/topics/types.rst: Fix missing blank line.
2029 * docs/_build/texinfo/libgccjit.texi: Regenerate.
2030
20312020-05-26 David Malcolm <dmalcolm@redhat.com>
2032
2033 PR jit/95296
2034 * docs/topics/expressions.rst (Unary Operations): Document that
2035 result_type of gcc_jit_context_new_unary_op must be a numeric type.
2036 (Binary Operations): Likewise for gcc_jit_context_new_binary_op.
2037 (Global variables): Document that "type" of
2038 gcc_jit_context_new_global must be non-`void`.
2039 * docs/topics/function-pointers.rst
2040 (gcc_jit_context_new_function_ptr_type): Document that the
2041 param_types must be non-void, but that return_type may be.
2042 * docs/topics/functions.rst (Params): Document that
2043 gcc_jit_context_new_param's type must be non-void.
2044 (Functions): Likewise for gcc_jit_function_new_local.
2045 * docs/topics/types.rst (gcc_jit_context_new_array_type): Document
2046 that the type must be non-void.
2047 (gcc_jit_context_new_field): Likewise.
2048 * docs/_build/texinfo/Makefile: Regenerate.
2049 * docs/_build/texinfo/libgccjit.texi: Regenerate.
2050 * libgccjit.c (gcc_jit_context_new_array_type): Fail if
2051 element_type is void.
2052 (gcc_jit_context_new_field): Likewise for "type".
2053 (gcc_jit_context_new_function_ptr_type): Likewise for each
2054 element of param_types.
2055 (gcc_jit_context_new_param): Likewise for "type".
2056 (gcc_jit_context_new_global): Likewise.
2057 (gcc_jit_function_new_local): Likewise.
2058 (gcc_jit_type_get_aligned): Likewise.
2059
63b2923d
A
20602020-03-31 Andrea Corallo <andrea.corallo@arm.com>
2061 David Malcolm <dmalcolm@redhat.com>
2062
2063 * docs/topics/compatibility.rst (LIBGCCJIT_ABI_13): New ABI tag
2064 plus add version paragraph.
2065 * libgccjit++.h (namespace gccjit::version): Add new namespace.
2066 * libgccjit.c (gcc_jit_version_major, gcc_jit_version_minor)
2067 (gcc_jit_version_patchlevel): New functions.
2068 * libgccjit.h (LIBGCCJIT_HAVE_gcc_jit_version): New macro.
2069 (gcc_jit_version_major, gcc_jit_version_minor)
2070 (gcc_jit_version_patchlevel): New functions.
2071 * libgccjit.map (LIBGCCJIT_ABI_13) New ABI tag.
2072
0cd55f9d
A
20732020-03-23 Andrea Corallo <andrea.corallo@arm.com>
2074
2075 * jit-playback.h
2076 (gcc::jit::playback::context m_recording_ctxt): Remove
2077 m_char_array_type_node field.
2078 * jit-playback.c
2079 (playback::context::context) Remove m_char_array_type_node from member
2080 initializer list.
2081 (playback::context::new_string_literal) Fix logic to handle string
2082 length > 200.
2083
8d9254fc
JJ
20842020-01-01 Jakub Jelinek <jakub@redhat.com>
2085
2086 Update copyright years.
2087
70ce1ab9
JB
20882019-11-29 Julian Brown <julian@codesourcery.com>
2089
2090 * jit-builtins.c (BT_DFLOAT32_PTR, BT_DFLOAT64_PTR, BT_DFLOAT128_PTR):
2091 Remove commented-out cases.
2092
56e04525
DM
20932019-11-20 David Malcolm <dmalcolm@redhat.com>
2094
2095 PR jit/92483
2096 * jit-playback.c (gcc::jit::playback::context::make_fake_args):
2097 Update GCC_JIT_BOOL_OPTION_SELFCHECK_GC for new --param syntax.
2098
4d732405
RS
20992019-08-13 Richard Sandiford <richard.sandiford@arm.com>
2100
2101 PR middle-end/91421
2102 * jit-playback.c (new_function): Use set_decl_built_in_function.
2103
ab20d992 21042019-07-22 Andrea Corallo <andrea.corallo@arm.com>
9afb91b2
AC
2105
2106 * jit-recording.c (unary_op_reproducer_strings): Make it extern.
2107 (binary_op_reproducer_strings): Likewise.
2108 * jit-recording.h (unary_op_reproducer_strings): Likewise.
2109 (binary_op_reproducer_strings): Likewise.
2110 * libgccjit.c (gcc_jit_context_new_unary_op): Check result_type to be a
2111 numeric type.
2112 * libgccjit.c (gcc_jit_context_new_binary_op): Improve error message.
2113
ab20d992 21142019-07-04 Andrea Corallo <andrea.corallo@arm.com>
2b442504
AC
2115
2116 * libgccjit.c (gcc_jit_context_new_binary_op): Check result_type to be a
2117 numeric type.
2118
ab20d992 21192019-07-04 Andrea Corallo <andrea.corallo@arm.com>
ee118c14
AC
2120
2121 * docs/topics/compatibility.rst (LIBGCCJIT_ABI_12): New ABI tag.
2122 * docs/topics/types.rst: Add gcc_jit_context_new_bitfield.
2123 * jit-common.h (namespace recording): Add class bitfield.
2124 * jit-playback.c:
2125 (DECL_C_BIT_FIELD, SET_DECL_C_BIT_FIELD): Add macros.
2126 (playback::context::new_bitfield): New method.
2127 (playback::compound_type::set_fields): Add bitfield support.
2128 (playback::lvalue::mark_addressable): Was jit_mark_addressable make this
2129 a method of lvalue plus return a bool to communicate success.
2130 (playback::lvalue::get_address): Check for jit_mark_addressable return
2131 value.
2132 * jit-playback.h (new_bitfield): New method.
2133 (class bitfield): New class.
2134 (class lvalue): Add jit_mark_addressable method.
2135 * jit-recording.c (recording::context::new_bitfield): New method.
2136 (recording::bitfield::replay_into): New method.
2137 (recording::bitfield::write_to_dump): Likewise.
2138 (recording::bitfield::make_debug_string): Likewise.
2139 (recording::bitfield::write_reproducer): Likewise.
2140 * jit-recording.h (class context): Add new_bitfield method.
2141 (class field): Make it derivable by class bitfield.
2142 (class bitfield): Add new class.
2143 * libgccjit++.h (class context): Add new_bitfield method.
2144 * libgccjit.c (struct gcc_jit_bitfield): New structure.
2145 (gcc_jit_context_new_bitfield): New function.
2146 * libgccjit.h
2147 (LIBGCCJIT_HAVE_gcc_jit_context_new_bitfield) New macro.
2148 (gcc_jit_context_new_bitfield): New function.
2149 * libgccjit.map (LIBGCCJIT_ABI_12) New ABI tag.
2150
36a3a7a3
JJ
21512019-03-21 Jakub Jelinek <jakub@redhat.com>
2152
2153 * jit-recording.c (reproducer::m_set_identifiers): Use false as Lazy
2154 in hash_set template param.
2155
ab20d992 21562019-02-05 Andrea Corallo <andrea.corallo@arm.com>
216090cc
AC
2157
2158 * docs/topics/compatibility.rst (LIBGCCJIT_ABI_11): New ABI tag.
2159 * docs/topics/contexts.rst (Additional driver options): New
2160 section.
2161 * jit-playback.c (invoke_driver): Add call to append_driver_options.
2162 * jit-recording.c: Within namespace gcc::jit...
2163 (recording::context::~context): Free the optnames within
2164 m_driver_options.
2165 (recording::context::add_driver_option): New method.
2166 (recording::context::append_driver_options): New method.
2167 (recording::context::dump_reproducer_to_file): Add driver
2168 options.
2169 * jit-recording.h: Within namespace gcc::jit...
2170 (recording::context::add_driver_option): New method.
2171 (recording::context::append_driver_options): New method.
2172 (recording::context::m_driver_options): New field.
2173 * libgccjit++.h (gccjit::context::add_driver_option): New
2174 method.
2175 * libgccjit.c (gcc_jit_context_add_driver_option): New API
2176 entrypoint.
2177 * libgccjit.h (gcc_jit_context_add_driver_option): New API
2178 entrypoint.
2179 (LIBGCCJIT_HAVE_gcc_jit_context_add_driver_option): New
2180 macro.
2181 * libgccjit.map (LIBGCCJIT_ABI_11): New ABI tag.
2182
a5544970
JJ
21832019-01-01 Jakub Jelinek <jakub@redhat.com>
2184
2185 Update copyright years.
2186
478dd60d
DM
21872018-11-15 David Malcolm <dmalcolm@redhat.com>
2188
2189 PR other/19165
2190 * dummy-frontend.c (jit_begin_diagnostic): Add diagnostic_t param.
2191
620e594b
DM
21922018-11-13 David Malcolm <dmalcolm@redhat.com>
2193
2194 * jit-playback.c: Replace "source_location" with "location_t".
2195
033eb567
DM
21962018-10-17 David Malcolm <dmalcolm@redhat.com>
2197
2198 * Make-lang.in (selftest-jit): New.
2199
98086b2b
ML
22002018-06-28 Martin Liska <mliska@suse.cz>
2201
2202 * jit-playback.c: Include opt-suggestions.h.
2203
3de37a5d
ML
22042018-06-28 Martin Liska <mliska@suse.cz>
2205
2206 * jit-playback.c (class auto_argvec): Moved to vec.h.
2207 (auto_argvec::~auto_argvec): Likewise.
2208 (compile): Use the renamed name.
2209 (invoke_driver): Likewise.
2210
ea143da7
RO
22112018-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2212
2213 PR jit/84288
2214 * Make-lang.in ($(LIBGCCJIT_FILENAME)): Add $(EXTRA_GCC_LIBS).
2215
deb3da39
DM
22162018-03-09 David Malcolm <dmalcolm@redhat.com>
2217 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2218
2219 PR jit/64089
2220 PR jit/84288
2221 * Make-lang.in (COMMA): New.
2222 (LIBGCCJIT_VERSION_SCRIPT_OPTION): New.
2223 (LIBGCCJIT_SONAME_OPTION): New.
2224 (jit): Move --version-script and -soname linker options to the
2225 above.
2226
9aba6f77
DM
22272018-01-25 David Malcolm <dmalcolm@redhat.com>
2228
2229 PR jit/81672
2230 * jit-recording.h (gcc::jit::recording::union_): Remove fields
2231 "m_loc" and "m_name".
2232
85ec4feb
JJ
22332018-01-03 Jakub Jelinek <jakub@redhat.com>
2234
2235 Update copyright years.
2236
01512446
JJ
22372017-12-19 Jakub Jelinek <jakub@redhat.com>
2238
2239 * jit-playback.c (get_type, playback::compile_to_file::copy_file,
2240 playback::context::acquire_mutex): Replace Yoda conditions with
2241 typical order conditions.
2242 * libgccjit.c (gcc_jit_context_new_struct_type,
2243 gcc_jit_struct_set_fields, gcc_jit_context_new_union_type,
2244 gcc_jit_context_new_function, gcc_jit_timer_pop): Likewise.
2245 * jit-builtins.c (matches_builtin): Likewise.
2246 * jit-recording.c (recording::compound_type::set_fields,
2247 recording::fields::write_reproducer, recording::rvalue::set_scope,
2248 recording::function::validate): Likewise.
2249 * jit-logging.c (logger::decref): Likewise.
2250
5de73c05
JJ
22512017-11-30 Jakub Jelinek <jakub@redhat.com>
2252
2253 * jit-recording.c
2254 (recording::memento_of_new_rvalue_from_const <long>::write_reproducer):
2255 Use ; instead of ;;.
2256
9e851845
JJ
22572017-11-28 Jakub Jelinek <jakub@redhat.com>
2258
2259 * jit-playback.c (add_switch): Build SWITCH_EXPR using build2 instead
2260 of build3. Formatting fixes. Adjust funciton comment.
2261
120e92fc
TV
22622017-11-23 Tom de Vries <tom@codesourcery.com>
2263
2264 * libgccjit.c (RETURN_NULL_IF_FAIL_NONNULL_NUMERIC_TYPE): Wrap in
2265 JIT_{BEGIN,END}_STMT.
2266
77f4ead7
DM
22672017-10-31 David Malcolm <dmalcolm@redhat.com>
2268
2269 * docs/internals/index.rst (Running the test suite): Document
2270 PRESERVE_EXECUTABLES.
2271 (Running under valgrind): Add markup to RUN_UNDER_VALGRIND.
2272 * docs/_build/texinfo/libgccjit.texi: Regenerate.
2273
6069fe72
DM
22742017-10-04 David Malcolm <dmalcolm@redhat.com>
2275
2276 * docs/cp/topics/expressions.rst (Vector expressions): New
2277 section.
2278 * docs/topics/compatibility.rst (LIBGCCJIT_ABI_10): New ABI tag.
2279 * docs/topics/expressions.rst (Vector expressions): New section.
2280 * docs/topics/types.rst (gcc_jit_type_get_vector): Add link to
2281 gcc_jit_context_new_rvalue_from_vector.
2282 * docs/_build/texinfo/libgccjit.texi: Regenerate.
2283 * jit-common.h (gcc::jit:recording::vector_type): New forward
2284 decl.
2285 * jit-playback.c
2286 (gcc::jit::playback::context::new_rvalue_from_vector): New method.
2287 * jit-playback.h
2288 (gcc::jit::playback::context::new_rvalue_from_vector): New method.
2289 * jit-recording.c: In namespace gcc::jit::
2290 (class comma_separated_string): New class.
2291 (comma_separated_string::comma_separated_string): New ctor,
2292 adapted from recording::call::make_debug_string.
2293 (comma_separated_string::~comma_separated_string): New dtor.
2294 In namespace gcc::jit::recording::
2295 (context::new_rvalue_from_vector): New method.
2296 (type::get_vector): Update for renaming of memento_of_get_vector.
2297 (class memento_of_get_vector): Rename to...
2298 (class vector_type): ..this.
2299 (memento_of_new_rvalue_from_vector::memento_of_new_rvalue_from_vector):
2300 New ctor.
2301 (memento_of_new_rvalue_from_vector::replay_into): New method.
2302 (memento_of_new_rvalue_from_vector::visit_children): New method.
2303 (memento_of_new_rvalue_from_vector::make_debug_string): New
2304 method.
2305 (memento_of_new_rvalue_from_vector::write_reproducer): New method.
2306 (call::make_debug_string): Split out arg-printing code into ctor
2307 for comma_separated_string.
2308 * jit-recording.h: In namespace gcc::jit::recording::
2309 (context::new_rvalue_from_vector): New method.
2310 (type::dyn_cast_vector_type): New virtual function.
2311 (class memento_of_get_vector): Rename to...
2312 (class vector_type): ...this.
2313 (vector_type::unqualified): Remove this vfunc override in favor
2314 of...
2315 (vector_type::get_element_type): ...this new method.
2316 (vector_type::get_num_units): New method.
2317 (vector_type::dyn_cast_vector_type): New vfunc override.
2318 (class memento_of_new_rvalue_from_vector): New class.
2319 * libgccjit++.h (gccjit::context::new_rvalue): Add overload for
2320 vector of rvalue.
2321 * libgccjit.c (gcc_jit_context_new_binary_op): Strip off type
2322 qualifications when checking that both operands have same type.
2323 (gcc_jit_context_new_rvalue_from_vector): New API entrypoint.
2324 * libgccjit.h
2325 (LIBGCCJIT_HAVE_gcc_jit_context_new_rvalue_from_vector): New
2326 macro.
2327 (gcc_jit_context_new_rvalue_from_vector): New API entrypoint.
2328 * libgccjit.map (LIBGCCJIT_ABI_10): New ABI tag.
2329
ecd5156d
DM
23302017-09-28 David Malcolm <dmalcolm@redhat.com>
2331
2332 * docs/topics/expressions.rst (Function calls): Add link to
2333 gcc_jit_context_new_function_ptr_type.
2334 (Function pointers): Convert to cross-references to
2335 function-pointers.rst, moving material there.
2336 * docs/topics/function-pointers.rst: New page.
2337 * docs/topics/index.rst: Add function-pointers.rst.
2338 * docs/topics/types.rst (Function pointer types): New section.
2339 * docs/_build/texinfo/libgccjit.texi: Regenerate.
2340
5a47aa2c
DM
23412017-09-28 David Malcolm <dmalcolm@redhat.com>
2342
2343 * jit-recording.c
2344 (gcc::jit::recording::function_type::is_same_type_as): New function.
2345 * jit-recording.h: In namespace gcc::jit::recording::
2346 (type::accepts_writes_from): Use is_same_type_as rather than pointer
2347 equality.
2348 (type::is_same_type_as): New virtual function.
2349 (function_type::is_same_type_as): New override.
2350
15a65e63
DM
23512017-09-27 David Malcolm <dmalcolm@redhat.com>
2352
2353 * docs/cp/topics/expressions.rst (Function pointers): New section.
2354 * docs/topics/compatibility.rst (LIBGCCJIT_ABI_9): New tag.
2355 * docs/topics/expressions.rst (Function pointers): New section.
2356 * docs/_build/texinfo/libgccjit.texi: Regenerate.
2357 * jit-common.h (class gcc::jit::recording::function_pointer): New
2358 forward decl.
2359 * jit-playback.c (gcc::jit::playback::function::get_address): New
2360 method.
2361 * jit-playback.h (gcc::jit::playback::function::get_address): New
2362 method decl.
2363 * jit-recording.c: Within namespace gcc::jit::recording...
2364 (function::function): Initialize new field "m_fn_ptr_type".
2365 (function::get_address): New method.
2366 (function_pointer::replay_into): New method.
2367 (function_pointer::visit_children): New method.
2368 (function_pointer::make_debug_string): New method.
2369 (function_pointer::write_reproducer): New method.
2370 * jit-recording.h: Within namespace gcc::jit::recording...
2371 (function::get_address): New method.
2372 (function): Add field "m_fn_ptr_type".
2373 (class function_pointer): New subclass of rvalue.
2374 * libgccjit++.h (gccjit::function::get_address): New method.
2375 * libgccjit.c (gcc_jit_function_get_address): New function.
2376 * libgccjit.h (LIBGCCJIT_HAVE_gcc_jit_function_get_address): New
2377 macro.
2378 (gcc_jit_function_get_address): New API entrypoint.
2379 * libgccjit.map (LIBGCCJIT_ABI_9): New tag.
2380
595ced60
DM
23812017-09-14 David Malcolm <dmalcolm@redhat.com>
2382
2383 PR jit/82174
2384 * jit-builtins.c (matches_builtin): Ignore entries with a NULL
2385 name.
2386
953e520d
DM
23872017-08-18 David Malcolm <dmalcolm@redhat.com>
2388
2389 PR tree-optimization/46805
2390 * dummy-frontend.c (jit_langhook_parse_file): Handle vector types.
2391
519d0798
DM
23922017-08-18 David Malcolm <dmalcolm@redhat.com>
2393
2394 * jit-recording.c (class gcc::jit::reproducer): Rename field
2395 "m_identifiers" to "m_map_memento_to_identifier". Add field
2396 "m_set_identifiers" and struct hash_traits for it.
2397 (gcc::jit::reproducer::reproducer): Update for above.
2398 (convert_to_identifier): New function.
2399 (gcc::jit::reproducer::ensure_identifier_is_unique): New method.
2400 (gcc::jit::reproducer::make_identifier): Avoid appending the %p
2401 unless necessary for uniqueness. Update for field renaming.
2402 (gcc::jit::reproducer::get_identifier): Update for field renaming.
2403
47ee1b7c
DM
24042017-08-09 David Malcolm <dmalcolm@redhat.com>
2405
2406 * docs/cp/topics/types.rst (Vector types): New section.
2407 * docs/topics/compatibility.rst (LIBGCCJIT_ABI_8): New tag.
2408 * docs/topics/types.rst (gcc_jit_context_get_type): Fix typo in
2409 example.
2410 (Vector types): New section.
2411 * docs/_build/texinfo/libgccjit.texi: Regenerate.
2412 * jit-playback.c (gcc::jit::playback::type::get_vector): New
2413 method.
2414 * jit-playback.h (gcc::jit::playback::type::get_vector): New
2415 method.
2416 * jit-recording.c: In namespace gcc::jit::recording::
2417 (type::get_vector): New method.
2418 (memento_of_get_aligned::write_reproducer): Fix typo
2419 in leading comment.
2420 (memento_of_get_vector::replay_into): New method.
2421 (memento_of_get_vector::make_debug_string): New method.
2422 (memento_of_get_vector::write_reproducer): New method.
2423 * jit-recording.h: In namespace gcc::jit::recording::
2424 (type::get_vector): New
3d3b561f 2425 method.
47ee1b7c
DM
2426 (class memento_of_get_vector): New class.
2427 * libgccjit++.h (gccjit::type::get_vector): New method.
2428 * libgccjit.c (gcc_jit_type_get_vector): New public entrypoint.
2429 * libgccjit.h (LIBGCCJIT_HAVE_gcc_jit_type_get_vector): New
2430 define.
2431 (gcc_jit_type_get_vector): New decl.
2432 * libgccjit.map (LIBGCCJIT_ABI_8): New ABI tag.
2433
b8506a8a
RS
24342017-07-05 Richard Sandiford <richard.sandiford@linaro.org>
2435 Alan Hayward <alan.hayward@arm.com>
2436 David Sherwood <david.sherwood@arm.com>
2437
2438 * dummy-frontend.c (jit_langhook_type_for_mode): Remove "enum" before
2439 "machine_mode".
2440
0ebd1f00
DM
24412017-04-24 David Malcolm <dmalcolm@redhat.com>
2442
2443 * docs/cp/topics/types.rst (gccjit::type::get_const): Remove
2444 comment.
2445 (gccjit::type::get_aligned): Add.
2446 * docs/topics/compatibility.rst: Add LIBGCCJIT_ABI_7.
2447 * docs/topics/types.rst: Add gcc_jit_type_get_aligned.
2448 * docs/_build/texinfo/libgccjit.texi: Regenerate.
2449 * jit-playback.c (gcc::jit::playback::type::get_aligned): New
2450 method.
2451 * jit-playback.h (gcc::jit::playback::type::get_aligned): New
2452 method.
2453 * jit-recording.c: Within namespace gcc::jit::recording...
2454 (type::get_aligned): New method.
2455 (memento_of_get_aligned::replay_into): New method.
2456 (memento_of_get_aligned::make_debug_string): New method.
2457 (memento_of_get_aligned::write_reproducer): New method.
2458 * jit-recording.h: Within namespace gcc::jit::recording...
2459 (type::get_aligned): New method.
2460 (type::accepts_writes_from): Strip off qualifications from
2461 this when comparing pointer equality.
2462 (decorated_type): New subclass of type, subsuming the
2463 commonality between memento_of_get_const and
2464 memento_of_get_volatile.
2465 (memento_of_get_const): Make a subclass of decorated_type,
2466 rather than type.
2467 (memento_of_get_volatile): Likewise.
2468 (memento_of_get_aligned): Likewise.
2469 * libgccjit++.h: Within namespace gccjit...
2470 (type::get_const): New method.
2471 (type::get_aligned): New method.
2472 * libgccjit.c (gcc_jit_type_get_aligned): New function.
2473 * libgccjit.h (gcc_jit_type_get_aligned): New decl.
2474 * libgccjit.map (LIBGCCJIT_ABI_7): New
2475 (gcc_jit_type_get_aligned): Add.
2476
8a3a6ab4
DM
24772017-01-19 David Malcolm <dmalcolm@redhat.com>
2478
2479 * dummy-frontend.c (jit_langhook_type_for_size): Delete.
2480 (LANG_HOOKS_TYPE_FOR_SIZE): Don't redefine.
2481
b37589b0
DM
24822017-01-18 David Malcolm <dmalcolm@redhat.com>
2483
2484 * dummy-frontend.c (jit_langhook_type_for_size): Implement, using
2485 lto's lto_type_for_size.
2486
cbe34bb5
JJ
24872017-01-01 Jakub Jelinek <jakub@redhat.com>
2488
2489 Update copyright years.
2490
15c671a7
DM
24912016-05-20 David Malcolm <dmalcolm@redhat.com>
2492
2493 * docs/topics/compatibility.rst: Add LIBGCCJIT_ABI_6.
2494 * docs/topics/expressions.rst (Function calls): Add documentation
2495 of gcc_jit_rvalue_set_bool_require_tail_call.
2496 * docs/_build/texinfo/libgccjit.texi: Regenerate.
2497 * jit-common.h (gcc::jit::recording::base_call): Add forward decl.
2498 * jit-playback.c: Within namespace gcc::jit::playback...
2499 (context::build_call) Add "require_tail_call" param and use it
2500 to set CALL_EXPR_MUST_TAIL_CALL.
2501 (context::new_call): Add "require_tail_call" param.
2502 (context::new_call_through_ptr): Likewise.
2503 * jit-playback.h: Within namespace gcc::jit::playback...
2504 (context::new_call: Add "require_tail_call" param.
2505 (context::new_call_through_ptr): Likewise.
2506 (context::build_call): Likewise.
2507 * jit-recording.c: Within namespace gcc::jit::recording...
2508 (base_call::base_call): New constructor.
2509 (base_call::write_reproducer_tail_call): New method.
2510 (call::call): Update for inheritance from base_call.
2511 (call::replay_into): Provide m_require_tail_call to call
2512 to new_call.
2513 (call::write_reproducer): Call write_reproducer_tail_call.
2514 (call_through_ptr::call_through_ptr): Update for inheritance from
2515 base_call.
2516 (call_through_ptr::replay_into): Provide m_require_tail_call to call
2517 to new_call_through_ptr.
2518 (recording::call_through_ptr::write_reproducer): Call
2519 write_reproducer_tail_call.
2520 * jit-recording.h: Within namespace gcc::jit::recording...
2521 (rvalue::dyn_cast_base_call): New virtual function.
2522 (class base_call): New subclass of class rvalue.
2523 (class call): Inherit from base_call rather than directly from
2524 rvalue, moving get_precedence and m_args to base_call.
2525 (class call_through_ptr): Likewise.
2526 * libgccjit.c (gcc_jit_rvalue_set_bool_require_tail_call): New
2527 function.
2528 * libgccjit.h
2529 (LIBGCCJIT_HAVE_gcc_jit_rvalue_set_bool_require_tail_call): New
2530 macro.
2531 (gcc_jit_rvalue_set_bool_require_tail_call): New function.
2532 * libgccjit.map (LIBGCCJIT_ABI_6): New.
2533 (gcc_jit_rvalue_set_bool_require_tail_call): Add.
2534
6b5423a5
DM
25352016-05-17 David Malcolm <dmalcolm@redhat.com>
2536
2537 * dummy-frontend.c: Include diagnostic.h.
2538 (jit_begin_diagnostic): New function.
2539 (jit_end_diagnostic): New function.
2540 (jit_langhook_init): Register jit_begin_diagnostic
2541 and jit_end_diagnostic with the global_dc.
2542 * jit-playback.c: Include diagnostic.h.
2543 (gcc::jit::playback::context::add_diagnostic): New method.
2544 * jit-playback.h (struct diagnostic_context): Add forward
2545 declaration.
2546 (gcc::jit::playback::context::add_diagnostic): New method.
2547
f51703a8
DM
25482016-05-17 David Malcolm <dmalcolm@redhat.com>
2549
2550 * docs/topics/expressions.rst (Function calls): Document
2551 gcc_jit_context_new_call_through_ptr.
2552 * docs/_build/texinfo/libgccjit.texi: Regenerate.
2553
54ece5e2
DM
25542016-05-13 David Malcolm <dmalcolm@redhat.com>
2555
2556 * jit-playback.h: Within namespace gcc:jit::playback...
2557 (compile_to_memory::postprocess): Mark with FINAL OVERRIDE.
2558 (compile_to_file::postprocess): Likewise.
2559 (function::finalizer): Likewise.
2560 (block::finalizer): Likewise.
2561 (source_file::finalizer): Likewise.
2562 (source_line::finalizer): Likewise.
2563 * jit-recording.c (gcc::jit::rvalue_usage_validator):: Likewise.
2564 * jit-recording.h: Within namespace gcc::jit::recording...
2565 (string::replay_into): Mark with FINAL OVERRIDE.
2566 (string::make_debug_string): Likewise.
2567 (string::write_reproducer): Likewise.
2568 (location::replay_into): Likewise.
2569 (location::dyn_cast_location): Likewise.
2570 (location::make_debug_string): Likewise.
2571 (location::write_reproducer): Likewise.
2572 (memento_of_get_type::dereference): Likewise.
2573 (memento_of_get_type::accepts_writes_from): Likewise.
2574 (memento_of_get_type::is_int): Likewise.
2575 (memento_of_get_type::is_float): Likewise.
2576 (memento_of_get_type::is_bool): Likewise.
2577 (memento_of_get_type::is_pointer): Likewise.
2578 (memento_of_get_type::is_array): Likewise.
2579 (memento_of_get_type::is_void): Likewise.
2580 (memento_of_get_type::replay_into): Likewise.
2581 (memento_of_get_type::make_debug_string): Likewise.
2582 (memento_of_get_type::write_reproducer): Likewise.
2583 (memento_of_get_pointer::dereference): Likewise.
2584 (memento_of_get_pointer::accepts_writes_from): Likewise.
2585 (memento_of_get_pointer::replay_into): Likewise.
2586 (memento_of_get_pointer::is_int): Likewise.
2587 (memento_of_get_pointer::is_float): Likewise.
2588 (memento_of_get_pointer::is_bool): Likewise.
2589 (memento_of_get_pointer::is_pointer): Likewise.
2590 (memento_of_get_pointer::is_array): Likewise.
2591 (memento_of_get_pointer::make_debug_string): Likewise.
2592 (memento_of_get_pointer::write_reproducer): Likewise.
2593 (memento_of_get_const::dereference): Likewise.
2594 (memento_of_get_const::accepts_writes_from): Likewise.
2595 (memento_of_get_const::unqualified): Likewise.
2596 (memento_of_get_const::is_int): Likewise.
2597 (memento_of_get_const::is_float): Likewise.
2598 (memento_of_get_const::is_bool): Likewise.
2599 (memento_of_get_const::is_pointer): Likewise.
2600 (memento_of_get_const::is_array): Likewise.
2601 (memento_of_get_const::void replay_into): Likewise;
2602 (memento_of_get_const::make_debug_string): Likewise.
2603 (memento_of_get_const::write_reproducer): Likewise.
2604 (memento_of_get_volatile::dereference): Likewise.
2605 (memento_of_get_volatile::unqualified): Likewise.
2606 (memento_of_get_volatile::is_int): Likewise.
2607 (memento_of_get_volatile::is_float): Likewise.
2608 (memento_of_get_volatile::is_bool): Likewise.
2609 (memento_of_get_volatile::is_pointer): Likewise.
2610 (memento_of_get_volatile::is_array): Likewise.
2611 (memento_of_get_volatile::replay_into): Likewise;
2612 (memento_of_get_volatile::make_debug_string): Likewise.
2613 (memento_of_get_volatile::write_reproducer): Likewise.
2614 (array_type::dereference): Likewise.
2615 (array_type::is_int): Likewise.
2616 (array_type::is_float): Likewise.
2617 (array_type::is_bool): Likewise.
2618 (array_type::is_pointer): Likewise.
2619 (array_type::is_array): Likewise.
2620 (array_type::replay_into): Likewise;
2621 (array_type::make_debug_string): Likewise.
2622 (array_type::write_reproducer): Likewise.
2623 (function_type::dereference): Likewise.
2624 (function_type::function_dyn_cast_function_type): Likewise.
2625 (function_type::function_as_a_function_type): Likewise.
2626 (function_type::is_int): Likewise.
2627 (function_type::is_float): Likewise.
2628 (function_type::is_bool): Likewise.
2629 (function_type::is_pointer): Likewise.
2630 (function_type::is_array): Likewise.
2631 (function_type::replay_into): Likewise;
2632 (function_type::make_debug_string): Likewise.
2633 (function_type::write_reproducer): Likewise.
2634 (field::replay_into): Likewise;
2635 (field::write_to_dump): Likewise.
2636 (field::make_debug_string): Likewise.
2637 (field::write_reproducer): Likewise.
2638 (compound_type::dereference): Likewise.
2639 (compound_type::is_int): Likewise.
2640 (compound_type::is_float): Likewise.
2641 (compound_type::is_bool): Likewise.
2642 (compound_type::is_pointer): Likewise.
2643 (compound_type::is_array): Likewise.
2644 (compound_type::has_known_size): Likewise.
2645 (struct_::dyn_cast_struct): Likewise.
2646 (struct_::replay_into): Likewise.
2647 (struct_::access_as_type): Likewise.
2648 (struct_::make_debug_string): Likewise.
2649 (struct_::write_reproducer): Likewise.
2650 (fields::replay_into): Likewise.
2651 (fields::write_to_dump): Likewise.
2652 (fields::make_debug_string): Likewise.
2653 (fields::write_reproducer): Likewise.
2654 (union_::replay_into): Likewise.
2655 (union_::make_debug_string): Likewise.
2656 (union_::write_reproducer): Likewise.
2657 (lvalue::access_as_rvalue): Mark with OVERRIDE.
2658 (param::replay_into): Mark with FINAL OVERRIDE.
2659 (param::visit_children): Likewise.
2660 (param::dyn_cast_param): Likewise.
2661 (param::access_as_rvalue): Likewise.
2662 (param::access_as_lvalue): Likewise.
2663 (param::make_debug_string): Likewise.
2664 (param::write_reproducer): Likewise.
2665 (param::get_precedence): Likewise.
2666 (function::replay_into): Likewise.
2667 (function::write_to_dump): Likewise.
2668 (function::make_debug_string): Likewise.
2669 (function::write_reproducer): Likewise.
2670 (block::write_to_dump): Likewise.
2671 (block::make_debug_string): Likewise.
2672 (block::write_reproducer): Likewise.
2673 (block::replay_into): Likewise.
2674 (global::replay_into): Likewise;
2675 (global::visit_children): Likewise.
2676 (global::write_to_dump): Likewise.
2677 (global::make_debug_string): Likewise.
2678 (global::write_reproducer): Likewise.
2679 (global::get_precedence): Likewise.
2680 (memento_of_new_rvalue_from_const::replay_into): Likewise.
2681 (memento_of_new_rvalue_from_const::visit_children): Likewise.
2682 (memento_of_new_rvalue_from_const::is_constant): Likewise.
2683 (memento_of_new_rvalue_from_const::get_wide_int): Likewise.
2684 (memento_of_new_rvalue_from_const::make_debug_string): Likewise.
2685 (memento_of_new_rvalue_from_const::write_reproducer): Likewise.
2686 (memento_of_new_rvalue_from_const::get_precedence): Likewise.
2687 (memento_of_new_string_literal::replay_into): Likewise.
2688 (memento_of_new_string_literal::visit_children): Likewise.
2689 (memento_of_new_string_literal::make_debug_string): Likewise.
2690 (memento_of_new_string_literal::write_reproducer): Likewise.
2691 (memento_of_new_string_literal::get_precedence): Likewise.
2692 (unary_op::replay_into): Likewise.
2693 (unary_op::visit_children): Likewise.
2694 (unary_op::make_debug_string): Likewise.
2695 (unary_op::write_reproducer): Likewise.
2696 (unary_op::get_precedence): Likewise.
2697 (binary_op::replay_into): Likewise.
2698 (binary_op::visit_children): Likewise.
2699 (binary_op::make_debug_string): Likewise.
2700 (binary_op::write_reproducer): Likewise.
2701 (binary_op::get_precedence): Likewise.
2702 (comparison::replay_into): Likewise.
2703 (comparison::visit_children): Likewise.
2704 (comparison::make_debug_string): Likewise.
2705 (comparison::write_reproducer): Likewise.
2706 (comparison::get_precedence): Likewise.
2707 (cast::replay_into): Likewise.
2708 (cast::visit_children): Likewise.
2709 (cast::make_debug_string): Likewise.
2710 (cast::write_reproducer): Likewise.
2711 (cast::get_precedence): Likewise.
2712 (call::replay_into): Likewise.
2713 (call::visit_children): Likewise.
2714 (call::make_debug_string): Likewise.
2715 (call::write_reproducer): Likewise.
2716 (call::get_precedence): Likewise.
2717 (call_through_ptr::replay_into): Likewise.
2718 (call_through_ptr::visit_children): Likewise.
2719 (call_through_ptr::make_debug_string): Likewise.
2720 (call_through_ptr::write_reproducer): Likewise.
2721 (call_through_ptr::get_precedence): Likewise.
2722 (array_access::replay_into): Likewise.
2723 (array_access::visit_children): Likewise.
2724 (array_access::make_debug_string): Likewise.
2725 (array_access::write_reproducer): Likewise.
2726 (array_access::get_precedence): Likewise.
2727 (access_field_of_lvalue::replay_into): Likewise.
2728 (access_field_of_lvalue::visit_children): Likewise.
2729 (access_field_of_lvalue::make_debug_string): Likewise.
2730 (access_field_of_lvalue::write_reproducer): Likewise.
2731 (access_field_of_lvalue::get_precedence): Likewise.
2732 (access_field_rvalue::replay_into): Likewise.
2733 (access_field_rvalue::visit_children): Likewise.
2734 (access_field_rvalue::make_debug_string): Likewise.
2735 (access_field_rvalue::write_reproducer): Likewise.
2736 (access_field_rvalue::get_precedence): Likewise.
2737 (dereference_field_rvalue::replay_into): Likewise.
2738 (dereference_field_rvalue::visit_children): Likewise.
2739 (dereference_field_rvalue::make_debug_string): Likewise.
2740 (dereference_field_rvalue::write_reproducer): Likewise.
2741 (dereference_field_rvalue::get_precedence): Likewise.
2742 (dereference_rvalue::replay_into): Likewise.
2743 (dereference_rvalue::visit_children): Likewise.
2744 (dereference_rvalue::make_debug_string): Likewise.
2745 (dereference_rvalue::write_reproducer): Likewise.
2746 (dereference_rvalue::get_precedence): Likewise.
2747 (get_address_of_lvalue::replay_into): Likewise.
2748 (get_address_of_lvalue::visit_children): Likewise.
2749 (get_address_of_lvalue::make_debug_string): Likewise.
2750 (get_address_of_lvalue::write_reproducer): Likewise.
2751 (get_address_of_lvalue::get_precedence): Likewise.
2752 (local::replay_into): Likewise.
2753 (local::visit_children): Likewise.
2754 (local::write_to_dump): Likewise.
2755 (local::make_debug_string): Likewise.
2756 (local::write_reproducer): Likewise.
2757 (local::get_precedence): Likewise.
2758 (statement::write_to_dump): Likewise.
2759 (eval::replay_into): Likewise.
2760 (eval::make_debug_string): Likewise.
2761 (eval::write_reproducer): Likewise.
2762 (assignment::replay_into): Likewise.
2763 (assignment::make_debug_string): Likewise.
2764 (assignment::write_reproducer): Likewise.
2765 (assignment_op::replay_into): Likewise.
2766 (assignment_op::make_debug_string): Likewise.
2767 (assignment_op::write_reproducer): Likewise.
2768 (comment::replay_into): Likewise.
2769 (comment::make_debug_string): Likewise.
2770 (comment::write_reproducer): Likewise.
2771 (conditional::replay_into): Likewise.
2772 (conditional::get_successor_blocks): Likewise.
2773 (conditional::make_debug_string): Likewise.
2774 (conditional::write_reproducer): Likewise.
2775 (jump::replay_into): Likewise.
2776 (jump::get_successor_blocks): Likewise.
2777 (jump::make_debug_string): Likewise.
2778 (jump::write_reproducer): Likewise.
2779 (return_::replay_into): Likewise.
2780 (return_::get_successor_blocks): Likewise.
2781 (return_::make_debug_string): Likewise.
2782 (return_::write_reproducer): Likewise.
2783 (case_::replay_into): Likewise.
2784 (case_::write_reproducer): Likewise.
2785 (case_::make_debug_string): Likewise.
2786 (switch_::replay_into): Likewise.
2787 (switch_::get_successor_blocks): Likewise.
2788 (switch_::make_debug_string): Likewise.
2789 (switch_::write_reproducer): Likewise.
2790
f258ad62
DM
27912016-02-08 David Malcolm <dmalcolm@redhat.com>
2792
2793 * dummy-frontend.c (jit_langhook_init): Remove
2794 second argument to build_common_tree_nodes to
2795 track r233218.
2796
1c652ccb
IB
27972016-01-23 Iain Buclaw <ibuclaw@gdcproject.org>
2798
2799 * jit-playback.c: Include pthread.h.
2800
199501ea
DM
28012016-01-19 David Malcolm <dmalcolm@redhat.com>
2802
2803 PR jit/69144
2804 * jit-playback.c (gcc::jit::playback::compile_to_file::postprocess):
2805 Potentially add the temporary artifact to the tempdir's list of
2806 tempfiles needing additional cleanup.
2807 (gcc::jit::playback::context::extract_any_requested_dumps): Likewise
2808 for the dumpfile.
2809 * jit-tempdir.c (gcc::jit::tempdir::~tempdir): Clean up additional
2810 tempfiles.
2811 * jit-tempdir.h (gcc::jit::tempdir::add_temp_file): New method.
2812 (gcc::jit::tempdir::m_tempfiles): New field.
2813 * docs/cp/intro/tutorial04.rst: Update for changes to toyvm.cc.
2814 * docs/examples/tut04-toyvm/toyvm.cc (class compilation_result):
2815 New.
2816 (toyvm_function::compile): Change return type from function ptr
2817 to a compilation_result.
2818 (toyvm_function::get_function_name): New accessor.
2819 (toyvm_function::m_funcname): New field.
2820 (get_function_name): Convert to...
2821 (toyvm_function::make_function_name): ...this new method.
2822 (toyvm_function::parse): Call make_function_name.
2823 (toyvm_function::compile): Convert return type from function ptr
2824 to a compilation_result. Use get_function_name.
2825 (compilation_state::compile): Convert return type from
2826 gcc_jit_result * to a compilation_result.
2827 (test_script): Update for above changes, extracting the code from
2828 the compilation_result.
2829 (main): Likewise.
2830 * docs/_build/texinfo/libgccjit.texi: Regenerate.
2831
818ab71a
JJ
28322016-01-04 Jakub Jelinek <jakub@redhat.com>
2833
2834 Update copyright years.
2835
69f293c9
AM
28362015-11-11 Andrew MacLeod <amacleod@redhat.com>
2837
2838 * dummy-frontend.c: Remove unused header files.
2839 * jit-builtins.c: Likewise.
2840 * jit-playback.c: Likewise.
2841 * jit-recording.c: Likewise.
2842 * jit-spec.c: Likewise.
2843 * libgccjit.c: Likewise.
2844
0aad0198
RS
28452015-11-07 Richard Sandiford <richard.sandiford@arm.com>
2846
2847 * jit-builtins.c: Don't undef DEF_BUILTIN.
2848
2adfab87
AM
28492015-10-29 Andrew MacLeod <amacleod@redhat.com>
2850
2851 * dummy-frontend.c: Reorder #include's and remove duplicates.
2852 * jit-builtins.c: Likewise.
2853 * jit-playback.c: Likewise.
2854 * jit-recording.c: Likewise.
2855 * libgccjit.c: Likewise.
2856
d9a6bd32
JJ
28572015-10-13 Jakub Jelinek <jakub@redhat.com>
2858
2859 * jit-builtins.c (DEF_FUNCTION_TYPE_9, DEF_FUNCTION_TYPE_10,
2860 DEF_FUNCTION_TYPE_11): Define.
2861 * jit-builtins.h (DEF_FUNCTION_TYPE_9, DEF_FUNCTION_TYPE_10,
2862 DEF_FUNCTION_TYPE_11): Define.
2863
fa83660d
TS
28642015-09-30 Thomas Schwinge <thomas@codesourcery.com>
2865 Ulrich Drepper <drepper@gmail.com>
2866
2867 * jit-builtins.h: Undefine DEF_FUNCTION_TYPE_VAR_6 after use.
2868
20a44562
MK
28692015-09-30 Matthias Klose <doko@ubuntu.com>
2870
2871 * jit-builtins.h Define DEF_FUNCTION_TYPE_VAR_6,
2872 remove DEF_FUNCTION_TYPE_VAR_11.
2873 * jit-builtins.c (builtins_manager::make_type): Define and handle
2874 DEF_FUNCTION_TYPE_VAR_6, remove DEF_FUNCTION_TYPE_VAR_11.
2875
9376dd63
DM
28762015-08-25 David Malcolm <dmalcolm@redhat.com>
2877
2878 * docs/cp/topics/contexts.rst
2879 (gccjit::context::set_bool_use_external_driver): New.
2880 * docs/internals/test-hello-world.exe.log.txt: Update.
2881 * docs/topics/compatibility.rst (LIBGCCJIT_ABI_5): New.
2882 * docs/topics/contexts.rst
2883 (gcc_jit_context_set_bool_use_external_driver): New.
2884 * jit-common.h (enum inner_bool_option): Add
2885 INNER_BOOL_OPTION_USE_EXTERNAL_DRIVER.
2886 * jit-playback.c (gcc_driver_name): New global.
2887 (gcc:jit::playback::context::invoke_driver): Split out second
2888 half into...
2889 (gcc::jit::playback::context::invoke_embedded_driver): ...this new
2890 function, and...
2891 (gcc::jit::playback::context::invoke_external_driver): ...this new
2892 function.
2893 * jit-playback.h
2894 (gcc::jit::playback::context::get_inner_bool_option): New.
2895 (gcc::jit::playback::context::invoke_embedded_driver): New.
2896 (gcc::jit::playback::context::invoke_external_driver): New.
2897 * jit-recording.c (inner_bool_option_reproducer_strings):
2898 Add entry for INNER_BOOL_OPTION_USE_EXTERNAL_DRIVER.
2899 * libgccjit++.h
2900 (gccjit::context::set_bool_use_external_driver): New.
2901 * libgccjit.c (gcc_jit_context_set_bool_use_external_driver): New.
2902 * libgccjit.h (gcc_jit_context_set_bool_use_external_driver): New.
2903 (LIBGCCJIT_HAVE_gcc_jit_context_set_bool_use_external_driver):
2904 New.
2905 * libgccjit.map (LIBGCCJIT_ABI_5): New.
2906 * notes.txt: Show invocation of embedded copy of driver.
2907 * docs/internals/test-hello-world.exe.log.txt: Update
2908
baf3fbad
DM
29092015-08-13 David Malcolm <dmalcolm@redhat.com>
2910
2911 * jit-playback.c (invoke_driver): On OS X, add
2912 "-Wl,-undefined,dynamic_lookup" to the driver arguments.
2913
afed3459
DM
29142015-08-03 David Malcolm <dmalcolm@redhat.com>
2915
2916 * docs/topics/compatibility.rst (LIBGCCJIT_ABI_4): New.
2917 * docs/topics/contexts.rst (GCC_JIT_BOOL_OPTION_DUMP_SUMMARY):
2918 We no longer show a profile.
2919 * docs/topics/index.rst (Topic Reference): Add performance.rst.
2920 * docs/topics/performance.rst: New file.
2921 * docs/_build/texinfo/libgccjit.texi: Regenerate.
2922 * jit-playback.c (gcc::jit::playback::context::compile): Add timer
2923 param when constructing the "toplev" instance.
2924 (gcc::jit::playback::context::acquire_mutex): Add timer param when
2925 constructing auto_timevar instance.
2926 (gcc::jit::playback::context::make_fake_args): If we have a timer,
2927 add "-ftime-report".
2928 (gcc::jit::playback::context::invoke_driver): Add timer param when
2929 constructing auto_timevar instance.
2930 (gcc::jit::playback::context::dlopen_built_dso): Likewise.
2931 * jit-playback.h (gcc::jit::playback::context::get_timer): New accessor.
2932 * jit-recording.c: Include timevar.h.
2933 (gcc::jit::recording::context::context): Initialize field "m_timer".
2934 * jit-recording.h: Add forward declaration of class timer.
2935 (gcc::jit::recording::context::set_timer): New method.
2936 (gcc::jit::recording::context::get_timer): New method.
2937 (gcc::jit::recording::context::m_timer): New field.
2938 * libgccjit++.h (gccjit::timer): New class.
2939 (gccjit::auto_time): New class.
2940 (gccjit::context::set_timer): New method.
2941 (gccjit::context::get_timer): New.
2942 (gccjit::timer::timer): New.
2943 (gccjit::timer::push): New.
2944 (gccjit::timer::pop): New.
2945 (timer::print): New.
2946 (timer::get_inner_timer): New.
2947 (timer::release): New.
2948 (auto_time::auto_time): New.
2949 (auto_time::~auto_time): New.
2950 * libgccjit.c: Include timevar.h.
2951 (struct gcc_jit_timer): New.
2952 (gcc_jit_timer_new): New function.
2953 (gcc_jit_timer_release): New function.
2954 (gcc_jit_context_set_timer): New function.
2955 (gcc_jit_context_get_timer): New function.
2956 (gcc_jit_timer_push): New function.
2957 (gcc_jit_timer_pop): New function.
2958 (gcc_jit_timer_print): New function.
2959 * libgccjit.h (LIBGCCJIT_HAVE_TIMING_API): New macro.
2960 (gcc_jit_timer): New typedef.
2961 (gcc_jit_timer_new): New function.
2962 (gcc_jit_timer_release): New function.
2963 (gcc_jit_context_set_timer): New function.
2964 (gcc_jit_context_get_timer): New function.
2965 (gcc_jit_timer_push): New function.
2966 (gcc_jit_timer_pop): New function.
2967 (gcc_jit_timer_print): New function.
2968 * libgccjit.map (LIBGCCJIT_ABI_4): New.
2969 (gcc_jit_timer_new): New function.
2970 (gcc_jit_timer_release): New function.
2971 (gcc_jit_context_set_timer): New function.
2972 (gcc_jit_context_get_timer): New function.
2973 (gcc_jit_timer_push): New function.
2974 (gcc_jit_timer_pop): New function.
2975 (gcc_jit_timer_print): New function.
2976
eb3982c1
DM
29772015-07-23 David Malcolm <dmalcolm@redhat.com>
2978
2979 * jit-playback.c (invoke_driver): Convert local "argvec"
2980 to an auto_argvec, so that it owns copies of the strings,
2981 rather than borrows them, updating ADD_ARG to use xstrdup
2982 and special-casing the NULL terminator to avoid
2983 xstrdup (NULL). Call add_multilib_driver_arguments at the front
2984 of the arguments.
2985 (MULTILIB_DEFAULTS): Provide a default definition.
2986 (multilib_defaults_raw): New constant array.
2987 (gcc::jit::playback::context::add_multilib_driver_arguments): New
2988 method.
2989 * jit-playback.h
2990 (gcc::jit::playback::context::add_multilib_driver_arguments): New
2991 method.
2992 * docs/internals/test-hello-world.exe.log.txt: Update.
2993 * docs/_build/texinfo/libgccjit.texi: Regenerate.
2994
1470e75f
DM
29952015-07-16 David Malcolm <dmalcolm@redhat.com>
2996
2997 * docs/internals/index.rst (Overview of code structure): Add note
2998 that the implementation is in C++, despite the .c extension.
2999 (Submitting patches): New subsection.
3000 * docs/_build/texinfo/libgccjit.texi: Regenerate.
3001
1916bcb5
AM
30022015-07-09 Andrew MacLeod <amacleod@redhat.com>
3003
3004 * dummy-frontend.c: Adjust includes for flags.h changes.
3005 * jit-common.h: Likewise.
3006 * jit-playback.c: Likewise.
3007
58c5ad40
DM
30082015-07-08 David Malcolm <dmalcolm@redhat.com>
3009
3010 PR jit/66783
3011 * libgccjit.c (gcc_jit_context_new_field): Show name of field in
3012 "unknown size" error message.
3013 (gcc_jit_struct_set_fields): Show name of struct in error message.
3014 (gcc_jit_context_new_global): Show name of global in
3015 "unknown size" error message.
3016 (gcc_jit_function_new_local): Likewise for local.
3017
c7131fb2
AM
30182015-07-07 Andrew MacLeod <amacleod@redhat.com>
3019
3020 * dummy-frontend.c: Adjust includes.
3021 * jit-common.h: Likewise.
3022 * jit-playback.c: Likewise.
3023
3457d39e
DM
30242015-07-07 David Malcolm <dmalcolm@redhat.com>
3025
3026 PR jit/66783
3027 * jit-recording.h: Within namespace gcc:jit::recording...
3028 (type::has_known_size): New virtual function.
3029 (struct_has_known_size): New function.
3030 * libgccjit.c (gcc_jit_context_new_field): Verify that the type
3031 has a known size.
3032 (gcc_jit_context_new_global): Likewise.
3033 (gcc_jit_function_new_local): Likewise.
3034
bada4bed
DM
30352015-07-07 David Malcolm <dmalcolm@redhat.com>
3036
3037 PR jit/66779
3038 * dummy-frontend.c (jit_langhook_type_for_mode): Ensure that we
3039 handle modes QI, HI, SI, DI, TI.
3040
e09abfa4
DM
30412015-07-01 David Malcolm <dmalcolm@redhat.com>
3042
3043 PR jit/66700
3044 * jit-playback.c (jit_mark_addressable): New function.
3045 (gcc::jit::playback::lvalue::get_address): Call
3046 jit_mark_addressable on the underlying tree.
3047
e807aeaa
DM
30482015-07-01 David Malcolm <dmalcolm@redhat.com>
3049
3050 * docs/topics/types.rst (gcc_jit_context_new_union_type): Add
3051 documentation.
3052 * docs/_build/texinfo/libgccjit.texi: Regenerate.
3053
c575221a
DM
30542015-07-01 David Malcolm <dmalcolm@redhat.com>
3055
3056 * docs/topics/contexts.rst (gcc_jit_context_set_bool_option):
3057 Clarify lack of lifetime requirements on (const char *) parameter.
3058 * docs/topics/expressions.rst
3059 (gcc_jit_context_new_string_literal): Likewise.
3060 (gcc_jit_context_new_global): Likewise.
3061 * docs/topics/functions.rst (gcc_jit_context_new_param): Likewise.
3062 (gcc_jit_context_new_function): Likewise.
3063 (gcc_jit_function_new_block): Likewise.
3064 (gcc_jit_block_add_comment): Likewise.
3065 * docs/topics/locations.rst (gcc_jit_context_new_location):
3066 Likewise.
3067 * docs/topics/types.rst (gcc_jit_context_new_field): Likewise.
3068 (gcc_jit_context_new_struct_type): Likewise.
3069 * docs/_build/texinfo/libgccjit.texi: Regenerate.
3070
ec5d0088
DM
30712015-06-30 David Malcolm <dmalcolm@redhat.com>
3072
3073 * docs/cp/topics/functions.rst (Blocks): Add switch statements to
3074 list of ways to terminate a block.
3075 (gccjit::block::end_with_switch): Add function description.
3076 (gccjit::case_): Add class.
3077 (gccjit::context::new_case): Add function description.
3078 * docs/cp/topics/objects.rst: Add "case_" to class hierarchy.
3079 * docs/topics/compatibility.rst (LIBGCCJIT_ABI_3): New.
3080 * docs/topics/functions.rst (Blocks): Add switch statements to
3081 list of ways to terminate a block.
3082 (gcc_jit_block_end_with_switch): Add function description.
3083 (gcc_jit_case): Add type.
3084 (gcc_jit_context_new_case): Add function description.
3085 (gcc_jit_case_as_object): Add function description.
3086 * docs/topics/objects.rst: Add gcc_jit_case to class hierarchy.
3087 * docs/_build/texinfo/libgccjit.texi: Regenerate.
3088 * jit-common.h (gcc::jit::recording::case_): Add forward decl.
3089 (gcc::jit::playback::case_): Add forward decl.
3090 * jit-playback.c (add_case): New function.
3091 (gcc::jit::playback::block::add_switch): New function.
3092 * jit-playback.h (gcc::jit::playback::case_): New struct.
3093 (gcc::jit::playback::block::get_function): New method.
3094 (gcc::jit::playback::block::add_switch): New method.
3095 * jit-recording.c: Within namespace gcc::jit...
3096 (recording::context::new_case): New method.
3097 (recording::function::validate): Update for change to
3098 get_successor_blocks.
3099 (recording::block::end_with_switch): New method.
3100 (recording::block::get_successor_blocks): Update to support an
3101 arbitrary number of successor blocks.
3102 (recording::block::dump_edges_to_dot): Likewise.
3103 (memento_of_new_rvalue_from_const <int>::get_wide_int): New.
3104 (memento_of_new_rvalue_from_const <long>::get_wide_int): New.
3105 (memento_of_new_rvalue_from_const <double>::get_wide_int): New.
3106 (memento_of_new_rvalue_from_const <void *>::get_wide_int): New.
3107 (recording::statement::get_successor_blocks): Update to support an
3108 arbitrary number of successor blocks.
3109 (recording::conditional::get_successor_blocks): Likewise.
3110 (recording::jump::get_successor_blocks): Likewise.
3111 (recording::return_::get_successor_blocks): Likewise.
3112 (recording::case_::write_reproducer): New.
3113 (recording::case_::make_debug_string): New.
3114 (recording::switch_::switch_): New.
3115 (recording::switch_::replay_into): New.
3116 (recording::switch_::get_successor_blocks): New.
3117 (recording::switch_::make_debug_string): New.
3118 (recording::switch_::write_reproducer): New.
3119 * jit-recording.h: Within namespace gcc::jit::recording...
3120 (context::new_case): New.
3121 (rvalue::is_constant): New.
3122 (rvalue::get_wide_int): New.
3123 (block::end_with_switch): New.
3124 (block::get_successor_blocks): Update to support an arbitrary
3125 number of successor blocks.
3126 (memento_of_new_rvalue_from_const::is_constant): New.
3127 (memento_of_new_rvalue_from_const::get_wide_int): New.
3128 (statement::get_successor_blocks): Update to support an arbitrary
3129 number of successor blocks.
3130 (conditional::get_successor_blocks): Likewise.
3131 (jump::get_successor_blocks): Likewise.
3132 (return_::get_successor_blocks): Likewise.
3133 (case_): New subclass of memento.
3134 (switch_): New subclass of statement.
3135 * libgccjit++.h (gccjit::case_): New subclass of gccjit::object.
3136 (gccjit::context::new_case): New method.
3137 (gccjit::block::end_with_switch): New method.
3138 (gccjit::case_::case): New ctors.
3139 (gccjit::case_::get_inner_case): New method.
3140 * libgccjit.c: Include "typed-splay-tree.h"
3141 (struct gcc_jit_case): New.
3142 (gcc_jit_context_new_case): New function.
3143 (gcc_jit_case_as_object): New function.
3144 (valid_dest_for_switch): New function.
3145 (valid_case_for_switch): New function.
3146 (class api_call_validator): New class.
3147 (class case_range_validator): New class.
3148 (case_range_validator::case_range_validator): New.
3149 (case_range_validator::validate): New.
3150 (case_range_validator::case_compare): New.
3151 (case_range_validator::get_wide_int): new.
3152 (gcc_jit_block_end_with_switch): New.
3153 * libgccjit.h: Add gcc_jit_case to class hierarchy comment.
3154 (gcc_jit_case): New typedef.
3155 (gcc_jit_context_new_case): New function.
3156 (gcc_jit_case_as_object): New function.
3157 (gcc_jit_block_end_with_switch): New function.
3158 (LIBGCCJIT_HAVE_SWITCH_STATEMENTS): New.
3159 * libgccjit.map: Add gcc_jit_block_end_with_switch,
3160 gcc_jit_case_as_object and gcc_jit_context_new_case.
3161
6a3603e3
DM
31622015-06-30 David Malcolm <dmalcolm@redhat.com>
3163
3164 PR jit/66546
3165 * docs/cp/topics/contexts.rst
3166 (gccjit::context::set_bool_allow_unreachable_blocks): New.
3167 * docs/topics/compatibility.rst (LIBGCCJIT_ABI_2): New.
3168 * docs/topics/contexts.rst (Options): Add notes discussing the
3169 transition from enums to entrypoints for new options.
3170 (gcc_jit_context_set_bool_allow_unreachable_blocks): New.
3171 * docs/_build/texinfo/libgccjit.texi: Regenerate.
3172 * jit-common.h (gcc::jit::inner_bool_option): New enum.
3173 * jit-recording.c: Within namespace gcc::jit...
3174 (recording::context::context): Handle m_inner_bool_options.
3175 (recording::context::set_inner_bool_option): New.
3176 (inner_bool_option_reproducer_strings): New.
3177 (recording::context::log_all_options): Log the "inner" bool
3178 options.
3179 (recording::context::log_inner_bool_option): New.
3180 (recording::context::dump_reproducer_to_file): Write initializers
3181 for "inner" bool options.
3182 (recording::function::validate): Don't check for block
3183 reachability if INNER_BOOL_OPTION_ALLOW_UNREACHABLE_BLOCKS is set.
3184 * jit-recording.h: Within namespace gcc::jit...
3185 (recording::context::set_inner_bool_option): New.
3186 (recording::context::get_inner_bool_option): New.
3187 (recording::context::log_inner_bool_option): New.
3188 (recording::context::m_inner_bool_options): New.
3189 * libgccjit++.h
3190 (gccjit::context::set_bool_allow_unreachable_blocks): New.
3191 * libgccjit.c
3192 (gcc_jit_context_set_bool_allow_unreachable_blocks): New.
3193 * libgccjit.h: Add note about options present in the
3194 initial release of libgccjit.
3195 (gcc_jit_context_set_bool_allow_unreachable_blocks): New API
3196 entrypoint.
3197 (LIBGCCJIT_HAVE_gcc_jit_context_set_bool_allow_unreachable_blocks):
3198 New macro.
3199 * libgccjit.map (LIBGCCJIT_ABI_2): New, containing...
3200 (gcc_jit_context_set_bool_allow_unreachable_blocks): ...this new
3201 entrypoint.
3202
fa22c20d
DM
32032015-06-30 David Malcolm <dmalcolm@redhat.com>
3204
3205 PR jit/66628
3206 * docs/cp/topics/contexts.rst (Additional command-line options):
3207 New section.
3208 * docs/topics/compatibility.rst: New file.
3209 * docs/topics/contexts.rst (Additional command-line options): New
3210 section.
3211 * docs/topics/index.rst: Add compatibility.rst.
3212 * docs/_build/texinfo/libgccjit.texi: Regenerate.
3213 * jit-playback.c (make_fake_args): Add call to
3214 append_command_line_options.
3215 * jit-recording.c: Within namespace gcc::jit...
3216 (recording::context::~context): Free the optnames within
3217 m_command_line_options.
3218 (recording::context::set_bool_option): Likewise.
3219 (recording::context::add_command_line_option): New method.
3220 (recording::context::append_command_line_options): New method.
3221 (recording::context::dump_reproducer_to_file): Add command-line
3222 options.
3223 * jit-recording.h: Within namespace gcc::jit...
3224 (recording::context::add_command_line_option): New method.
3225 (recording::context::append_command_line_options): New method.
3226 (recording::context::m_command_line_options): New field.
3227 * libgccjit++.h (gccjit::context::add_command_line_option): New
3228 method.
3229 * libgccjit.c (gcc_jit_context_add_command_line_option): New API
3230 entrypoint.
3231 * libgccjit.h (gcc_jit_context_add_command_line_option): New API
3232 entrypoint.
3233 (LIBGCCJIT_HAVE_gcc_jit_context_add_command_line_option): New
3234 macro.
3235 * libgccjit.map: Put existing symbols within LIBGCCJIT_ABI_0; add
3236 LIBGCCJIT_ABI_1 and gcc_jit_context_add_command_line_option.
3237
a6314e15
DM
32382015-06-30 David Malcolm <dmalcolm@redhat.com>
3239
3240 * jit-recording.c
3241 (gcc::jit::recording::context::dump_reproducer_to_file):
3242 Add pragma to generated reproducers to disable -Wunused-variable.
3243 Fix handling of NULL string options.
3244
adb6d84b
DM
32452015-06-30 David Malcolm <dmalcolm@redhat.com>
3246
3247 * docs/cp/topics/expressions.rst: Remove stray semicolon.
3248 * docs/cp/topics/functions.rst: Remove stray backslash.
3249 * docs/_build/texinfo/libgccjit.texi: Regenerate.
3250
f0889939
AM
32512015-06-25 Andrew MacLeod <amacleod@redhat.com>
3252
3253 * dummy-frontend.c: Remove ipa-ref.h and plugin-api.h from include list.
3254 * jit-playback.c: Likewise.
3255
9cad7a76
AM
32562015-06-25 Andrew Macleod <amacleod@redhat.com>
3257
3258 * jit-common.h: Don't include alias.h.
3259
41571b55
DM
32602015-06-17 David Malcolm <dmalcolm@redhat.com>
3261
3262 * libgccjit.c (gcc_jit_lvalue_access_field): Verify that the field
3263 is for the correct struct.
3264 (gcc_jit_rvalue_access_field): Likewise.
3265
abb226c9
AM
32662015-06-17 Andrew MacLeod <amacleod@redhat.com>
3267
3268 * dummy-frontend.c: Do not include input.h, line-map.h or is-a.h.
3269 * jit-common.h: Likewise.
3270 * jit-playback.c: Likewise.
3271
bd93aa1a
DM
32722015-06-16 David Malcolm <dmalcolm@redhat.com>
3273
3274 PR jit/66539
3275 * jit-recording.c: Within namespace gcc::jit::recording::
3276 (rvalue::get_debug_string_parens): New function.
3277 (binary_op::make_debug_string): Update to mimic C precedence
3278 rules.
3279 (binary_op_precedence): New array.
3280 (binary_op::get_precedence): New function.
3281 (comparison::make_debug_string): Update to mimic C precedence
3282 rules.
3283 (comparison_precedence): New array.
3284 (comparison::get_precedence): New function.
3285 (cast::make_debug_string): Update to mimic C precedence rules.
3286 (call::make_debug_string): Likewise.
3287 (call_through_ptr::make_debug_string): Likewise.
3288 (array_access::make_debug_string): Likewise.
3289 (access_field_of_lvalue::make_debug_string): Likewise.
3290 (access_field_rvalue::make_debug_string): Likewise.
3291 (dereference_field_rvalue::make_debug_string): Likewise.
3292 (dereference_rvalue::make_debug_string): Likewise.
3293 (get_address_of_lvalue::make_debug_string): Likewise.
3294 * jit-recording.h: Within namespace gcc::jit::recording::
3295 (precedence): New enum.
3296 (rvalue::rvalue): Initialize field "m_parenthesized_string".
3297 (rvalue::get_debug_string_parens): New method.
3298 (rvalue::get_precedence): New pure virtual function.
3299 (rvalue::m_parenthesized_string): New field.
3300 (param::get_precedence): New function.
3301 (global::get_precedence): New function.
3302 (memento_of_new_rvalue_from_const::get_precedence): New function.
3303 (memento_of_new_string_literal::get_precedence): New function.
3304 (unary_op::get_precedence): New function.
3305 (binary_op::get_precedence): New function.
3306 (comparison::get_precedence): New function.
3307 (cast::get_precedence): New function.
3308 (call::get_precedence): New function.
3309 (call_through_ptr::get_precedence): New function.
3310 (array_access::get_precedence): New function.
3311 (access_field_of_lvalue::get_precedence): New function.
3312 (access_field_rvalue::get_precedence): New function.
3313 (dereference_field_rvalue::get_precedence): New function.
3314 (dereference_rvalue::get_precedence): New function.
3315 (get_address_of_lvalue::get_precedence): New function.
3316 (local::get_precedence): New function.
3317
83c1b80e
MK
33182015-06-09 Matthias Klose <doko@ubuntu.com>
3319
3320 * Make-lang.in (jit.install-common): Install headers using INSTALL_DATA.
3321
13fdf2e2
AM
33222015-06-08 Andrew MacLeod <amacleod@redhat.com>
3323
3324 * dummy-frontend.c : Adjust include files.
3325 * jit-common.h : Likewise.
3326 * jit-playback.c : Likewise.
3327
e4753451
DM
33282015-06-05 David Malcolm <dmalcolm@redhat.com>
3329
3330 * dummy-frontend.c
3331 (jit_langhook_post_compilation_parsing_cleanups): Remove.
3332 (LANG_HOOKS_POST_COMPILATION_PARSING_CLEANUPS): Remove
3333 * jit-playback.c (gcc::jit::playback::context::new_global): Add
3334 call to varpool_node::finalize_decl.
3335 (gcc::jit::playback::context::finalize_global_decls): Remove.
3336 * jit-playback.h
3337 (gcc::jit::playback::context::finalize_global_decls): Remove.
3338
e7547bc6
DM
33392015-06-05 David Malcolm <dmalcolm@redhat.com>
3340
3341 * dummy-frontend.c (jit_langhook_write_globals): Rename to...
3342 (jit_langhook_post_compilation_parsing_cleanups): ...this, and
3343 eliminate calls to finalize_compilation_unit and
3344 write_global_decls_2.
3345 (LANG_HOOKS_WRITE_GLOBALS): Rename to...
3346 (LANG_HOOKS_POST_COMPILATION_PARSING_CLEANUPS): ...this and
3347 redirect from jit_langhook_write_globals to
3348 jit_langhook_post_compilation_parsing_cleanups.
3349 * jit-playback.c
3350 (gcc::jit::playback::context::write_global_decls_1): Rename to...
3351 (gcc::jit::playback::context::finalize_global_decls): ...this.
3352 (gcc::jit::playback::context::write_global_decls_1): Delete.
3353 * jit-playback.h
3354 (gcc::jit::playback::context::write_global_decls_1): Rename to...
3355 (gcc::jit::playback::context::finalize_global_decls): ...this.
3356 (gcc::jit::playback::context::write_global_decls_1): Delete.
3357
ecb9f223
AM
33582015-06-04 Andrew MacLeod <amacleod@redhat.com>
3359
3360 * dummy-frontend.c: Adjust includes for restructured coretypes.h.
3361 * jit-common.h: Likewise.
3362 * jit-playback.c: Likewise.
3363
2637afb7
DM
33642015-05-12 David Malcolm <dmalcolm@redhat.com>
3365
3366 * jit-builtins.c: Include vec.h before target.h.
3367
46bf0b0a
JW
33682015-04-27 Jim Wilson <jim.wilson@linaro.org>
3369
3370 * Make-lang.in (jit.mostlyclean): Remove shared libraries and object
3371 files.
3372
51c5c6b5
DM
33732015-04-09 David Malcolm <dmalcolm@redhat.com>
3374
3375 PR jit/65691
3376 * docs/cp/topics/expressions.rst (Simple expressions): Fix copy
3377 and paste error in description of gccjit::context::one.
3378 * docs/topics/expressions.rst (Simple expressions): Likewise in
3379 description of gcc_jit_context_one.
3380 * docs/_build/texinfo/libgccjit.texi: Regenerate.
3381
f40fd895
UB
33822015-03-13 Uros Bizjak <ubizjak@gmail.com>
3383
3384 * jit-recording.c (dump::write): Also check vasprintf return value.
3385 (recording::context::add_error_va): Ditto.
3386 (recording::string::from_printf): Ditto.
3387
18eb0d13
DM
33882015-03-13 David Malcolm <dmalcolm@redhat.com>
3389
3390 * docs/internals/index.rst (Packaging notes): New section.
3391 * docs/_build/texinfo/libgccjit.texi: Regenerate.
3392
7ef96183
DM
33932015-03-05 David Malcolm <dmalcolm@redhat.com>
3394
3395 * docs/cp/intro/tutorial03.rst: Add missing arguments to
3396 gccjit::block::end_with_conditional call. Add on_true/on_false
3397 comments. Tweak the wording.
3398 * docs/intro/tutorial03.rst: Add missing arguments to
3399 gcc_jit_block_end_with_conditional call. Add some clarifying
3400 comments.
3401 * docs/topics/compilation.rst: Tweak the wording to avoid an
3402 ambiguous use of "this".
3403 * docs/topics/contexts.rst: Fix a typo.
3404 * docs/topics/expressions.rst (GCC_JIT_BINARY_OP_MINUS): Remove
3405 a stray backtick.
3406 * docs/_build/texinfo/libgccjit.texi: Regenerate.
3407
56a9f6bc
TS
34082015-02-24 Thomas Schwinge <thomas@codesourcery.com>
3409
3410 PR libgomp/64625
3411 * jit-builtins.c (DEF_FUNCTION_TYPE_VAR_8)
3412 (DEF_FUNCTION_TYPE_VAR_12): Remove macros.
3413 (DEF_FUNCTION_TYPE_VAR_7, DEF_FUNCTION_TYPE_VAR_11): New macros.
3414 * jit-builtins.h (DEF_FUNCTION_TYPE_VAR_8)
3415 (DEF_FUNCTION_TYPE_VAR_12): Remove macros.
3416 (DEF_FUNCTION_TYPE_VAR_7, DEF_FUNCTION_TYPE_VAR_11): New macros.
3417
a4be4e91
DM
34182015-02-04 David Malcolm <dmalcolm@redhat.com>
3419
3420 PR jit/64257
3421 * docs/conf.py (html_theme): Change from 'pyramid'
3422 to 'sphinxdoc'.
3423
f435bff3
DM
34242015-02-04 David Malcolm <dmalcolm@redhat.com>
3425
3426 * docs/topics/contexts.rst (gcc_jit_context_acquire): Fix
3427 typo.
3428 * docs/_build/texinfo/libgccjit.texi: Regenerate.
3429
0ed4f017
DM
34302015-02-03 David Malcolm <dmalcolm@redhat.com>
3431
3432 * jit-logging.h (gcc::jit::log_user::log): Make const.
3433 * jit-recording.c (gcc::jit::recording::context::set_str_option):
3434 Log the new value of the option.
3435 (gcc::jit::recording::context::set_int_option): Likewise.
3436 (gcc::jit::recording::context::set_bool_option): Likewise.
3437 (gcc::jit::recording::context::compile): Log the value of all
3438 options.
3439 (gcc::jit::recording::context::compile_to_file): Likewise.
3440 (gcc::jit::recording::context::log_all_options): New function.
3441 (gcc::jit::recording::context::log_str_option): New function.
3442 (gcc::jit::recording::context::log_int_option): New function.
3443 (gcc::jit::recording::context::log_bool_option): New function.
3444 * jit-recording.h (gcc::jit::recording::context::log_all_options):
3445 New function.
3446 (gcc::jit::recording::context::log_str_option): New function.
3447 (gcc::jit::recording::context::log_int_option): New function.
3448 (gcc::jit::recording::context::log_bool_option): New function.
3449 * docs/internals/test-hello-world.exe.log.txt: Update for above
3450 changes.
3451 * docs/_build/texinfo/libgccjit.texi: Regenerate.
3452
2cb844ce
DM
34532015-02-03 David Malcolm <dmalcolm@redhat.com>
3454
3455 PR jit/64810
3456 * Make-lang.in (jit_OBJS): Add jit/jit-spec.o and gcc.o.
3457 (LIBGCCJIT_FILENAME): Add EXTRA_GCC_OBJS.
3458 * jit-playback.c: Include gcc.h.
3459 (gcc::jit::playback::context::compile): Move mutex acquisition
3460 to before the call to make_fake_args.
3461 (append_arg_from_driver): New function.
3462 (gcc::jit::playback::context::make_fake_args): On the first call,
3463 call into driver_get_configure_time_options to get configure-time
3464 default options and cache them. Add them to the args for
3465 toplev::main.
3466 * jit-spec.c: New source file.
3467 * docs/internals/test-hello-world.exe.log.txt: Update to reflect
3468 above changes.
3469 * docs/_build/texinfo/libgccjit.texi: Regenerate.
3470
16a71c50
DM
34712015-02-02 David Malcolm <dmalcolm@redhat.com>
3472
3473 PR jit/64810
3474 * dummy-frontend.c (jit_langhook_type_for_mode): Support
3475 TYPE_MODE (long_long_integer_type_node).
3476
53c04ec9
DM
34772015-01-27 David Malcolm <dmalcolm@redhat.com>
3478
3479 * docs/internals/test-hello-world.exe.log.txt: Add example version
3480 lines.
3481 * docs/_build/texinfo/libgccjit.texi: Regenerate.
3482 * jit-common.h (gcc::jit::dump::get_file): New accessor.
3483 * jit-logging.c: Include toplev.h.
3484 (gcc::jit::logger::logger): Log the GCC version.
3485 * jit-recording.c: Include toplev.h.
3486 (gcc:jit::recording::context::dump_reproducer_to_file): Log the
3487 GCC version.
3488
dc44ee3a
DM
34892015-01-26 David Malcolm <dmalcolm@redhat.com>
3490
3491 * docs/topics/compilation.rst (gcc_jit_result_get_code): Fix typo.
3492 * docs/topics/contexts.rst (gcc_jit_context_get_last_error): The
3493 error buffer is only valid until the next call to the context.
3494 * docs/_build/texinfo/libgccjit.texi: Regenerate.
3495 * libgccjit.h (gcc_jit_context_get_first_error): Reword the
3496 comment to omit mention of compiling.
3497 (gcc_jit_context_get_last_error): The error buffer is only valid
3498 until the next call to the context.
3499
3349605d
DM
35002015-01-26 David Malcolm <dmalcolm@redhat.com>
3501
3502 PR jit/64708
3503 * config-lang.in (compilers): Drop "libgccjit.so".
3504
6fc2d0f3
DM
35052015-01-23 David Malcolm <dmalcolm@redhat.com>
3506
3507 PR jit/64721
3508 * jit-playback.c (gcc::jit::playback::context::compile): Construct
3509 toplev instances with init_signals=false.
3510
fdce7209
DM
35112015-01-19 David Malcolm <dmalcolm@redhat.com>
3512
3513 * docs/cp/topics/results.rst: Rename to...
3514 * docs/cp/topics/compilation.rst: ...this, and add section on
3515 ahead-of-time compilation.
3516 * docs/cp/topics/index.rst: Update for renaming of results.rst
3517 to compilation.rst.
3518 * docs/examples/emit-alphabet.bf: New file, a sample "brainf"
3519 script.
3520 * docs/examples/tut05-bf.c: New file, implementing a compiler
3521 for "brainf".
3522 * docs/internals/test-hello-world.exe.log.txt: Update to reflect
3523 changes to logger output.
3524 * docs/intro/index.rst: Add tutorial05.rst
3525 * docs/intro/tutorial05.rst: New file.
3526 * docs/topics/results.rst: Rename to...
3527 * docs/topics/compilation.rst: ...this, and add section on
3528 ahead-of-time compilation.
3529 * docs/topics/index.rst: Update for renaming of results.rst to
3530 compilation.rst.
3531 * docs/_build/texinfo/libgccjit.texi: Regenerate.
3532 * jit-playback.c (gcc::jit::playback::context::compile): Convert
3533 return type from result * to void. Move the code to convert to
3534 dso and dlopen the result to a new pure virtual "postprocess"
3535 method.
3536 (gcc::jit::playback::compile_to_memory::compile_to_memory): New
3537 function.
3538 (gcc::jit::playback::compile_to_memory::postprocess): New
3539 function, based on playback::context::compile.
3540 (gcc::jit::playback::compile_to_file::compile_to_file): New
3541 function.
3542 (gcc::jit::playback::compile_to_file::postprocess): New function.
3543 (gcc::jit::playback::compile_to_file::copy_file): New function.
3544 (gcc::jit::playback::context::convert_to_dso): Move internals
3545 to...
3546 (gcc::jit::playback::context::invoke_driver): New method. Add
3547 "-shared" and "-c" options to driver's argv as needed.
3548 * jit-playback.h: Include "timevar.h".
3549 (gcc::jit::playback::context::compile): Convert return type from
3550 result * to void.
3551 (gcc::jit::playback::context::postprocess): New pure virtual
3552 function, making this an abstract base class.
3553 (gcc::jit::playback::context::get_tempdir): New accessor.
3554 (gcc::jit::playback::context::invoke_driver): New function.
3555 (class gcc::jit::playback::compile_to_memory): New subclass of
3556 playback::context.
3557 (class gcc::jit::playback::compile_to_file): Likewise.
3558 * jit-recording.c (gcc::jit::recording::context::compile): Use a
3559 playback::compile_to_memory, and extract its result.
3560 (gcc::jit::recording::context::compile_to_file): New function.
3561 * jit-recording.h (gcc::jit::recording::context::compile_to_file):
3562 New function.
3563 * libgccjit++.h (gccjit::context::compile_to_file): New method.
3564 * libgccjit.c (gcc_jit_context_compile): Update log message to
3565 clarify that this is an in-memory compile.
3566 (gcc_jit_context_compile_to_file): New function.
3567 * libgccjit.h (gcc_jit_context): Clarify that you can compile
3568 a context more than once, and that you can compile to a file
3569 as well as to memory.
3570 (gcc_jit_result): Clarify that this is the result of an
3571 in-memory compilation.
3572 (gcc_jit_context_compile): Clarify that you can compile, and that
3573 this is an in-memory compilation.
3574 (enum gcc_jit_output_kind): New enum.
3575 (gcc_jit_context_compile_to_file): New function.
3576 (gcc_jit_context_enable_dump): Clarify comment to cover both forms
3577 of compilation.
3578 * libgccjit.map (gcc_jit_context_compile_to_file): New API
3579 entrypoint.
3580 * notes.txt: Update to show the playback::context::postprocess
3581 virtual function.
3582
450e225b
DM
35832015-01-19 David Malcolm <dmalcolm@redhat.com>
3584
3585 * jit-recording.c
3586 (gcc::jit::recording::memento_of_new_string_literal::make_debug_string):
3587 Add missing format string.
3588
499de348
DM
35892015-01-16 David Malcolm <dmalcolm@redhat.com>
3590
3591 * Make-lang.in (lang_checks_parallelized): Add "check-jit".
3592 (check_jit_parallelize): Set this to an arbitrary value (10).
3593
e989e68d
JJ
35942015-01-16 Jakub Jelinek <jakub@redhat.com>
3595
3596 * jit-builtins.h (DEF_FUNCTION_TYPE_VAR_5): Fix spelling of
3597 last argument.
3598 (DEF_FUNCTION_TYPE_VAR_8, DEF_FUNCTION_TYPE_VAR_12): Define and
3599 undef afterwards.
3600 * jit-builtins.c (DEF_FUNCTION_TYPE_VAR_8, DEF_FUNCTION_TYPE_VAR_12):
3601 Likewise.
3602
179ed8f5
RS
36032015-01-15 Richard Sandiford <richard.sandiford@arm.com>
3604
3605 Update copyright years in docs/.
3606
96a87981
DM
36072015-01-15 David Malcolm <dmalcolm@redhat.com>
3608
3609 * libgccjit.c (gcc_jit_block_add_assignment_op): Check that the
3610 lvalue and the rvalue are of compatible type.
3611
86d0ac88
DM
36122015-01-13 David Malcolm <dmalcolm@redhat.com>
3613
3614 * docs/cp/topics/contexts.rst (Debugging): Add
3615 gccjit::context::dump_reproducer_to_file.
3616 * docs/internals/index.rst (Design notes): New section,
3617 discussing input validation and
3618 gcc_jit_context_dump_reproducer_to_file.
3619 * docs/topics/contexts.rst (Debugging): Add
3620 gcc_jit_context_dump_reproducer_to_file.
3621 * docs/_build/texinfo/libgccjit.texi: Regenerate.
3622 * jit-common.h (gcc::jit::dump::get_context): New accessor.
3623 * jit-recording.c: Include "hash-map.h".
3624 Within namespace ::gcc::jit...
3625 (dump::write): Flush each line.
3626 (dump::make_location): Pass false for new param "created_by_user".
3627 (class allocator): New class.
3628 (allocator::~allocator): New function.
3629 (allocator::xstrdup_printf): New function.
3630 (allocator::xstrdup_printf_va): New function.
3631 (class reproducer): New subclass of dump.
3632 (reproducer::reproducer): New function.
3633 (reproducer::write_params): New function.
3634 (reproducer::write_args): New function.
3635 (reproducer::make_identifier): New function.
3636 (reproducer::make_tmp_identifier): New function.
3637 (reproducer::get_identifier): New pair of functions.
3638 (reproducer::get_identifier_as_rvalue): New function.
3639 (reproducer::get_identifier_as_lvalue): New function.
3640 (reproducer::get_identifier_as_type): New function.
3641 (reproducer::xstrdup_printf): New function.
3642 (recording::context::context): Initialize m_toplevel_ctxt.
3643 (recording::context::new_location): Add param created_by_user.
3644 (str_option_reproducer_strings): New table of strings.
3645 (int_option_reproducer_strings): Likewise.
3646 (bool_option_reproducer_strings): Likewise.
3647 (get_type_enum_strings): Likewise.
3648 (names_of_function_kinds): Likewise.
3649 (global_kind_reproducer_strings): Likewise.
3650 (unary_op_reproducer_strings): Likewise.
3651 (binary_op_reproducer_strings): Likewise.
3652 (comparison_reproducer_strings): Likewise.
3653 Within namespace ::gcc::jit::recording::...
3654 (context::dump_reproducer_to_file): New function.
3655 (string::write_reproducer): Likewise.
3656 (location::write_reproducer): Likewise.
3657 (type::access_as_type): Likewise.
3658 (memento_of_get_type::write_reproducer): Likewise.
3659 (memento_of_get_pointer::write_reproducer): Likewise.
3660 (memento_of_get_const::write_reproducer): Likewise.
3661 (memento_of_get_volatile::write_reproducer): Likewise.
3662 (array_type::write_reproducer): Likewise.
3663 (function_type::write_reproducer): Likewise.
3664 (function_type::write_deferred_reproducer): Likewise.
3665 (field::write_reproducer): Likewise.
3666 (struct_::access_as_type): Likewise.
3667 (struct_::write_reproducer): Likewise.
3668 (union_::write_reproducer): Likewise.
3669 (fields::write_reproducer): Likewise.
3670 (rvalue::access_as_rvalue): Likewise.
3671 (lvalue::access_as_rvalue): Likewise.
3672 (lvalue::access_as_lvalue): Likewise.
3673 (param::access_as_rvalue): Likewise.
3674 (param::access_as_lvalue): Likewise.
3675 (param::write_reproducer): Likewise.
3676 (function::write_reproducer): Likewise.
3677 (block::write_reproducer): Likewise.
3678 (global::write_reproducer): Likewise.
3679 (memento_of_new_rvalue_from_const <int>::write_reproducer):
3680 Likewise.
3681 (memento_of_new_rvalue_from_const <long>::write_reproducer):
3682 Likewise.
3683 (memento_of_new_rvalue_from_const <double>::write_reproducer):
3684 Likewise.
3685 (memento_of_new_rvalue_from_const <void *>::write_reproducer):
3686 Likewise.
3687 (memento_of_new_string_literal::write_reproducer): Likewise.
3688 (unary_op::write_reproducer): Likewise.
3689 (binary_op::write_reproducer): Likewise.
3690 (comparison::write_reproducer): Likewise.
3691 (cast::write_reproducer): Likewise.
3692 (call::write_reproducer): Likewise.
3693 (call_through_ptr::write_reproducer): Likewise.
3694 (array_access::write_reproducer): Likewise.
3695 (access_field_of_lvalue::write_reproducer): Likewise.
3696 (access_field_rvalue::write_reproducer): Likewise.
3697 (dereference_field_rvalue::write_reproducer): Likewise.
3698 (dereference_rvalue::write_reproducer): Likewise.
3699 (get_address_of_lvalue::write_reproducer): Likewise.
3700 (local::write_reproducer): Likewise.
3701 (eval::write_reproducer): Likewise.
3702 (assignment::write_reproducer): Likewise.
3703 (assignment_op::write_reproducer): Likewise.
3704 (comment::write_reproducer): Likewise.
3705 (conditional::write_reproducer): Likewise.
3706 (jump::write_reproducer): Likewise.
3707 (return_::write_reproducer): Likewise.
3708 * jit-recording.h (gcc::jit::reproducer): New forward declararion.
3709 Within namespace ::gcc::jit::recording::...
3710 (context::new_location): Add "created_by_user" param.
3711 (context::dump_reproducer_to_file): New method.
3712 (context::m_toplevel_ctxt): New field.
3713 (memento::write_reproducer): New pure virtual function.
3714 (memento::dyn_cast_location): New virtual function.
3715 (string::write_reproducer):
3716 (location::location): Add "created_by_user" param.
3717 (location::dyn_cast_location): New function.
3718 (location::created_by_user): New accessor.
3719 (location::write_reproducer): New function.
3720 (location::m_created_by_user): New field.
3721 (type::access_as_type): New virtual function.
3722 (location::write_reproducer): Likewise.
3723 (type::access_as_type): Likewise.
3724 (memento_of_get_type::write_reproducer): Likewise.
3725 (memento_of_get_pointer::write_reproducer): Likewise.
3726 (memento_of_get_const::write_reproducer): Likewise.
3727 (memento_of_get_volatile::write_reproducer): Likewise.
3728 (array_type::write_reproducer): Likewise.
3729 (function_type::write_reproducer): Likewise.
3730 (function_type::write_deferred_reproducer): Likewise.
3731 (field::write_reproducer): Likewise.
3732 (struct_::access_as_type): Likewise.
3733 (struct_::write_reproducer): Likewise.
3734 (union_::write_reproducer): Likewise.
3735 (union_::m_fields): Remove stray unused field.
3736 (fields::length): New accessor.
3737 (fields::get_field): New accessor.
3738 (fields::write_reproducer): New function.
3739 (rvalue::access_as_rvalue): Likewise.
3740 (lvalue::access_as_rvalue): Likewise.
3741 (lvalue::access_as_lvalue): Likewise.
3742 (param::access_as_rvalue): Likewise.
3743 (param::access_as_lvalue): Likewise.
3744 (param::write_reproducer): Likewise.
3745 (function::write_reproducer): Likewise.
3746 (block::write_reproducer): Likewise.
3747 (global::write_reproducer): Likewise.
3748 (memento_of_new_rvalue_from_const <HOST_TYPE>::write_reproducer):
3749 Likewise.
3750 (memento_of_new_string_literal::write_reproducer): Likewise.
3751 (unary_op::write_reproducer): Likewise.
3752 (binary_op::write_reproducer): Likewise.
3753 (comparison::write_reproducer): Likewise.
3754 (cast::write_reproducer): Likewise.
3755 (call::write_reproducer): Likewise.
3756 (call_through_ptr::write_reproducer): Likewise.
3757 (array_access::write_reproducer): Likewise.
3758 (access_field_of_lvalue::write_reproducer): Likewise.
3759 (access_field_rvalue::write_reproducer): Likewise.
3760 (dereference_field_rvalue::write_reproducer): Likewise.
3761 (dereference_rvalue::write_reproducer): Likewise.
3762 (get_address_of_lvalue::write_reproducer): Likewise.
3763 (local::write_reproducer): Likewise.
3764 (eval::write_reproducer): Likewise.
3765 (assignment::write_reproducer): Likewise.
3766 (assignment_op::write_reproducer): Likewise.
3767 (comment::write_reproducer): Likewise.
3768 (conditional::write_reproducer): Likewise.
3769 (jump::write_reproducer): Likewise.
3770 (return_::write_reproducer): Likewise.
3771 * libgccjit++.h (gccjit::context::dump_reproducer_to_file): New.
3772 * libgccjit.c (gcc_jit_context_new_location): Pass "true" as
3773 param "created_by_user".
3774 (gcc_jit_context_dump_reproducer_to_file): New API entrypoint.
3775 * libgccjit.h (gcc_jit_context_dump_reproducer_to_file): New API
3776 entrypoint.
3777 * libgccjit.map (gcc_jit_context_dump_reproducer_to_file): New API
3778 entrypoint.
3779
f6f2b019
DM
37802015-01-12 David Malcolm <dmalcolm@redhat.com>
3781
3782 * jit-recording.c (class gcc::jit::rvalue_usage_validator): New.
3783 (gcc::jit::rvalue_usage_validator::rvalue_usage_validator): New
3784 ctor.
3785 (gcc::jit::rvalue_usage_validator::visit): New function.
3786 (gcc::jit::recording::rvalue::verify_valid_within_stmt): New
3787 function.
3788 (gcc::jit::recording::rvalue::set_scope): New function.
3789 (gcc::jit::recording::function::function): Call set_scope on each
3790 param, issuing errors for any params that already have a function.
3791 (gcc::jit::recording::block::add_eval): Return the new statement;
3792 update the comment given that some error-checking now happens after
3793 this returns.
3794 (gcc::jit::recording::block::add_assignment): Likewise.
3795 (gcc::jit::recording::block::add_assignment_op): Likewise.
3796 (gcc::jit::recording::block::add_comment): Likewise.
3797 (gcc::jit::recording::block::end_with_conditional): Likewise.
3798 (gcc::jit::recording::block::end_with_jump): Likewise.
3799 (gcc::jit::recording::block::end_with_return): Likewise.
3800 (gcc::jit::recording::block::validate): Add a comment.
3801 (gcc::jit::recording::unary_op::visit_children): New function.
3802 (gcc::jit::recording::binary_op::visit_children): New function.
3803 (gcc::jit::recording::comparison::visit_children): New function.
3804 (gcc::jit::recording::cast::visit_children): New function.
3805 (gcc::jit::recording::call::visit_children): New function.
3806 (gcc::jit::recording::call_through_ptr::visit_children): New function.
3807 (gcc::jit::recording::array_access::visit_children): New function.
3808 (gcc::jit::recording::access_field_of_lvalue::visit_children): New
3809 function.
3810 (gcc::jit::recording::access_field_rvalue::visit_children): New
3811 function.
3812 (gcc::jit::recording::dereference_field_rvalue::visit_children):
3813 New function.
3814 (gcc::jit::recording::dereference_rvalue::visit_children): New
3815 function.
3816 (gcc::jit::recording::get_address_of_lvalue::visit_children): New
3817 function.
3818 * jit-recording.h: Within namespace gcc::jit::recording...
3819 (class rvalue_visitor): New.
3820 (rvalue::rvalue): Initialize m_scope.
3821 (rvalue::get_loc): New accessor.
3822 (rvalue::verify_valid_within_stmt): New function.
3823 (rvalue::visit_children): New pure virtual function.
3824 (rvalue::set_scope): New function.
3825 (rvalue::get_scope): New function.
3826 (rvalue::dyn_cast_param): New function.
3827 (rvalue::m_scope): New field.
3828 (param::visit_children): New empty function.
3829 (param::dyn_cast_param): New function.
3830 (function::get_loc): New function.
3831 (block::add_eval): Return the new statement.
3832 (block::add_assignment): Likewise.
3833 (block::add_assignment_op): Likewise.
3834 (block::add_comment): Likewise.
3835 (block::end_with_conditional): Likewise.
3836 (block::end_with_jump): Likewise.
3837 (block::end_with_return): Likewise.
3838 (global::visit_children): New function.
3839 (memento_of_new_rvalue_from_const<HOST_TYPE>::visit_children):
3840 New function.
3841 (memento_of_new_string_literal::visit_children): New function.
3842 (unary_op::visit_children): New function.
3843 (binary_op::visit_children): New function.
3844 (comparison::visit_children): New function.
3845 (cast::visit_children): New function.
3846 (call::visit_children): New function.
3847 (call_through_ptr::visit_children): New function.
3848 (array_access::visit_children): New function.
3849 (access_field_of_lvalue::visit_children): New function.
3850 (access_field_rvalue::visit_children): New function.
3851 (dereference_field_rvalue::visit_children): New function.
3852 (dereference_rvalue::visit_children): New function.
3853 (get_address_of_lvalue::visit_children): New function.
3854 (local::local): Call set_scope.
3855 (local::visit_children): New function.
3856 (statement::get_block): Make public.
3857 * libgccjit.c (RETURN_VAL_IF_FAIL_PRINTF5): New macro.
3858 (RETURN_NULL_IF_FAIL_PRINTF5): New macro.
3859 (gcc_jit_context_new_function): Verify that each param has
3860 not yet been used for creating another function.
3861 (gcc_jit_block_add_eval): After creating the stmt, verify
3862 that the rvalue expression tree is valid to use within it.
3863 (gcc_jit_block_add_assignment): Likewise for the lvalue and
3864 rvalue expression trees.
3865 (gcc_jit_block_add_assignment_op): Likewise.
3866 (gcc_jit_block_end_with_conditional): Likewise for the boolval
3867 expression tree.
3868 (gcc_jit_block_end_with_return): Likewise for the rvalue
3869 expression tree.
3870 (gcc_jit_block_end_with_void_return): Remove return of "void",
3871 now that block::end_with_return is now non-void.
3872
1c35cc2c
DM
38732015-01-12 David Malcolm <dmalcolm@redhat.com>
3874
3875 * jit-playback.c (gcc::jit::playback::context::read_dump_file):
3876 Add missing fclose on error-handling path.
3877
791cfef8
DM
38782015-01-12 David Malcolm <dmalcolm@redhat.com>
3879
3880 * docs/cp/topics/expressions.rst (Global variables): Add
3881 enum gcc_jit_global_kind param to gccjit::context::new_global.
3882 * docs/topics/expressions.rst (Global variables): Likewise.
3883 Document the new enum.
3884 * docs/topics/results.rst (Compilation results): Document
3885 globals-handling.
3886 * docs/_build/texinfo/libgccjit.texi: Regenerate.
3887 * dummy-frontend.c (jit_langhook_write_globals): Call into the
3888 playback context's write_global_decls_1 and write_global_decls_2
3889 before and after calling symtab->finalize_compilation_unit ().
3890 * jit-playback.c: Include "debug.h".
3891 (gcc::jit::playback::context::new_global): Add "kind" param and
3892 use it to set TREE_PUBLIC, TREE_STATIC and DECL_EXTERNAL on the
3893 underlying VAR_DECL. Call varpool_node::get_create on the
3894 VAR_DECL, and add it to m_globals.
3895 (gcc::jit::playback::context::write_global_decls_1): New function.
3896 (gcc::jit::playback::context::write_global_decls_2): New function.
3897 * jit-playback.h (gcc::jit::playback::context::context): Call
3898 create on m_globals.
3899 (gcc::jit::playback::context::new_global): Add "kind" param.
3900 (gcc::jit::playback::context::write_global_decls_1): New function.
3901 (gcc::jit::playback::context::write_global_decls_2): New function.
3902 (gcc::jit::playback::context::m_globals): New field.
3903 * jit-recording.c (gcc::jit::recording::context::context):
3904 Initialize m_globals.
3905 (gcc::jit::recording::context::new_global): Add param "kind".
3906 Add the new global to m_globals.
3907 (gcc::jit::recording::context::dump_to_file): Dump the globals.
3908 (gcc::jit::recording::global::replay_into): Add field m_kind.
3909 (gcc::jit::recording::global::write_to_dump): New override.
3910 * jit-recording.h (gcc::jit::recording::context::new_global): Add
3911 param "kind".
3912 (gcc::jit::recording::context::m_globals): New field.
3913 (gcc::jit::recording::global::global): Add param kind.
3914 (gcc::jit::recording::global::write_to_dump): New override.
3915 (gcc::jit::recording::global::m_kind): New field.
3916 * jit-result.c (gcc::jit::result::get_global): New function.
3917 * jit-result.h (gcc::jit::result::get_global): New function.
3918 * libgccjit++.h (gccjit::context::new_global): Add "kind" param.
3919 * libgccjit.c (gcc_jit_context_new_global): Likewise.
3920 (gcc_jit_result_get_global): New API entrypoint.
3921 * libgccjit.h (gcc_jit_result_get_global): New API entrypoint.
3922 (enum gcc_jit_global_kind): New enum.
3923 (gcc_jit_context_new_global): API change: add "kind" param.
3924 * libgccjit.map (gcc_jit_result_get_global): New symbol.
3925
860e981c
DM
39262015-01-09 David Malcolm <dmalcolm@redhat.com>
3927
3928 * dummy-frontend.c: Include "fixed-value.h", "alias.h", "flags.h",
3929 "symtab.h", "inchash.h". Move include of "hash-set.h" much
3930 earlier.
3931 * jit-builtins.c: Remove redundant includes of "opts.h" and
3932 "tree.h".
3933 * jit-common.h: Include "hash-set.h", "input.h", "vec.h",
3934 "double-int.h", "alias.h", "flags.h", "symtab.h", "inchash.h".
3935 * jit-playback.c: Include "hashtab.h", "machmode.h", "input.h",
3936 "statistics.h", "vec.h", "double-int.h", "real.h",
3937 "fixed-value.h", "alias.h", "flags.h", "symtab.h", "tree-core.h",
3938 "inchash.h", "fold-const.h". Move include of "hash-set.h" to
3939 earlier.
3940 * jit-recording.c: Remove redundant includes of "opts.h" and
3941 "tree.h".
3942
ccce3b2a
DM
39432015-01-09 David Malcolm <dmalcolm@redhat.com>
3944
3945 * docs/cp/topics/expressions.rst (Simple expressions): Use
3946 ":c:type:" for C types. Document new overload of
3947 gcc::jit::context::new_rvalue.
3948 * docs/topics/expressions.rst (Simple expressions): Use
3949 ":c:type:" for C types. Document new entrypoint
3950 gcc_jit_context_new_rvalue_from_long.
3951 * docs/_build/texinfo/libgccjit.texi: Regenerate.
3952 * jit-playback.c: Within namespace gcc::jit::playback...
3953 (context::new_rvalue_from_int): Eliminate in favor of...
3954 (context::new_rvalue_from_const <int>): ...this.
3955 (context::new_rvalue_from_double): Eliminate in favor of...
3956 (context::new_rvalue_from_const <double>): ...this.
3957 (context::new_rvalue_from_const <long>): New.
3958 (context::new_rvalue_from_ptr): Eliminate in favor of...
3959 (context::new_rvalue_from_const <void *>): ...this.
3960 * jit-playback.h: Within namespace gcc::jit::playback...
3961 (context::new_rvalue_from_int): Eliminate in favor of...
3962 (context::new_rvalue_from_const <HOST_TYPE>): ...this.
3963 (context::new_rvalue_from_double): Likewise.
3964 (context::new_rvalue_from_ptr): Likewise.
3965 * jit-recording.c: Within namespace gcc::jit::recording...
3966 (context::new_rvalue_from_int): Eliminate.
3967 (context::new_rvalue_from_double): Likewise.
3968 (context::new_rvalue_from_ptr): Likewise.
3969 (class memento_of_new_rvalue_from_const <int>):
3970 Add explicit specialization.
3971 (class memento_of_new_rvalue_from_const <long>):
3972 Likewise.
3973 (class memento_of_new_rvalue_from_const <double>):
3974 Likewise.
3975 (class memento_of_new_rvalue_from_const <void *>):
3976 Likewise.
3977 (memento_of_new_rvalue_from_int::replay_into):
3978 Generalize into...
3979 (memento_of_new_rvalue_from_const <HOST_TYPE>::replay_into):
3980 ...this...
3981 (memento_of_new_rvalue_from_double::replay_into):
3982 ...allowing this...
3983 (memento_of_new_rvalue_from_ptr::replay_into):
3984 ...and this to be deleted.
3985 (memento_of_new_rvalue_from_int::make_debug_string):
3986 Convert to...
3987 (memento_of_new_rvalue_from_const <int>::make_debug_string):
3988 ...this.
3989 (memento_of_new_rvalue_from_double::make_debug_string):
3990 Convert to...
3991 (memento_of_new_rvalue_from_const <double>::make_debug_string):
3992 ...this.
3993 (memento_of_new_rvalue_from_ptr::make_debug_string)
3994 Convert to...
3995 (memento_of_new_rvalue_from_const <void *>::make_debug_string):
3996 ...this.
3997 (memento_of_new_rvalue_from_const <long>::make_debug_string):
3998 New function.
3999 * jit-recording.h: Within namespace gcc::jit::recording...
4000 (context::new_rvalue_from_int): Eliminate.
4001 (context::new_rvalue_from_double): Likewise.
4002 (context::new_rvalue_from_ptr): Likewise, all in favor of...
4003 (context::new_rvalue_from_const <HOST_TYPE>): New family of
4004 methods.
4005 (class memento_of_new_rvalue_from_int): Eliminate.
4006 (class memento_of_new_rvalue_from_double): Likewise.
4007 (class memento_of_new_rvalue_from_ptr): Likewise.
4008 (class memento_of_new_rvalue_from_const <HOST_TYPE>): New family
4009 of rvalue subclasses.
4010 * libgccjit++.h (gccjit::context::new_rvalue): New overload, for
4011 "long".
4012 * libgccjit.c (gcc_jit_context_new_rvalue_from_int): Update for
4013 rewriting of recording::context::new_rvalue_from_int to
4014 recording::context::new_rvalue_from_const <int>.
4015 (gcc_jit_context_new_rvalue_from_long): New API entrypoint.
4016 (gcc_jit_context_new_rvalue_from_double): Update for
4017 rewriting of recording::context::new_rvalue_from_double to
4018 recording::context::new_rvalue_from_const <double>.
4019 (gcc_jit_context_new_rvalue_from_ptr): Update for
4020 rewriting of recording::context::new_rvalue_from_ptr to
4021 recording::context::new_rvalue_from_const <void *>.
4022 * libgccjit.h (gcc_jit_context_new_rvalue_from_long): New API
4023 entrypoint.
4024 * libgccjit.map (gcc_jit_context_new_rvalue_from_long): Likewise.
4025
d2286af3
DM
40262015-01-09 David Malcolm <dmalcolm@redhat.com>
4027
4028 PR jit/64206
4029 * docs/internals/test-hello-world.exe.log.txt: Update, the log now
4030 shows tempdir creation/cleanup.
4031 * docs/_build/texinfo/libgccjit.texi: Regenerate.
4032 * jit-logging.h (class gcc::jit::log_user): Add gcc::jit::tempdir
4033 to the list of subclasses in the comment.
4034 * jit-playback.c (gcc::jit::playback::context::context): Add a
4035 comment clarifying when the tempdir gets cleaned up.
4036 (gcc::jit::playback::context::compile): Pass the context's logger,
4037 if any, to the tempdir.
4038 (gcc::jit::playback::context::dlopen_built_dso): When creating the
4039 gcc::jit::result, if GCC_JIT_BOOL_OPTION_DEBUGINFO is set, hand
4040 over ownership of the tempdir to it.
4041 * jit-result.c: Include "jit-tempdir.h".
4042 (gcc::jit::result::result): Add tempdir param, saving it as
4043 m_tempdir.
4044 (gcc::jit::result::~result): Delete m_tempdir.
4045 * jit-result.h (gcc::jit::result::result): Add tempdir param.
4046 (gcc::jit::result::m_tempdir): New field.
4047 * jit-tempdir.c (gcc::jit::tempdir::tempdir): Add logger param;
4048 add JIT_LOG_SCOPE.
4049 (gcc::jit::tempdir::create): Add JIT_LOG_SCOPE to log entry/exit,
4050 and log m_path_template and m_path_tempdir.
4051 (gcc::jit::tempdir::~tempdir): Add JIT_LOG_SCOPE to log
4052 entry/exit, and log the unlink and rmdir calls.
4053 * jit-tempdir.h: Include "jit-logging.h".
4054 (class gcc::jit::tempdir): Make this be a subclass of log_user.
4055 (gcc::jit::tempdir::tempdir): Add logger param.
4056 * notes.txt: Update to show the two possible places where the
4057 tempdir can be cleaned up.
4058
7c8db13e
DM
40592015-01-08 David Malcolm <dmalcolm@redhat.com>
4060
4061 * libgccjit.h (struct gcc_jit_context): Rewrite the descriptive
4062 comment.
4063
303e1d56
DM
40642015-01-08 David Malcolm <dmalcolm@redhat.com>
4065
4066 * docs/topics/contexts.rst (Error-handling): Document new
4067 entrypoint gcc_jit_context_get_last_error.
4068 * docs/_build/texinfo/libgccjit.texi: Regenerate.
4069 * jit-recording.c (gcc::jit::recording::context::context):
4070 Initialize new fields "m_last_error_str" and
4071 "m_owns_last_error_str".
4072 (gcc::jit::recording::context::~context): Clean up
4073 m_last_error_str, if needed.
4074 (gcc::jit::recording::context::add_error_va): Update
4075 m_last_error_str and m_owns_last_error_str, freeing the old
4076 value if appropriate.
4077 (gcc::jit::recording::context::get_last_error): New function.
4078 * jit-recording.h (gcc::jit::recording::context::get_last_error):
4079 New function.
4080 (gcc::jit::recording::context): New fields m_last_error_str and
4081 m_owns_last_error_str.
4082 * libgccjit.c (gcc_jit_context_get_last_error): New function.
4083 * libgccjit.h (gcc_jit_context_get_last_error): New declaration.
4084 * libgccjit.map (gcc_jit_context_get_last_error): New function.
4085
eb4c16eb
DM
40862015-01-08 David Malcolm <dmalcolm@redhat.com>
4087
4088 * Make-lang.in (jit_OBJS): Add jit/jit-logging.o.
4089 * docs/internals/index.rst (Overview of code structure): Mention
4090 gcc_jit_context_set_logfile, and embed the example logfile.
4091 * docs/internals/test-hello-world.exe.log.txt: New file: example
4092 of a logfile.
4093 * docs/topics/contexts.rst (Debugging): Add documentation
4094 for gcc_jit_context_set_logfile.
4095 * docs/_build/texinfo/libgccjit.texi: Regenerate.
4096 * dummy-frontend.c: Include "jit-logging.h".
4097 (jit_langhook_init): Assert that there is an active playback
4098 context. If it has a logger, log entry/exit to this function.
4099 (jit_langhook_write_globals): Likewise.
4100 * jit-common.h (gcc::jit::logger): New forward declaration.
4101 * jit-logging.c: New file.
4102 * jit-logging.h: New file.
4103 * jit-playback.c: Include "jit-logging.h".
4104 (gcc::jit::playback::context::context): Initialize the log_user
4105 base class from the recording context's logger (if any). Use
4106 JIT_LOG_SCOPE to log entry/exit from the function body.
4107 (gcc::jit::playback::context::~context): Use JIT_LOG_SCOPE to
4108 log entry/exit from the function body.
4109 (gcc::jit::playback::build_stmt_list): Likewise.
4110 (gcc::jit::playback::function::postprocess): Likewise.
4111 (gcc::jit::playback::context::compile): Likewise. Log the
4112 entry/exit to toplev::main and toplev::finalize. Log the
4113 fake argv passed to toplev::main.
4114 (gcc::jit::playback::context::acquire_mutex): Use JIT_LOG_SCOPE to
4115 log entry/exit from the function body.
4116 (gcc::jit::playback::context::release_mutex): Likewise.
4117 (gcc::jit::playback::context::make_fake_args): Likewise.
4118 (gcc::jit::playback::context::extract_any_requested_dumps):
4119 Likewise.
4120 (gcc::jit::playback::context::convert_to_dso): Likewise. Also,
4121 log the arguments that the driver is invoked with.
4122 (gcc::jit::playback::context::dlopen_built_dso): Likewise. Pass
4123 the logger to the result object.
4124 (gcc::jit::playback::context::replay): Use JIT_LOG_SCOPE to
4125 log entry/exit from the function body.
4126 (gcc::jit::playback::context::dump_generated_code): Likewise.
4127 (gcc::jit::playback::context::handle_locations): Likewise.
4128 * jit-playback.h (gcc::jit::playback::context): Make this be
4129 a subclass of gcc::jit::log_user.
4130 * jit-recording.c: Include "jit-logging.h".
4131 (gcc::jit::recording::context::context: Initialize the logger to
4132 NULL for root contexts, or to the parent's logger for child
4133 contexts.
4134 (gcc::jit::recording::context::~context): Use JIT_LOG_SCOPE to
4135 log entry/exit from the function body.
4136 (gcc::jit::recording::context::replay_into): Likewise.
4137 (gcc::jit::recording::context::disassociate_from_playback):
4138 Likewise.
4139 (gcc::jit::recording::context::compile): Likewise.
4140 (recording::context::add_error_va): Likewise. Also, log the
4141 error.
4142 (gcc::jit::recording::context::validate): Use JIT_LOG_SCOPE to
4143 log entry/exit from the function body.
4144 * jit-recording.h: Include "jit-logging.h".
4145 (gcc::jit::recording::context): Make this be a subclass of
4146 gcc::jit::log_user.
4147 * jit-result.c: Include "jit-common.h" and "jit-logging.h".
4148 (gcc::jit::result::result): Add logger param, recording it.
4149 Use JIT_LOG_SCOPE to log entry/exit from the function body.
4150 (gcc::jit::result::~result(): Use JIT_LOG_SCOPE to
4151 log entry/exit from the function body.
4152 (gcc::jit::result::get_code): Likewise.
4153 * jit-result.h (gcc::jit::result): Make this be a subclass of
4154 gcc::jit::log_user.
4155 (gcc::jit::result::result): Add logger parameter.
4156 * libgccjit++.h (gccjit::context::set_logfile): New function.
4157 * libgccjit.c: Include "jit-logging.h".
4158 (gcc_jit_context_acquire): Log the context.
4159 (gcc_jit_context_release): Use JIT_LOG_FUNC to
4160 log entry/exit from the function body, and log the context.
4161 (gcc_jit_context_new_child_context): Likewise, logging both
4162 contexts.
4163 (gcc_jit_context_new_location): Use JIT_LOG_FUNC to
4164 log entry/exit from the function body.
4165 (gcc_jit_context_get_type): Likewise.
4166 (gcc_jit_context_get_int_type): Likewise.
4167 (gcc_jit_context_new_array_type): Likewise.
4168 (gcc_jit_context_new_field): Likewise.
4169 (gcc_jit_context_new_struct_type): Likewise.
4170 (gcc_jit_context_new_opaque_struct): Likewise.
4171 (gcc_jit_struct_set_fields): Likewise.
4172 (gcc_jit_context_new_union_type): Likewise.
4173 (gcc_jit_context_new_function_ptr_type): Likewise.
4174 (gcc_jit_context_new_param): Likewise.
4175 (gcc_jit_context_new_function): Likewise.
4176 (gcc_jit_context_get_builtin_function): Likewise.
4177 (gcc_jit_function_get_param): Likewise.
4178 (gcc_jit_function_dump_to_dot): Likewise.
4179 (gcc_jit_function_new_block): Likewise.
4180 (gcc_jit_context_new_global): Likewise.
4181 (gcc_jit_context_new_rvalue_from_int): Likewise.
4182 (gcc_jit_context_zero): Likewise.
4183 (gcc_jit_context_one): Likewise.
4184 (gcc_jit_context_new_rvalue_from_double): Likewise.
4185 (gcc_jit_context_new_rvalue_from_ptr): Likewise.
4186 (gcc_jit_context_null): Likewise.
4187 (gcc_jit_context_new_string_literal): Likewise.
4188 (gcc_jit_context_new_unary_op): Likewise.
4189 (gcc_jit_context_new_binary_op): Likewise.
4190 (gcc_jit_context_new_comparison): Likewise.
4191 (gcc_jit_context_new_call): Likewise.
4192 (gcc_jit_context_new_call_through_ptr): Likewise.
4193 (gcc_jit_context_new_cast): Likewise.
4194 (gcc_jit_context_new_array_access): Likewise.
4195 (gcc_jit_lvalue_access_field): Likewise.
4196 (gcc_jit_rvalue_access_field): Likewise.
4197 (gcc_jit_rvalue_dereference_field): Likewise.
4198 (gcc_jit_rvalue_dereference): Likewise.
4199 (gcc_jit_lvalue_get_address): Likewise.
4200 (gcc_jit_function_new_local): Likewise.
4201 (gcc_jit_block_add_eval): Likewise.
4202 (gcc_jit_block_add_assignment): Likewise.
4203 (gcc_jit_block_add_assignment_op): Likewise.
4204 (gcc_jit_block_end_with_conditional): Likewise.
4205 (gcc_jit_block_add_comment): Likewise.
4206 (gcc_jit_block_end_with_jump): Likewise.
4207 (gcc_jit_block_end_with_return): Likewise.
4208 (gcc_jit_block_end_with_void_return): Likewise.
4209 (gcc_jit_context_set_str_option): Likewise.
4210 (gcc_jit_context_set_int_option): Likewise.
4211 (gcc_jit_context_set_bool_option): Likewise.
4212 (gcc_jit_context_enable_dump): Likewise.
4213 (gcc_jit_context_compile): Likewise. Also log the context,
4214 and the result.
4215 (gcc_jit_context_dump_to_file): Likewise.
4216 (gcc_jit_context_set_logfile): New function.
4217 (gcc_jit_context_get_first_error): Use JIT_LOG_FUNC to
4218 log entry/exit from the function body.
4219 (gcc_jit_result_get_code): Likewise. Also log the fnname)
4220 and the ptr to be returned.
4221 (gcc_jit_result_release): Likewise. Also log the result.
4222 * libgccjit.h: Include <stdio.h>, since we need FILE *.
4223 (gcc_jit_context_set_logfile): New declaration.
4224 * libgccjit.map (gcc_jit_context_set_logfile): New.
4225
c211cd23
DM
42262015-01-07 David Malcolm <dmalcolm@redhat.com>
4227
4228 * jit-recording.h (gcc::jit::recording::type::is_void): New
4229 virtual function.
4230 (gcc::jit::recording::memento_of_get_type::is_void): New
4231 function, overriding default implementation.
4232 * libgccjit.c (gcc_jit_rvalue_dereference): Verify that
4233 the underlying type is not "void".
4234
18146f45
DM
42352015-01-07 David Malcolm <dmalcolm@redhat.com>
4236
4237 * docs/topics/expressions.rst (Unary Operations): Add
4238 GCC_JIT_UNARY_OP_ABS.
4239 * jit-playback.c (gcc::jit::playback::context::new_unary_op):
4240 Likewise.
4241 * jit-recording.c (unary_op_strings): Likewise.
4242 * libgccjit.c (gcc_jit_context_new_unary_op): Update checking
4243 of "op" to reflect addition of GCC_JIT_UNARY_OP_ABS.
4244 * libgccjit.h (enum gcc_jit_unary_op): Add GCC_JIT_UNARY_OP_ABS.
4245 * docs/_build/texinfo/libgccjit.texi: Regenerate.
4246
11af98ff
DM
42472015-01-07 David Malcolm <dmalcolm@redhat.com>
4248
4249 * jit-recording.h (gcc::jit::recording::memento_of_get_type): Fix
4250 typo in comment.
4251
433d16df
DM
42522015-01-07 David Malcolm <dmalcolm@redhat.com>
4253
4254 * TODO.rst (Test suite): Remove item about running C++ testcases.
4255 * docs/internals/index.rst (Working on the JIT library): Add
4256 "c++" to the enabled languages in the suggested "configure"
4257 invocation, and add a description of why this is necessary.
4258 * docs/_build/texinfo/libgccjit.texi: Regenerate.
4259
50bb6c8e
DM
42602015-01-07 David Malcolm <dmalcolm@redhat.com>
4261
4262 * docs/internals/index.rst: Update to reflect that built
4263 testcases are now test-foo.c.exe, rather than test-foo.exe.
4264 * docs/_build/texinfo/libgccjit.texi: Regenerate.
4265
1e3b6a3d
JJ
42662015-01-05 Jakub Jelinek <jakub@redhat.com>
4267
4268 Update copyright years.
4269
e8af59bc
DM
42702014-12-19 David Malcolm <dmalcolm@redhat.com>
4271
4272 * jit-playback.c (gcc::jit::playback::context::build_cast): In
4273 case BOOLEAN_TYPE, don't assume that the source expression is
4274 of type "int".
4275
5afd44e3
DM
42762014-12-19 David Malcolm <dmalcolm@redhat.com>
4277
4278 * jit-recording.c (gcc::jit::recording::context::context): When
4279 copying string options from a parent context, take a copy of the
4280 underlying buffers, rather than simply copying the pointer.
4281
1f0858d7
DM
42822014-12-19 David Malcolm <dmalcolm@redhat.com>
4283
4284 * jit-recording.c (gcc::jit::recording::context::set_str_option):
4285 Handle NULL.
4286
35291c7d
DM
42872014-12-11 David Malcolm <dmalcolm@redhat.com>
4288
4289 * docs/cp/topics/contexts.rst (gccjit::context::set_str_option):
4290 Document new function.
4291 * docs/_build/texinfo/libgccjit.texi: Regenerate.
4292
7b31ff5e
DM
42932014-12-10 Ulrich Drepper <drepper@gmail.com>
4294
4295 Minor interface cleanups of libgccjit
4296 * jit-playback.c (convert_to_dso): Use auto_vec instead
4297 of automatic array to build up command line.
4298 * jit-recording.c (recording::context::set_str_option):
4299 Make copy of the string.
4300 (recording::context::~context): Free string options.
4301 * jit-recording.h (recording::context): Adjust type
4302 of m_str_options member.
4303 * libgccjit.h: Adjust comment about
4304 gcc_jit_context_set_str_option parameter being used after
4305 the call.
4306 Update comment now that all interfaces are copy strings
4307 if necessary.
4308 * libgccjit++.h (gccjit::context): Add set_str_option
4309 member function.
4310
29df5715
DM
43112014-12-10 David Malcolm <dmalcolm@redhat.com>
4312
4313 * docs/cp/index.rst: New file.
4314 * docs/cp/intro/index.rst: New file.
4315 * docs/cp/intro/tutorial01.rst: New file.
4316 * docs/cp/intro/tutorial02.rst: New file.
4317 * docs/cp/intro/tutorial03.rst: New file.
4318 * docs/cp/intro/tutorial04.rst: New file.
4319 * docs/cp/topics/contexts.rst: New file.
4320 * docs/cp/topics/expressions.rst: New file.
4321 * docs/cp/topics/functions.rst: New file.
4322 * docs/cp/topics/index.rst: New file.
4323 * docs/cp/topics/locations.rst: New file.
4324 * docs/cp/topics/objects.rst: New file.
4325 * docs/cp/topics/results.rst: New file.
4326 * docs/cp/topics/types.rst: New file.
4327 * docs/examples/tut01-hello-world.cc: New file.
4328 * docs/examples/tut02-square.c: Fix missing newline in output.
4329 * docs/examples/tut02-square.cc: New file.
4330 * docs/examples/tut03-sum-of-squares.cc: New file.
4331 * docs/examples/tut04-toyvm/toyvm.cc: New file.
4332 * docs/index.rst: Move summary to above the table of contents.
4333 Add text about the C vs C++ APIs.
4334 * docs/topics/contexts.rst: Fix a typo.
4335
4336 * docs/_build/texinfo/libgccjit.texi: Regenerate.
4337 * docs/_build/texinfo/factorial1.png: New file.
4338 * docs/_build/texinfo/sum-of-squares1.png: New file.
4339
5cd614ce
DM
43402014-12-09 David Malcolm <dmalcolm@redhat.com>
4341
4342 * docs/examples/tut04-toyvm/toyvm.c (toyvm_function_compile): Move
4343 logic for determine "funcname" to new function...
4344 (get_function_name): ...here, adding logic to skip any leading
4345 path from the filename.
4346 (toyvm_function_parse): Use the filename for fn_filename, rather
4347 than "name", so that the debugger can locate the source .toy
4348 file.
4349 (toyvm_function_parse): Don't fclose a NULL FILE *.
4350
2712de78
DM
43512014-12-09 David Malcolm <dmalcolm@redhat.com>
4352
4353 PR jit/63854
4354 * docs/internals/index.rst (Running under valgrind): New
4355 subsection.
4356 (docs/_build/texinfo/libgccjit.texi): Regenerate.
4357
d1e5f2c7
DM
43582014-12-09 David Malcolm <dmalcolm@redhat.com>
4359
92a285c1 4360 PR jit/64206
d1e5f2c7
DM
4361 * Make-lang.in (jit_OBJS): Add jit/jit-tempdir.o.
4362 * jit-common.h (gcc::jit::tempdir): New forward decl.
4363 * jit-playback.c: Include jit-tempdir.h.
4364 (gcc::jit::playback::context::context): Initialize m_tempdir.
4365 (gcc::jit::playback::context::~context): Move tempdir
4366 cleanup to new file jit-tempdir.c
4367 (make_tempdir_path_template): Move to new file jit-tempdir.c.
4368 (gcc::jit::playback::context::compile): Move tempdir creation
4369 to new tempdir object in new file jit-tempdir.c.
4370 (gcc::jit::playback::context::make_fake_args): Get path from
4371 tempdir object rather than from member data.
4372 (gcc::jit::playback::context::convert_to_dso): Likewise.
4373 (gcc::jit::playback::context::dlopen_built_dso): Likewise.
4374 (gcc::jit::playback::context::dump_generated_code): Likewise.
4375 (gcc::jit::playback::context::get_path_c_file): New function.
4376 (gcc::jit::playback::context::get_path_s_file): New function.
4377 (gcc::jit::playback::context::get_path_so_file): New function.
4378 * jit-playback.h (gcc::jit::playback::context::get_path_c_file):
4379 New function.
4380 (gcc::jit::playback::context::get_path_s_file): New function.
4381 (gcc::jit::playback::context::get_path_so_file): New function.
4382 (gcc::jit::playback::context): Move fields "m_path_template",
4383 "m_path_tempdir", "m_path_c_file", "m_path_s_file",
4384 "m_path_so_file" to new jit::tempdir class; add field "m_tempdir".
4385 * jit-tempdir.c: New file.
4386 * jit-tempdir.h: New file.
4387
38771e4e
DM
43882014-12-09 David Malcolm <dmalcolm@redhat.com>
4389
4390 * jit-playback.c (gcc::jit::playback::context::compile): Acquire the
4391 mutex here, immediately before using toplev, and release it here, on
4392 each exit path after acquisition.
4393 (jit_mutex): Move this variable here, from jit-recording.c.
4394 (gcc::jit::playback::context::acquire_mutex): New function, based on
4395 code in jit-recording.c.
4396 (gcc::jit::playback::context::release_mutex): Likewise.
4397 * jit-playback.h (gcc::jit::playback::context::acquire_mutex): New
4398 function.
4399 (gcc::jit::playback::context::release_mutex): New function.
4400 * jit-recording.c (jit_mutex): Move this variable to jit-playback.c.
4401 (gcc::jit::recording::context::compile): Move mutex-handling from
4402 here into jit-playback.c's gcc::jit::playback::context::compile.
4403 * notes.txt: Update to show the new locations of ACQUIRE_MUTEX
4404 and RELEASE_MUTEX.
4405
38f4f641
DM
44062014-12-09 David Malcolm <dmalcolm@redhat.com>
4407
4408 * jit-playback.c (gcc::jit::playback::context::compile): Move the
4409 dlopen code into...
4410 (gcc::jit::playback::context::dlopen_built_dso): ...this new
4411 function.
4412 * jit-playback.h (gcc::jit::playback::context::dlopen_built_dso):
4413 New function.
4414
82e0c914
DM
44152014-12-09 David Malcolm <dmalcolm@redhat.com>
4416
4417 PR jit/64166
4418 * docs/topics/contexts.rst (Debugging): Add description of
4419 gcc_jit_context_enable_dump.
4420 * docs/_build/texinfo/libgccjit.texi: Regenerate.
4421 * jit-playback.c: Include context.h.
4422 (class auto_argvec): New class.
4423 (auto_argvec::~auto_argvec): New function.
4424 (gcc::jit::playback::context::compile): Convert fake_args to be
4425 an auto_argvec, so that it can contain dynamically-allocated
4426 strings. Construct a vec of all requested dumps, and pass it to
4427 make_fake_args. Extract requested dumps between the calls to
4428 toplev::main and toplev::finalize.
4429 (gcc::jit::playback::context::make_fake_args): Convert param
4430 "argvec" to be a vec <char *>, and gain a "requested_dumps"
4431 param. Convert to dynamically-allocated arg strings by converting
4432 ADD_ARG to take a copy of the arg, and add ADD_ARG_TAKE_OWNERSHIP
4433 for args that are already a copy. Add args for all requested dumps.
4434 (gcc::jit::playback::context::extract_any_requested_dumps): New
4435 function.
4436 (gcc::jit::playback::context::read_dump_file): New function.
4437 * jit-playback.h (gcc::jit::playback::context::make_fake_args):
4438 Convert param "argvec" to be a vec <char *>, and gain a
4439 "requested_dumps" param.
4440 (gcc::jit::playback::context::extract_any_requested_dumps): New
4441 function.
4442 (gcc::jit::playback::context::read_dump_file): New function.
4443 * jit-recording.c (gcc::jit::recording::context::enable_dump): New
4444 function.
4445 (gcc::jit::recording::context::get_all_requested_dumps): New
4446 function.
4447 * jit-recording.h (gcc::jit::recording::requested_dump): New
4448 struct.
4449 (gcc::jit::recording::context::enable_dump): New function.
4450 (gcc::jit::recording::context::get_all_requested_dumps): New
4451 function.
4452 (gcc::jit::recording::context::m_requested_dumps): New field.
4453 * libgccjit.c (gcc_jit_context_enable_dump): New API entrypoint.
4454 * libgccjit.h (gcc_jit_context_enable_dump): New API entrypoint.
4455 * libgccjit.map (gcc_jit_context_enable_dump): New API entrypoint.
4456
53b730ff
DM
44572014-12-08 David Malcolm <dmalcolm@redhat.com>
4458
4459 * libgccjit++.h: Indent the forward declarations of the classes to
4460 show the inheritance hierarchy.
4461
0f379445
DM
44622014-12-08 David Malcolm <dmalcolm@redhat.com>
4463
4464 * notes.txt: Show the beginning and ending of
4465 recording::context::compile vs playback::context::compile. Show
4466 the creation and unlinking of the tempdir. Show toplev::finalize.
4467 Move "RELEASE MUTEX" to the correct location. Show
4468 gcc_jit_result_release, and indicate where the
4469 dlopen/dlsym/dlclose occur.
4470
81ba15f1
DM
44712014-12-01 David Malcolm <dmalcolm@redhat.com>
4472
4473 * docs/examples/tut02-square.c (main): Release the context
4474 earlier, to show that this is possible. Update error-handling
4475 to avoid a double-release of the context, and to avoid
4476 releasing a NULL result.
4477 * docs/intro/tutorial02.rst: Discuss gcc_jit_context_release.
4478 * docs/topics/functions.rst (GCC_JIT_FUNCTION_EXPORTED): Emphasize
4479 * docs/topics/results.rst (gcc_jit_result): Mention that this
4480 controls the lifetimes of machine code functions.
4481 (gcc_jit_result_get_code): Spell out the requirements for this
4482 to succeed, and the lifetime of the result.
4483 (gcc_jit_result_release): Mention that this invalidates any code
4484 that was obtained from the result.
4485 * docs/_build/texinfo/libgccjit.texi: Regenerate.
4486
e250f0dc
DM
44872014-12-01 David Malcolm <dmalcolm@redhat.com>
4488
4489 PR jit/64018
4490 * docs/intro/tutorial02.rst: Spell out lifetime of generated code.
4491 Add description of error-handling, taken in part from...
4492 * docs/topics/contexts.rst (Error-handling): Expand, and move some
4493 content to tutorial02.rst.
4494 * docs/_build/texinfo/libgccjit.texi: Regenerate.
4495
eeafb319
DM
44962014-12-01 David Malcolm <dmalcolm@redhat.com>
4497
4498 PR jit/64020
4499 * docs/topics/types.rst (Standard types) Add new enum values to
4500 the table of enum gcc_jit_types: GCC_JIT_TYPE_COMPLEX_FLOAT,
4501 GCC_JIT_TYPE_COMPLEX_DOUBLE, GCC_JIT_TYPE_COMPLEX_LONG_DOUBLE.
4502 Widen the left-hand column so that
4503 GCC_JIT_TYPE_COMPLEX_LONG_DOUBLE will fit.
4504 * docs/_build/texinfo/libgccjit.texi: Regenerate.
4505
4506 * jit-builtins.c: Include stringpool.h and jit-playback.h.
4507 Move everything out of the gcc::jit::recording namespace into
4508 just gcc::jit.
4509 (struct builtin_data): Add fields "fnclass", "attr", and
4510 "implicit_p".
4511 (DEF_BUILTIN): Update macro so populate the new fields.
4512 (builtins_manager::builtins_manager): Update for move out of
4513 recording namespace. Initialize the m_attributes array.
4514 (builtins_manager::get_builtin_function): Likewise.
4515 (builtins_manager::get_builtin_function_by_id): New function.
4516 (builtins_manager::make_builtin_function): Update for move out of
4517 recording namespace. Add fix for PR jit/64020 by detecting
4518 specific builtin ids and having them ensure that builtins for
4519 other ids are created as necessary.
4520 (builtins_manager::get_type): Update for move out of recording
4521 namespace.
4522 (builtins_manager::make_type): Likewise. Add some missing
4523 #undefs.
4524 (builtins_manager::make_primitive_type): Update for move out of
4525 recording namespace. Implement the three BT_COMPLEX_ cases and
4526 BT_DOUBLE_PTR.
4527 (builtins_manager::make_fn_type): Update for move out of recording
4528 namespace.
4529 (builtins_manager::make_ptr_type): Likewise.
4530 (builtins_manager::finish_playback): New function.
4531 (builtins_manager::get_class): New function.
4532 (builtins_manager::implicit_p): New function.
4533 (builtins_manager::get_attrs_tree): Two new functions.
4534 (builtins_manager::make_attrs_tree): New function.
4535
4536 * jit-builtins.h: Move everything out of the gcc::jit::recording
4537 namespace into just gcc::jit.
4538 (enum built_in_attribute): New.
4539 (builtins_manager::builtins_manager): Update decl for namespace
4540 change.
4541 (builtins_manager::get_builtin_function): Likewise.
4542 (builtins_manager::get_class): New.
4543 (builtins_manager::implicit_p): New.
4544 (builtins_manager::get_attrs_tree): Two new functions.
4545 (builtins_manager::make_attrs_tree): New function.
4546 (builtins_manager::finish_playback): New.
4547 (builtins_manager::get_builtin_function_by_id): New.
4548 (builtins_manager::make_builtin_function): Update decl for
4549 namespace change.
4550 (builtins_manager::get_type): Likewise.
4551 (builtins_manager::make_type): Likewise.
4552 (builtins_manager::make_primitive_type): Likewise.
4553 (builtins_manager::make_fn_type): Likewise.
4554 (builtins_manager::make_ptr_type): Likewise.
4555 (builtins_manager): Likewise for fields. Add new field
4556 "m_attributes".
4557
4558 * jit-common.h (NUM_GCC_JIT_TYPES): Update.
4559 (builtins_manager): Update forward decl to reflect namespace
4560 change.
4561
4562 * jit-playback.c: Include attribs.h and jit-builtins.h.
4563 (gcc::jit::playback::context::get_tree_node_for_type): Add cases
4564 for the new COMPLEX_ types.
4565 (gcc::jit::playback::context::new_function): If creating a
4566 builtin, set the DECL_BUILT_IN_CLASS and attributes on the fndecl,
4567 and call set_builtin_decl.
4568 (gcc::jit::playback::context::replay): If we have a
4569 builtins_manager, call its finish_playback method when we're done.
4570
4571 * jit-playback.h:
4572 (gcc::jit::playback::context::get_builtins_manager): New function.
4573
4574 * jit-recording.c
4575 (gcc::jit::recording::context::get_builtins_manager): New function.
4576 (gcc::jit::recording::get_builtin_function): Use
4577 get_builtins_manager, in case we're a child context.
4578 (gcc::jit::recording::memento_of_get_type::dereference): Add the
4579 COMPLEX_ types.
4580 (gcc::jit::recording::memento_of_get_type::is_int): Likewise.
4581 (gcc::jit::recording::memento_of_get_type::is_float): Likewise.
4582 (gcc::jit::recording::memento_of_get_type::is_bool): Likewise.
4583 (get_type_strings): Likewise.
4584
4585 * jit-recording.h
4586 (gcc::jit::recording::context::get_builtins_manager): New.
4587
4588 * libgccjit.h (enum gcc_jit_types): Add
4589 GCC_JIT_TYPE_COMPLEX_FLOAT, GCC_JIT_TYPE_COMPLEX_DOUBLE,
4590 GCC_JIT_TYPE_COMPLEX_LONG_DOUBLE.
4591
23844fd7
DM
45922014-12-01 David Malcolm <dmalcolm@redhat.com>
4593
4594 * jit-builtins.c
4595 (gcc::jit::recording::builtins_manager::get_builtin_function):
4596 Check for NULL return from make_builtin_function.
4597 (gcc::jit::recording::builtins_manager::make_builtin_function):
4598 Check for NULL return from get_type.
4599
c6760a13
DM
46002014-12-01 David Malcolm <dmalcolm@redhat.com>
4601
4602 * jit-playback.c (gcc::jit::playback::context::compile): Move DSO
4603 creation code into...
4604 (gcc::jit::playback::context::convert_to_dso): New function.
4605 * jit-playback.h (gcc::jit::playback::context::convert_to_dso):
4606 New function.
4607
8f50ee3c
DM
46082014-12-01 David Malcolm <dmalcolm@redhat.com>
4609
4610 * jit-playback.c (gcc::jit::playback::context::compile): Use an
4611 auto_vec<const char *> rather than a const char *[20] for the
4612 top-level argv, and move the logic to build it to...
4613 (gcc::jit::playback::context::make_fake_args): New function.
4614 * jit-playback.h (gcc::jit::playback::context::make_fake_args):
4615 New function.
4616
56dea35f
DM
46172014-12-01 David Malcolm <dmalcolm@redhat.com>
4618
4619 * Make-lang.in (jit_OBJS): Add jit/jit-result.o.
4620 * jit-playback.c: Include new header jit-result.h.
4621 (gcc::jit::result::result): Move to new file jit-result.c.
4622 (gcc::jit::result::~result): Likewise.
4623 (gcc::jit::playback::result): Likewise.
4624 * jit-recording.h (class gcc::jit::result): Move to new
4625 header jit-result.h.
4626 * jit-result.c: New file, to contain...
4627 (gcc::jit::result::result): Move here from jit-playback.c,
4628 removing erroneous "playback" namespace from comment.
4629 (gcc::jit::result::~result): Likewise.
4630 (gcc::jit::playback::result): Likewise.
4631 * jit-result.h: New file, to contain...
4632 (class gcc::jit::result): Move from jit-recording.h.
4633 * libgccjit.c: Include jit-result.h.
4634 (gcc_jit_result_get_code): Update comment to reflect move
4635 of implementation.
4636 (gcc_jit_result_release): Likewise.
4637
52b9468f
DM
46382014-12-01 David Malcolm <dmalcolm@redhat.com>
4639
4640 PR jit/63854
4641 * docs/examples/tut04-toyvm/toyvm.c
4642 (toyvm_compiled_function): New typedef.
4643 (toyvm_compiled_func) Rename to...
4644 (toyvm_compiled_code) ...this.
4645 (struct toyvm_compiled_function): New struct.
4646 (toyvm_function_compile): Return a toyvm_compiled_function *
4647 rather than a toyvm_compiled_func, so that the caller can fully
4648 clean things up. Free "funcname".
4649 (test_script): Update for change to toyvm_function_compile.
4650 Clean up the toyvm_compiled_function.
4651 (main): Likewise.
4652 (docs/intro/tutorial04.rst): Update to reflect the above changes,
4653 and to better spell out the lifetime of the compiled code.
4654
c8d19a69
DM
46552014-12-01 David Malcolm <dmalcolm@redhat.com>
4656
4657 PR jit/63854
4658 * jit-builtins.c
4659 (gcc::jit::recording::builtins_manager::make_fn_type): Call the
4660 context's new_function_type method, rather than directly creating
4661 a function_type instance.
4662 * jit-recording.c
4663 (gcc::jit::recording::context::new_function_type): New method,
4664 adapted from part of...
4665 (gcc::jit::recording::context::new_function_ptr_type): ...this.
4666 Update to call new_function_type.
4667 * jit-recording.h
4668 (gcc::jit::recording::context::new_function_type): New method.
4669
c985705a
DM
46702014-12-01 David Malcolm <dmalcolm@redhat.com>
4671
4672 PR jit/63969
4673 * jit-playback.c: Ensure that ctxt_progname is non-NULL.
4674
b957b2e0
DM
46752014-11-19 David Malcolm <dmalcolm@redhat.com>
4676
4677 PR jit/63854
4678 * jit-playback.c (gcc::jit::playback::compound_type::set_fields):
4679 Convert param from const vec<playback::field *> & to
4680 const auto_vec<playback::field *> *.
4681 (gcc::jit::playback::context::new_function_type): Convert param
4682 "param_types" from vec<type *> * to const auto_vec<type *> *.
4683 (gcc::jit::playback::context::new_function): Convert param
4684 "params" from vec<param *> * to const auto_vec<param *> *.
4685 (gcc::jit::playback::context::build_call): Convert param "args"
4686 from vec<rvalue *> to const auto_vec<rvalue *> *.
4687 (gcc::jit::playback::context::new_call): Likewise.
4688 (gcc::jit::playback::context::new_call_through_ptr): Likewise.
4689 (wrapper_finalizer): New function.
4690 (gcc::jit::playback::wrapper::operator new): Call the finalizer
4691 variant of ggc_internal_cleared_alloc, supplying
4692 wrapper_finalizer.
4693 (gcc::jit::playback::function::finalizer): New.
4694 (gcc::jit::playback::block::finalizer): New.
4695 (gcc::jit::playback::source_file::finalizer): New.
4696 (gcc::jit::playback::source_line::finalizer): New.
4697
4698 * jit-playback.h
4699 (gcc::jit::playback::context::new_function_type): Convert param
4700 "param_types" from vec<type *> * to const auto_vec<type *> *.
4701 (gcc::jit::playback::context::new_function): Convert param
4702 "params" from vec<param *> * to const auto_vec<param *> *.
4703 (gcc::jit::playback::context::new_call): Convert param
4704 "args" from vec<rvalue *> to const auto_vec<rvalue *> *.
4705 (gcc::jit::playback::context::new_call_through_ptr): Likewise.
4706 (gcc::jit::playback::context::build_call): Likewise.
4707 (gcc::jit::playback::context): Convert fields "m_functions",
4708 "m_source_files", "m_cached_locations" from vec to auto_vec.
4709 (gcc::jit::playback::wrapper::finalizer): New virtual function.
4710 (gcc::jit::playback::compound_type::set_fields): Convert param fro
4711 const vec<playback::field *> & to
4712 const auto_vec<playback::field *> *.
4713 (gcc::jit::playback::function::finalizer): New.
4714 (gcc::jit::playback::block::finalizer): New.
4715 (gcc::jit::playback::source_file::finalizer): New.
4716 (gcc::jit::playback::source_line::finalizer): New.
4717
4718 * jit-recording.c
4719 (gcc::jit::recording::function_type::replay_into): Convert local
4720 from a vec into an auto_vec.
4721 (gcc::jit::recording::fields::replay_into): Likewise.
4722 (gcc::jit::recording::function::replay_into): Likewise.
4723 (gcc::jit::recording::call::replay_into): Likewise.
4724 (gcc::jit::recording::call_through_ptr::replay_into): Likewise.
4725
4726 * jit-recording.h (gcc::jit::recording::context): Convert fields
4727 "m_mementos", "m_compound_types", "m_functions" from vec<> to
4728 auto_vec <>.
4729 (gcc::jit::recording::function_type::get_param_types): Convert
4730 return type from vec<type *> to const vec<type *> &.
4731 (gcc::jit::recording::function_type): Convert field
4732 "m_param_types" from a vec<> to an auto_vec<>.
4733 (gcc::jit::recording::fields): Likewise for field "m_fields".
4734 (gcc::jit::recording::function::get_params): Convert return type
4735 from vec <param *> to const vec<param *> &.
4736 (gcc::jit::recording::function): Convert fields "m_params",
4737 "m_locals", "m_blocks" from vec<> to auto_vec<>.
4738 (gcc::jit::recording::block): Likewise for field "m_statements".
4739 vec<> to auto_vec<>.
4740 (gcc::jit::recording::call): Likewise for field "m_args".
4741 (gcc::jit::recording::call_through_ptr): Likewise.
4742
79cafc7a
DM
47432014-11-19 David Malcolm <dmalcolm@redhat.com>
4744
4745 PR jit/63854
4746 * jit-recording.c (recording::function::validate): Convert
4747 "worklist" from vec<> to autovec<> to fix a leak.
4748
35485da9
DM
47492014-11-11 David Malcolm <dmalcolm@redhat.com>
4750
4751 * ChangeLog.jit: New.
4752 * ChangeLog: New.
4753 * Make-lang.in: New.
4754 * TODO.rst: New.
4755 * config-lang.in: New.
4756 * docs/Makefile: New.
4757 * docs/_build/texinfo/Makefile: New.
4758 * docs/_build/texinfo/factorial.png: New.
4759 * docs/_build/texinfo/libgccjit.texi: New.
4760 * docs/_build/texinfo/sum-of-squares.png: New.
4761 * docs/conf.py: New.
4762 * docs/examples/tut01-hello-world.c: New.
4763 * docs/examples/tut02-square.c: New.
4764 * docs/examples/tut03-sum-of-squares.c: New.
4765 * docs/examples/tut04-toyvm/Makefile: New.
4766 * docs/examples/tut04-toyvm/factorial.toy: New.
4767 * docs/examples/tut04-toyvm/fibonacci.toy: New.
4768 * docs/examples/tut04-toyvm/toyvm.c: New.
4769 * docs/index.rst: New.
4770 * docs/internals/index.rst: New.
4771 * docs/intro/factorial.png: New.
4772 * docs/intro/index.rst: New.
4773 * docs/intro/sum-of-squares.png: New.
4774 * docs/intro/tutorial01.rst: New.
4775 * docs/intro/tutorial02.rst: New.
4776 * docs/intro/tutorial03.rst: New.
4777 * docs/intro/tutorial04.rst: New.
4778 * docs/topics/contexts.rst: New.
4779 * docs/topics/expressions.rst: New.
4780 * docs/topics/functions.rst: New.
4781 * docs/topics/index.rst: New.
4782 * docs/topics/locations.rst: New.
4783 * docs/topics/objects.rst: New.
4784 * docs/topics/results.rst: New.
4785 * docs/topics/types.rst: New.
4786 * dummy-frontend.c: New.
4787 * jit-builtins.c: New.
4788 * jit-builtins.h: New.
4789 * jit-common.h: New.
4790 * jit-playback.c: New.
4791 * jit-playback.h: New.
4792 * jit-recording.c: New.
4793 * jit-recording.h: New.
4794 * libgccjit++.h: New.
4795 * libgccjit.c: New.
4796 * libgccjit.h: New.
4797 * libgccjit.map: New.
4798 * notes.txt: New.
4799
48002013-07-26 David Malcolm <dmalcolm@redhat.com>
4801
4802 * Initial creation
818ab71a 4803\f
9cf2fb5d 4804Copyright (C) 2013-2025 Free Software Foundation, Inc.
35485da9
DM
4805
4806Copying and distribution of this file, with or without modification,
4807are permitted in any medium without royalty provided the copyright
4808notice and this notice are preserved.