]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/jit/ChangeLog
Daily bump.
[thirdparty/gcc.git] / gcc / jit / ChangeLog
CommitLineData
f75fc1f0
GA
12023-10-25 Vibhav Pant <vibhavp@gmail.com>
2
3 * jit-recording.cc (recording::global::write_to_dump): Fix
4 dump of string literal initializers.
5
3b632746
GA
62023-10-22 Iain Sandoe <iain@sandoe.co.uk>
7
8 * Make-lang.in: Handle Darwin rpaths.
9
41d1c9a9
GA
102023-10-02 David Malcolm <dmalcolm@redhat.com>
11
12 * dummy-frontend.cc (jit_langhook_init): Update for change to
13 diagnostic_context callbacks.
14
65c36ecc
GA
152023-08-31 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
16
17 * jit-playback.cc: Change spelling to macOS.
18
ded52c9f
GA
192023-08-29 Guillaume Gomez <guillaume1.gomez@gmail.com>
20
21 * docs/topics/compatibility.rst: Add documentation for LIBGCCJIT_ABI_25.
22 * docs/topics/types.rst: Add documentation for gcc_jit_type_get_restrict.
23
242023-08-29 Guillaume Gomez <guillaume1.gomez@gmail.com>
25
26 * jit-playback.cc: Remove trailing whitespace characters.
27 * jit-playback.h: Add get_restrict method.
28 * jit-recording.cc: Add get_restrict methods.
29 * jit-recording.h: Add get_restrict methods.
30 * libgccjit++.h: Add get_restrict methods.
31 * libgccjit.cc: Add gcc_jit_type_get_restrict.
32 * libgccjit.h: Declare gcc_jit_type_get_restrict.
33 * libgccjit.map: Declare gcc_jit_type_get_restrict.
34
88cc4495
GA
352023-02-16 Patrick Palka <ppalka@redhat.com>
36
37 * jit-dejagnu.h: Mechanically drop static from static inline
38 functions via s/^static inline/inline/g.
39 * jit-recording.h: Likewise.
40
d901bf8a
GA
412023-01-07 LIU Hao <lh_mouse@126.com>
42
43 PR middle-end/108300
44 * jit-w32.h: Define `WIN32_LEAN_AND_MEAN` before <windows.h>.
45
de282a20
GA
462022-12-21 Martin Liska <mliska@suse.cz>
47
48 * jit-playback.h: Use unused attribute.
49
26f4aefa
GA
502022-12-14 Antoni Boucher <bouanto@zoho.com>
51 Guillaume Gomez <guillaume1.gomez@gmail.com>
52
53 PR jit/108078
54 * jit-recording.h: Add vector_type::is_same_type_as method
55
4bc2d9f6
GA
562022-12-07 Antoni Boucher <bouanto@zoho.com>
57 Guillaume Gomez <guillaume1.gomez@gmail.com>
58
59 PR jit/107770
60 * jit-playback.cc: Fix vector float comparison
61 * jit-playback.h: Update comparison function signature
62 * jit-recording.cc: Update call for "new_comparison" function
63 * jit-recording.h: Fix vector float comparison
64
fb98ede8
GA
652022-11-20 Jeff Law <jlaw@ventanamicro.com>
66
67 PR other/104044
68 * jit-playback.cc (playback::lvale::mark_addressable): Remove
69 extraeous semicolon
70
712022-11-19 Jonathan Wakely <jwakely@redhat.com>
72 LIU Hao <lh_mouse@126.com>
73
74 * jit-playback.cc (playback::context::scoped_lock): Define RAII
75 lock type.
76 (playback::context::compile): Use scoped_lock to acquire mutex
77 for the active playback context.
78 (jit_mutex): Change to std::mutex.
79 (playback::context::acquire_mutex): Rename to ...
80 (playback::context::lock): ... this.
81 (playback::context::release_mutex): Rename to ...
82 (playback::context::unlock): ... this.
83 * jit-playback.h (playback::context): Rename members and declare
84 scoped_lock.
85 * jit-recording.cc (INCLUDE_PTHREAD_H): Remove unused define.
86 * libgccjit.cc (version_mutex): Change to std::mutex.
87 (struct jit_version_info): Use std::lock_guard to acquire and
88 release mutex.
89
83d400bd
GA
902022-11-14 Martin Liska <mliska@suse.cz>
91
92 Revert:
93 2022-11-09 Martin Liska <mliska@suse.cz>
94
95 * Make-lang.in:
96 * docs/cp/index.rst: Moved to...
97 * doc/cp/index.rst: ...here.
98 * docs/cp/intro/index.rst: Moved to...
99 * doc/cp/intro/index.rst: ...here.
100 * docs/cp/intro/tutorial01.rst: Moved to...
101 * doc/cp/intro/tutorial01.rst: ...here.
102 * docs/cp/intro/tutorial02.rst: Moved to...
103 * doc/cp/intro/tutorial02.rst: ...here.
104 * docs/cp/intro/tutorial03.rst: Moved to...
105 * doc/cp/intro/tutorial03.rst: ...here.
106 * docs/cp/intro/tutorial04.rst: Moved to...
107 * doc/cp/intro/tutorial04.rst: ...here.
108 * docs/cp/topics/asm.rst: Moved to...
109 * doc/cp/topics/asm.rst: ...here.
110 * docs/cp/topics/compilation.rst: Moved to...
111 * doc/cp/topics/compilation.rst: ...here.
112 * docs/cp/topics/contexts.rst: Moved to...
113 * doc/cp/topics/contexts.rst: ...here.
114 * docs/cp/topics/expressions.rst: Moved to...
115 * doc/cp/topics/expressions.rst: ...here.
116 * docs/cp/topics/functions.rst: Moved to...
117 * doc/cp/topics/functions.rst: ...here.
118 * docs/cp/topics/index.rst: Moved to...
119 * doc/cp/topics/index.rst: ...here.
120 * docs/cp/topics/locations.rst: Moved to...
121 * doc/cp/topics/locations.rst: ...here.
122 * docs/cp/topics/objects.rst: Moved to...
123 * doc/cp/topics/objects.rst: ...here.
124 * docs/cp/topics/types.rst: Moved to...
125 * doc/cp/topics/types.rst: ...here.
126 * docs/examples/emit-alphabet.bf: Moved to...
127 * doc/examples/emit-alphabet.bf: ...here.
128 * docs/examples/tut01-hello-world.c: Moved to...
129 * doc/examples/tut01-hello-world.c: ...here.
130 * docs/examples/tut01-hello-world.cc: Moved to...
131 * doc/examples/tut01-hello-world.cc: ...here.
132 * docs/examples/tut02-square.c: Moved to...
133 * doc/examples/tut02-square.c: ...here.
134 * docs/examples/tut02-square.cc: Moved to...
135 * doc/examples/tut02-square.cc: ...here.
136 * docs/examples/tut03-sum-of-squares.c: Moved to...
137 * doc/examples/tut03-sum-of-squares.c: ...here.
138 * docs/examples/tut03-sum-of-squares.cc: Moved to...
139 * doc/examples/tut03-sum-of-squares.cc: ...here.
140 * docs/examples/tut04-toyvm/Makefile: Moved to...
141 * doc/examples/tut04-toyvm/Makefile: ...here.
142 * docs/examples/tut04-toyvm/factorial.toy: Moved to...
143 * doc/examples/tut04-toyvm/factorial.toy: ...here.
144 * docs/examples/tut04-toyvm/fibonacci.toy: Moved to...
145 * doc/examples/tut04-toyvm/fibonacci.toy: ...here.
146 * docs/examples/tut04-toyvm/toyvm.c: Moved to...
147 * doc/examples/tut04-toyvm/toyvm.c: ...here.
148 * docs/examples/tut04-toyvm/toyvm.cc: Moved to...
149 * doc/examples/tut04-toyvm/toyvm.cc: ...here.
150 * docs/examples/tut05-bf.c: Moved to...
151 * doc/examples/tut05-bf.c: ...here.
152 * docs/index.rst: Moved to...
153 * doc/index.rst: ...here.
154 * docs/internals/index.rst: Moved to...
155 * doc/internals/index.rst: ...here.
156 * docs/internals/test-hello-world.exe.log.txt: Moved to...
157 * doc/internals/test-hello-world.exe.log.txt: ...here.
158 * docs/_build/texinfo/libgccjit-figures/factorial.png: Moved to...
159 * doc/intro/factorial.png: ...here.
160 * docs/intro/index.rst: Moved to...
161 * doc/intro/index.rst: ...here.
162 * docs/_build/texinfo/libgccjit-figures/sum-of-squares.png: Moved to...
163 * doc/intro/sum-of-squares.png: ...here.
164 * docs/intro/tutorial01.rst: Moved to...
165 * doc/intro/tutorial01.rst: ...here.
166 * docs/intro/tutorial02.rst: Moved to...
167 * doc/intro/tutorial02.rst: ...here.
168 * docs/intro/tutorial03.rst: Moved to...
169 * doc/intro/tutorial03.rst: ...here.
170 * docs/intro/tutorial04.rst: Moved to...
171 * doc/intro/tutorial04.rst: ...here.
172 * docs/intro/tutorial05.rst: Moved to...
173 * doc/intro/tutorial05.rst: ...here.
174 * docs/topics/asm.rst: Moved to...
175 * doc/topics/asm.rst: ...here.
176 * docs/topics/compatibility.rst: Moved to...
177 * doc/topics/compatibility.rst: ...here.
178 * docs/topics/compilation.rst: Moved to...
179 * doc/topics/compilation.rst: ...here.
180 * docs/topics/contexts.rst: Moved to...
181 * doc/topics/contexts.rst: ...here.
182 * docs/topics/expressions.rst: Moved to...
183 * doc/topics/expressions.rst: ...here.
184 * docs/topics/function-pointers.rst: Moved to...
185 * doc/topics/function-pointers.rst: ...here.
186 * docs/topics/functions.rst: Moved to...
187 * doc/topics/functions.rst: ...here.
188 * docs/topics/index.rst: Moved to...
189 * doc/topics/index.rst: ...here.
190 * docs/topics/locations.rst: Moved to...
191 * doc/topics/locations.rst: ...here.
192 * docs/topics/objects.rst: Moved to...
193 * doc/topics/objects.rst: ...here.
194 * docs/topics/performance.rst: Moved to...
195 * doc/topics/performance.rst: ...here.
196 * docs/topics/types.rst: Moved to...
197 * doc/topics/types.rst: ...here.
198 * docs/Makefile: Removed.
199 * docs/_build/texinfo/Makefile: Removed.
200 * docs/_build/texinfo/libgccjit-figures/factorial1.png: Removed.
201 * docs/_build/texinfo/libgccjit-figures/sum-of-squares1.png: Removed.
202 * docs/_build/texinfo/libgccjit.texi: Removed.
203 * docs/conf.py: Removed.
204 * docs/intro/factorial.png: Removed.
205 * docs/intro/sum-of-squares.png: Removed.
206 * doc/conf.py: New file.
207
2082022-11-14 Martin Liska <mliska@suse.cz>
209
210 Revert:
211 2022-11-14 Martin Liska <mliska@suse.cz>
212
213 * Make-lang.in: Support --with-sphinx-build.
214
2152022-11-14 Martin Liska <mliska@suse.cz>
216
217 Revert:
218 2022-11-14 Martin Liska <mliska@suse.cz>
219
220 * doc/internals/index.rst: Fix cross manual refs.
221 * doc/topics/contexts.rst: Likewise.
222
2232022-11-14 Martin Liska <mliska@suse.cz>
224
225 Revert:
226 2022-11-14 Martin Liska <mliska@suse.cz>
227
228 * Make-lang.in:
229 Support installation if sphinx-build is missing.
230
2312022-11-14 Martin Liska <mliska@suse.cz>
232
233 Revert:
234 2022-11-14 Martin Liska <mliska@suse.cz>
235
236 * doc/cp/index.rst: Remove trailing .rst in toctree.
237 * doc/cp/intro/index.rst: Likewise.
238 * doc/cp/topics/index.rst: Likewise.
239 * doc/index.rst: Likewise.
240 * doc/intro/index.rst: Likewise.
241 * doc/topics/index.rst: Likewise.
242 * doc/indices-and-tables.rst: New file.
243
5b6ce16a
GA
2442022-11-11 Martin Liska <mliska@suse.cz>
245
246 * doc/cp/index.rst: Remove trailing .rst in toctree.
247 * doc/cp/intro/index.rst: Likewise.
248 * doc/cp/topics/index.rst: Likewise.
249 * doc/index.rst: Likewise.
250 * doc/intro/index.rst: Likewise.
251 * doc/topics/index.rst: Likewise.
252 * doc/indices-and-tables.rst: New file.
253
1cdfd0e5
GA
2542022-11-09 Martin Liska <mliska@suse.cz>
255
256 * Make-lang.in:
257 Support installation if sphinx-build is missing.
258
2592022-11-09 Martin Liska <mliska@suse.cz>
260
261 * doc/internals/index.rst: Fix cross manual refs.
262 * doc/topics/contexts.rst: Likewise.
263
2642022-11-09 Martin Liska <mliska@suse.cz>
265
266 * Make-lang.in: Support --with-sphinx-build.
267
2682022-11-09 Martin Liska <mliska@suse.cz>
269
270 * Make-lang.in:
271 * docs/cp/index.rst: Moved to...
272 * doc/cp/index.rst: ...here.
273 * docs/cp/intro/index.rst: Moved to...
274 * doc/cp/intro/index.rst: ...here.
275 * docs/cp/intro/tutorial01.rst: Moved to...
276 * doc/cp/intro/tutorial01.rst: ...here.
277 * docs/cp/intro/tutorial02.rst: Moved to...
278 * doc/cp/intro/tutorial02.rst: ...here.
279 * docs/cp/intro/tutorial03.rst: Moved to...
280 * doc/cp/intro/tutorial03.rst: ...here.
281 * docs/cp/intro/tutorial04.rst: Moved to...
282 * doc/cp/intro/tutorial04.rst: ...here.
283 * docs/cp/topics/asm.rst: Moved to...
284 * doc/cp/topics/asm.rst: ...here.
285 * docs/cp/topics/compilation.rst: Moved to...
286 * doc/cp/topics/compilation.rst: ...here.
287 * docs/cp/topics/contexts.rst: Moved to...
288 * doc/cp/topics/contexts.rst: ...here.
289 * docs/cp/topics/expressions.rst: Moved to...
290 * doc/cp/topics/expressions.rst: ...here.
291 * docs/cp/topics/functions.rst: Moved to...
292 * doc/cp/topics/functions.rst: ...here.
293 * docs/cp/topics/index.rst: Moved to...
294 * doc/cp/topics/index.rst: ...here.
295 * docs/cp/topics/locations.rst: Moved to...
296 * doc/cp/topics/locations.rst: ...here.
297 * docs/cp/topics/objects.rst: Moved to...
298 * doc/cp/topics/objects.rst: ...here.
299 * docs/cp/topics/types.rst: Moved to...
300 * doc/cp/topics/types.rst: ...here.
301 * docs/examples/emit-alphabet.bf: Moved to...
302 * doc/examples/emit-alphabet.bf: ...here.
303 * docs/examples/tut01-hello-world.c: Moved to...
304 * doc/examples/tut01-hello-world.c: ...here.
305 * docs/examples/tut01-hello-world.cc: Moved to...
306 * doc/examples/tut01-hello-world.cc: ...here.
307 * docs/examples/tut02-square.c: Moved to...
308 * doc/examples/tut02-square.c: ...here.
309 * docs/examples/tut02-square.cc: Moved to...
310 * doc/examples/tut02-square.cc: ...here.
311 * docs/examples/tut03-sum-of-squares.c: Moved to...
312 * doc/examples/tut03-sum-of-squares.c: ...here.
313 * docs/examples/tut03-sum-of-squares.cc: Moved to...
314 * doc/examples/tut03-sum-of-squares.cc: ...here.
315 * docs/examples/tut04-toyvm/Makefile: Moved to...
316 * doc/examples/tut04-toyvm/Makefile: ...here.
317 * docs/examples/tut04-toyvm/factorial.toy: Moved to...
318 * doc/examples/tut04-toyvm/factorial.toy: ...here.
319 * docs/examples/tut04-toyvm/fibonacci.toy: Moved to...
320 * doc/examples/tut04-toyvm/fibonacci.toy: ...here.
321 * docs/examples/tut04-toyvm/toyvm.c: Moved to...
322 * doc/examples/tut04-toyvm/toyvm.c: ...here.
323 * docs/examples/tut04-toyvm/toyvm.cc: Moved to...
324 * doc/examples/tut04-toyvm/toyvm.cc: ...here.
325 * docs/examples/tut05-bf.c: Moved to...
326 * doc/examples/tut05-bf.c: ...here.
327 * docs/index.rst: Moved to...
328 * doc/index.rst: ...here.
329 * docs/internals/index.rst: Moved to...
330 * doc/internals/index.rst: ...here.
331 * docs/internals/test-hello-world.exe.log.txt: Moved to...
332 * doc/internals/test-hello-world.exe.log.txt: ...here.
333 * docs/_build/texinfo/libgccjit-figures/factorial.png: Moved to...
334 * doc/intro/factorial.png: ...here.
335 * docs/intro/index.rst: Moved to...
336 * doc/intro/index.rst: ...here.
337 * docs/_build/texinfo/libgccjit-figures/sum-of-squares.png: Moved to...
338 * doc/intro/sum-of-squares.png: ...here.
339 * docs/intro/tutorial01.rst: Moved to...
340 * doc/intro/tutorial01.rst: ...here.
341 * docs/intro/tutorial02.rst: Moved to...
342 * doc/intro/tutorial02.rst: ...here.
343 * docs/intro/tutorial03.rst: Moved to...
344 * doc/intro/tutorial03.rst: ...here.
345 * docs/intro/tutorial04.rst: Moved to...
346 * doc/intro/tutorial04.rst: ...here.
347 * docs/intro/tutorial05.rst: Moved to...
348 * doc/intro/tutorial05.rst: ...here.
349 * docs/topics/asm.rst: Moved to...
350 * doc/topics/asm.rst: ...here.
351 * docs/topics/compatibility.rst: Moved to...
352 * doc/topics/compatibility.rst: ...here.
353 * docs/topics/compilation.rst: Moved to...
354 * doc/topics/compilation.rst: ...here.
355 * docs/topics/contexts.rst: Moved to...
356 * doc/topics/contexts.rst: ...here.
357 * docs/topics/expressions.rst: Moved to...
358 * doc/topics/expressions.rst: ...here.
359 * docs/topics/function-pointers.rst: Moved to...
360 * doc/topics/function-pointers.rst: ...here.
361 * docs/topics/functions.rst: Moved to...
362 * doc/topics/functions.rst: ...here.
363 * docs/topics/index.rst: Moved to...
364 * doc/topics/index.rst: ...here.
365 * docs/topics/locations.rst: Moved to...
366 * doc/topics/locations.rst: ...here.
367 * docs/topics/objects.rst: Moved to...
368 * doc/topics/objects.rst: ...here.
369 * docs/topics/performance.rst: Moved to...
370 * doc/topics/performance.rst: ...here.
371 * docs/topics/types.rst: Moved to...
372 * doc/topics/types.rst: ...here.
373 * docs/Makefile: Removed.
374 * docs/_build/texinfo/Makefile: Removed.
375 * docs/_build/texinfo/libgccjit-figures/factorial1.png: Removed.
376 * docs/_build/texinfo/libgccjit-figures/sum-of-squares1.png: Removed.
377 * docs/_build/texinfo/libgccjit.texi: Removed.
378 * docs/conf.py: Removed.
379 * docs/intro/factorial.png: Removed.
380 * docs/intro/sum-of-squares.png: Removed.
381 * doc/conf.py: New file.
382
d0fc05e8
GA
3832022-09-15 Richard Biener <rguenther@suse.de>
384
385 * dummy-frontend.cc (jit_langhook_init): Do not initialize
386 void_list_node.
387
6d001ec1
GA
3882022-08-09 Vibhav Pant <vibhavp@gmail.com>
389
390 * libgccjit.h (LIBGCCJIT_HAVE_gcc_jit_context_new_bitcast): Move
391 definition out of comment.
392
af086d19
GA
3932022-07-28 David Malcolm <dmalcolm@redhat.com>
394
395 * docs/internals/index.rst: Remove reference to ".c" extensions
396 of source files.
397
3982022-07-28 Martin Liška <mliska@suse.cz>
399
400 * docs/cp/intro/tutorial02.rst:
401 Shorten the assembly example so that there is not slider.
402 * docs/cp/intro/tutorial04.rst: Likewise.
403 * docs/intro/tutorial02.rst: Likewise.
404 * docs/intro/tutorial04.rst: Likewise.
405 * docs/topics/contexts.rst: Likewise.
406
4072022-07-28 marxin <mliska@suse.cz>
408
409 * docs/index.rst: Remove reference to module index
410 as we don't emit any.
411
4122022-07-28 marxin <mliska@suse.cz>
413
414 * docs/cp/intro/tutorial02.rst: Use :expr:`type *` for pointers to a type
415 * docs/cp/topics/asm.rst: Likewise.
416 * docs/cp/topics/contexts.rst: Likewise.
417 * docs/cp/topics/expressions.rst: Likewise.
418 * docs/cp/topics/functions.rst: Likewise.
419 * docs/cp/topics/objects.rst: Likewise.
420 * docs/intro/tutorial02.rst: Likewise.
421 * docs/intro/tutorial03.rst: Likewise.
422 * docs/intro/tutorial04.rst: Likewise.
423 * docs/intro/tutorial05.rst: Likewise.
424 * docs/topics/compilation.rst: Likewise.
425 * docs/topics/contexts.rst: Likewise.
426 * docs/topics/objects.rst: Likewise.
427
4282022-07-28 marxin <mliska@suse.cz>
429
430 * docs/cp/intro/tutorial04.rst: Use list-table.
431 * docs/intro/tutorial04.rst: Likewise.
432 * docs/intro/tutorial05.rst: Likewise.
433 * docs/topics/compilation.rst: Likewise.
434 * docs/topics/expressions.rst: Likewise.
435 * docs/topics/types.rst: Likewise.
436
4372022-07-28 marxin <mliska@suse.cz>
438
439 * docs/cp/topics/expressions.rst: Compact so that the generated
440 output is also more compact.
441
4422022-07-28 marxin <mliska@suse.cz>
443
444 * docs/cp/intro/tutorial02.rst: Use proper reference.
445 * docs/cp/topics/contexts.rst: Likewise.
446 * docs/cp/topics/functions.rst: Put `class` directive before a
447 function as it is not allowed declaring a class in a fn.
448 * docs/cp/topics/types.rst: Add template keyword.
449 * docs/examples/tut04-toyvm/toyvm.c (toyvm_function_compile):
450 Add removed comment used for code snippet ending detection.
451 * docs/intro/tutorial04.rst: Fix to match the real comment.
452
4532022-07-28 marxin <mliska@suse.cz>
454
455 * docs/cp/topics/expressions.rst: Use :expr: for basic types.
456 * docs/topics/compilation.rst: Likewise.
457 * docs/topics/expressions.rst: Likewise.
458 * docs/topics/function-pointers.rst: Likewise.
459
4602022-07-28 marxin <mliska@suse.cz>
461
462 * docs/conf.py: Add needs_sphinx = '3.0' where c:type was added.
463 * docs/index.rst: Remove note about it.
464 * docs/topics/compilation.rst: Use enum directive and reference.
465 * docs/topics/contexts.rst: Likewise.
466 * docs/topics/expressions.rst: Likewise.
467 * docs/topics/functions.rst: Likewise.
468
e0e07bc7
GA
4692022-07-14 Jonathan Wakely <jwakely@redhat.com>
470
471 * jit-recording.h (recording::memento): Define copy constructor
472 and copy assignment operator as deleted.
473 (recording::string): Likewise.
474 (recording::string::c_str): Add const qualifier.
475
ce600bc4
GA
4762022-06-29 Antoni Boucher <bouanto@zoho.com>
477
478 PR jit/105812
479 * jit-playback.cc: Use the correct return type when folding in
480 as_truth_value.
481
4822022-06-29 Sergei Trofimovich <siarheit@google.com>
483
484 PR c++/106102
485 * jit-playback.cc: Include <pthread.h> via "system.h" to avoid calloc()
486 poisoning.
487 * jit-recording.cc: Ditto.
488 * libgccjit.cc: Ditto.
489
ef1e4d80
GA
4902022-06-10 Antoni Boucher <bouanto@zoho.com>
491
492 PR jit/105829
493 * libgccjit.cc: Add support for floating-point types in
494 gcc_jit_type_get_size.
495
02b4e2de
GA
4962022-06-08 Yang Yujie <yangyujie@loongson.cn>
497
498 * Make-lang.in: only link objects from $(EXTRA_GCC_OBJS)
499 that's not in $(EXTRA_OBJS) into libgccjit.
500
168fc8bd
GA
5012022-05-23 David Malcolm <dmalcolm@redhat.com>
502
503 * jit-recording.h: Add "final" and "override" to all vfunc
504 implementations that were missing them, as appropriate.
505
57f2ce6a
GA
5062022-05-20 David Malcolm <dmalcolm@redhat.com>
507
508 * jit-playback.h: Replace uses of "FINAL" and "OVERRIDE" with
509 "final" and "override".
510 * jit-recording.cc: Likewise.
511 * jit-recording.h: Likewise.
512
702bd11f
GA
5132022-05-16 Martin Liska <mliska@suse.cz>
514
515 * jit-builtins.cc (find_builtin_by_name): Use ARRAY_SIZE.
516 (get_string_for_type_id): Likewise.
517 * jit-recording.cc (recording::context::context): Likewise.
518
031bd52e
GA
5192022-04-14 Iain Sandoe <iain@sandoe.co.uk>
520
521 * jit-playback.cc (new_bitcast): Cast values returned by tree_to_uhwi
522 to 'long' to match the print format.
523
504dae1d
GA
5242022-04-12 Antoni Boucher <bouanto@zoho.com>
525
526 PR jit/104293
527 * docs/_build/texinfo/libgccjit.texi: Regenerate.
528 * docs/topics/compatibility.rst (LIBGCCJIT_ABI_24): New ABI tag.
529 * docs/topics/expressions.rst: Add documentation for the
530 functions gcc_jit_lvalue_set_alignment and
531 gcc_jit_lvalue_get_alignment.
532 * jit-playback.h: New function (set_alignment).
533 * jit-recording.cc: New function (set_alignment).
534 * jit-recording.h: New functions (set_alignment, get_alignment)
535 and new field (m_alignment).
536 * libgccjit.cc: New functions (gcc_jit_lvalue_get_alignment,
537 gcc_jit_lvalue_set_alignment)
538 * libgccjit.h: New functions (gcc_jit_lvalue_get_alignment,
539 gcc_jit_lvalue_set_alignment)
540 * libgccjit.map (LIBGCCJIT_ABI_24): New ABI tag.
541
5422022-04-12 Antoni Boucher <bouanto@zoho.com>
543
544 PR jit/104073
545 * docs/_build/texinfo/libgccjit.texi: Regenerate.
546 * docs/topics/compatibility.rst (LIBGCCJIT_ABI_23): New ABI tag.
547 * docs/topics/contexts.rst: Add documentation for the new
548 function gcc_jit_context_set_bool_print_errors_to_stderr.
549 * jit-common.h: New enum value
550 (INNER_BOOL_OPTION_PRINT_ERRORS_TO_STDERR).
551 * jit-recording.cc: Handle the new option
552 INNER_BOOL_OPTION_PRINT_ERRORS_TO_STDERR.
553 * libgccjit.cc: New function
554 (gcc_jit_context_set_bool_print_errors_to_stderr).
555 * libgccjit.h: New function
556 (gcc_jit_context_set_bool_print_errors_to_stderr).
557 * libgccjit.map (LIBGCCJIT_ABI_23): New ABI tag.
558
5592022-04-12 Antoni Boucher <bouanto@zoho.com>
560
561 PR jit/104072
562 * docs/_build/texinfo/libgccjit.texi: Regenerate.
563 * docs/topics/compatibility.rst (LIBGCCJIT_ABI_22): New ABI tag.
564 * docs/topics/expressions.rst: Add documentation for the
565 function gcc_jit_lvalue_set_register_name.
566 * jit-playback.h: New function (set_register_name).
567 * jit-recording.cc: New function (set_register_name) and add
568 support for register variables.
569 * jit-recording.h: New field (m_reg_name) and new function
570 (set_register_name).
571 * libgccjit.cc: New function (gcc_jit_lvalue_set_register_name).
572 * libgccjit.h: New function (gcc_jit_lvalue_set_register_name).
573 * libgccjit.map (LIBGCCJIT_ABI_22): New ABI tag.
574
5752022-04-12 Antoni Boucher <bouanto@zoho.com>
576
577 PR jit/104071
578 * docs/_build/texinfo/libgccjit.texi: Regenerate.
579 * docs/topics/compatibility.rst (LIBGCCJIT_ABI_21): New ABI tag.
580 * docs/topics/expressions.rst: Add documentation for the
581 function gcc_jit_context_new_bitcast.
582 * jit-playback.cc: New function (new_bitcast).
583 * jit-playback.h: New function (new_bitcast).
584 * jit-recording.cc: New functions (new_bitcast,
585 bitcast::replay_into, bitcast::visit_children,
586 bitcast::make_debug_string, bitcast::write_reproducer).
587 * jit-recording.h: New class (bitcast) and new function
588 (new_bitcast, bitcast::replay_into, bitcast::visit_children,
589 bitcast::make_debug_string, bitcast::write_reproducer,
590 bitcast::get_precedence).
591 * libgccjit.cc: New function (gcc_jit_context_new_bitcast)
592 * libgccjit.h: New function (gcc_jit_context_new_bitcast)
593 * libgccjit.map (LIBGCCJIT_ABI_21): New ABI tag.
594
5952022-04-12 Antoni Boucher <bouanto@zoho.com>
596
597 PR target/95325
598 * docs/_build/texinfo/libgccjit.texi: Regenerate
599 * docs/topics/compatibility.rst (LIBGCCJIT_ABI_20): New ABI tag.
600 * docs/topics/types.rst: Add documentation for the new types
601 GCC_JIT_TYPE_UINT8_T, GCC_JIT_TYPE_UINT16_T,
602 GCC_JIT_TYPE_UINT32_T, GCC_JIT_TYPE_UINT64_T,
603 GCC_JIT_TYPE_UINT128_T, GCC_JIT_TYPE_INT8_T, GCC_JIT_TYPE_INT16_T,
604 GCC_JIT_TYPE_INT32_T, GCC_JIT_TYPE_INT64_T, GCC_JIT_TYPE_INT128_T and
605 new functions (gcc_jit_compatible_types, gcc_jit_type_get_size).
606 * jit-builtins.cc: Add support for BT_UINT128.
607 * jit-common.h: Update the value of NUM_GCC_JIT_TYPES.
608 * jit-playback.cc: Add support for the sized integer types.
609 * jit-recording.cc: Add support for the sized integer types.
610 * jit-recording.h: Add support for comparing integer types
611 and new function (is_signed).
612 * libgccjit.cc (gcc_jit_compatible_types): New.
613 (gcc_jit_type_get_size) New.
614 * libgccjit.h: New enum variants for gcc_jit_types
615 (GCC_JIT_TYPE_UINT8_T, GCC_JIT_TYPE_UINT16_T,
616 GCC_JIT_TYPE_UINT32_T, GCC_JIT_TYPE_UINT64_T,
617 GCC_JIT_TYPE_UINT128_T, GCC_JIT_TYPE_INT8_T,
618 GCC_JIT_TYPE_INT16_T, GCC_JIT_TYPE_INT32_T,
619 GCC_JIT_TYPE_INT64_T, GCC_JIT_TYPE_INT128_T) and new functions
620 (gcc_jit_compatible_types, gcc_jit_type_get_size).
621 * libgccjit.map (LIBGCCJIT_ABI_20): New ABI tag.
622
80eb8ec6
GA
6232022-04-06 David Malcolm <dmalcolm@redhat.com>
624
625 PR jit/102824
626 * docs/_build/texinfo/factorial.png: Move to...
627 * docs/_build/texinfo/libgccjit-figures/factorial.png: ...here.
628 * docs/_build/texinfo/factorial1.png: Move to...
629 * docs/_build/texinfo/libgccjit-figures/factorial1.png: ...here.
630 * docs/_build/texinfo/sum-of-squares.png: Move to...
631 * docs/_build/texinfo/libgccjit-figures/sum-of-squares.png: ...here.
632 * docs/_build/texinfo/sum-of-squares1.png: Move to...
633 * docs/_build/texinfo/libgccjit-figures/sum-of-squares1.png: ...here.
634
8af4270d
GA
6352022-04-01 David Malcolm <dmalcolm@redhat.com>
636
637 * docs/topics/expressions.rst: Fix formatting.
638 * docs/topics/types.rst: Likewise.
639 * docs/_build/texinfo/libgccjit.texi: Regenerate
640
6412022-04-01 Petter Tomner <tomner@kth.se>
642
643 * docs/topics/compatibility.rst: Add 19 tag
644 * docs/topics/compilation.rst: Linking
645 * docs/topics/contexts.rst: Linking example
646 * docs/topics/expressions.rst: Fix formatting and dropped 's'
647
e6533e2e
GA
6482022-03-07 Jakub Jelinek <jakub@redhat.com>
649
650 * libgccjit.h: Fix up duplicated word issue in a comment.
651
fc829782
GA
6522022-01-17 Martin Liska <mliska@suse.cz>
653
654 * config-lang.in: Rename .c names to .cc.
655 * docs/_build/texinfo/libgccjit.texi: Likewise.
656 * docs/internals/index.rst: Likewise.
657 * jit-builtins.cc (builtins_manager::make_builtin_function): Likewise.
658 * jit-playback.cc (fold_const_var): Likewise.
659 (playback::context::~context): Likewise.
660 (new_field): Likewise.
661 (new_bitfield): Likewise.
662 (new_compound_type): Likewise.
663 (playback::compound_type::set_fields): Likewise.
664 (global_set_init_rvalue): Likewise.
665 (load_blob_in_ctor): Likewise.
666 (new_global_initialized): Likewise.
667 (double>): Likewise.
668 (new_string_literal): Likewise.
669 (as_truth_value): Likewise.
670 (build_call): Likewise.
671 (playback::context::build_cast): Likewise.
672 (new_array_access): Likewise.
673 (new_field_access): Likewise.
674 (dereference): Likewise.
675 (postprocess): Likewise.
676 (add_jump): Likewise.
677 (add_switch): Likewise.
678 (build_goto_operands): Likewise.
679 (playback::context::read_dump_file): Likewise.
680 (init_types): Likewise.
681 * jit-recording.cc (recording::context::get_int_type): Likewise.
682 * jit-recording.h: Likewise.
683 * libgccjit.cc (compatible_types): Likewise.
684 (gcc_jit_context_acquire): Likewise.
685 (gcc_jit_context_release): Likewise.
686 (gcc_jit_context_new_child_context): Likewise.
687 (gcc_jit_type_as_object): Likewise.
688 (gcc_jit_context_get_type): Likewise.
689 (gcc_jit_context_get_int_type): Likewise.
690 (gcc_jit_type_get_pointer): Likewise.
691 (gcc_jit_type_get_const): Likewise.
692 (gcc_jit_type_get_volatile): Likewise.
693 (gcc_jit_type_dyncast_array): Likewise.
694 (gcc_jit_type_is_bool): Likewise.
695 (gcc_jit_type_is_pointer): Likewise.
696 (gcc_jit_type_is_integral): Likewise.
697 (gcc_jit_type_dyncast_vector): Likewise.
698 (gcc_jit_type_is_struct): Likewise.
699 (gcc_jit_vector_type_get_num_units): Likewise.
700 (gcc_jit_vector_type_get_element_type): Likewise.
701 (gcc_jit_type_unqualified): Likewise.
702 (gcc_jit_type_dyncast_function_ptr_type): Likewise.
703 (gcc_jit_function_type_get_return_type): Likewise.
704 (gcc_jit_function_type_get_param_count): Likewise.
705 (gcc_jit_function_type_get_param_type): Likewise.
706 (gcc_jit_context_new_array_type): Likewise.
707 (gcc_jit_context_new_field): Likewise.
708 (gcc_jit_field_as_object): Likewise.
709 (gcc_jit_context_new_struct_type): Likewise.
710 (gcc_jit_struct_as_type): Likewise.
711 (gcc_jit_struct_set_fields): Likewise.
712 (gcc_jit_struct_get_field_count): Likewise.
713 (gcc_jit_context_new_union_type): Likewise.
714 (gcc_jit_context_new_function_ptr_type): Likewise.
715 (gcc_jit_param_as_rvalue): Likewise.
716 (gcc_jit_context_new_function): Likewise.
717 (gcc_jit_function_get_return_type): Likewise.
718 (gcc_jit_function_dump_to_dot): Likewise.
719 (gcc_jit_block_get_function): Likewise.
720 (gcc_jit_global_set_initializer_rvalue): Likewise.
721 (gcc_jit_rvalue_get_type): Likewise.
722 (gcc_jit_context_new_rvalue_from_int): Likewise.
723 (gcc_jit_context_one): Likewise.
724 (gcc_jit_context_new_rvalue_from_double): Likewise.
725 (gcc_jit_context_null): Likewise.
726 (gcc_jit_context_new_string_literal): Likewise.
727 (valid_binary_op_p): Likewise.
728 (gcc_jit_context_new_binary_op): Likewise.
729 (gcc_jit_context_new_comparison): Likewise.
730 (gcc_jit_context_new_call): Likewise.
731 (is_valid_cast): Likewise.
732 (gcc_jit_context_new_cast): Likewise.
733 (gcc_jit_object_get_context): Likewise.
734 (gcc_jit_object_get_debug_string): Likewise.
735 (gcc_jit_lvalue_access_field): Likewise.
736 (gcc_jit_rvalue_access_field): Likewise.
737 (gcc_jit_rvalue_dereference_field): Likewise.
738 (gcc_jit_rvalue_dereference): Likewise.
739 (gcc_jit_lvalue_get_address): Likewise.
740 (gcc_jit_lvalue_set_tls_model): Likewise.
741 (gcc_jit_lvalue_set_link_section): Likewise.
742 (gcc_jit_function_new_local): Likewise.
743 (gcc_jit_block_add_eval): Likewise.
744 (gcc_jit_block_add_assignment): Likewise.
745 (is_bool): Likewise.
746 (gcc_jit_block_end_with_conditional): Likewise.
747 (gcc_jit_block_add_comment): Likewise.
748 (gcc_jit_block_end_with_jump): Likewise.
749 (gcc_jit_block_end_with_return): Likewise.
750 (gcc_jit_block_end_with_void_return): Likewise.
751 (case_range_validator::case_range_validator): Likewise.
752 (case_range_validator::validate): Likewise.
753 (case_range_validator::get_wide_int): Likewise.
754 (gcc_jit_block_end_with_switch): Likewise.
755 (gcc_jit_context_set_str_option): Likewise.
756 (gcc_jit_context_set_int_option): Likewise.
757 (gcc_jit_context_set_bool_option): Likewise.
758 (gcc_jit_context_set_bool_allow_unreachable_blocks): Likewise.
759 (gcc_jit_context_set_bool_use_external_driver): Likewise.
760 (gcc_jit_context_add_command_line_option): Likewise.
761 (gcc_jit_context_add_driver_option): Likewise.
762 (gcc_jit_context_enable_dump): Likewise.
763 (gcc_jit_context_compile): Likewise.
764 (gcc_jit_context_compile_to_file): Likewise.
765 (gcc_jit_context_set_logfile): Likewise.
766 (gcc_jit_context_dump_reproducer_to_file): Likewise.
767 (gcc_jit_context_get_first_error): Likewise.
768 (gcc_jit_context_get_last_error): Likewise.
769 (gcc_jit_result_get_code): Likewise.
770 (gcc_jit_result_get_global): Likewise.
771 (gcc_jit_rvalue_set_bool_require_tail_call): Likewise.
772 (gcc_jit_type_get_aligned): Likewise.
773 (gcc_jit_type_get_vector): Likewise.
774 (gcc_jit_function_get_address): Likewise.
775 (gcc_jit_version_patchlevel): Likewise.
776 (gcc_jit_block_add_extended_asm): Likewise.
777 (gcc_jit_extended_asm_as_object): Likewise.
778 (gcc_jit_extended_asm_set_volatile_flag): Likewise.
779 (gcc_jit_extended_asm_set_inline_flag): Likewise.
780 (gcc_jit_extended_asm_add_output_operand): Likewise.
781 (gcc_jit_extended_asm_add_input_operand): Likewise.
782 (gcc_jit_extended_asm_add_clobber): Likewise.
783 * notes.txt: Likewise.
784
7852022-01-17 Martin Liska <mliska@suse.cz>
786
787 * dummy-frontend.c: Moved to...
788 * dummy-frontend.cc: ...here.
789 * jit-builtins.c: Moved to...
790 * jit-builtins.cc: ...here.
791 * jit-logging.c: Moved to...
792 * jit-logging.cc: ...here.
793 * jit-playback.c: Moved to...
794 * jit-playback.cc: ...here.
795 * jit-recording.c: Moved to...
796 * jit-recording.cc: ...here.
797 * jit-result.c: Moved to...
798 * jit-result.cc: ...here.
799 * jit-spec.c: Moved to...
800 * jit-spec.cc: ...here.
801 * jit-tempdir.c: Moved to...
802 * jit-tempdir.cc: ...here.
803 * jit-w32.c: Moved to...
804 * jit-w32.cc: ...here.
805 * libgccjit.c: Moved to...
806 * libgccjit.cc: ...here.
807
054e57e4
GA
8082021-12-28 Martin Liska <mliska@suse.cz>
809
810 * docs/_build/texinfo/libgccjit.texi: Replace http:// with https.
811 * docs/cp/index.rst: Likewise.
812 * docs/cp/intro/index.rst: Likewise.
813 * docs/cp/intro/tutorial01.rst: Likewise.
814 * docs/cp/intro/tutorial02.rst: Likewise.
815 * docs/cp/intro/tutorial03.rst: Likewise.
816 * docs/cp/intro/tutorial04.rst: Likewise.
817 * docs/cp/topics/asm.rst: Likewise.
818 * docs/cp/topics/compilation.rst: Likewise.
819 * docs/cp/topics/contexts.rst: Likewise.
820 * docs/cp/topics/expressions.rst: Likewise.
821 * docs/cp/topics/functions.rst: Likewise.
822 * docs/cp/topics/index.rst: Likewise.
823 * docs/cp/topics/locations.rst: Likewise.
824 * docs/cp/topics/objects.rst: Likewise.
825 * docs/cp/topics/types.rst: Likewise.
826 * docs/index.rst: Likewise.
827 * docs/internals/index.rst: Likewise.
828 * docs/intro/index.rst: Likewise.
829 * docs/intro/tutorial01.rst: Likewise.
830 * docs/intro/tutorial02.rst: Likewise.
831 * docs/intro/tutorial03.rst: Likewise.
832 * docs/intro/tutorial04.rst: Likewise.
833 * docs/intro/tutorial05.rst: Likewise.
834 * docs/topics/asm.rst: Likewise.
835 * docs/topics/compatibility.rst: Likewise.
836 * docs/topics/compilation.rst: Likewise.
837 * docs/topics/contexts.rst: Likewise.
838 * docs/topics/expressions.rst: Likewise.
839 * docs/topics/function-pointers.rst: Likewise.
840 * docs/topics/functions.rst: Likewise.
841 * docs/topics/index.rst: Likewise.
842 * docs/topics/locations.rst: Likewise.
843 * docs/topics/objects.rst: Likewise.
844 * docs/topics/performance.rst: Likewise.
845 * docs/topics/types.rst: Likewise.
846
7631a4d1
GA
8472021-12-20 Martin Liska <mliska@suse.cz>
848
849 * libgccjit.c (struct version_info): Rename to jit_version_info.
850 (struct jit_version_info): Likewise.
851 (gcc_jit_version_major): Likewise.
852 (gcc_jit_version_minor): Likewise.
853 (gcc_jit_version_patchlevel): Likewise.
854
9c6586bc
GA
8552021-12-14 Petter Tomner <tomner@kth.se>
856
857 * jit-common.h: New enum
858 * jit-playback.c : Folding an setting intitial
859 (global_new_decl) : Handle const global generation
860 (new_global) : New flag
861 (global_set_init_rvalue) : New
862 (new_ctor) : New
863 (new_global_initialized) : Flag
864 (as_truth_value) : Fold
865 (new_unary_op) : Fold
866 (new_binary_op) : Fold
867 (new_comparison) : Fold
868 (new_array_access) : Fold
869 (new_dereference) : Fold
870 (get_address) : Fold
871 * jit-playback.h :
872 (global_set_init_rvalue) : New
873 (new_ctor) : New
874 * jit-recording.c :
875 * jit-recording.h :
876 (new_global_init_rvalue) : New
877 (new_ctor) : New
878 (ctor) : New, inherits rvalue
879 (global_init_rvalue) : New, inherits memento
880 (type::is_union) : New
881 * libgccjit++.h : New entrypoints, see C-header
882 * libgccjit.c : See .h
883 * libgccjit.h : New entrypoints
884 (gcc_jit_context_new_array_constructor) : New
885 (gcc_jit_context_new_struct_constructor) : New
886 (gcc_jit_context_new_union_constructor) : New
887 (gcc_jit_global_set_initializer_rvalue) : New
888 (LIBGCCJIT_HAVE_CTORS) : New feuture macro
889 * libgccjit.map : New entrypoints added to ABI 19
890 * docs/topics/expressions.rst : Updated docs
891
c8dcf64b
GA
8922021-12-12 Antoni Boucher <bouanto@zoho.com>
893
894 PR target/100688
895 * docs/topics/compatibility.rst (LIBGCCJIT_ABI_18): New ABI
896 tag.
897 * docs/topics/expressions.rst: Add documentation for the
898 function gcc_jit_lvalue_set_link_section.
899 * jit-playback.h: New function (set_link_section).
900 * jit-recording.c: New function (set_link_section) and
901 support for setting the link section.
902 * jit-recording.h: New function (set_link_section) and new
903 field m_link_section.
904 * libgccjit.c: New function (gcc_jit_lvalue_set_link_section).
905 * libgccjit.h: New function (gcc_jit_lvalue_set_link_section).
906 * libgccjit.map (LIBGCCJIT_ABI_18): New ABI tag.
907
e8decbe7
GA
9082021-12-12 Antoni Boucher <bouanto@zoho.com>
909
910 PR target/95415
911 * docs/topics/compatibility.rst (LIBGCCJIT_ABI_17): New ABI
912 tag.
913 * docs/topics/expressions.rst: Add document for the function
914 gcc_jit_lvalue_set_tls_model.
915 * jit-playback.h: New function (set_tls_model).
916 * jit-recording.c: New function (set_tls_model), new
917 variables (tls_models and tls_model_enum_strings) and support
918 for setting the tls model.
919 * jit-recording.h: New function (set_tls_model) and new
920 field m_tls_model.
921 * libgccjit.c: New function (gcc_jit_lvalue_set_tls_model).
922 * libgccjit.h: New function (gcc_jit_lvalue_set_tls_model)
923 and new enum (gcc_jit_tls_model).
924 * libgccjit.map (LIBGCCJIT_ABI_17): New ABI tag.
925
9262021-12-11 Antoni Boucher <bouanto@zoho.com>
927
928 PR target/96066
929 PR target/96067
930 * jit-builtins.c: Implement missing types for builtins.
931 * jit-recording.c:: Allow sending a volatile const void * as
932 argument.
933 * jit-recording.h: New functions (is_volatile, is_const) and
934 allow comparing qualified types.
935
0bceef16
GA
9362021-12-10 David Malcolm <dmalcolm@redhat.com>
937
938 PR jit/103562
939 * jit-playback.c (gcc::jit::playback::context::new_function): Set
940 DECL_CONTEXT of the result_decl.
941
d62c8c74
GA
9422021-11-27 Petter Tomner <tomner@kth.se>
943
944 * libgccjit.c: %ld -> %zu
945
d9ca4b45
GA
9462021-11-24 Martin Liska <mliska@suse.cz>
947
948 * jit-playback.c (function): Initialize m_blocks vector.
949
f658f1d7
GA
9502021-11-20 Antoni Boucher <bouanto@zoho.com>
951
952 PR target/96889
953 * docs/topics/compatibility.rst (LIBGCCJIT_ABI_16): New ABI tag.
954 * docs/topics/functions.rst: Add documentation for the
955 functions gcc_jit_function_get_return_type and
956 gcc_jit_function_get_param_count
957 * docs/topics/types.rst: Add documentation for the functions
958 gcc_jit_function_type_get_return_type,
959 gcc_jit_function_type_get_param_count,
960 gcc_jit_function_type_get_param_type,
961 gcc_jit_type_unqualified, gcc_jit_type_dyncast_array,
962 gcc_jit_type_is_bool,
963 gcc_jit_type_dyncast_function_ptr_type,
964 gcc_jit_type_is_integral, gcc_jit_type_is_pointer,
965 gcc_jit_type_dyncast_vector,
966 gcc_jit_vector_type_get_element_type,
967 gcc_jit_vector_type_get_num_units,
968 gcc_jit_struct_get_field, gcc_jit_type_is_struct,
969 and gcc_jit_struct_get_field_count
970 * libgccjit.c:
971 (gcc_jit_function_get_return_type, gcc_jit_function_get_param_count,
972 gcc_jit_function_type_get_return_type,
973 gcc_jit_function_type_get_param_count,
974 gcc_jit_function_type_get_param_type, gcc_jit_type_unqualified,
975 gcc_jit_type_dyncast_array, gcc_jit_type_is_bool,
976 gcc_jit_type_dyncast_function_ptr_type, gcc_jit_type_is_integral,
977 gcc_jit_type_is_pointer, gcc_jit_type_dyncast_vector,
978 gcc_jit_vector_type_get_element_type,
979 gcc_jit_vector_type_get_num_units, gcc_jit_struct_get_field,
980 gcc_jit_type_is_struct, gcc_jit_struct_get_field_count): New
981 functions.
982 (struct gcc_jit_function_type, struct gcc_jit_vector_type):
983 New types.
984 * libgccjit.h:
985 (gcc_jit_function_get_return_type, gcc_jit_function_get_param_count,
986 gcc_jit_function_type_get_return_type,
987 gcc_jit_function_type_get_param_count,
988 gcc_jit_function_type_get_param_type, gcc_jit_type_unqualified,
989 gcc_jit_type_dyncast_array, gcc_jit_type_is_bool,
990 gcc_jit_type_dyncast_function_ptr_type, gcc_jit_type_is_integral,
991 gcc_jit_type_is_pointer, gcc_jit_type_dyncast_vector,
992 gcc_jit_vector_type_get_element_type,
993 gcc_jit_vector_type_get_num_units, gcc_jit_struct_get_field,
994 gcc_jit_type_is_struct, gcc_jit_struct_get_field_count): New
995 function declarations.
996 (struct gcc_jit_function_type, struct gcc_jit_vector_type):
997 New types.
998 * jit-recording.h: New functions (is_struct and is_vector)
999 * libgccjit.map (LIBGCCJIT_ABI_16): New ABI tag.
1000
af2852b9
GA
10012021-11-12 David Malcolm <dmalcolm@redhat.com>
1002
1003 PR jit/103199
1004 * docs/examples/tut04-toyvm/toyvm.c (toyvm_function_compile):
1005 Increase size of buffer.
1006 * docs/examples/tut04-toyvm/toyvm.cc
1007 (compilation_state::create_function): Likewise.
1008
a26206ec
GA
10092021-09-10 Petter Tomner <tomner@kth.se>
1010
1011 * jit-playback.c: Moved global var processing to after loc handling.
3d3b561f
ML
1012 Setting TYPE_NAME for fundamental types.
1013 Using common functions for finalizing globals.
a26206ec 1014 * jit-playback.h: New method init_types().
3d3b561f 1015 Changed get_tree_node_for_type() to method.
a26206ec 1016
b57fba5e
GA
10172021-08-19 Iain Sandoe <iain@sandoe.co.uk>
1018
1019 * docs/examples/tut04-toyvm/toyvm.c: Include jit-dejagnu.h.
1020 * docs/examples/tut04-toyvm/toyvm.cc: Likewise.
1021 * jit-dejagnu.h: New file, imported from dejagnu-1.6.2 and
1022 patched for this application.
1023
6e529985
GA
10242021-08-18 Iain Sandoe <iain@sandoe.co.uk>
1025
1026 PR jit/100613
1027 * Make-lang.in: Provide clauses for Darwin hosts.
1028
bdea84c4
GA
10292021-07-18 Antoni Boucher <bouanto@zoho.com>
1030
1031 PR target/95498
1032 * jit-playback.c (convert): Add support to handle truncation and
1033 extension in the convert function.
1034
65f32e5d
GA
10352021-05-19 Martin Liska <mliska@suse.cz>
1036
1037 PR testsuite/100658
1038 * libgccjit.c (gcc_jit_context_new_function): Fix typos.
1039
8bf52ffa
GA
10402021-03-24 Matthias Klose <doko@ubuntu.com>
1041
1042 * Make-lang.in (jit.sphinx.html, jit.sphinx.pdf): Use $(mkinstalldirs),
1043 (jit.install-headers): Depend on installdirs.
1044
50352c6c
GA
10452021-02-19 David Malcolm <dmalcolm@redhat.com>
1046
1047 PR jit/99126
1048 * jit-builtins.c
1049 (gcc::jit::builtins_manager::get_builtin_function_by_id):
1050 Update assertion to reject BUILT_IN_NONE.
1051 (gcc::jit::builtins_manager::ensure_optimization_builtins_exist):
1052 New.
1053 * jit-builtins.h
1054 (gcc::jit::builtins_manager::ensure_optimization_builtins_exist):
1055 New decl.
1056 * jit-playback.c (gcc::jit::playback::context::replay): Call it.
1057 Remove redundant conditional on bm.
1058
5fff80fd
GA
10592021-01-14 David Malcolm <dmalcolm@redhat.com>
1060
1061 * docs/cp/index.rst: Remove "Alpha" warning.
1062 * docs/index.rst: Likewise.
1063 * docs/_build/texinfo/libgccjit.texi: Regenerate
1064
360258da
GA
10652020-11-25 Martin Sebor <msebor@redhat.com>
1066
1067 PR bootstrap/94982
1068 * jit-recording.c (recording::function::dump_to_dot): Avoid
1069 -Wformat-diag.
1070 (recording::block::dump_to_dot): Same.
1071
82e5048e
GA
10722020-11-20 Jakub Jelinek <jakub@redhat.com>
1073
1074 PR other/97911
1075 * Make-lang.in (jit.serial): Change from goal to a
1076 variable.
1077 (.PHONY): Drop jit.serial and jit.prev.
1078 ($(LIBGCCJIT_FILENAME)): Depend on $(jit.serial) rather than
1079 jit.serial.
1080
25bb75f8
GA
10812020-11-18 Jakub Jelinek <jakub@redhat.com>
1082
1083 * Make-lang.in (jit.serial): New goal.
1084 (.PHONY): Add jit.serial jit.prev.
1085 ($(LIBGCCJIT_FILENAME)): Depend on jit.prev. Call LINK_PROGRESS.
1086
a5a11525
GA
10872020-11-12 David Malcolm <dmalcolm@redhat.com>
1088
1089 PR jit/87291
1090 * docs/cp/topics/asm.rst: New file.
1091 * docs/cp/topics/index.rst (Topic Reference): Add it.
1092 * docs/topics/asm.rst: New file.
1093 * docs/topics/compatibility.rst (LIBGCCJIT_ABI_15): New.
1094 * docs/topics/functions.rst (Statements): Add link to extended
1095 asm.
1096 * docs/topics/index.rst (Topic Reference): Add asm.rst.
1097 * docs/topics/objects.rst: Add gcc_jit_extended_asm to ASCII art.
1098 * docs/_build/texinfo/Makefile: Regenerate.
1099 * docs/_build/texinfo/libgccjit.texi: Regenerate.
1100 * jit-common.h (gcc::jit::recording::extended_asm): New forward
1101 decl.
1102 (gcc::jit::recording::top_level_asm): Likewise.
1103 * jit-playback.c: Include "stmt.h".
1104 (build_string): New.
1105 (gcc::jit::playback::context::new_string_literal): Disambiguate
1106 build_string call.
1107 (gcc::jit::playback::context::add_top_level_asm): New.
1108 (build_operand_chain): New.
1109 (build_clobbers): New.
1110 (build_goto_operands): New.
1111 (gcc::jit::playback::block::add_extended_asm): New.
1112 * jit-playback.h (gcc::jit::playback::context::add_top_level_asm):
1113 New decl.
1114 (struct gcc::jit::playback::asm_operand): New struct.
1115 (gcc::jit::playback::block::add_extended_asm): New decl.
1116 * jit-recording.c (gcc::jit::recording::context::dump_to_file):
1117 Dump top-level asms.
1118 (gcc::jit::recording::context::add_top_level_asm): New.
1119 (gcc::jit::recording::block::add_extended_asm): New.
1120 (gcc::jit::recording::block::end_with_extended_asm_goto): New.
1121 (gcc::jit::recording::asm_operand::asm_operand): New.
1122 (gcc::jit::recording::asm_operand::print): New.
1123 (gcc::jit::recording::asm_operand::make_debug_string): New.
1124 (gcc::jit::recording::output_asm_operand::write_reproducer): New.
1125 (gcc::jit::recording::output_asm_operand::print): New.
1126 (gcc::jit::recording::input_asm_operand::write_reproducer): New.
1127 (gcc::jit::recording::input_asm_operand::print): New.
1128 (gcc::jit::recording::extended_asm::add_output_operand): New.
1129 (gcc::jit::recording::extended_asm::add_input_operand): New.
1130 (gcc::jit::recording::extended_asm::add_clobber): New.
1131 (gcc::jit::recording::extended_asm::replay_into): New.
1132 (gcc::jit::recording::extended_asm::make_debug_string): New.
1133 (gcc::jit::recording::extended_asm::write_flags): New.
1134 (gcc::jit::recording::extended_asm::write_clobbers): New.
1135 (gcc::jit::recording::extended_asm_simple::write_reproducer): New.
1136 (gcc::jit::recording::extended_asm::maybe_populate_playback_blocks):
1137 New.
1138 (gcc::jit::recording::extended_asm_goto::extended_asm_goto): New.
1139 (gcc::jit::recording::extended_asm_goto::replay_into): New.
1140 (gcc::jit::recording::extended_asm_goto::write_reproducer): New.
1141 (gcc::jit::recording::extended_asm_goto::get_successor_blocks):
1142 New.
1143 (gcc::jit::recording::extended_asm_goto::maybe_print_gotos): New.
1144 (gcc::jit::recording::extended_asm_goto::maybe_populate_playback_blocks):
1145 New.
1146 (gcc::jit::recording::top_level_asm::top_level_asm): New.
1147 (gcc::jit::recording::top_level_asm::replay_into): New.
1148 (gcc::jit::recording::top_level_asm::make_debug_string): New.
1149 (gcc::jit::recording::top_level_asm::write_to_dump): New.
1150 (gcc::jit::recording::top_level_asm::write_reproducer): New.
1151 * jit-recording.h
1152 (gcc::jit::recording::context::add_top_level_asm): New decl.
1153 (gcc::jit::recording::context::m_top_level_asms): New field.
1154 (gcc::jit::recording::block::add_extended_asm): New decl.
1155 (gcc::jit::recording::block::end_with_extended_asm_goto): New
1156 decl.
1157 (gcc::jit::recording::asm_operand): New class.
1158 (gcc::jit::recording::output_asm_operand): New class.
1159 (gcc::jit::recording::input_asm_operand): New class.
1160 (gcc::jit::recording::extended_asm): New class.
1161 (gcc::jit::recording::extended_asm_simple): New class.
1162 (gcc::jit::recording::extended_asm_goto): New class.
1163 (gcc::jit::recording::top_level_asm): New class.
1164 * libgccjit++.h (gccjit::extended_asm): New forward decl.
1165 (gccjit::context::add_top_level_asm): New.
1166 (gccjit::block::add_extended_asm): New.
1167 (gccjit::block::end_with_extended_asm_goto): New.
1168 (gccjit::extended_asm): New class.
1169 (gccjit::extended_asm::extended_asm): New ctors.
1170 (gccjit::extended_asm::set_volatile_flag): New.
1171 (gccjit::extended_asm::set_inline_flag): New.
1172 (gccjit::extended_asm::add_output_operand): New.
1173 (gccjit::extended_asm::add_input_operand): New.
1174 (gccjit::extended_asm::add_clobber): New.
1175 (gccjit::extended_asm::get_inner_extended_asm): New.
1176 * libgccjit.c (struct gcc_jit_extended_asm): New.
1177 (jit_error): Make "loc" param take a gcc::jit::recording::location *
1178 rather than a gcc_jit_location *.
1179 (gcc_jit_block_add_extended_asm): New entrypoint.
1180 (gcc_jit_block_end_with_extended_asm_goto): New entrypoint.
1181 (gcc_jit_extended_asm_as_object): New entrypoint.
1182 (gcc_jit_extended_asm_set_volatile_flag): New entrypoint.
1183 (gcc_jit_extended_asm_set_inline_flag): New entrypoint.
1184 (gcc_jit_extended_asm_add_output_operand): New entrypoint.
1185 (gcc_jit_extended_asm_add_clobber): New entrypoint.
1186 (gcc_jit_context_add_top_level_asm): New entrypoint.
1187 * libgccjit.h: Add gcc_jit_extended_asm to ASCII art.
1188 (gcc_jit_extended_asm): New typedef.
1189 (LIBGCCJIT_HAVE_ASM_STATEMENTS): New define.
1190 (gcc_jit_block_add_extended_asm): New entrypoint.
1191 (gcc_jit_block_end_with_extended_asm_goto): New entrypoint.
1192 (gcc_jit_extended_asm_as_object): New entrypoint.
1193 (gcc_jit_extended_asm_set_volatile_flag): New entrypoint.
1194 (gcc_jit_extended_asm_set_inline_flag): New entrypoint.
1195 (gcc_jit_extended_asm_add_output_operand): New entrypoint.
1196 (gcc_jit_extended_asm_add_input_operand): New entrypoint.
1197 (gcc_jit_extended_asm_add_clobber): New entrypoint.
1198 (gcc_jit_context_add_top_level_asm): New entrypoint.
1199 * libgccjit.map (LIBGCCJIT_ABI_15): New.
1200
12012020-11-12 David Malcolm <dmalcolm@redhat.com>
1202
1203 * jit-recording.c (recording::context::new_string): Add "escaped"
1204 param and use it when creating the new recording::string instance.
1205 (recording::string::string): Add "escaped" param and use it to
1206 initialize m_escaped.
1207 (recording::string::make_debug_string): Replace check that first
1208 char is double-quote with use of m_escaped. Fix escaping of
1209 '\t' and '\n'. Set "escaped" on the result.
1210 * jit-recording.h (recording::context::new_string): Add "escaped"
1211 param.
1212 (recording::string::string): Add "escaped" param.
1213 (recording::string::m_escaped): New field.
1214
12152020-11-12 David Malcolm <dmalcolm@redhat.com>
1216
1217 * libgccjit.h: Fix typo in comment.
1218
50a71cd0
GA
12192020-09-14 Andrea Corallo <andrea.corallo@arm.com>
1220
1221 * docs/_build/texinfo/libgccjit.texi: Regenerate.
1222
ac35c090
GA
12232020-09-11 Andrea Corallo <andrea.corallo@arm.com>
1224
1225 * docs/topics/compatibility.rst (LIBGCCJIT_ABI_14): New ABI tag.
1226 * docs/topics/expressions.rst (gcc_jit_global_set_initializer):
1227 Document new entry point in section 'Global variables'.
1228 * jit-playback.c (global_new_decl, global_finalize_lvalue): New
1229 method.
1230 (playback::context::new_global): Make use of global_new_decl,
1231 global_finalize_lvalue.
1232 (load_blob_in_ctor): New template function in use by the
1233 following.
1234 (playback::context::new_global_initialized): New method.
1235 * jit-playback.h (class context): Decl 'new_global_initialized',
1236 'global_new_decl', 'global_finalize_lvalue'.
1237 (lvalue::set_initializer): Add implementation.
1238 * jit-recording.c (recording::memento_of_get_pointer::get_size)
1239 (recording::memento_of_get_type::get_size): Add implementation.
1240 (recording::global::write_initializer_reproducer): New function in
1241 use by 'recording::global::write_reproducer'.
1242 (recording::global::replay_into)
1243 (recording::global::write_to_dump)
1244 (recording::global::write_reproducer): Handle
1245 initialized case.
1246 * jit-recording.h (class type): Decl 'get_size' and
1247 'num_elements'.
1248 * libgccjit++.h (class lvalue): Declare new 'set_initializer'
1249 method.
1250 (class lvalue): Decl 'is_global' and 'set_initializer'.
1251 (class global) Decl 'write_initializer_reproducer'. Add
1252 'm_initializer', 'm_initializer_num_bytes' fields. Implement
1253 'set_initializer'. Add a destructor to free 'm_initializer'.
1254 * libgccjit.c (gcc_jit_global_set_initializer): New function.
1255 * libgccjit.h (gcc_jit_global_set_initializer): New function
1256 declaration.
1257 * libgccjit.map (LIBGCCJIT_ABI_14): New ABI tag.
1258
8f7ea26a
GA
12592020-08-28 Martin Sebor <msebor@redhat.com>
1260
1261 * jit-recording.c (recording::switch_::make_debug_string): Add argument
1262 to a call.
1263
e769f970
GA
12642020-08-22 Andrea Corallo <andrea.corallo@arm.com>
1265
1266 * libgccjit.c:
1267 (gcc_jit_context_new_rvalue_from_int)
1268 (gcc_jit_context_new_rvalue_from_long)
1269 (gcc_jit_context_new_rvalue_from_double)
1270 (gcc_jit_context_new_rvalue_from_ptr): Update function heading
1271 comments.
1272
6fb94d67
GA
12732020-06-16 Nicolas Bértolo <nicolasbertolo@gmail.com>
1274
1275 * Make-lang.in: Always define version, minor and release
1276 numbers. Create the Windows shared library as
1277 libgccjit-$(LIBGCCJIT_VERSION_NUM).dll.
1278
9a5b7438
GA
12792020-06-03 David Malcolm <dmalcolm@redhat.com>
1280
1281 PR jit/95306
1282 * jit-builtins.c (builtins_manager::make_primitive_type):
1283 Implement BT_CONST_VOLATILE_PTR.
1284
a9312a79
GA
12852020-06-02 David Malcolm <dmalcolm@redhat.com>
1286
1287 PR jit/95426
1288 * dummy-frontend.c: Include "options.h", "stringpool.h", and
1289 "attribs.h".
1290 (ATTR_EXCL): New, copied from lto/lto-lang.c.
1291 (attr_noreturn_exclusions): Likewise.
1292 (attr_returns_twice_exclusions): Likewise.
1293 (attr_const_pure_exclusions): Likewise.
1294 (jit_attribute_table): Likewise, copied from lto_attribute_table.
1295 (jit_format_attribute_table): Likewise, copied from
1296 lto_format_attribute_table.
1297 (handle_noreturn_attribute): New, copied from lto/lto-lang.c.
1298 (handle_leaf_attribute): Likewise.
1299 (handle_const_attribute): Likewise.
1300 (handle_malloc_attribute): Likewise.
1301 (handle_pure_attribute): Likewise.
1302 (handle_novops_attribute): Likewise.
1303 (get_nonnull_operand): Likewise.
1304 (handle_nonnull_attribute): Likewise.
1305 (handle_nothrow_attribute): Likewise.
1306 (handle_sentinel_attribute): Likewise.
1307 (handle_type_generic_attribute): Likewise.
1308 (handle_transaction_pure_attribute): Likewise.
1309 (handle_returns_twice_attribute): Likewise.
1310 (handle_patchable_function_entry_attribute): Likewise.
1311 (ignore_attribute): Likewise.
1312 (handle_format_attribute): Likewise.
1313 (handle_format_arg_attribute): Likewise.
1314 (handle_fnspec_attribute): Likewise.
1315 (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE): Define.
1316 (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Define.
1317
53ffb43a
GA
13182020-05-28 Nicolas Bértolo <nicolasbertolo@gmail.com>
1319
1320 * Make-lang.in: Remove extra slash. Build libgccjit.dll and its
1321 import library in Windows.
1322 * config-lang.in: Update comment about --enable-host-shared.
1323 * jit-w32.h: New file.
1324 * jit-w32.c: New file.
1325 (print_last_error): New function that prints the error
1326 string corresponding to GetLastError().
1327 (get_TOKEN_USER_current_user): Helper function used for getting
1328 the SID belonging to the current user.
1329 (create_directory_for_current_user): Helper function to create
1330 a directory with permissions such that only the current user can
1331 access it.
1332 (win_mkdtemp): Create a temporary directory using Windows APIs.
1333 * jit-playback.c: Do not chmod files in Windows. Use LoadLibrary,
1334 FreeLibrary and GetProcAddress instead of libdl.
1335 * jit-result.h, jit-result.c: Introduce result::handle_t to
1336 abstract over the types used for dynamic library handles.
1337 * jit-tempdir.c: Do not use mkdtemp() in Windows, use
1338 win_mkdtemp().
1339
61f3b605
GA
13402020-05-27 David Malcolm <dmalcolm@redhat.com>
1341
1342 PR jit/95314
1343 * dummy-frontend.c (LANG_HOOKS_DEEP_UNSHARING): Define to be true.
1344 * jit-playback.h (gcc::jit::playback::rvalue): Mark tree node with
1345 TREE_VISITED.
1346
13472020-05-27 Tom Tromey <tromey@gcc.gnu.org>
1348
1349 PR jit/91330
1350 * docs/conf.py (texinfo_documents): Set description.
1351 * docs/_build/texinfo/libgccjit.texi: Regenerate.
1352
c3a4169b
GA
13532020-05-26 David Malcolm <dmalcolm@redhat.com>
1354
1355 PR jit/95306
1356 * docs/topics/functions.rst
1357 (gcc_jit_context_get_builtin_function): Document.
1358 * docs/_build/texinfo/libgccjit.texi: Regenerate.
1359 * dummy-frontend.c (jit_langhook_global_bindings_p): Remove
1360 gcc_unreachable.
1361 * jit-builtins.c (type_names): New array.
1362 (get_string_for_type_id): New function.
1363 (gcc::jit::builtins_manager::make_primitive_type): Show name of
1364 type in error messages. Update cases to reflect the order in
1365 builtin-types.def. Implement cases for BT_INT8, BT_INT16,
1366 BT_UINT8, BT_CONST_PTR, BT_VOLATILE_PTR, BT_INT_PTR, BT_FLOAT_PTR,
1367 BT_CONST_DOUBLE_PTR, BT_SIZE, BT_CONST_SIZE.
1368
13692020-05-26 David Malcolm <dmalcolm@redhat.com>
1370
1371 * docs/topics/compatibility.rst: Fix underline.
1372 Fix missing labels.
1373 * docs/topics/types.rst: Fix missing blank line.
1374 * docs/_build/texinfo/libgccjit.texi: Regenerate.
1375
13762020-05-26 David Malcolm <dmalcolm@redhat.com>
1377
1378 PR jit/95296
1379 * docs/topics/expressions.rst (Unary Operations): Document that
1380 result_type of gcc_jit_context_new_unary_op must be a numeric type.
1381 (Binary Operations): Likewise for gcc_jit_context_new_binary_op.
1382 (Global variables): Document that "type" of
1383 gcc_jit_context_new_global must be non-`void`.
1384 * docs/topics/function-pointers.rst
1385 (gcc_jit_context_new_function_ptr_type): Document that the
1386 param_types must be non-void, but that return_type may be.
1387 * docs/topics/functions.rst (Params): Document that
1388 gcc_jit_context_new_param's type must be non-void.
1389 (Functions): Likewise for gcc_jit_function_new_local.
1390 * docs/topics/types.rst (gcc_jit_context_new_array_type): Document
1391 that the type must be non-void.
1392 (gcc_jit_context_new_field): Likewise.
1393 * docs/_build/texinfo/Makefile: Regenerate.
1394 * docs/_build/texinfo/libgccjit.texi: Regenerate.
1395 * libgccjit.c (gcc_jit_context_new_array_type): Fail if
1396 element_type is void.
1397 (gcc_jit_context_new_field): Likewise for "type".
1398 (gcc_jit_context_new_function_ptr_type): Likewise for each
1399 element of param_types.
1400 (gcc_jit_context_new_param): Likewise for "type".
1401 (gcc_jit_context_new_global): Likewise.
1402 (gcc_jit_function_new_local): Likewise.
1403 (gcc_jit_type_get_aligned): Likewise.
1404
63b2923d
A
14052020-03-31 Andrea Corallo <andrea.corallo@arm.com>
1406 David Malcolm <dmalcolm@redhat.com>
1407
1408 * docs/topics/compatibility.rst (LIBGCCJIT_ABI_13): New ABI tag
1409 plus add version paragraph.
1410 * libgccjit++.h (namespace gccjit::version): Add new namespace.
1411 * libgccjit.c (gcc_jit_version_major, gcc_jit_version_minor)
1412 (gcc_jit_version_patchlevel): New functions.
1413 * libgccjit.h (LIBGCCJIT_HAVE_gcc_jit_version): New macro.
1414 (gcc_jit_version_major, gcc_jit_version_minor)
1415 (gcc_jit_version_patchlevel): New functions.
1416 * libgccjit.map (LIBGCCJIT_ABI_13) New ABI tag.
1417
0cd55f9d
A
14182020-03-23 Andrea Corallo <andrea.corallo@arm.com>
1419
1420 * jit-playback.h
1421 (gcc::jit::playback::context m_recording_ctxt): Remove
1422 m_char_array_type_node field.
1423 * jit-playback.c
1424 (playback::context::context) Remove m_char_array_type_node from member
1425 initializer list.
1426 (playback::context::new_string_literal) Fix logic to handle string
1427 length > 200.
1428
8d9254fc
JJ
14292020-01-01 Jakub Jelinek <jakub@redhat.com>
1430
1431 Update copyright years.
1432
70ce1ab9
JB
14332019-11-29 Julian Brown <julian@codesourcery.com>
1434
1435 * jit-builtins.c (BT_DFLOAT32_PTR, BT_DFLOAT64_PTR, BT_DFLOAT128_PTR):
1436 Remove commented-out cases.
1437
56e04525
DM
14382019-11-20 David Malcolm <dmalcolm@redhat.com>
1439
1440 PR jit/92483
1441 * jit-playback.c (gcc::jit::playback::context::make_fake_args):
1442 Update GCC_JIT_BOOL_OPTION_SELFCHECK_GC for new --param syntax.
1443
4d732405
RS
14442019-08-13 Richard Sandiford <richard.sandiford@arm.com>
1445
1446 PR middle-end/91421
1447 * jit-playback.c (new_function): Use set_decl_built_in_function.
1448
ab20d992 14492019-07-22 Andrea Corallo <andrea.corallo@arm.com>
9afb91b2
AC
1450
1451 * jit-recording.c (unary_op_reproducer_strings): Make it extern.
1452 (binary_op_reproducer_strings): Likewise.
1453 * jit-recording.h (unary_op_reproducer_strings): Likewise.
1454 (binary_op_reproducer_strings): Likewise.
1455 * libgccjit.c (gcc_jit_context_new_unary_op): Check result_type to be a
1456 numeric type.
1457 * libgccjit.c (gcc_jit_context_new_binary_op): Improve error message.
1458
ab20d992 14592019-07-04 Andrea Corallo <andrea.corallo@arm.com>
2b442504
AC
1460
1461 * libgccjit.c (gcc_jit_context_new_binary_op): Check result_type to be a
1462 numeric type.
1463
ab20d992 14642019-07-04 Andrea Corallo <andrea.corallo@arm.com>
ee118c14
AC
1465
1466 * docs/topics/compatibility.rst (LIBGCCJIT_ABI_12): New ABI tag.
1467 * docs/topics/types.rst: Add gcc_jit_context_new_bitfield.
1468 * jit-common.h (namespace recording): Add class bitfield.
1469 * jit-playback.c:
1470 (DECL_C_BIT_FIELD, SET_DECL_C_BIT_FIELD): Add macros.
1471 (playback::context::new_bitfield): New method.
1472 (playback::compound_type::set_fields): Add bitfield support.
1473 (playback::lvalue::mark_addressable): Was jit_mark_addressable make this
1474 a method of lvalue plus return a bool to communicate success.
1475 (playback::lvalue::get_address): Check for jit_mark_addressable return
1476 value.
1477 * jit-playback.h (new_bitfield): New method.
1478 (class bitfield): New class.
1479 (class lvalue): Add jit_mark_addressable method.
1480 * jit-recording.c (recording::context::new_bitfield): New method.
1481 (recording::bitfield::replay_into): New method.
1482 (recording::bitfield::write_to_dump): Likewise.
1483 (recording::bitfield::make_debug_string): Likewise.
1484 (recording::bitfield::write_reproducer): Likewise.
1485 * jit-recording.h (class context): Add new_bitfield method.
1486 (class field): Make it derivable by class bitfield.
1487 (class bitfield): Add new class.
1488 * libgccjit++.h (class context): Add new_bitfield method.
1489 * libgccjit.c (struct gcc_jit_bitfield): New structure.
1490 (gcc_jit_context_new_bitfield): New function.
1491 * libgccjit.h
1492 (LIBGCCJIT_HAVE_gcc_jit_context_new_bitfield) New macro.
1493 (gcc_jit_context_new_bitfield): New function.
1494 * libgccjit.map (LIBGCCJIT_ABI_12) New ABI tag.
1495
36a3a7a3
JJ
14962019-03-21 Jakub Jelinek <jakub@redhat.com>
1497
1498 * jit-recording.c (reproducer::m_set_identifiers): Use false as Lazy
1499 in hash_set template param.
1500
ab20d992 15012019-02-05 Andrea Corallo <andrea.corallo@arm.com>
216090cc
AC
1502
1503 * docs/topics/compatibility.rst (LIBGCCJIT_ABI_11): New ABI tag.
1504 * docs/topics/contexts.rst (Additional driver options): New
1505 section.
1506 * jit-playback.c (invoke_driver): Add call to append_driver_options.
1507 * jit-recording.c: Within namespace gcc::jit...
1508 (recording::context::~context): Free the optnames within
1509 m_driver_options.
1510 (recording::context::add_driver_option): New method.
1511 (recording::context::append_driver_options): New method.
1512 (recording::context::dump_reproducer_to_file): Add driver
1513 options.
1514 * jit-recording.h: Within namespace gcc::jit...
1515 (recording::context::add_driver_option): New method.
1516 (recording::context::append_driver_options): New method.
1517 (recording::context::m_driver_options): New field.
1518 * libgccjit++.h (gccjit::context::add_driver_option): New
1519 method.
1520 * libgccjit.c (gcc_jit_context_add_driver_option): New API
1521 entrypoint.
1522 * libgccjit.h (gcc_jit_context_add_driver_option): New API
1523 entrypoint.
1524 (LIBGCCJIT_HAVE_gcc_jit_context_add_driver_option): New
1525 macro.
1526 * libgccjit.map (LIBGCCJIT_ABI_11): New ABI tag.
1527
a5544970
JJ
15282019-01-01 Jakub Jelinek <jakub@redhat.com>
1529
1530 Update copyright years.
1531
478dd60d
DM
15322018-11-15 David Malcolm <dmalcolm@redhat.com>
1533
1534 PR other/19165
1535 * dummy-frontend.c (jit_begin_diagnostic): Add diagnostic_t param.
1536
620e594b
DM
15372018-11-13 David Malcolm <dmalcolm@redhat.com>
1538
1539 * jit-playback.c: Replace "source_location" with "location_t".
1540
033eb567
DM
15412018-10-17 David Malcolm <dmalcolm@redhat.com>
1542
1543 * Make-lang.in (selftest-jit): New.
1544
98086b2b
ML
15452018-06-28 Martin Liska <mliska@suse.cz>
1546
1547 * jit-playback.c: Include opt-suggestions.h.
1548
3de37a5d
ML
15492018-06-28 Martin Liska <mliska@suse.cz>
1550
1551 * jit-playback.c (class auto_argvec): Moved to vec.h.
1552 (auto_argvec::~auto_argvec): Likewise.
1553 (compile): Use the renamed name.
1554 (invoke_driver): Likewise.
1555
ea143da7
RO
15562018-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1557
1558 PR jit/84288
1559 * Make-lang.in ($(LIBGCCJIT_FILENAME)): Add $(EXTRA_GCC_LIBS).
1560
deb3da39
DM
15612018-03-09 David Malcolm <dmalcolm@redhat.com>
1562 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1563
1564 PR jit/64089
1565 PR jit/84288
1566 * Make-lang.in (COMMA): New.
1567 (LIBGCCJIT_VERSION_SCRIPT_OPTION): New.
1568 (LIBGCCJIT_SONAME_OPTION): New.
1569 (jit): Move --version-script and -soname linker options to the
1570 above.
1571
9aba6f77
DM
15722018-01-25 David Malcolm <dmalcolm@redhat.com>
1573
1574 PR jit/81672
1575 * jit-recording.h (gcc::jit::recording::union_): Remove fields
1576 "m_loc" and "m_name".
1577
85ec4feb
JJ
15782018-01-03 Jakub Jelinek <jakub@redhat.com>
1579
1580 Update copyright years.
1581
01512446
JJ
15822017-12-19 Jakub Jelinek <jakub@redhat.com>
1583
1584 * jit-playback.c (get_type, playback::compile_to_file::copy_file,
1585 playback::context::acquire_mutex): Replace Yoda conditions with
1586 typical order conditions.
1587 * libgccjit.c (gcc_jit_context_new_struct_type,
1588 gcc_jit_struct_set_fields, gcc_jit_context_new_union_type,
1589 gcc_jit_context_new_function, gcc_jit_timer_pop): Likewise.
1590 * jit-builtins.c (matches_builtin): Likewise.
1591 * jit-recording.c (recording::compound_type::set_fields,
1592 recording::fields::write_reproducer, recording::rvalue::set_scope,
1593 recording::function::validate): Likewise.
1594 * jit-logging.c (logger::decref): Likewise.
1595
5de73c05
JJ
15962017-11-30 Jakub Jelinek <jakub@redhat.com>
1597
1598 * jit-recording.c
1599 (recording::memento_of_new_rvalue_from_const <long>::write_reproducer):
1600 Use ; instead of ;;.
1601
9e851845
JJ
16022017-11-28 Jakub Jelinek <jakub@redhat.com>
1603
1604 * jit-playback.c (add_switch): Build SWITCH_EXPR using build2 instead
1605 of build3. Formatting fixes. Adjust funciton comment.
1606
120e92fc
TV
16072017-11-23 Tom de Vries <tom@codesourcery.com>
1608
1609 * libgccjit.c (RETURN_NULL_IF_FAIL_NONNULL_NUMERIC_TYPE): Wrap in
1610 JIT_{BEGIN,END}_STMT.
1611
77f4ead7
DM
16122017-10-31 David Malcolm <dmalcolm@redhat.com>
1613
1614 * docs/internals/index.rst (Running the test suite): Document
1615 PRESERVE_EXECUTABLES.
1616 (Running under valgrind): Add markup to RUN_UNDER_VALGRIND.
1617 * docs/_build/texinfo/libgccjit.texi: Regenerate.
1618
6069fe72
DM
16192017-10-04 David Malcolm <dmalcolm@redhat.com>
1620
1621 * docs/cp/topics/expressions.rst (Vector expressions): New
1622 section.
1623 * docs/topics/compatibility.rst (LIBGCCJIT_ABI_10): New ABI tag.
1624 * docs/topics/expressions.rst (Vector expressions): New section.
1625 * docs/topics/types.rst (gcc_jit_type_get_vector): Add link to
1626 gcc_jit_context_new_rvalue_from_vector.
1627 * docs/_build/texinfo/libgccjit.texi: Regenerate.
1628 * jit-common.h (gcc::jit:recording::vector_type): New forward
1629 decl.
1630 * jit-playback.c
1631 (gcc::jit::playback::context::new_rvalue_from_vector): New method.
1632 * jit-playback.h
1633 (gcc::jit::playback::context::new_rvalue_from_vector): New method.
1634 * jit-recording.c: In namespace gcc::jit::
1635 (class comma_separated_string): New class.
1636 (comma_separated_string::comma_separated_string): New ctor,
1637 adapted from recording::call::make_debug_string.
1638 (comma_separated_string::~comma_separated_string): New dtor.
1639 In namespace gcc::jit::recording::
1640 (context::new_rvalue_from_vector): New method.
1641 (type::get_vector): Update for renaming of memento_of_get_vector.
1642 (class memento_of_get_vector): Rename to...
1643 (class vector_type): ..this.
1644 (memento_of_new_rvalue_from_vector::memento_of_new_rvalue_from_vector):
1645 New ctor.
1646 (memento_of_new_rvalue_from_vector::replay_into): New method.
1647 (memento_of_new_rvalue_from_vector::visit_children): New method.
1648 (memento_of_new_rvalue_from_vector::make_debug_string): New
1649 method.
1650 (memento_of_new_rvalue_from_vector::write_reproducer): New method.
1651 (call::make_debug_string): Split out arg-printing code into ctor
1652 for comma_separated_string.
1653 * jit-recording.h: In namespace gcc::jit::recording::
1654 (context::new_rvalue_from_vector): New method.
1655 (type::dyn_cast_vector_type): New virtual function.
1656 (class memento_of_get_vector): Rename to...
1657 (class vector_type): ...this.
1658 (vector_type::unqualified): Remove this vfunc override in favor
1659 of...
1660 (vector_type::get_element_type): ...this new method.
1661 (vector_type::get_num_units): New method.
1662 (vector_type::dyn_cast_vector_type): New vfunc override.
1663 (class memento_of_new_rvalue_from_vector): New class.
1664 * libgccjit++.h (gccjit::context::new_rvalue): Add overload for
1665 vector of rvalue.
1666 * libgccjit.c (gcc_jit_context_new_binary_op): Strip off type
1667 qualifications when checking that both operands have same type.
1668 (gcc_jit_context_new_rvalue_from_vector): New API entrypoint.
1669 * libgccjit.h
1670 (LIBGCCJIT_HAVE_gcc_jit_context_new_rvalue_from_vector): New
1671 macro.
1672 (gcc_jit_context_new_rvalue_from_vector): New API entrypoint.
1673 * libgccjit.map (LIBGCCJIT_ABI_10): New ABI tag.
1674
ecd5156d
DM
16752017-09-28 David Malcolm <dmalcolm@redhat.com>
1676
1677 * docs/topics/expressions.rst (Function calls): Add link to
1678 gcc_jit_context_new_function_ptr_type.
1679 (Function pointers): Convert to cross-references to
1680 function-pointers.rst, moving material there.
1681 * docs/topics/function-pointers.rst: New page.
1682 * docs/topics/index.rst: Add function-pointers.rst.
1683 * docs/topics/types.rst (Function pointer types): New section.
1684 * docs/_build/texinfo/libgccjit.texi: Regenerate.
1685
5a47aa2c
DM
16862017-09-28 David Malcolm <dmalcolm@redhat.com>
1687
1688 * jit-recording.c
1689 (gcc::jit::recording::function_type::is_same_type_as): New function.
1690 * jit-recording.h: In namespace gcc::jit::recording::
1691 (type::accepts_writes_from): Use is_same_type_as rather than pointer
1692 equality.
1693 (type::is_same_type_as): New virtual function.
1694 (function_type::is_same_type_as): New override.
1695
15a65e63
DM
16962017-09-27 David Malcolm <dmalcolm@redhat.com>
1697
1698 * docs/cp/topics/expressions.rst (Function pointers): New section.
1699 * docs/topics/compatibility.rst (LIBGCCJIT_ABI_9): New tag.
1700 * docs/topics/expressions.rst (Function pointers): New section.
1701 * docs/_build/texinfo/libgccjit.texi: Regenerate.
1702 * jit-common.h (class gcc::jit::recording::function_pointer): New
1703 forward decl.
1704 * jit-playback.c (gcc::jit::playback::function::get_address): New
1705 method.
1706 * jit-playback.h (gcc::jit::playback::function::get_address): New
1707 method decl.
1708 * jit-recording.c: Within namespace gcc::jit::recording...
1709 (function::function): Initialize new field "m_fn_ptr_type".
1710 (function::get_address): New method.
1711 (function_pointer::replay_into): New method.
1712 (function_pointer::visit_children): New method.
1713 (function_pointer::make_debug_string): New method.
1714 (function_pointer::write_reproducer): New method.
1715 * jit-recording.h: Within namespace gcc::jit::recording...
1716 (function::get_address): New method.
1717 (function): Add field "m_fn_ptr_type".
1718 (class function_pointer): New subclass of rvalue.
1719 * libgccjit++.h (gccjit::function::get_address): New method.
1720 * libgccjit.c (gcc_jit_function_get_address): New function.
1721 * libgccjit.h (LIBGCCJIT_HAVE_gcc_jit_function_get_address): New
1722 macro.
1723 (gcc_jit_function_get_address): New API entrypoint.
1724 * libgccjit.map (LIBGCCJIT_ABI_9): New tag.
1725
595ced60
DM
17262017-09-14 David Malcolm <dmalcolm@redhat.com>
1727
1728 PR jit/82174
1729 * jit-builtins.c (matches_builtin): Ignore entries with a NULL
1730 name.
1731
953e520d
DM
17322017-08-18 David Malcolm <dmalcolm@redhat.com>
1733
1734 PR tree-optimization/46805
1735 * dummy-frontend.c (jit_langhook_parse_file): Handle vector types.
1736
519d0798
DM
17372017-08-18 David Malcolm <dmalcolm@redhat.com>
1738
1739 * jit-recording.c (class gcc::jit::reproducer): Rename field
1740 "m_identifiers" to "m_map_memento_to_identifier". Add field
1741 "m_set_identifiers" and struct hash_traits for it.
1742 (gcc::jit::reproducer::reproducer): Update for above.
1743 (convert_to_identifier): New function.
1744 (gcc::jit::reproducer::ensure_identifier_is_unique): New method.
1745 (gcc::jit::reproducer::make_identifier): Avoid appending the %p
1746 unless necessary for uniqueness. Update for field renaming.
1747 (gcc::jit::reproducer::get_identifier): Update for field renaming.
1748
47ee1b7c
DM
17492017-08-09 David Malcolm <dmalcolm@redhat.com>
1750
1751 * docs/cp/topics/types.rst (Vector types): New section.
1752 * docs/topics/compatibility.rst (LIBGCCJIT_ABI_8): New tag.
1753 * docs/topics/types.rst (gcc_jit_context_get_type): Fix typo in
1754 example.
1755 (Vector types): New section.
1756 * docs/_build/texinfo/libgccjit.texi: Regenerate.
1757 * jit-playback.c (gcc::jit::playback::type::get_vector): New
1758 method.
1759 * jit-playback.h (gcc::jit::playback::type::get_vector): New
1760 method.
1761 * jit-recording.c: In namespace gcc::jit::recording::
1762 (type::get_vector): New method.
1763 (memento_of_get_aligned::write_reproducer): Fix typo
1764 in leading comment.
1765 (memento_of_get_vector::replay_into): New method.
1766 (memento_of_get_vector::make_debug_string): New method.
1767 (memento_of_get_vector::write_reproducer): New method.
1768 * jit-recording.h: In namespace gcc::jit::recording::
1769 (type::get_vector): New
3d3b561f 1770 method.
47ee1b7c
DM
1771 (class memento_of_get_vector): New class.
1772 * libgccjit++.h (gccjit::type::get_vector): New method.
1773 * libgccjit.c (gcc_jit_type_get_vector): New public entrypoint.
1774 * libgccjit.h (LIBGCCJIT_HAVE_gcc_jit_type_get_vector): New
1775 define.
1776 (gcc_jit_type_get_vector): New decl.
1777 * libgccjit.map (LIBGCCJIT_ABI_8): New ABI tag.
1778
b8506a8a
RS
17792017-07-05 Richard Sandiford <richard.sandiford@linaro.org>
1780 Alan Hayward <alan.hayward@arm.com>
1781 David Sherwood <david.sherwood@arm.com>
1782
1783 * dummy-frontend.c (jit_langhook_type_for_mode): Remove "enum" before
1784 "machine_mode".
1785
0ebd1f00
DM
17862017-04-24 David Malcolm <dmalcolm@redhat.com>
1787
1788 * docs/cp/topics/types.rst (gccjit::type::get_const): Remove
1789 comment.
1790 (gccjit::type::get_aligned): Add.
1791 * docs/topics/compatibility.rst: Add LIBGCCJIT_ABI_7.
1792 * docs/topics/types.rst: Add gcc_jit_type_get_aligned.
1793 * docs/_build/texinfo/libgccjit.texi: Regenerate.
1794 * jit-playback.c (gcc::jit::playback::type::get_aligned): New
1795 method.
1796 * jit-playback.h (gcc::jit::playback::type::get_aligned): New
1797 method.
1798 * jit-recording.c: Within namespace gcc::jit::recording...
1799 (type::get_aligned): New method.
1800 (memento_of_get_aligned::replay_into): New method.
1801 (memento_of_get_aligned::make_debug_string): New method.
1802 (memento_of_get_aligned::write_reproducer): New method.
1803 * jit-recording.h: Within namespace gcc::jit::recording...
1804 (type::get_aligned): New method.
1805 (type::accepts_writes_from): Strip off qualifications from
1806 this when comparing pointer equality.
1807 (decorated_type): New subclass of type, subsuming the
1808 commonality between memento_of_get_const and
1809 memento_of_get_volatile.
1810 (memento_of_get_const): Make a subclass of decorated_type,
1811 rather than type.
1812 (memento_of_get_volatile): Likewise.
1813 (memento_of_get_aligned): Likewise.
1814 * libgccjit++.h: Within namespace gccjit...
1815 (type::get_const): New method.
1816 (type::get_aligned): New method.
1817 * libgccjit.c (gcc_jit_type_get_aligned): New function.
1818 * libgccjit.h (gcc_jit_type_get_aligned): New decl.
1819 * libgccjit.map (LIBGCCJIT_ABI_7): New
1820 (gcc_jit_type_get_aligned): Add.
1821
8a3a6ab4
DM
18222017-01-19 David Malcolm <dmalcolm@redhat.com>
1823
1824 * dummy-frontend.c (jit_langhook_type_for_size): Delete.
1825 (LANG_HOOKS_TYPE_FOR_SIZE): Don't redefine.
1826
b37589b0
DM
18272017-01-18 David Malcolm <dmalcolm@redhat.com>
1828
1829 * dummy-frontend.c (jit_langhook_type_for_size): Implement, using
1830 lto's lto_type_for_size.
1831
cbe34bb5
JJ
18322017-01-01 Jakub Jelinek <jakub@redhat.com>
1833
1834 Update copyright years.
1835
15c671a7
DM
18362016-05-20 David Malcolm <dmalcolm@redhat.com>
1837
1838 * docs/topics/compatibility.rst: Add LIBGCCJIT_ABI_6.
1839 * docs/topics/expressions.rst (Function calls): Add documentation
1840 of gcc_jit_rvalue_set_bool_require_tail_call.
1841 * docs/_build/texinfo/libgccjit.texi: Regenerate.
1842 * jit-common.h (gcc::jit::recording::base_call): Add forward decl.
1843 * jit-playback.c: Within namespace gcc::jit::playback...
1844 (context::build_call) Add "require_tail_call" param and use it
1845 to set CALL_EXPR_MUST_TAIL_CALL.
1846 (context::new_call): Add "require_tail_call" param.
1847 (context::new_call_through_ptr): Likewise.
1848 * jit-playback.h: Within namespace gcc::jit::playback...
1849 (context::new_call: Add "require_tail_call" param.
1850 (context::new_call_through_ptr): Likewise.
1851 (context::build_call): Likewise.
1852 * jit-recording.c: Within namespace gcc::jit::recording...
1853 (base_call::base_call): New constructor.
1854 (base_call::write_reproducer_tail_call): New method.
1855 (call::call): Update for inheritance from base_call.
1856 (call::replay_into): Provide m_require_tail_call to call
1857 to new_call.
1858 (call::write_reproducer): Call write_reproducer_tail_call.
1859 (call_through_ptr::call_through_ptr): Update for inheritance from
1860 base_call.
1861 (call_through_ptr::replay_into): Provide m_require_tail_call to call
1862 to new_call_through_ptr.
1863 (recording::call_through_ptr::write_reproducer): Call
1864 write_reproducer_tail_call.
1865 * jit-recording.h: Within namespace gcc::jit::recording...
1866 (rvalue::dyn_cast_base_call): New virtual function.
1867 (class base_call): New subclass of class rvalue.
1868 (class call): Inherit from base_call rather than directly from
1869 rvalue, moving get_precedence and m_args to base_call.
1870 (class call_through_ptr): Likewise.
1871 * libgccjit.c (gcc_jit_rvalue_set_bool_require_tail_call): New
1872 function.
1873 * libgccjit.h
1874 (LIBGCCJIT_HAVE_gcc_jit_rvalue_set_bool_require_tail_call): New
1875 macro.
1876 (gcc_jit_rvalue_set_bool_require_tail_call): New function.
1877 * libgccjit.map (LIBGCCJIT_ABI_6): New.
1878 (gcc_jit_rvalue_set_bool_require_tail_call): Add.
1879
6b5423a5
DM
18802016-05-17 David Malcolm <dmalcolm@redhat.com>
1881
1882 * dummy-frontend.c: Include diagnostic.h.
1883 (jit_begin_diagnostic): New function.
1884 (jit_end_diagnostic): New function.
1885 (jit_langhook_init): Register jit_begin_diagnostic
1886 and jit_end_diagnostic with the global_dc.
1887 * jit-playback.c: Include diagnostic.h.
1888 (gcc::jit::playback::context::add_diagnostic): New method.
1889 * jit-playback.h (struct diagnostic_context): Add forward
1890 declaration.
1891 (gcc::jit::playback::context::add_diagnostic): New method.
1892
f51703a8
DM
18932016-05-17 David Malcolm <dmalcolm@redhat.com>
1894
1895 * docs/topics/expressions.rst (Function calls): Document
1896 gcc_jit_context_new_call_through_ptr.
1897 * docs/_build/texinfo/libgccjit.texi: Regenerate.
1898
54ece5e2
DM
18992016-05-13 David Malcolm <dmalcolm@redhat.com>
1900
1901 * jit-playback.h: Within namespace gcc:jit::playback...
1902 (compile_to_memory::postprocess): Mark with FINAL OVERRIDE.
1903 (compile_to_file::postprocess): Likewise.
1904 (function::finalizer): Likewise.
1905 (block::finalizer): Likewise.
1906 (source_file::finalizer): Likewise.
1907 (source_line::finalizer): Likewise.
1908 * jit-recording.c (gcc::jit::rvalue_usage_validator):: Likewise.
1909 * jit-recording.h: Within namespace gcc::jit::recording...
1910 (string::replay_into): Mark with FINAL OVERRIDE.
1911 (string::make_debug_string): Likewise.
1912 (string::write_reproducer): Likewise.
1913 (location::replay_into): Likewise.
1914 (location::dyn_cast_location): Likewise.
1915 (location::make_debug_string): Likewise.
1916 (location::write_reproducer): Likewise.
1917 (memento_of_get_type::dereference): Likewise.
1918 (memento_of_get_type::accepts_writes_from): Likewise.
1919 (memento_of_get_type::is_int): Likewise.
1920 (memento_of_get_type::is_float): Likewise.
1921 (memento_of_get_type::is_bool): Likewise.
1922 (memento_of_get_type::is_pointer): Likewise.
1923 (memento_of_get_type::is_array): Likewise.
1924 (memento_of_get_type::is_void): Likewise.
1925 (memento_of_get_type::replay_into): Likewise.
1926 (memento_of_get_type::make_debug_string): Likewise.
1927 (memento_of_get_type::write_reproducer): Likewise.
1928 (memento_of_get_pointer::dereference): Likewise.
1929 (memento_of_get_pointer::accepts_writes_from): Likewise.
1930 (memento_of_get_pointer::replay_into): Likewise.
1931 (memento_of_get_pointer::is_int): Likewise.
1932 (memento_of_get_pointer::is_float): Likewise.
1933 (memento_of_get_pointer::is_bool): Likewise.
1934 (memento_of_get_pointer::is_pointer): Likewise.
1935 (memento_of_get_pointer::is_array): Likewise.
1936 (memento_of_get_pointer::make_debug_string): Likewise.
1937 (memento_of_get_pointer::write_reproducer): Likewise.
1938 (memento_of_get_const::dereference): Likewise.
1939 (memento_of_get_const::accepts_writes_from): Likewise.
1940 (memento_of_get_const::unqualified): Likewise.
1941 (memento_of_get_const::is_int): Likewise.
1942 (memento_of_get_const::is_float): Likewise.
1943 (memento_of_get_const::is_bool): Likewise.
1944 (memento_of_get_const::is_pointer): Likewise.
1945 (memento_of_get_const::is_array): Likewise.
1946 (memento_of_get_const::void replay_into): Likewise;
1947 (memento_of_get_const::make_debug_string): Likewise.
1948 (memento_of_get_const::write_reproducer): Likewise.
1949 (memento_of_get_volatile::dereference): Likewise.
1950 (memento_of_get_volatile::unqualified): Likewise.
1951 (memento_of_get_volatile::is_int): Likewise.
1952 (memento_of_get_volatile::is_float): Likewise.
1953 (memento_of_get_volatile::is_bool): Likewise.
1954 (memento_of_get_volatile::is_pointer): Likewise.
1955 (memento_of_get_volatile::is_array): Likewise.
1956 (memento_of_get_volatile::replay_into): Likewise;
1957 (memento_of_get_volatile::make_debug_string): Likewise.
1958 (memento_of_get_volatile::write_reproducer): Likewise.
1959 (array_type::dereference): Likewise.
1960 (array_type::is_int): Likewise.
1961 (array_type::is_float): Likewise.
1962 (array_type::is_bool): Likewise.
1963 (array_type::is_pointer): Likewise.
1964 (array_type::is_array): Likewise.
1965 (array_type::replay_into): Likewise;
1966 (array_type::make_debug_string): Likewise.
1967 (array_type::write_reproducer): Likewise.
1968 (function_type::dereference): Likewise.
1969 (function_type::function_dyn_cast_function_type): Likewise.
1970 (function_type::function_as_a_function_type): Likewise.
1971 (function_type::is_int): Likewise.
1972 (function_type::is_float): Likewise.
1973 (function_type::is_bool): Likewise.
1974 (function_type::is_pointer): Likewise.
1975 (function_type::is_array): Likewise.
1976 (function_type::replay_into): Likewise;
1977 (function_type::make_debug_string): Likewise.
1978 (function_type::write_reproducer): Likewise.
1979 (field::replay_into): Likewise;
1980 (field::write_to_dump): Likewise.
1981 (field::make_debug_string): Likewise.
1982 (field::write_reproducer): Likewise.
1983 (compound_type::dereference): Likewise.
1984 (compound_type::is_int): Likewise.
1985 (compound_type::is_float): Likewise.
1986 (compound_type::is_bool): Likewise.
1987 (compound_type::is_pointer): Likewise.
1988 (compound_type::is_array): Likewise.
1989 (compound_type::has_known_size): Likewise.
1990 (struct_::dyn_cast_struct): Likewise.
1991 (struct_::replay_into): Likewise.
1992 (struct_::access_as_type): Likewise.
1993 (struct_::make_debug_string): Likewise.
1994 (struct_::write_reproducer): Likewise.
1995 (fields::replay_into): Likewise.
1996 (fields::write_to_dump): Likewise.
1997 (fields::make_debug_string): Likewise.
1998 (fields::write_reproducer): Likewise.
1999 (union_::replay_into): Likewise.
2000 (union_::make_debug_string): Likewise.
2001 (union_::write_reproducer): Likewise.
2002 (lvalue::access_as_rvalue): Mark with OVERRIDE.
2003 (param::replay_into): Mark with FINAL OVERRIDE.
2004 (param::visit_children): Likewise.
2005 (param::dyn_cast_param): Likewise.
2006 (param::access_as_rvalue): Likewise.
2007 (param::access_as_lvalue): Likewise.
2008 (param::make_debug_string): Likewise.
2009 (param::write_reproducer): Likewise.
2010 (param::get_precedence): Likewise.
2011 (function::replay_into): Likewise.
2012 (function::write_to_dump): Likewise.
2013 (function::make_debug_string): Likewise.
2014 (function::write_reproducer): Likewise.
2015 (block::write_to_dump): Likewise.
2016 (block::make_debug_string): Likewise.
2017 (block::write_reproducer): Likewise.
2018 (block::replay_into): Likewise.
2019 (global::replay_into): Likewise;
2020 (global::visit_children): Likewise.
2021 (global::write_to_dump): Likewise.
2022 (global::make_debug_string): Likewise.
2023 (global::write_reproducer): Likewise.
2024 (global::get_precedence): Likewise.
2025 (memento_of_new_rvalue_from_const::replay_into): Likewise.
2026 (memento_of_new_rvalue_from_const::visit_children): Likewise.
2027 (memento_of_new_rvalue_from_const::is_constant): Likewise.
2028 (memento_of_new_rvalue_from_const::get_wide_int): Likewise.
2029 (memento_of_new_rvalue_from_const::make_debug_string): Likewise.
2030 (memento_of_new_rvalue_from_const::write_reproducer): Likewise.
2031 (memento_of_new_rvalue_from_const::get_precedence): Likewise.
2032 (memento_of_new_string_literal::replay_into): Likewise.
2033 (memento_of_new_string_literal::visit_children): Likewise.
2034 (memento_of_new_string_literal::make_debug_string): Likewise.
2035 (memento_of_new_string_literal::write_reproducer): Likewise.
2036 (memento_of_new_string_literal::get_precedence): Likewise.
2037 (unary_op::replay_into): Likewise.
2038 (unary_op::visit_children): Likewise.
2039 (unary_op::make_debug_string): Likewise.
2040 (unary_op::write_reproducer): Likewise.
2041 (unary_op::get_precedence): Likewise.
2042 (binary_op::replay_into): Likewise.
2043 (binary_op::visit_children): Likewise.
2044 (binary_op::make_debug_string): Likewise.
2045 (binary_op::write_reproducer): Likewise.
2046 (binary_op::get_precedence): Likewise.
2047 (comparison::replay_into): Likewise.
2048 (comparison::visit_children): Likewise.
2049 (comparison::make_debug_string): Likewise.
2050 (comparison::write_reproducer): Likewise.
2051 (comparison::get_precedence): Likewise.
2052 (cast::replay_into): Likewise.
2053 (cast::visit_children): Likewise.
2054 (cast::make_debug_string): Likewise.
2055 (cast::write_reproducer): Likewise.
2056 (cast::get_precedence): Likewise.
2057 (call::replay_into): Likewise.
2058 (call::visit_children): Likewise.
2059 (call::make_debug_string): Likewise.
2060 (call::write_reproducer): Likewise.
2061 (call::get_precedence): Likewise.
2062 (call_through_ptr::replay_into): Likewise.
2063 (call_through_ptr::visit_children): Likewise.
2064 (call_through_ptr::make_debug_string): Likewise.
2065 (call_through_ptr::write_reproducer): Likewise.
2066 (call_through_ptr::get_precedence): Likewise.
2067 (array_access::replay_into): Likewise.
2068 (array_access::visit_children): Likewise.
2069 (array_access::make_debug_string): Likewise.
2070 (array_access::write_reproducer): Likewise.
2071 (array_access::get_precedence): Likewise.
2072 (access_field_of_lvalue::replay_into): Likewise.
2073 (access_field_of_lvalue::visit_children): Likewise.
2074 (access_field_of_lvalue::make_debug_string): Likewise.
2075 (access_field_of_lvalue::write_reproducer): Likewise.
2076 (access_field_of_lvalue::get_precedence): Likewise.
2077 (access_field_rvalue::replay_into): Likewise.
2078 (access_field_rvalue::visit_children): Likewise.
2079 (access_field_rvalue::make_debug_string): Likewise.
2080 (access_field_rvalue::write_reproducer): Likewise.
2081 (access_field_rvalue::get_precedence): Likewise.
2082 (dereference_field_rvalue::replay_into): Likewise.
2083 (dereference_field_rvalue::visit_children): Likewise.
2084 (dereference_field_rvalue::make_debug_string): Likewise.
2085 (dereference_field_rvalue::write_reproducer): Likewise.
2086 (dereference_field_rvalue::get_precedence): Likewise.
2087 (dereference_rvalue::replay_into): Likewise.
2088 (dereference_rvalue::visit_children): Likewise.
2089 (dereference_rvalue::make_debug_string): Likewise.
2090 (dereference_rvalue::write_reproducer): Likewise.
2091 (dereference_rvalue::get_precedence): Likewise.
2092 (get_address_of_lvalue::replay_into): Likewise.
2093 (get_address_of_lvalue::visit_children): Likewise.
2094 (get_address_of_lvalue::make_debug_string): Likewise.
2095 (get_address_of_lvalue::write_reproducer): Likewise.
2096 (get_address_of_lvalue::get_precedence): Likewise.
2097 (local::replay_into): Likewise.
2098 (local::visit_children): Likewise.
2099 (local::write_to_dump): Likewise.
2100 (local::make_debug_string): Likewise.
2101 (local::write_reproducer): Likewise.
2102 (local::get_precedence): Likewise.
2103 (statement::write_to_dump): Likewise.
2104 (eval::replay_into): Likewise.
2105 (eval::make_debug_string): Likewise.
2106 (eval::write_reproducer): Likewise.
2107 (assignment::replay_into): Likewise.
2108 (assignment::make_debug_string): Likewise.
2109 (assignment::write_reproducer): Likewise.
2110 (assignment_op::replay_into): Likewise.
2111 (assignment_op::make_debug_string): Likewise.
2112 (assignment_op::write_reproducer): Likewise.
2113 (comment::replay_into): Likewise.
2114 (comment::make_debug_string): Likewise.
2115 (comment::write_reproducer): Likewise.
2116 (conditional::replay_into): Likewise.
2117 (conditional::get_successor_blocks): Likewise.
2118 (conditional::make_debug_string): Likewise.
2119 (conditional::write_reproducer): Likewise.
2120 (jump::replay_into): Likewise.
2121 (jump::get_successor_blocks): Likewise.
2122 (jump::make_debug_string): Likewise.
2123 (jump::write_reproducer): Likewise.
2124 (return_::replay_into): Likewise.
2125 (return_::get_successor_blocks): Likewise.
2126 (return_::make_debug_string): Likewise.
2127 (return_::write_reproducer): Likewise.
2128 (case_::replay_into): Likewise.
2129 (case_::write_reproducer): Likewise.
2130 (case_::make_debug_string): Likewise.
2131 (switch_::replay_into): Likewise.
2132 (switch_::get_successor_blocks): Likewise.
2133 (switch_::make_debug_string): Likewise.
2134 (switch_::write_reproducer): Likewise.
2135
f258ad62
DM
21362016-02-08 David Malcolm <dmalcolm@redhat.com>
2137
2138 * dummy-frontend.c (jit_langhook_init): Remove
2139 second argument to build_common_tree_nodes to
2140 track r233218.
2141
1c652ccb
IB
21422016-01-23 Iain Buclaw <ibuclaw@gdcproject.org>
2143
2144 * jit-playback.c: Include pthread.h.
2145
199501ea
DM
21462016-01-19 David Malcolm <dmalcolm@redhat.com>
2147
2148 PR jit/69144
2149 * jit-playback.c (gcc::jit::playback::compile_to_file::postprocess):
2150 Potentially add the temporary artifact to the tempdir's list of
2151 tempfiles needing additional cleanup.
2152 (gcc::jit::playback::context::extract_any_requested_dumps): Likewise
2153 for the dumpfile.
2154 * jit-tempdir.c (gcc::jit::tempdir::~tempdir): Clean up additional
2155 tempfiles.
2156 * jit-tempdir.h (gcc::jit::tempdir::add_temp_file): New method.
2157 (gcc::jit::tempdir::m_tempfiles): New field.
2158 * docs/cp/intro/tutorial04.rst: Update for changes to toyvm.cc.
2159 * docs/examples/tut04-toyvm/toyvm.cc (class compilation_result):
2160 New.
2161 (toyvm_function::compile): Change return type from function ptr
2162 to a compilation_result.
2163 (toyvm_function::get_function_name): New accessor.
2164 (toyvm_function::m_funcname): New field.
2165 (get_function_name): Convert to...
2166 (toyvm_function::make_function_name): ...this new method.
2167 (toyvm_function::parse): Call make_function_name.
2168 (toyvm_function::compile): Convert return type from function ptr
2169 to a compilation_result. Use get_function_name.
2170 (compilation_state::compile): Convert return type from
2171 gcc_jit_result * to a compilation_result.
2172 (test_script): Update for above changes, extracting the code from
2173 the compilation_result.
2174 (main): Likewise.
2175 * docs/_build/texinfo/libgccjit.texi: Regenerate.
2176
818ab71a
JJ
21772016-01-04 Jakub Jelinek <jakub@redhat.com>
2178
2179 Update copyright years.
2180
69f293c9
AM
21812015-11-11 Andrew MacLeod <amacleod@redhat.com>
2182
2183 * dummy-frontend.c: Remove unused header files.
2184 * jit-builtins.c: Likewise.
2185 * jit-playback.c: Likewise.
2186 * jit-recording.c: Likewise.
2187 * jit-spec.c: Likewise.
2188 * libgccjit.c: Likewise.
2189
0aad0198
RS
21902015-11-07 Richard Sandiford <richard.sandiford@arm.com>
2191
2192 * jit-builtins.c: Don't undef DEF_BUILTIN.
2193
2adfab87
AM
21942015-10-29 Andrew MacLeod <amacleod@redhat.com>
2195
2196 * dummy-frontend.c: Reorder #include's and remove duplicates.
2197 * jit-builtins.c: Likewise.
2198 * jit-playback.c: Likewise.
2199 * jit-recording.c: Likewise.
2200 * libgccjit.c: Likewise.
2201
d9a6bd32
JJ
22022015-10-13 Jakub Jelinek <jakub@redhat.com>
2203
2204 * jit-builtins.c (DEF_FUNCTION_TYPE_9, DEF_FUNCTION_TYPE_10,
2205 DEF_FUNCTION_TYPE_11): Define.
2206 * jit-builtins.h (DEF_FUNCTION_TYPE_9, DEF_FUNCTION_TYPE_10,
2207 DEF_FUNCTION_TYPE_11): Define.
2208
fa83660d
TS
22092015-09-30 Thomas Schwinge <thomas@codesourcery.com>
2210 Ulrich Drepper <drepper@gmail.com>
2211
2212 * jit-builtins.h: Undefine DEF_FUNCTION_TYPE_VAR_6 after use.
2213
20a44562
MK
22142015-09-30 Matthias Klose <doko@ubuntu.com>
2215
2216 * jit-builtins.h Define DEF_FUNCTION_TYPE_VAR_6,
2217 remove DEF_FUNCTION_TYPE_VAR_11.
2218 * jit-builtins.c (builtins_manager::make_type): Define and handle
2219 DEF_FUNCTION_TYPE_VAR_6, remove DEF_FUNCTION_TYPE_VAR_11.
2220
9376dd63
DM
22212015-08-25 David Malcolm <dmalcolm@redhat.com>
2222
2223 * docs/cp/topics/contexts.rst
2224 (gccjit::context::set_bool_use_external_driver): New.
2225 * docs/internals/test-hello-world.exe.log.txt: Update.
2226 * docs/topics/compatibility.rst (LIBGCCJIT_ABI_5): New.
2227 * docs/topics/contexts.rst
2228 (gcc_jit_context_set_bool_use_external_driver): New.
2229 * jit-common.h (enum inner_bool_option): Add
2230 INNER_BOOL_OPTION_USE_EXTERNAL_DRIVER.
2231 * jit-playback.c (gcc_driver_name): New global.
2232 (gcc:jit::playback::context::invoke_driver): Split out second
2233 half into...
2234 (gcc::jit::playback::context::invoke_embedded_driver): ...this new
2235 function, and...
2236 (gcc::jit::playback::context::invoke_external_driver): ...this new
2237 function.
2238 * jit-playback.h
2239 (gcc::jit::playback::context::get_inner_bool_option): New.
2240 (gcc::jit::playback::context::invoke_embedded_driver): New.
2241 (gcc::jit::playback::context::invoke_external_driver): New.
2242 * jit-recording.c (inner_bool_option_reproducer_strings):
2243 Add entry for INNER_BOOL_OPTION_USE_EXTERNAL_DRIVER.
2244 * libgccjit++.h
2245 (gccjit::context::set_bool_use_external_driver): New.
2246 * libgccjit.c (gcc_jit_context_set_bool_use_external_driver): New.
2247 * libgccjit.h (gcc_jit_context_set_bool_use_external_driver): New.
2248 (LIBGCCJIT_HAVE_gcc_jit_context_set_bool_use_external_driver):
2249 New.
2250 * libgccjit.map (LIBGCCJIT_ABI_5): New.
2251 * notes.txt: Show invocation of embedded copy of driver.
2252 * docs/internals/test-hello-world.exe.log.txt: Update
2253
baf3fbad
DM
22542015-08-13 David Malcolm <dmalcolm@redhat.com>
2255
2256 * jit-playback.c (invoke_driver): On OS X, add
2257 "-Wl,-undefined,dynamic_lookup" to the driver arguments.
2258
afed3459
DM
22592015-08-03 David Malcolm <dmalcolm@redhat.com>
2260
2261 * docs/topics/compatibility.rst (LIBGCCJIT_ABI_4): New.
2262 * docs/topics/contexts.rst (GCC_JIT_BOOL_OPTION_DUMP_SUMMARY):
2263 We no longer show a profile.
2264 * docs/topics/index.rst (Topic Reference): Add performance.rst.
2265 * docs/topics/performance.rst: New file.
2266 * docs/_build/texinfo/libgccjit.texi: Regenerate.
2267 * jit-playback.c (gcc::jit::playback::context::compile): Add timer
2268 param when constructing the "toplev" instance.
2269 (gcc::jit::playback::context::acquire_mutex): Add timer param when
2270 constructing auto_timevar instance.
2271 (gcc::jit::playback::context::make_fake_args): If we have a timer,
2272 add "-ftime-report".
2273 (gcc::jit::playback::context::invoke_driver): Add timer param when
2274 constructing auto_timevar instance.
2275 (gcc::jit::playback::context::dlopen_built_dso): Likewise.
2276 * jit-playback.h (gcc::jit::playback::context::get_timer): New accessor.
2277 * jit-recording.c: Include timevar.h.
2278 (gcc::jit::recording::context::context): Initialize field "m_timer".
2279 * jit-recording.h: Add forward declaration of class timer.
2280 (gcc::jit::recording::context::set_timer): New method.
2281 (gcc::jit::recording::context::get_timer): New method.
2282 (gcc::jit::recording::context::m_timer): New field.
2283 * libgccjit++.h (gccjit::timer): New class.
2284 (gccjit::auto_time): New class.
2285 (gccjit::context::set_timer): New method.
2286 (gccjit::context::get_timer): New.
2287 (gccjit::timer::timer): New.
2288 (gccjit::timer::push): New.
2289 (gccjit::timer::pop): New.
2290 (timer::print): New.
2291 (timer::get_inner_timer): New.
2292 (timer::release): New.
2293 (auto_time::auto_time): New.
2294 (auto_time::~auto_time): New.
2295 * libgccjit.c: Include timevar.h.
2296 (struct gcc_jit_timer): New.
2297 (gcc_jit_timer_new): New function.
2298 (gcc_jit_timer_release): New function.
2299 (gcc_jit_context_set_timer): New function.
2300 (gcc_jit_context_get_timer): New function.
2301 (gcc_jit_timer_push): New function.
2302 (gcc_jit_timer_pop): New function.
2303 (gcc_jit_timer_print): New function.
2304 * libgccjit.h (LIBGCCJIT_HAVE_TIMING_API): New macro.
2305 (gcc_jit_timer): New typedef.
2306 (gcc_jit_timer_new): New function.
2307 (gcc_jit_timer_release): New function.
2308 (gcc_jit_context_set_timer): New function.
2309 (gcc_jit_context_get_timer): New function.
2310 (gcc_jit_timer_push): New function.
2311 (gcc_jit_timer_pop): New function.
2312 (gcc_jit_timer_print): New function.
2313 * libgccjit.map (LIBGCCJIT_ABI_4): New.
2314 (gcc_jit_timer_new): New function.
2315 (gcc_jit_timer_release): New function.
2316 (gcc_jit_context_set_timer): New function.
2317 (gcc_jit_context_get_timer): New function.
2318 (gcc_jit_timer_push): New function.
2319 (gcc_jit_timer_pop): New function.
2320 (gcc_jit_timer_print): New function.
2321
eb3982c1
DM
23222015-07-23 David Malcolm <dmalcolm@redhat.com>
2323
2324 * jit-playback.c (invoke_driver): Convert local "argvec"
2325 to an auto_argvec, so that it owns copies of the strings,
2326 rather than borrows them, updating ADD_ARG to use xstrdup
2327 and special-casing the NULL terminator to avoid
2328 xstrdup (NULL). Call add_multilib_driver_arguments at the front
2329 of the arguments.
2330 (MULTILIB_DEFAULTS): Provide a default definition.
2331 (multilib_defaults_raw): New constant array.
2332 (gcc::jit::playback::context::add_multilib_driver_arguments): New
2333 method.
2334 * jit-playback.h
2335 (gcc::jit::playback::context::add_multilib_driver_arguments): New
2336 method.
2337 * docs/internals/test-hello-world.exe.log.txt: Update.
2338 * docs/_build/texinfo/libgccjit.texi: Regenerate.
2339
1470e75f
DM
23402015-07-16 David Malcolm <dmalcolm@redhat.com>
2341
2342 * docs/internals/index.rst (Overview of code structure): Add note
2343 that the implementation is in C++, despite the .c extension.
2344 (Submitting patches): New subsection.
2345 * docs/_build/texinfo/libgccjit.texi: Regenerate.
2346
1916bcb5
AM
23472015-07-09 Andrew MacLeod <amacleod@redhat.com>
2348
2349 * dummy-frontend.c: Adjust includes for flags.h changes.
2350 * jit-common.h: Likewise.
2351 * jit-playback.c: Likewise.
2352
58c5ad40
DM
23532015-07-08 David Malcolm <dmalcolm@redhat.com>
2354
2355 PR jit/66783
2356 * libgccjit.c (gcc_jit_context_new_field): Show name of field in
2357 "unknown size" error message.
2358 (gcc_jit_struct_set_fields): Show name of struct in error message.
2359 (gcc_jit_context_new_global): Show name of global in
2360 "unknown size" error message.
2361 (gcc_jit_function_new_local): Likewise for local.
2362
c7131fb2
AM
23632015-07-07 Andrew MacLeod <amacleod@redhat.com>
2364
2365 * dummy-frontend.c: Adjust includes.
2366 * jit-common.h: Likewise.
2367 * jit-playback.c: Likewise.
2368
3457d39e
DM
23692015-07-07 David Malcolm <dmalcolm@redhat.com>
2370
2371 PR jit/66783
2372 * jit-recording.h: Within namespace gcc:jit::recording...
2373 (type::has_known_size): New virtual function.
2374 (struct_has_known_size): New function.
2375 * libgccjit.c (gcc_jit_context_new_field): Verify that the type
2376 has a known size.
2377 (gcc_jit_context_new_global): Likewise.
2378 (gcc_jit_function_new_local): Likewise.
2379
bada4bed
DM
23802015-07-07 David Malcolm <dmalcolm@redhat.com>
2381
2382 PR jit/66779
2383 * dummy-frontend.c (jit_langhook_type_for_mode): Ensure that we
2384 handle modes QI, HI, SI, DI, TI.
2385
e09abfa4
DM
23862015-07-01 David Malcolm <dmalcolm@redhat.com>
2387
2388 PR jit/66700
2389 * jit-playback.c (jit_mark_addressable): New function.
2390 (gcc::jit::playback::lvalue::get_address): Call
2391 jit_mark_addressable on the underlying tree.
2392
e807aeaa
DM
23932015-07-01 David Malcolm <dmalcolm@redhat.com>
2394
2395 * docs/topics/types.rst (gcc_jit_context_new_union_type): Add
2396 documentation.
2397 * docs/_build/texinfo/libgccjit.texi: Regenerate.
2398
c575221a
DM
23992015-07-01 David Malcolm <dmalcolm@redhat.com>
2400
2401 * docs/topics/contexts.rst (gcc_jit_context_set_bool_option):
2402 Clarify lack of lifetime requirements on (const char *) parameter.
2403 * docs/topics/expressions.rst
2404 (gcc_jit_context_new_string_literal): Likewise.
2405 (gcc_jit_context_new_global): Likewise.
2406 * docs/topics/functions.rst (gcc_jit_context_new_param): Likewise.
2407 (gcc_jit_context_new_function): Likewise.
2408 (gcc_jit_function_new_block): Likewise.
2409 (gcc_jit_block_add_comment): Likewise.
2410 * docs/topics/locations.rst (gcc_jit_context_new_location):
2411 Likewise.
2412 * docs/topics/types.rst (gcc_jit_context_new_field): Likewise.
2413 (gcc_jit_context_new_struct_type): Likewise.
2414 * docs/_build/texinfo/libgccjit.texi: Regenerate.
2415
ec5d0088
DM
24162015-06-30 David Malcolm <dmalcolm@redhat.com>
2417
2418 * docs/cp/topics/functions.rst (Blocks): Add switch statements to
2419 list of ways to terminate a block.
2420 (gccjit::block::end_with_switch): Add function description.
2421 (gccjit::case_): Add class.
2422 (gccjit::context::new_case): Add function description.
2423 * docs/cp/topics/objects.rst: Add "case_" to class hierarchy.
2424 * docs/topics/compatibility.rst (LIBGCCJIT_ABI_3): New.
2425 * docs/topics/functions.rst (Blocks): Add switch statements to
2426 list of ways to terminate a block.
2427 (gcc_jit_block_end_with_switch): Add function description.
2428 (gcc_jit_case): Add type.
2429 (gcc_jit_context_new_case): Add function description.
2430 (gcc_jit_case_as_object): Add function description.
2431 * docs/topics/objects.rst: Add gcc_jit_case to class hierarchy.
2432 * docs/_build/texinfo/libgccjit.texi: Regenerate.
2433 * jit-common.h (gcc::jit::recording::case_): Add forward decl.
2434 (gcc::jit::playback::case_): Add forward decl.
2435 * jit-playback.c (add_case): New function.
2436 (gcc::jit::playback::block::add_switch): New function.
2437 * jit-playback.h (gcc::jit::playback::case_): New struct.
2438 (gcc::jit::playback::block::get_function): New method.
2439 (gcc::jit::playback::block::add_switch): New method.
2440 * jit-recording.c: Within namespace gcc::jit...
2441 (recording::context::new_case): New method.
2442 (recording::function::validate): Update for change to
2443 get_successor_blocks.
2444 (recording::block::end_with_switch): New method.
2445 (recording::block::get_successor_blocks): Update to support an
2446 arbitrary number of successor blocks.
2447 (recording::block::dump_edges_to_dot): Likewise.
2448 (memento_of_new_rvalue_from_const <int>::get_wide_int): New.
2449 (memento_of_new_rvalue_from_const <long>::get_wide_int): New.
2450 (memento_of_new_rvalue_from_const <double>::get_wide_int): New.
2451 (memento_of_new_rvalue_from_const <void *>::get_wide_int): New.
2452 (recording::statement::get_successor_blocks): Update to support an
2453 arbitrary number of successor blocks.
2454 (recording::conditional::get_successor_blocks): Likewise.
2455 (recording::jump::get_successor_blocks): Likewise.
2456 (recording::return_::get_successor_blocks): Likewise.
2457 (recording::case_::write_reproducer): New.
2458 (recording::case_::make_debug_string): New.
2459 (recording::switch_::switch_): New.
2460 (recording::switch_::replay_into): New.
2461 (recording::switch_::get_successor_blocks): New.
2462 (recording::switch_::make_debug_string): New.
2463 (recording::switch_::write_reproducer): New.
2464 * jit-recording.h: Within namespace gcc::jit::recording...
2465 (context::new_case): New.
2466 (rvalue::is_constant): New.
2467 (rvalue::get_wide_int): New.
2468 (block::end_with_switch): New.
2469 (block::get_successor_blocks): Update to support an arbitrary
2470 number of successor blocks.
2471 (memento_of_new_rvalue_from_const::is_constant): New.
2472 (memento_of_new_rvalue_from_const::get_wide_int): New.
2473 (statement::get_successor_blocks): Update to support an arbitrary
2474 number of successor blocks.
2475 (conditional::get_successor_blocks): Likewise.
2476 (jump::get_successor_blocks): Likewise.
2477 (return_::get_successor_blocks): Likewise.
2478 (case_): New subclass of memento.
2479 (switch_): New subclass of statement.
2480 * libgccjit++.h (gccjit::case_): New subclass of gccjit::object.
2481 (gccjit::context::new_case): New method.
2482 (gccjit::block::end_with_switch): New method.
2483 (gccjit::case_::case): New ctors.
2484 (gccjit::case_::get_inner_case): New method.
2485 * libgccjit.c: Include "typed-splay-tree.h"
2486 (struct gcc_jit_case): New.
2487 (gcc_jit_context_new_case): New function.
2488 (gcc_jit_case_as_object): New function.
2489 (valid_dest_for_switch): New function.
2490 (valid_case_for_switch): New function.
2491 (class api_call_validator): New class.
2492 (class case_range_validator): New class.
2493 (case_range_validator::case_range_validator): New.
2494 (case_range_validator::validate): New.
2495 (case_range_validator::case_compare): New.
2496 (case_range_validator::get_wide_int): new.
2497 (gcc_jit_block_end_with_switch): New.
2498 * libgccjit.h: Add gcc_jit_case to class hierarchy comment.
2499 (gcc_jit_case): New typedef.
2500 (gcc_jit_context_new_case): New function.
2501 (gcc_jit_case_as_object): New function.
2502 (gcc_jit_block_end_with_switch): New function.
2503 (LIBGCCJIT_HAVE_SWITCH_STATEMENTS): New.
2504 * libgccjit.map: Add gcc_jit_block_end_with_switch,
2505 gcc_jit_case_as_object and gcc_jit_context_new_case.
2506
6a3603e3
DM
25072015-06-30 David Malcolm <dmalcolm@redhat.com>
2508
2509 PR jit/66546
2510 * docs/cp/topics/contexts.rst
2511 (gccjit::context::set_bool_allow_unreachable_blocks): New.
2512 * docs/topics/compatibility.rst (LIBGCCJIT_ABI_2): New.
2513 * docs/topics/contexts.rst (Options): Add notes discussing the
2514 transition from enums to entrypoints for new options.
2515 (gcc_jit_context_set_bool_allow_unreachable_blocks): New.
2516 * docs/_build/texinfo/libgccjit.texi: Regenerate.
2517 * jit-common.h (gcc::jit::inner_bool_option): New enum.
2518 * jit-recording.c: Within namespace gcc::jit...
2519 (recording::context::context): Handle m_inner_bool_options.
2520 (recording::context::set_inner_bool_option): New.
2521 (inner_bool_option_reproducer_strings): New.
2522 (recording::context::log_all_options): Log the "inner" bool
2523 options.
2524 (recording::context::log_inner_bool_option): New.
2525 (recording::context::dump_reproducer_to_file): Write initializers
2526 for "inner" bool options.
2527 (recording::function::validate): Don't check for block
2528 reachability if INNER_BOOL_OPTION_ALLOW_UNREACHABLE_BLOCKS is set.
2529 * jit-recording.h: Within namespace gcc::jit...
2530 (recording::context::set_inner_bool_option): New.
2531 (recording::context::get_inner_bool_option): New.
2532 (recording::context::log_inner_bool_option): New.
2533 (recording::context::m_inner_bool_options): New.
2534 * libgccjit++.h
2535 (gccjit::context::set_bool_allow_unreachable_blocks): New.
2536 * libgccjit.c
2537 (gcc_jit_context_set_bool_allow_unreachable_blocks): New.
2538 * libgccjit.h: Add note about options present in the
2539 initial release of libgccjit.
2540 (gcc_jit_context_set_bool_allow_unreachable_blocks): New API
2541 entrypoint.
2542 (LIBGCCJIT_HAVE_gcc_jit_context_set_bool_allow_unreachable_blocks):
2543 New macro.
2544 * libgccjit.map (LIBGCCJIT_ABI_2): New, containing...
2545 (gcc_jit_context_set_bool_allow_unreachable_blocks): ...this new
2546 entrypoint.
2547
fa22c20d
DM
25482015-06-30 David Malcolm <dmalcolm@redhat.com>
2549
2550 PR jit/66628
2551 * docs/cp/topics/contexts.rst (Additional command-line options):
2552 New section.
2553 * docs/topics/compatibility.rst: New file.
2554 * docs/topics/contexts.rst (Additional command-line options): New
2555 section.
2556 * docs/topics/index.rst: Add compatibility.rst.
2557 * docs/_build/texinfo/libgccjit.texi: Regenerate.
2558 * jit-playback.c (make_fake_args): Add call to
2559 append_command_line_options.
2560 * jit-recording.c: Within namespace gcc::jit...
2561 (recording::context::~context): Free the optnames within
2562 m_command_line_options.
2563 (recording::context::set_bool_option): Likewise.
2564 (recording::context::add_command_line_option): New method.
2565 (recording::context::append_command_line_options): New method.
2566 (recording::context::dump_reproducer_to_file): Add command-line
2567 options.
2568 * jit-recording.h: Within namespace gcc::jit...
2569 (recording::context::add_command_line_option): New method.
2570 (recording::context::append_command_line_options): New method.
2571 (recording::context::m_command_line_options): New field.
2572 * libgccjit++.h (gccjit::context::add_command_line_option): New
2573 method.
2574 * libgccjit.c (gcc_jit_context_add_command_line_option): New API
2575 entrypoint.
2576 * libgccjit.h (gcc_jit_context_add_command_line_option): New API
2577 entrypoint.
2578 (LIBGCCJIT_HAVE_gcc_jit_context_add_command_line_option): New
2579 macro.
2580 * libgccjit.map: Put existing symbols within LIBGCCJIT_ABI_0; add
2581 LIBGCCJIT_ABI_1 and gcc_jit_context_add_command_line_option.
2582
a6314e15
DM
25832015-06-30 David Malcolm <dmalcolm@redhat.com>
2584
2585 * jit-recording.c
2586 (gcc::jit::recording::context::dump_reproducer_to_file):
2587 Add pragma to generated reproducers to disable -Wunused-variable.
2588 Fix handling of NULL string options.
2589
adb6d84b
DM
25902015-06-30 David Malcolm <dmalcolm@redhat.com>
2591
2592 * docs/cp/topics/expressions.rst: Remove stray semicolon.
2593 * docs/cp/topics/functions.rst: Remove stray backslash.
2594 * docs/_build/texinfo/libgccjit.texi: Regenerate.
2595
f0889939
AM
25962015-06-25 Andrew MacLeod <amacleod@redhat.com>
2597
2598 * dummy-frontend.c: Remove ipa-ref.h and plugin-api.h from include list.
2599 * jit-playback.c: Likewise.
2600
9cad7a76
AM
26012015-06-25 Andrew Macleod <amacleod@redhat.com>
2602
2603 * jit-common.h: Don't include alias.h.
2604
41571b55
DM
26052015-06-17 David Malcolm <dmalcolm@redhat.com>
2606
2607 * libgccjit.c (gcc_jit_lvalue_access_field): Verify that the field
2608 is for the correct struct.
2609 (gcc_jit_rvalue_access_field): Likewise.
2610
abb226c9
AM
26112015-06-17 Andrew MacLeod <amacleod@redhat.com>
2612
2613 * dummy-frontend.c: Do not include input.h, line-map.h or is-a.h.
2614 * jit-common.h: Likewise.
2615 * jit-playback.c: Likewise.
2616
bd93aa1a
DM
26172015-06-16 David Malcolm <dmalcolm@redhat.com>
2618
2619 PR jit/66539
2620 * jit-recording.c: Within namespace gcc::jit::recording::
2621 (rvalue::get_debug_string_parens): New function.
2622 (binary_op::make_debug_string): Update to mimic C precedence
2623 rules.
2624 (binary_op_precedence): New array.
2625 (binary_op::get_precedence): New function.
2626 (comparison::make_debug_string): Update to mimic C precedence
2627 rules.
2628 (comparison_precedence): New array.
2629 (comparison::get_precedence): New function.
2630 (cast::make_debug_string): Update to mimic C precedence rules.
2631 (call::make_debug_string): Likewise.
2632 (call_through_ptr::make_debug_string): Likewise.
2633 (array_access::make_debug_string): Likewise.
2634 (access_field_of_lvalue::make_debug_string): Likewise.
2635 (access_field_rvalue::make_debug_string): Likewise.
2636 (dereference_field_rvalue::make_debug_string): Likewise.
2637 (dereference_rvalue::make_debug_string): Likewise.
2638 (get_address_of_lvalue::make_debug_string): Likewise.
2639 * jit-recording.h: Within namespace gcc::jit::recording::
2640 (precedence): New enum.
2641 (rvalue::rvalue): Initialize field "m_parenthesized_string".
2642 (rvalue::get_debug_string_parens): New method.
2643 (rvalue::get_precedence): New pure virtual function.
2644 (rvalue::m_parenthesized_string): New field.
2645 (param::get_precedence): New function.
2646 (global::get_precedence): New function.
2647 (memento_of_new_rvalue_from_const::get_precedence): New function.
2648 (memento_of_new_string_literal::get_precedence): New function.
2649 (unary_op::get_precedence): New function.
2650 (binary_op::get_precedence): New function.
2651 (comparison::get_precedence): New function.
2652 (cast::get_precedence): New function.
2653 (call::get_precedence): New function.
2654 (call_through_ptr::get_precedence): New function.
2655 (array_access::get_precedence): New function.
2656 (access_field_of_lvalue::get_precedence): New function.
2657 (access_field_rvalue::get_precedence): New function.
2658 (dereference_field_rvalue::get_precedence): New function.
2659 (dereference_rvalue::get_precedence): New function.
2660 (get_address_of_lvalue::get_precedence): New function.
2661 (local::get_precedence): New function.
2662
83c1b80e
MK
26632015-06-09 Matthias Klose <doko@ubuntu.com>
2664
2665 * Make-lang.in (jit.install-common): Install headers using INSTALL_DATA.
2666
13fdf2e2
AM
26672015-06-08 Andrew MacLeod <amacleod@redhat.com>
2668
2669 * dummy-frontend.c : Adjust include files.
2670 * jit-common.h : Likewise.
2671 * jit-playback.c : Likewise.
2672
e4753451
DM
26732015-06-05 David Malcolm <dmalcolm@redhat.com>
2674
2675 * dummy-frontend.c
2676 (jit_langhook_post_compilation_parsing_cleanups): Remove.
2677 (LANG_HOOKS_POST_COMPILATION_PARSING_CLEANUPS): Remove
2678 * jit-playback.c (gcc::jit::playback::context::new_global): Add
2679 call to varpool_node::finalize_decl.
2680 (gcc::jit::playback::context::finalize_global_decls): Remove.
2681 * jit-playback.h
2682 (gcc::jit::playback::context::finalize_global_decls): Remove.
2683
e7547bc6
DM
26842015-06-05 David Malcolm <dmalcolm@redhat.com>
2685
2686 * dummy-frontend.c (jit_langhook_write_globals): Rename to...
2687 (jit_langhook_post_compilation_parsing_cleanups): ...this, and
2688 eliminate calls to finalize_compilation_unit and
2689 write_global_decls_2.
2690 (LANG_HOOKS_WRITE_GLOBALS): Rename to...
2691 (LANG_HOOKS_POST_COMPILATION_PARSING_CLEANUPS): ...this and
2692 redirect from jit_langhook_write_globals to
2693 jit_langhook_post_compilation_parsing_cleanups.
2694 * jit-playback.c
2695 (gcc::jit::playback::context::write_global_decls_1): Rename to...
2696 (gcc::jit::playback::context::finalize_global_decls): ...this.
2697 (gcc::jit::playback::context::write_global_decls_1): Delete.
2698 * jit-playback.h
2699 (gcc::jit::playback::context::write_global_decls_1): Rename to...
2700 (gcc::jit::playback::context::finalize_global_decls): ...this.
2701 (gcc::jit::playback::context::write_global_decls_1): Delete.
2702
ecb9f223
AM
27032015-06-04 Andrew MacLeod <amacleod@redhat.com>
2704
2705 * dummy-frontend.c: Adjust includes for restructured coretypes.h.
2706 * jit-common.h: Likewise.
2707 * jit-playback.c: Likewise.
2708
2637afb7
DM
27092015-05-12 David Malcolm <dmalcolm@redhat.com>
2710
2711 * jit-builtins.c: Include vec.h before target.h.
2712
46bf0b0a
JW
27132015-04-27 Jim Wilson <jim.wilson@linaro.org>
2714
2715 * Make-lang.in (jit.mostlyclean): Remove shared libraries and object
2716 files.
2717
51c5c6b5
DM
27182015-04-09 David Malcolm <dmalcolm@redhat.com>
2719
2720 PR jit/65691
2721 * docs/cp/topics/expressions.rst (Simple expressions): Fix copy
2722 and paste error in description of gccjit::context::one.
2723 * docs/topics/expressions.rst (Simple expressions): Likewise in
2724 description of gcc_jit_context_one.
2725 * docs/_build/texinfo/libgccjit.texi: Regenerate.
2726
f40fd895
UB
27272015-03-13 Uros Bizjak <ubizjak@gmail.com>
2728
2729 * jit-recording.c (dump::write): Also check vasprintf return value.
2730 (recording::context::add_error_va): Ditto.
2731 (recording::string::from_printf): Ditto.
2732
18eb0d13
DM
27332015-03-13 David Malcolm <dmalcolm@redhat.com>
2734
2735 * docs/internals/index.rst (Packaging notes): New section.
2736 * docs/_build/texinfo/libgccjit.texi: Regenerate.
2737
7ef96183
DM
27382015-03-05 David Malcolm <dmalcolm@redhat.com>
2739
2740 * docs/cp/intro/tutorial03.rst: Add missing arguments to
2741 gccjit::block::end_with_conditional call. Add on_true/on_false
2742 comments. Tweak the wording.
2743 * docs/intro/tutorial03.rst: Add missing arguments to
2744 gcc_jit_block_end_with_conditional call. Add some clarifying
2745 comments.
2746 * docs/topics/compilation.rst: Tweak the wording to avoid an
2747 ambiguous use of "this".
2748 * docs/topics/contexts.rst: Fix a typo.
2749 * docs/topics/expressions.rst (GCC_JIT_BINARY_OP_MINUS): Remove
2750 a stray backtick.
2751 * docs/_build/texinfo/libgccjit.texi: Regenerate.
2752
56a9f6bc
TS
27532015-02-24 Thomas Schwinge <thomas@codesourcery.com>
2754
2755 PR libgomp/64625
2756 * jit-builtins.c (DEF_FUNCTION_TYPE_VAR_8)
2757 (DEF_FUNCTION_TYPE_VAR_12): Remove macros.
2758 (DEF_FUNCTION_TYPE_VAR_7, DEF_FUNCTION_TYPE_VAR_11): New macros.
2759 * jit-builtins.h (DEF_FUNCTION_TYPE_VAR_8)
2760 (DEF_FUNCTION_TYPE_VAR_12): Remove macros.
2761 (DEF_FUNCTION_TYPE_VAR_7, DEF_FUNCTION_TYPE_VAR_11): New macros.
2762
a4be4e91
DM
27632015-02-04 David Malcolm <dmalcolm@redhat.com>
2764
2765 PR jit/64257
2766 * docs/conf.py (html_theme): Change from 'pyramid'
2767 to 'sphinxdoc'.
2768
f435bff3
DM
27692015-02-04 David Malcolm <dmalcolm@redhat.com>
2770
2771 * docs/topics/contexts.rst (gcc_jit_context_acquire): Fix
2772 typo.
2773 * docs/_build/texinfo/libgccjit.texi: Regenerate.
2774
0ed4f017
DM
27752015-02-03 David Malcolm <dmalcolm@redhat.com>
2776
2777 * jit-logging.h (gcc::jit::log_user::log): Make const.
2778 * jit-recording.c (gcc::jit::recording::context::set_str_option):
2779 Log the new value of the option.
2780 (gcc::jit::recording::context::set_int_option): Likewise.
2781 (gcc::jit::recording::context::set_bool_option): Likewise.
2782 (gcc::jit::recording::context::compile): Log the value of all
2783 options.
2784 (gcc::jit::recording::context::compile_to_file): Likewise.
2785 (gcc::jit::recording::context::log_all_options): New function.
2786 (gcc::jit::recording::context::log_str_option): New function.
2787 (gcc::jit::recording::context::log_int_option): New function.
2788 (gcc::jit::recording::context::log_bool_option): New function.
2789 * jit-recording.h (gcc::jit::recording::context::log_all_options):
2790 New function.
2791 (gcc::jit::recording::context::log_str_option): New function.
2792 (gcc::jit::recording::context::log_int_option): New function.
2793 (gcc::jit::recording::context::log_bool_option): New function.
2794 * docs/internals/test-hello-world.exe.log.txt: Update for above
2795 changes.
2796 * docs/_build/texinfo/libgccjit.texi: Regenerate.
2797
2cb844ce
DM
27982015-02-03 David Malcolm <dmalcolm@redhat.com>
2799
2800 PR jit/64810
2801 * Make-lang.in (jit_OBJS): Add jit/jit-spec.o and gcc.o.
2802 (LIBGCCJIT_FILENAME): Add EXTRA_GCC_OBJS.
2803 * jit-playback.c: Include gcc.h.
2804 (gcc::jit::playback::context::compile): Move mutex acquisition
2805 to before the call to make_fake_args.
2806 (append_arg_from_driver): New function.
2807 (gcc::jit::playback::context::make_fake_args): On the first call,
2808 call into driver_get_configure_time_options to get configure-time
2809 default options and cache them. Add them to the args for
2810 toplev::main.
2811 * jit-spec.c: New source file.
2812 * docs/internals/test-hello-world.exe.log.txt: Update to reflect
2813 above changes.
2814 * docs/_build/texinfo/libgccjit.texi: Regenerate.
2815
16a71c50
DM
28162015-02-02 David Malcolm <dmalcolm@redhat.com>
2817
2818 PR jit/64810
2819 * dummy-frontend.c (jit_langhook_type_for_mode): Support
2820 TYPE_MODE (long_long_integer_type_node).
2821
53c04ec9
DM
28222015-01-27 David Malcolm <dmalcolm@redhat.com>
2823
2824 * docs/internals/test-hello-world.exe.log.txt: Add example version
2825 lines.
2826 * docs/_build/texinfo/libgccjit.texi: Regenerate.
2827 * jit-common.h (gcc::jit::dump::get_file): New accessor.
2828 * jit-logging.c: Include toplev.h.
2829 (gcc::jit::logger::logger): Log the GCC version.
2830 * jit-recording.c: Include toplev.h.
2831 (gcc:jit::recording::context::dump_reproducer_to_file): Log the
2832 GCC version.
2833
dc44ee3a
DM
28342015-01-26 David Malcolm <dmalcolm@redhat.com>
2835
2836 * docs/topics/compilation.rst (gcc_jit_result_get_code): Fix typo.
2837 * docs/topics/contexts.rst (gcc_jit_context_get_last_error): The
2838 error buffer is only valid until the next call to the context.
2839 * docs/_build/texinfo/libgccjit.texi: Regenerate.
2840 * libgccjit.h (gcc_jit_context_get_first_error): Reword the
2841 comment to omit mention of compiling.
2842 (gcc_jit_context_get_last_error): The error buffer is only valid
2843 until the next call to the context.
2844
3349605d
DM
28452015-01-26 David Malcolm <dmalcolm@redhat.com>
2846
2847 PR jit/64708
2848 * config-lang.in (compilers): Drop "libgccjit.so".
2849
6fc2d0f3
DM
28502015-01-23 David Malcolm <dmalcolm@redhat.com>
2851
2852 PR jit/64721
2853 * jit-playback.c (gcc::jit::playback::context::compile): Construct
2854 toplev instances with init_signals=false.
2855
fdce7209
DM
28562015-01-19 David Malcolm <dmalcolm@redhat.com>
2857
2858 * docs/cp/topics/results.rst: Rename to...
2859 * docs/cp/topics/compilation.rst: ...this, and add section on
2860 ahead-of-time compilation.
2861 * docs/cp/topics/index.rst: Update for renaming of results.rst
2862 to compilation.rst.
2863 * docs/examples/emit-alphabet.bf: New file, a sample "brainf"
2864 script.
2865 * docs/examples/tut05-bf.c: New file, implementing a compiler
2866 for "brainf".
2867 * docs/internals/test-hello-world.exe.log.txt: Update to reflect
2868 changes to logger output.
2869 * docs/intro/index.rst: Add tutorial05.rst
2870 * docs/intro/tutorial05.rst: New file.
2871 * docs/topics/results.rst: Rename to...
2872 * docs/topics/compilation.rst: ...this, and add section on
2873 ahead-of-time compilation.
2874 * docs/topics/index.rst: Update for renaming of results.rst to
2875 compilation.rst.
2876 * docs/_build/texinfo/libgccjit.texi: Regenerate.
2877 * jit-playback.c (gcc::jit::playback::context::compile): Convert
2878 return type from result * to void. Move the code to convert to
2879 dso and dlopen the result to a new pure virtual "postprocess"
2880 method.
2881 (gcc::jit::playback::compile_to_memory::compile_to_memory): New
2882 function.
2883 (gcc::jit::playback::compile_to_memory::postprocess): New
2884 function, based on playback::context::compile.
2885 (gcc::jit::playback::compile_to_file::compile_to_file): New
2886 function.
2887 (gcc::jit::playback::compile_to_file::postprocess): New function.
2888 (gcc::jit::playback::compile_to_file::copy_file): New function.
2889 (gcc::jit::playback::context::convert_to_dso): Move internals
2890 to...
2891 (gcc::jit::playback::context::invoke_driver): New method. Add
2892 "-shared" and "-c" options to driver's argv as needed.
2893 * jit-playback.h: Include "timevar.h".
2894 (gcc::jit::playback::context::compile): Convert return type from
2895 result * to void.
2896 (gcc::jit::playback::context::postprocess): New pure virtual
2897 function, making this an abstract base class.
2898 (gcc::jit::playback::context::get_tempdir): New accessor.
2899 (gcc::jit::playback::context::invoke_driver): New function.
2900 (class gcc::jit::playback::compile_to_memory): New subclass of
2901 playback::context.
2902 (class gcc::jit::playback::compile_to_file): Likewise.
2903 * jit-recording.c (gcc::jit::recording::context::compile): Use a
2904 playback::compile_to_memory, and extract its result.
2905 (gcc::jit::recording::context::compile_to_file): New function.
2906 * jit-recording.h (gcc::jit::recording::context::compile_to_file):
2907 New function.
2908 * libgccjit++.h (gccjit::context::compile_to_file): New method.
2909 * libgccjit.c (gcc_jit_context_compile): Update log message to
2910 clarify that this is an in-memory compile.
2911 (gcc_jit_context_compile_to_file): New function.
2912 * libgccjit.h (gcc_jit_context): Clarify that you can compile
2913 a context more than once, and that you can compile to a file
2914 as well as to memory.
2915 (gcc_jit_result): Clarify that this is the result of an
2916 in-memory compilation.
2917 (gcc_jit_context_compile): Clarify that you can compile, and that
2918 this is an in-memory compilation.
2919 (enum gcc_jit_output_kind): New enum.
2920 (gcc_jit_context_compile_to_file): New function.
2921 (gcc_jit_context_enable_dump): Clarify comment to cover both forms
2922 of compilation.
2923 * libgccjit.map (gcc_jit_context_compile_to_file): New API
2924 entrypoint.
2925 * notes.txt: Update to show the playback::context::postprocess
2926 virtual function.
2927
450e225b
DM
29282015-01-19 David Malcolm <dmalcolm@redhat.com>
2929
2930 * jit-recording.c
2931 (gcc::jit::recording::memento_of_new_string_literal::make_debug_string):
2932 Add missing format string.
2933
499de348
DM
29342015-01-16 David Malcolm <dmalcolm@redhat.com>
2935
2936 * Make-lang.in (lang_checks_parallelized): Add "check-jit".
2937 (check_jit_parallelize): Set this to an arbitrary value (10).
2938
e989e68d
JJ
29392015-01-16 Jakub Jelinek <jakub@redhat.com>
2940
2941 * jit-builtins.h (DEF_FUNCTION_TYPE_VAR_5): Fix spelling of
2942 last argument.
2943 (DEF_FUNCTION_TYPE_VAR_8, DEF_FUNCTION_TYPE_VAR_12): Define and
2944 undef afterwards.
2945 * jit-builtins.c (DEF_FUNCTION_TYPE_VAR_8, DEF_FUNCTION_TYPE_VAR_12):
2946 Likewise.
2947
179ed8f5
RS
29482015-01-15 Richard Sandiford <richard.sandiford@arm.com>
2949
2950 Update copyright years in docs/.
2951
96a87981
DM
29522015-01-15 David Malcolm <dmalcolm@redhat.com>
2953
2954 * libgccjit.c (gcc_jit_block_add_assignment_op): Check that the
2955 lvalue and the rvalue are of compatible type.
2956
86d0ac88
DM
29572015-01-13 David Malcolm <dmalcolm@redhat.com>
2958
2959 * docs/cp/topics/contexts.rst (Debugging): Add
2960 gccjit::context::dump_reproducer_to_file.
2961 * docs/internals/index.rst (Design notes): New section,
2962 discussing input validation and
2963 gcc_jit_context_dump_reproducer_to_file.
2964 * docs/topics/contexts.rst (Debugging): Add
2965 gcc_jit_context_dump_reproducer_to_file.
2966 * docs/_build/texinfo/libgccjit.texi: Regenerate.
2967 * jit-common.h (gcc::jit::dump::get_context): New accessor.
2968 * jit-recording.c: Include "hash-map.h".
2969 Within namespace ::gcc::jit...
2970 (dump::write): Flush each line.
2971 (dump::make_location): Pass false for new param "created_by_user".
2972 (class allocator): New class.
2973 (allocator::~allocator): New function.
2974 (allocator::xstrdup_printf): New function.
2975 (allocator::xstrdup_printf_va): New function.
2976 (class reproducer): New subclass of dump.
2977 (reproducer::reproducer): New function.
2978 (reproducer::write_params): New function.
2979 (reproducer::write_args): New function.
2980 (reproducer::make_identifier): New function.
2981 (reproducer::make_tmp_identifier): New function.
2982 (reproducer::get_identifier): New pair of functions.
2983 (reproducer::get_identifier_as_rvalue): New function.
2984 (reproducer::get_identifier_as_lvalue): New function.
2985 (reproducer::get_identifier_as_type): New function.
2986 (reproducer::xstrdup_printf): New function.
2987 (recording::context::context): Initialize m_toplevel_ctxt.
2988 (recording::context::new_location): Add param created_by_user.
2989 (str_option_reproducer_strings): New table of strings.
2990 (int_option_reproducer_strings): Likewise.
2991 (bool_option_reproducer_strings): Likewise.
2992 (get_type_enum_strings): Likewise.
2993 (names_of_function_kinds): Likewise.
2994 (global_kind_reproducer_strings): Likewise.
2995 (unary_op_reproducer_strings): Likewise.
2996 (binary_op_reproducer_strings): Likewise.
2997 (comparison_reproducer_strings): Likewise.
2998 Within namespace ::gcc::jit::recording::...
2999 (context::dump_reproducer_to_file): New function.
3000 (string::write_reproducer): Likewise.
3001 (location::write_reproducer): Likewise.
3002 (type::access_as_type): Likewise.
3003 (memento_of_get_type::write_reproducer): Likewise.
3004 (memento_of_get_pointer::write_reproducer): Likewise.
3005 (memento_of_get_const::write_reproducer): Likewise.
3006 (memento_of_get_volatile::write_reproducer): Likewise.
3007 (array_type::write_reproducer): Likewise.
3008 (function_type::write_reproducer): Likewise.
3009 (function_type::write_deferred_reproducer): Likewise.
3010 (field::write_reproducer): Likewise.
3011 (struct_::access_as_type): Likewise.
3012 (struct_::write_reproducer): Likewise.
3013 (union_::write_reproducer): Likewise.
3014 (fields::write_reproducer): Likewise.
3015 (rvalue::access_as_rvalue): Likewise.
3016 (lvalue::access_as_rvalue): Likewise.
3017 (lvalue::access_as_lvalue): Likewise.
3018 (param::access_as_rvalue): Likewise.
3019 (param::access_as_lvalue): Likewise.
3020 (param::write_reproducer): Likewise.
3021 (function::write_reproducer): Likewise.
3022 (block::write_reproducer): Likewise.
3023 (global::write_reproducer): Likewise.
3024 (memento_of_new_rvalue_from_const <int>::write_reproducer):
3025 Likewise.
3026 (memento_of_new_rvalue_from_const <long>::write_reproducer):
3027 Likewise.
3028 (memento_of_new_rvalue_from_const <double>::write_reproducer):
3029 Likewise.
3030 (memento_of_new_rvalue_from_const <void *>::write_reproducer):
3031 Likewise.
3032 (memento_of_new_string_literal::write_reproducer): Likewise.
3033 (unary_op::write_reproducer): Likewise.
3034 (binary_op::write_reproducer): Likewise.
3035 (comparison::write_reproducer): Likewise.
3036 (cast::write_reproducer): Likewise.
3037 (call::write_reproducer): Likewise.
3038 (call_through_ptr::write_reproducer): Likewise.
3039 (array_access::write_reproducer): Likewise.
3040 (access_field_of_lvalue::write_reproducer): Likewise.
3041 (access_field_rvalue::write_reproducer): Likewise.
3042 (dereference_field_rvalue::write_reproducer): Likewise.
3043 (dereference_rvalue::write_reproducer): Likewise.
3044 (get_address_of_lvalue::write_reproducer): Likewise.
3045 (local::write_reproducer): Likewise.
3046 (eval::write_reproducer): Likewise.
3047 (assignment::write_reproducer): Likewise.
3048 (assignment_op::write_reproducer): Likewise.
3049 (comment::write_reproducer): Likewise.
3050 (conditional::write_reproducer): Likewise.
3051 (jump::write_reproducer): Likewise.
3052 (return_::write_reproducer): Likewise.
3053 * jit-recording.h (gcc::jit::reproducer): New forward declararion.
3054 Within namespace ::gcc::jit::recording::...
3055 (context::new_location): Add "created_by_user" param.
3056 (context::dump_reproducer_to_file): New method.
3057 (context::m_toplevel_ctxt): New field.
3058 (memento::write_reproducer): New pure virtual function.
3059 (memento::dyn_cast_location): New virtual function.
3060 (string::write_reproducer):
3061 (location::location): Add "created_by_user" param.
3062 (location::dyn_cast_location): New function.
3063 (location::created_by_user): New accessor.
3064 (location::write_reproducer): New function.
3065 (location::m_created_by_user): New field.
3066 (type::access_as_type): New virtual function.
3067 (location::write_reproducer): Likewise.
3068 (type::access_as_type): Likewise.
3069 (memento_of_get_type::write_reproducer): Likewise.
3070 (memento_of_get_pointer::write_reproducer): Likewise.
3071 (memento_of_get_const::write_reproducer): Likewise.
3072 (memento_of_get_volatile::write_reproducer): Likewise.
3073 (array_type::write_reproducer): Likewise.
3074 (function_type::write_reproducer): Likewise.
3075 (function_type::write_deferred_reproducer): Likewise.
3076 (field::write_reproducer): Likewise.
3077 (struct_::access_as_type): Likewise.
3078 (struct_::write_reproducer): Likewise.
3079 (union_::write_reproducer): Likewise.
3080 (union_::m_fields): Remove stray unused field.
3081 (fields::length): New accessor.
3082 (fields::get_field): New accessor.
3083 (fields::write_reproducer): New function.
3084 (rvalue::access_as_rvalue): Likewise.
3085 (lvalue::access_as_rvalue): Likewise.
3086 (lvalue::access_as_lvalue): Likewise.
3087 (param::access_as_rvalue): Likewise.
3088 (param::access_as_lvalue): Likewise.
3089 (param::write_reproducer): Likewise.
3090 (function::write_reproducer): Likewise.
3091 (block::write_reproducer): Likewise.
3092 (global::write_reproducer): Likewise.
3093 (memento_of_new_rvalue_from_const <HOST_TYPE>::write_reproducer):
3094 Likewise.
3095 (memento_of_new_string_literal::write_reproducer): Likewise.
3096 (unary_op::write_reproducer): Likewise.
3097 (binary_op::write_reproducer): Likewise.
3098 (comparison::write_reproducer): Likewise.
3099 (cast::write_reproducer): Likewise.
3100 (call::write_reproducer): Likewise.
3101 (call_through_ptr::write_reproducer): Likewise.
3102 (array_access::write_reproducer): Likewise.
3103 (access_field_of_lvalue::write_reproducer): Likewise.
3104 (access_field_rvalue::write_reproducer): Likewise.
3105 (dereference_field_rvalue::write_reproducer): Likewise.
3106 (dereference_rvalue::write_reproducer): Likewise.
3107 (get_address_of_lvalue::write_reproducer): Likewise.
3108 (local::write_reproducer): Likewise.
3109 (eval::write_reproducer): Likewise.
3110 (assignment::write_reproducer): Likewise.
3111 (assignment_op::write_reproducer): Likewise.
3112 (comment::write_reproducer): Likewise.
3113 (conditional::write_reproducer): Likewise.
3114 (jump::write_reproducer): Likewise.
3115 (return_::write_reproducer): Likewise.
3116 * libgccjit++.h (gccjit::context::dump_reproducer_to_file): New.
3117 * libgccjit.c (gcc_jit_context_new_location): Pass "true" as
3118 param "created_by_user".
3119 (gcc_jit_context_dump_reproducer_to_file): New API entrypoint.
3120 * libgccjit.h (gcc_jit_context_dump_reproducer_to_file): New API
3121 entrypoint.
3122 * libgccjit.map (gcc_jit_context_dump_reproducer_to_file): New API
3123 entrypoint.
3124
f6f2b019
DM
31252015-01-12 David Malcolm <dmalcolm@redhat.com>
3126
3127 * jit-recording.c (class gcc::jit::rvalue_usage_validator): New.
3128 (gcc::jit::rvalue_usage_validator::rvalue_usage_validator): New
3129 ctor.
3130 (gcc::jit::rvalue_usage_validator::visit): New function.
3131 (gcc::jit::recording::rvalue::verify_valid_within_stmt): New
3132 function.
3133 (gcc::jit::recording::rvalue::set_scope): New function.
3134 (gcc::jit::recording::function::function): Call set_scope on each
3135 param, issuing errors for any params that already have a function.
3136 (gcc::jit::recording::block::add_eval): Return the new statement;
3137 update the comment given that some error-checking now happens after
3138 this returns.
3139 (gcc::jit::recording::block::add_assignment): Likewise.
3140 (gcc::jit::recording::block::add_assignment_op): Likewise.
3141 (gcc::jit::recording::block::add_comment): Likewise.
3142 (gcc::jit::recording::block::end_with_conditional): Likewise.
3143 (gcc::jit::recording::block::end_with_jump): Likewise.
3144 (gcc::jit::recording::block::end_with_return): Likewise.
3145 (gcc::jit::recording::block::validate): Add a comment.
3146 (gcc::jit::recording::unary_op::visit_children): New function.
3147 (gcc::jit::recording::binary_op::visit_children): New function.
3148 (gcc::jit::recording::comparison::visit_children): New function.
3149 (gcc::jit::recording::cast::visit_children): New function.
3150 (gcc::jit::recording::call::visit_children): New function.
3151 (gcc::jit::recording::call_through_ptr::visit_children): New function.
3152 (gcc::jit::recording::array_access::visit_children): New function.
3153 (gcc::jit::recording::access_field_of_lvalue::visit_children): New
3154 function.
3155 (gcc::jit::recording::access_field_rvalue::visit_children): New
3156 function.
3157 (gcc::jit::recording::dereference_field_rvalue::visit_children):
3158 New function.
3159 (gcc::jit::recording::dereference_rvalue::visit_children): New
3160 function.
3161 (gcc::jit::recording::get_address_of_lvalue::visit_children): New
3162 function.
3163 * jit-recording.h: Within namespace gcc::jit::recording...
3164 (class rvalue_visitor): New.
3165 (rvalue::rvalue): Initialize m_scope.
3166 (rvalue::get_loc): New accessor.
3167 (rvalue::verify_valid_within_stmt): New function.
3168 (rvalue::visit_children): New pure virtual function.
3169 (rvalue::set_scope): New function.
3170 (rvalue::get_scope): New function.
3171 (rvalue::dyn_cast_param): New function.
3172 (rvalue::m_scope): New field.
3173 (param::visit_children): New empty function.
3174 (param::dyn_cast_param): New function.
3175 (function::get_loc): New function.
3176 (block::add_eval): Return the new statement.
3177 (block::add_assignment): Likewise.
3178 (block::add_assignment_op): Likewise.
3179 (block::add_comment): Likewise.
3180 (block::end_with_conditional): Likewise.
3181 (block::end_with_jump): Likewise.
3182 (block::end_with_return): Likewise.
3183 (global::visit_children): New function.
3184 (memento_of_new_rvalue_from_const<HOST_TYPE>::visit_children):
3185 New function.
3186 (memento_of_new_string_literal::visit_children): New function.
3187 (unary_op::visit_children): New function.
3188 (binary_op::visit_children): New function.
3189 (comparison::visit_children): New function.
3190 (cast::visit_children): New function.
3191 (call::visit_children): New function.
3192 (call_through_ptr::visit_children): New function.
3193 (array_access::visit_children): New function.
3194 (access_field_of_lvalue::visit_children): New function.
3195 (access_field_rvalue::visit_children): New function.
3196 (dereference_field_rvalue::visit_children): New function.
3197 (dereference_rvalue::visit_children): New function.
3198 (get_address_of_lvalue::visit_children): New function.
3199 (local::local): Call set_scope.
3200 (local::visit_children): New function.
3201 (statement::get_block): Make public.
3202 * libgccjit.c (RETURN_VAL_IF_FAIL_PRINTF5): New macro.
3203 (RETURN_NULL_IF_FAIL_PRINTF5): New macro.
3204 (gcc_jit_context_new_function): Verify that each param has
3205 not yet been used for creating another function.
3206 (gcc_jit_block_add_eval): After creating the stmt, verify
3207 that the rvalue expression tree is valid to use within it.
3208 (gcc_jit_block_add_assignment): Likewise for the lvalue and
3209 rvalue expression trees.
3210 (gcc_jit_block_add_assignment_op): Likewise.
3211 (gcc_jit_block_end_with_conditional): Likewise for the boolval
3212 expression tree.
3213 (gcc_jit_block_end_with_return): Likewise for the rvalue
3214 expression tree.
3215 (gcc_jit_block_end_with_void_return): Remove return of "void",
3216 now that block::end_with_return is now non-void.
3217
1c35cc2c
DM
32182015-01-12 David Malcolm <dmalcolm@redhat.com>
3219
3220 * jit-playback.c (gcc::jit::playback::context::read_dump_file):
3221 Add missing fclose on error-handling path.
3222
791cfef8
DM
32232015-01-12 David Malcolm <dmalcolm@redhat.com>
3224
3225 * docs/cp/topics/expressions.rst (Global variables): Add
3226 enum gcc_jit_global_kind param to gccjit::context::new_global.
3227 * docs/topics/expressions.rst (Global variables): Likewise.
3228 Document the new enum.
3229 * docs/topics/results.rst (Compilation results): Document
3230 globals-handling.
3231 * docs/_build/texinfo/libgccjit.texi: Regenerate.
3232 * dummy-frontend.c (jit_langhook_write_globals): Call into the
3233 playback context's write_global_decls_1 and write_global_decls_2
3234 before and after calling symtab->finalize_compilation_unit ().
3235 * jit-playback.c: Include "debug.h".
3236 (gcc::jit::playback::context::new_global): Add "kind" param and
3237 use it to set TREE_PUBLIC, TREE_STATIC and DECL_EXTERNAL on the
3238 underlying VAR_DECL. Call varpool_node::get_create on the
3239 VAR_DECL, and add it to m_globals.
3240 (gcc::jit::playback::context::write_global_decls_1): New function.
3241 (gcc::jit::playback::context::write_global_decls_2): New function.
3242 * jit-playback.h (gcc::jit::playback::context::context): Call
3243 create on m_globals.
3244 (gcc::jit::playback::context::new_global): Add "kind" param.
3245 (gcc::jit::playback::context::write_global_decls_1): New function.
3246 (gcc::jit::playback::context::write_global_decls_2): New function.
3247 (gcc::jit::playback::context::m_globals): New field.
3248 * jit-recording.c (gcc::jit::recording::context::context):
3249 Initialize m_globals.
3250 (gcc::jit::recording::context::new_global): Add param "kind".
3251 Add the new global to m_globals.
3252 (gcc::jit::recording::context::dump_to_file): Dump the globals.
3253 (gcc::jit::recording::global::replay_into): Add field m_kind.
3254 (gcc::jit::recording::global::write_to_dump): New override.
3255 * jit-recording.h (gcc::jit::recording::context::new_global): Add
3256 param "kind".
3257 (gcc::jit::recording::context::m_globals): New field.
3258 (gcc::jit::recording::global::global): Add param kind.
3259 (gcc::jit::recording::global::write_to_dump): New override.
3260 (gcc::jit::recording::global::m_kind): New field.
3261 * jit-result.c (gcc::jit::result::get_global): New function.
3262 * jit-result.h (gcc::jit::result::get_global): New function.
3263 * libgccjit++.h (gccjit::context::new_global): Add "kind" param.
3264 * libgccjit.c (gcc_jit_context_new_global): Likewise.
3265 (gcc_jit_result_get_global): New API entrypoint.
3266 * libgccjit.h (gcc_jit_result_get_global): New API entrypoint.
3267 (enum gcc_jit_global_kind): New enum.
3268 (gcc_jit_context_new_global): API change: add "kind" param.
3269 * libgccjit.map (gcc_jit_result_get_global): New symbol.
3270
860e981c
DM
32712015-01-09 David Malcolm <dmalcolm@redhat.com>
3272
3273 * dummy-frontend.c: Include "fixed-value.h", "alias.h", "flags.h",
3274 "symtab.h", "inchash.h". Move include of "hash-set.h" much
3275 earlier.
3276 * jit-builtins.c: Remove redundant includes of "opts.h" and
3277 "tree.h".
3278 * jit-common.h: Include "hash-set.h", "input.h", "vec.h",
3279 "double-int.h", "alias.h", "flags.h", "symtab.h", "inchash.h".
3280 * jit-playback.c: Include "hashtab.h", "machmode.h", "input.h",
3281 "statistics.h", "vec.h", "double-int.h", "real.h",
3282 "fixed-value.h", "alias.h", "flags.h", "symtab.h", "tree-core.h",
3283 "inchash.h", "fold-const.h". Move include of "hash-set.h" to
3284 earlier.
3285 * jit-recording.c: Remove redundant includes of "opts.h" and
3286 "tree.h".
3287
ccce3b2a
DM
32882015-01-09 David Malcolm <dmalcolm@redhat.com>
3289
3290 * docs/cp/topics/expressions.rst (Simple expressions): Use
3291 ":c:type:" for C types. Document new overload of
3292 gcc::jit::context::new_rvalue.
3293 * docs/topics/expressions.rst (Simple expressions): Use
3294 ":c:type:" for C types. Document new entrypoint
3295 gcc_jit_context_new_rvalue_from_long.
3296 * docs/_build/texinfo/libgccjit.texi: Regenerate.
3297 * jit-playback.c: Within namespace gcc::jit::playback...
3298 (context::new_rvalue_from_int): Eliminate in favor of...
3299 (context::new_rvalue_from_const <int>): ...this.
3300 (context::new_rvalue_from_double): Eliminate in favor of...
3301 (context::new_rvalue_from_const <double>): ...this.
3302 (context::new_rvalue_from_const <long>): New.
3303 (context::new_rvalue_from_ptr): Eliminate in favor of...
3304 (context::new_rvalue_from_const <void *>): ...this.
3305 * jit-playback.h: Within namespace gcc::jit::playback...
3306 (context::new_rvalue_from_int): Eliminate in favor of...
3307 (context::new_rvalue_from_const <HOST_TYPE>): ...this.
3308 (context::new_rvalue_from_double): Likewise.
3309 (context::new_rvalue_from_ptr): Likewise.
3310 * jit-recording.c: Within namespace gcc::jit::recording...
3311 (context::new_rvalue_from_int): Eliminate.
3312 (context::new_rvalue_from_double): Likewise.
3313 (context::new_rvalue_from_ptr): Likewise.
3314 (class memento_of_new_rvalue_from_const <int>):
3315 Add explicit specialization.
3316 (class memento_of_new_rvalue_from_const <long>):
3317 Likewise.
3318 (class memento_of_new_rvalue_from_const <double>):
3319 Likewise.
3320 (class memento_of_new_rvalue_from_const <void *>):
3321 Likewise.
3322 (memento_of_new_rvalue_from_int::replay_into):
3323 Generalize into...
3324 (memento_of_new_rvalue_from_const <HOST_TYPE>::replay_into):
3325 ...this...
3326 (memento_of_new_rvalue_from_double::replay_into):
3327 ...allowing this...
3328 (memento_of_new_rvalue_from_ptr::replay_into):
3329 ...and this to be deleted.
3330 (memento_of_new_rvalue_from_int::make_debug_string):
3331 Convert to...
3332 (memento_of_new_rvalue_from_const <int>::make_debug_string):
3333 ...this.
3334 (memento_of_new_rvalue_from_double::make_debug_string):
3335 Convert to...
3336 (memento_of_new_rvalue_from_const <double>::make_debug_string):
3337 ...this.
3338 (memento_of_new_rvalue_from_ptr::make_debug_string)
3339 Convert to...
3340 (memento_of_new_rvalue_from_const <void *>::make_debug_string):
3341 ...this.
3342 (memento_of_new_rvalue_from_const <long>::make_debug_string):
3343 New function.
3344 * jit-recording.h: Within namespace gcc::jit::recording...
3345 (context::new_rvalue_from_int): Eliminate.
3346 (context::new_rvalue_from_double): Likewise.
3347 (context::new_rvalue_from_ptr): Likewise, all in favor of...
3348 (context::new_rvalue_from_const <HOST_TYPE>): New family of
3349 methods.
3350 (class memento_of_new_rvalue_from_int): Eliminate.
3351 (class memento_of_new_rvalue_from_double): Likewise.
3352 (class memento_of_new_rvalue_from_ptr): Likewise.
3353 (class memento_of_new_rvalue_from_const <HOST_TYPE>): New family
3354 of rvalue subclasses.
3355 * libgccjit++.h (gccjit::context::new_rvalue): New overload, for
3356 "long".
3357 * libgccjit.c (gcc_jit_context_new_rvalue_from_int): Update for
3358 rewriting of recording::context::new_rvalue_from_int to
3359 recording::context::new_rvalue_from_const <int>.
3360 (gcc_jit_context_new_rvalue_from_long): New API entrypoint.
3361 (gcc_jit_context_new_rvalue_from_double): Update for
3362 rewriting of recording::context::new_rvalue_from_double to
3363 recording::context::new_rvalue_from_const <double>.
3364 (gcc_jit_context_new_rvalue_from_ptr): Update for
3365 rewriting of recording::context::new_rvalue_from_ptr to
3366 recording::context::new_rvalue_from_const <void *>.
3367 * libgccjit.h (gcc_jit_context_new_rvalue_from_long): New API
3368 entrypoint.
3369 * libgccjit.map (gcc_jit_context_new_rvalue_from_long): Likewise.
3370
d2286af3
DM
33712015-01-09 David Malcolm <dmalcolm@redhat.com>
3372
3373 PR jit/64206
3374 * docs/internals/test-hello-world.exe.log.txt: Update, the log now
3375 shows tempdir creation/cleanup.
3376 * docs/_build/texinfo/libgccjit.texi: Regenerate.
3377 * jit-logging.h (class gcc::jit::log_user): Add gcc::jit::tempdir
3378 to the list of subclasses in the comment.
3379 * jit-playback.c (gcc::jit::playback::context::context): Add a
3380 comment clarifying when the tempdir gets cleaned up.
3381 (gcc::jit::playback::context::compile): Pass the context's logger,
3382 if any, to the tempdir.
3383 (gcc::jit::playback::context::dlopen_built_dso): When creating the
3384 gcc::jit::result, if GCC_JIT_BOOL_OPTION_DEBUGINFO is set, hand
3385 over ownership of the tempdir to it.
3386 * jit-result.c: Include "jit-tempdir.h".
3387 (gcc::jit::result::result): Add tempdir param, saving it as
3388 m_tempdir.
3389 (gcc::jit::result::~result): Delete m_tempdir.
3390 * jit-result.h (gcc::jit::result::result): Add tempdir param.
3391 (gcc::jit::result::m_tempdir): New field.
3392 * jit-tempdir.c (gcc::jit::tempdir::tempdir): Add logger param;
3393 add JIT_LOG_SCOPE.
3394 (gcc::jit::tempdir::create): Add JIT_LOG_SCOPE to log entry/exit,
3395 and log m_path_template and m_path_tempdir.
3396 (gcc::jit::tempdir::~tempdir): Add JIT_LOG_SCOPE to log
3397 entry/exit, and log the unlink and rmdir calls.
3398 * jit-tempdir.h: Include "jit-logging.h".
3399 (class gcc::jit::tempdir): Make this be a subclass of log_user.
3400 (gcc::jit::tempdir::tempdir): Add logger param.
3401 * notes.txt: Update to show the two possible places where the
3402 tempdir can be cleaned up.
3403
7c8db13e
DM
34042015-01-08 David Malcolm <dmalcolm@redhat.com>
3405
3406 * libgccjit.h (struct gcc_jit_context): Rewrite the descriptive
3407 comment.
3408
303e1d56
DM
34092015-01-08 David Malcolm <dmalcolm@redhat.com>
3410
3411 * docs/topics/contexts.rst (Error-handling): Document new
3412 entrypoint gcc_jit_context_get_last_error.
3413 * docs/_build/texinfo/libgccjit.texi: Regenerate.
3414 * jit-recording.c (gcc::jit::recording::context::context):
3415 Initialize new fields "m_last_error_str" and
3416 "m_owns_last_error_str".
3417 (gcc::jit::recording::context::~context): Clean up
3418 m_last_error_str, if needed.
3419 (gcc::jit::recording::context::add_error_va): Update
3420 m_last_error_str and m_owns_last_error_str, freeing the old
3421 value if appropriate.
3422 (gcc::jit::recording::context::get_last_error): New function.
3423 * jit-recording.h (gcc::jit::recording::context::get_last_error):
3424 New function.
3425 (gcc::jit::recording::context): New fields m_last_error_str and
3426 m_owns_last_error_str.
3427 * libgccjit.c (gcc_jit_context_get_last_error): New function.
3428 * libgccjit.h (gcc_jit_context_get_last_error): New declaration.
3429 * libgccjit.map (gcc_jit_context_get_last_error): New function.
3430
eb4c16eb
DM
34312015-01-08 David Malcolm <dmalcolm@redhat.com>
3432
3433 * Make-lang.in (jit_OBJS): Add jit/jit-logging.o.
3434 * docs/internals/index.rst (Overview of code structure): Mention
3435 gcc_jit_context_set_logfile, and embed the example logfile.
3436 * docs/internals/test-hello-world.exe.log.txt: New file: example
3437 of a logfile.
3438 * docs/topics/contexts.rst (Debugging): Add documentation
3439 for gcc_jit_context_set_logfile.
3440 * docs/_build/texinfo/libgccjit.texi: Regenerate.
3441 * dummy-frontend.c: Include "jit-logging.h".
3442 (jit_langhook_init): Assert that there is an active playback
3443 context. If it has a logger, log entry/exit to this function.
3444 (jit_langhook_write_globals): Likewise.
3445 * jit-common.h (gcc::jit::logger): New forward declaration.
3446 * jit-logging.c: New file.
3447 * jit-logging.h: New file.
3448 * jit-playback.c: Include "jit-logging.h".
3449 (gcc::jit::playback::context::context): Initialize the log_user
3450 base class from the recording context's logger (if any). Use
3451 JIT_LOG_SCOPE to log entry/exit from the function body.
3452 (gcc::jit::playback::context::~context): Use JIT_LOG_SCOPE to
3453 log entry/exit from the function body.
3454 (gcc::jit::playback::build_stmt_list): Likewise.
3455 (gcc::jit::playback::function::postprocess): Likewise.
3456 (gcc::jit::playback::context::compile): Likewise. Log the
3457 entry/exit to toplev::main and toplev::finalize. Log the
3458 fake argv passed to toplev::main.
3459 (gcc::jit::playback::context::acquire_mutex): Use JIT_LOG_SCOPE to
3460 log entry/exit from the function body.
3461 (gcc::jit::playback::context::release_mutex): Likewise.
3462 (gcc::jit::playback::context::make_fake_args): Likewise.
3463 (gcc::jit::playback::context::extract_any_requested_dumps):
3464 Likewise.
3465 (gcc::jit::playback::context::convert_to_dso): Likewise. Also,
3466 log the arguments that the driver is invoked with.
3467 (gcc::jit::playback::context::dlopen_built_dso): Likewise. Pass
3468 the logger to the result object.
3469 (gcc::jit::playback::context::replay): Use JIT_LOG_SCOPE to
3470 log entry/exit from the function body.
3471 (gcc::jit::playback::context::dump_generated_code): Likewise.
3472 (gcc::jit::playback::context::handle_locations): Likewise.
3473 * jit-playback.h (gcc::jit::playback::context): Make this be
3474 a subclass of gcc::jit::log_user.
3475 * jit-recording.c: Include "jit-logging.h".
3476 (gcc::jit::recording::context::context: Initialize the logger to
3477 NULL for root contexts, or to the parent's logger for child
3478 contexts.
3479 (gcc::jit::recording::context::~context): Use JIT_LOG_SCOPE to
3480 log entry/exit from the function body.
3481 (gcc::jit::recording::context::replay_into): Likewise.
3482 (gcc::jit::recording::context::disassociate_from_playback):
3483 Likewise.
3484 (gcc::jit::recording::context::compile): Likewise.
3485 (recording::context::add_error_va): Likewise. Also, log the
3486 error.
3487 (gcc::jit::recording::context::validate): Use JIT_LOG_SCOPE to
3488 log entry/exit from the function body.
3489 * jit-recording.h: Include "jit-logging.h".
3490 (gcc::jit::recording::context): Make this be a subclass of
3491 gcc::jit::log_user.
3492 * jit-result.c: Include "jit-common.h" and "jit-logging.h".
3493 (gcc::jit::result::result): Add logger param, recording it.
3494 Use JIT_LOG_SCOPE to log entry/exit from the function body.
3495 (gcc::jit::result::~result(): Use JIT_LOG_SCOPE to
3496 log entry/exit from the function body.
3497 (gcc::jit::result::get_code): Likewise.
3498 * jit-result.h (gcc::jit::result): Make this be a subclass of
3499 gcc::jit::log_user.
3500 (gcc::jit::result::result): Add logger parameter.
3501 * libgccjit++.h (gccjit::context::set_logfile): New function.
3502 * libgccjit.c: Include "jit-logging.h".
3503 (gcc_jit_context_acquire): Log the context.
3504 (gcc_jit_context_release): Use JIT_LOG_FUNC to
3505 log entry/exit from the function body, and log the context.
3506 (gcc_jit_context_new_child_context): Likewise, logging both
3507 contexts.
3508 (gcc_jit_context_new_location): Use JIT_LOG_FUNC to
3509 log entry/exit from the function body.
3510 (gcc_jit_context_get_type): Likewise.
3511 (gcc_jit_context_get_int_type): Likewise.
3512 (gcc_jit_context_new_array_type): Likewise.
3513 (gcc_jit_context_new_field): Likewise.
3514 (gcc_jit_context_new_struct_type): Likewise.
3515 (gcc_jit_context_new_opaque_struct): Likewise.
3516 (gcc_jit_struct_set_fields): Likewise.
3517 (gcc_jit_context_new_union_type): Likewise.
3518 (gcc_jit_context_new_function_ptr_type): Likewise.
3519 (gcc_jit_context_new_param): Likewise.
3520 (gcc_jit_context_new_function): Likewise.
3521 (gcc_jit_context_get_builtin_function): Likewise.
3522 (gcc_jit_function_get_param): Likewise.
3523 (gcc_jit_function_dump_to_dot): Likewise.
3524 (gcc_jit_function_new_block): Likewise.
3525 (gcc_jit_context_new_global): Likewise.
3526 (gcc_jit_context_new_rvalue_from_int): Likewise.
3527 (gcc_jit_context_zero): Likewise.
3528 (gcc_jit_context_one): Likewise.
3529 (gcc_jit_context_new_rvalue_from_double): Likewise.
3530 (gcc_jit_context_new_rvalue_from_ptr): Likewise.
3531 (gcc_jit_context_null): Likewise.
3532 (gcc_jit_context_new_string_literal): Likewise.
3533 (gcc_jit_context_new_unary_op): Likewise.
3534 (gcc_jit_context_new_binary_op): Likewise.
3535 (gcc_jit_context_new_comparison): Likewise.
3536 (gcc_jit_context_new_call): Likewise.
3537 (gcc_jit_context_new_call_through_ptr): Likewise.
3538 (gcc_jit_context_new_cast): Likewise.
3539 (gcc_jit_context_new_array_access): Likewise.
3540 (gcc_jit_lvalue_access_field): Likewise.
3541 (gcc_jit_rvalue_access_field): Likewise.
3542 (gcc_jit_rvalue_dereference_field): Likewise.
3543 (gcc_jit_rvalue_dereference): Likewise.
3544 (gcc_jit_lvalue_get_address): Likewise.
3545 (gcc_jit_function_new_local): Likewise.
3546 (gcc_jit_block_add_eval): Likewise.
3547 (gcc_jit_block_add_assignment): Likewise.
3548 (gcc_jit_block_add_assignment_op): Likewise.
3549 (gcc_jit_block_end_with_conditional): Likewise.
3550 (gcc_jit_block_add_comment): Likewise.
3551 (gcc_jit_block_end_with_jump): Likewise.
3552 (gcc_jit_block_end_with_return): Likewise.
3553 (gcc_jit_block_end_with_void_return): Likewise.
3554 (gcc_jit_context_set_str_option): Likewise.
3555 (gcc_jit_context_set_int_option): Likewise.
3556 (gcc_jit_context_set_bool_option): Likewise.
3557 (gcc_jit_context_enable_dump): Likewise.
3558 (gcc_jit_context_compile): Likewise. Also log the context,
3559 and the result.
3560 (gcc_jit_context_dump_to_file): Likewise.
3561 (gcc_jit_context_set_logfile): New function.
3562 (gcc_jit_context_get_first_error): Use JIT_LOG_FUNC to
3563 log entry/exit from the function body.
3564 (gcc_jit_result_get_code): Likewise. Also log the fnname)
3565 and the ptr to be returned.
3566 (gcc_jit_result_release): Likewise. Also log the result.
3567 * libgccjit.h: Include <stdio.h>, since we need FILE *.
3568 (gcc_jit_context_set_logfile): New declaration.
3569 * libgccjit.map (gcc_jit_context_set_logfile): New.
3570
c211cd23
DM
35712015-01-07 David Malcolm <dmalcolm@redhat.com>
3572
3573 * jit-recording.h (gcc::jit::recording::type::is_void): New
3574 virtual function.
3575 (gcc::jit::recording::memento_of_get_type::is_void): New
3576 function, overriding default implementation.
3577 * libgccjit.c (gcc_jit_rvalue_dereference): Verify that
3578 the underlying type is not "void".
3579
18146f45
DM
35802015-01-07 David Malcolm <dmalcolm@redhat.com>
3581
3582 * docs/topics/expressions.rst (Unary Operations): Add
3583 GCC_JIT_UNARY_OP_ABS.
3584 * jit-playback.c (gcc::jit::playback::context::new_unary_op):
3585 Likewise.
3586 * jit-recording.c (unary_op_strings): Likewise.
3587 * libgccjit.c (gcc_jit_context_new_unary_op): Update checking
3588 of "op" to reflect addition of GCC_JIT_UNARY_OP_ABS.
3589 * libgccjit.h (enum gcc_jit_unary_op): Add GCC_JIT_UNARY_OP_ABS.
3590 * docs/_build/texinfo/libgccjit.texi: Regenerate.
3591
11af98ff
DM
35922015-01-07 David Malcolm <dmalcolm@redhat.com>
3593
3594 * jit-recording.h (gcc::jit::recording::memento_of_get_type): Fix
3595 typo in comment.
3596
433d16df
DM
35972015-01-07 David Malcolm <dmalcolm@redhat.com>
3598
3599 * TODO.rst (Test suite): Remove item about running C++ testcases.
3600 * docs/internals/index.rst (Working on the JIT library): Add
3601 "c++" to the enabled languages in the suggested "configure"
3602 invocation, and add a description of why this is necessary.
3603 * docs/_build/texinfo/libgccjit.texi: Regenerate.
3604
50bb6c8e
DM
36052015-01-07 David Malcolm <dmalcolm@redhat.com>
3606
3607 * docs/internals/index.rst: Update to reflect that built
3608 testcases are now test-foo.c.exe, rather than test-foo.exe.
3609 * docs/_build/texinfo/libgccjit.texi: Regenerate.
3610
1e3b6a3d
JJ
36112015-01-05 Jakub Jelinek <jakub@redhat.com>
3612
3613 Update copyright years.
3614
e8af59bc
DM
36152014-12-19 David Malcolm <dmalcolm@redhat.com>
3616
3617 * jit-playback.c (gcc::jit::playback::context::build_cast): In
3618 case BOOLEAN_TYPE, don't assume that the source expression is
3619 of type "int".
3620
5afd44e3
DM
36212014-12-19 David Malcolm <dmalcolm@redhat.com>
3622
3623 * jit-recording.c (gcc::jit::recording::context::context): When
3624 copying string options from a parent context, take a copy of the
3625 underlying buffers, rather than simply copying the pointer.
3626
1f0858d7
DM
36272014-12-19 David Malcolm <dmalcolm@redhat.com>
3628
3629 * jit-recording.c (gcc::jit::recording::context::set_str_option):
3630 Handle NULL.
3631
35291c7d
DM
36322014-12-11 David Malcolm <dmalcolm@redhat.com>
3633
3634 * docs/cp/topics/contexts.rst (gccjit::context::set_str_option):
3635 Document new function.
3636 * docs/_build/texinfo/libgccjit.texi: Regenerate.
3637
7b31ff5e
DM
36382014-12-10 Ulrich Drepper <drepper@gmail.com>
3639
3640 Minor interface cleanups of libgccjit
3641 * jit-playback.c (convert_to_dso): Use auto_vec instead
3642 of automatic array to build up command line.
3643 * jit-recording.c (recording::context::set_str_option):
3644 Make copy of the string.
3645 (recording::context::~context): Free string options.
3646 * jit-recording.h (recording::context): Adjust type
3647 of m_str_options member.
3648 * libgccjit.h: Adjust comment about
3649 gcc_jit_context_set_str_option parameter being used after
3650 the call.
3651 Update comment now that all interfaces are copy strings
3652 if necessary.
3653 * libgccjit++.h (gccjit::context): Add set_str_option
3654 member function.
3655
29df5715
DM
36562014-12-10 David Malcolm <dmalcolm@redhat.com>
3657
3658 * docs/cp/index.rst: New file.
3659 * docs/cp/intro/index.rst: New file.
3660 * docs/cp/intro/tutorial01.rst: New file.
3661 * docs/cp/intro/tutorial02.rst: New file.
3662 * docs/cp/intro/tutorial03.rst: New file.
3663 * docs/cp/intro/tutorial04.rst: New file.
3664 * docs/cp/topics/contexts.rst: New file.
3665 * docs/cp/topics/expressions.rst: New file.
3666 * docs/cp/topics/functions.rst: New file.
3667 * docs/cp/topics/index.rst: New file.
3668 * docs/cp/topics/locations.rst: New file.
3669 * docs/cp/topics/objects.rst: New file.
3670 * docs/cp/topics/results.rst: New file.
3671 * docs/cp/topics/types.rst: New file.
3672 * docs/examples/tut01-hello-world.cc: New file.
3673 * docs/examples/tut02-square.c: Fix missing newline in output.
3674 * docs/examples/tut02-square.cc: New file.
3675 * docs/examples/tut03-sum-of-squares.cc: New file.
3676 * docs/examples/tut04-toyvm/toyvm.cc: New file.
3677 * docs/index.rst: Move summary to above the table of contents.
3678 Add text about the C vs C++ APIs.
3679 * docs/topics/contexts.rst: Fix a typo.
3680
3681 * docs/_build/texinfo/libgccjit.texi: Regenerate.
3682 * docs/_build/texinfo/factorial1.png: New file.
3683 * docs/_build/texinfo/sum-of-squares1.png: New file.
3684
5cd614ce
DM
36852014-12-09 David Malcolm <dmalcolm@redhat.com>
3686
3687 * docs/examples/tut04-toyvm/toyvm.c (toyvm_function_compile): Move
3688 logic for determine "funcname" to new function...
3689 (get_function_name): ...here, adding logic to skip any leading
3690 path from the filename.
3691 (toyvm_function_parse): Use the filename for fn_filename, rather
3692 than "name", so that the debugger can locate the source .toy
3693 file.
3694 (toyvm_function_parse): Don't fclose a NULL FILE *.
3695
2712de78
DM
36962014-12-09 David Malcolm <dmalcolm@redhat.com>
3697
3698 PR jit/63854
3699 * docs/internals/index.rst (Running under valgrind): New
3700 subsection.
3701 (docs/_build/texinfo/libgccjit.texi): Regenerate.
3702
d1e5f2c7
DM
37032014-12-09 David Malcolm <dmalcolm@redhat.com>
3704
92a285c1 3705 PR jit/64206
d1e5f2c7
DM
3706 * Make-lang.in (jit_OBJS): Add jit/jit-tempdir.o.
3707 * jit-common.h (gcc::jit::tempdir): New forward decl.
3708 * jit-playback.c: Include jit-tempdir.h.
3709 (gcc::jit::playback::context::context): Initialize m_tempdir.
3710 (gcc::jit::playback::context::~context): Move tempdir
3711 cleanup to new file jit-tempdir.c
3712 (make_tempdir_path_template): Move to new file jit-tempdir.c.
3713 (gcc::jit::playback::context::compile): Move tempdir creation
3714 to new tempdir object in new file jit-tempdir.c.
3715 (gcc::jit::playback::context::make_fake_args): Get path from
3716 tempdir object rather than from member data.
3717 (gcc::jit::playback::context::convert_to_dso): Likewise.
3718 (gcc::jit::playback::context::dlopen_built_dso): Likewise.
3719 (gcc::jit::playback::context::dump_generated_code): Likewise.
3720 (gcc::jit::playback::context::get_path_c_file): New function.
3721 (gcc::jit::playback::context::get_path_s_file): New function.
3722 (gcc::jit::playback::context::get_path_so_file): New function.
3723 * jit-playback.h (gcc::jit::playback::context::get_path_c_file):
3724 New function.
3725 (gcc::jit::playback::context::get_path_s_file): New function.
3726 (gcc::jit::playback::context::get_path_so_file): New function.
3727 (gcc::jit::playback::context): Move fields "m_path_template",
3728 "m_path_tempdir", "m_path_c_file", "m_path_s_file",
3729 "m_path_so_file" to new jit::tempdir class; add field "m_tempdir".
3730 * jit-tempdir.c: New file.
3731 * jit-tempdir.h: New file.
3732
38771e4e
DM
37332014-12-09 David Malcolm <dmalcolm@redhat.com>
3734
3735 * jit-playback.c (gcc::jit::playback::context::compile): Acquire the
3736 mutex here, immediately before using toplev, and release it here, on
3737 each exit path after acquisition.
3738 (jit_mutex): Move this variable here, from jit-recording.c.
3739 (gcc::jit::playback::context::acquire_mutex): New function, based on
3740 code in jit-recording.c.
3741 (gcc::jit::playback::context::release_mutex): Likewise.
3742 * jit-playback.h (gcc::jit::playback::context::acquire_mutex): New
3743 function.
3744 (gcc::jit::playback::context::release_mutex): New function.
3745 * jit-recording.c (jit_mutex): Move this variable to jit-playback.c.
3746 (gcc::jit::recording::context::compile): Move mutex-handling from
3747 here into jit-playback.c's gcc::jit::playback::context::compile.
3748 * notes.txt: Update to show the new locations of ACQUIRE_MUTEX
3749 and RELEASE_MUTEX.
3750
38f4f641
DM
37512014-12-09 David Malcolm <dmalcolm@redhat.com>
3752
3753 * jit-playback.c (gcc::jit::playback::context::compile): Move the
3754 dlopen code into...
3755 (gcc::jit::playback::context::dlopen_built_dso): ...this new
3756 function.
3757 * jit-playback.h (gcc::jit::playback::context::dlopen_built_dso):
3758 New function.
3759
82e0c914
DM
37602014-12-09 David Malcolm <dmalcolm@redhat.com>
3761
3762 PR jit/64166
3763 * docs/topics/contexts.rst (Debugging): Add description of
3764 gcc_jit_context_enable_dump.
3765 * docs/_build/texinfo/libgccjit.texi: Regenerate.
3766 * jit-playback.c: Include context.h.
3767 (class auto_argvec): New class.
3768 (auto_argvec::~auto_argvec): New function.
3769 (gcc::jit::playback::context::compile): Convert fake_args to be
3770 an auto_argvec, so that it can contain dynamically-allocated
3771 strings. Construct a vec of all requested dumps, and pass it to
3772 make_fake_args. Extract requested dumps between the calls to
3773 toplev::main and toplev::finalize.
3774 (gcc::jit::playback::context::make_fake_args): Convert param
3775 "argvec" to be a vec <char *>, and gain a "requested_dumps"
3776 param. Convert to dynamically-allocated arg strings by converting
3777 ADD_ARG to take a copy of the arg, and add ADD_ARG_TAKE_OWNERSHIP
3778 for args that are already a copy. Add args for all requested dumps.
3779 (gcc::jit::playback::context::extract_any_requested_dumps): New
3780 function.
3781 (gcc::jit::playback::context::read_dump_file): New function.
3782 * jit-playback.h (gcc::jit::playback::context::make_fake_args):
3783 Convert param "argvec" to be a vec <char *>, and gain a
3784 "requested_dumps" param.
3785 (gcc::jit::playback::context::extract_any_requested_dumps): New
3786 function.
3787 (gcc::jit::playback::context::read_dump_file): New function.
3788 * jit-recording.c (gcc::jit::recording::context::enable_dump): New
3789 function.
3790 (gcc::jit::recording::context::get_all_requested_dumps): New
3791 function.
3792 * jit-recording.h (gcc::jit::recording::requested_dump): New
3793 struct.
3794 (gcc::jit::recording::context::enable_dump): New function.
3795 (gcc::jit::recording::context::get_all_requested_dumps): New
3796 function.
3797 (gcc::jit::recording::context::m_requested_dumps): New field.
3798 * libgccjit.c (gcc_jit_context_enable_dump): New API entrypoint.
3799 * libgccjit.h (gcc_jit_context_enable_dump): New API entrypoint.
3800 * libgccjit.map (gcc_jit_context_enable_dump): New API entrypoint.
3801
53b730ff
DM
38022014-12-08 David Malcolm <dmalcolm@redhat.com>
3803
3804 * libgccjit++.h: Indent the forward declarations of the classes to
3805 show the inheritance hierarchy.
3806
0f379445
DM
38072014-12-08 David Malcolm <dmalcolm@redhat.com>
3808
3809 * notes.txt: Show the beginning and ending of
3810 recording::context::compile vs playback::context::compile. Show
3811 the creation and unlinking of the tempdir. Show toplev::finalize.
3812 Move "RELEASE MUTEX" to the correct location. Show
3813 gcc_jit_result_release, and indicate where the
3814 dlopen/dlsym/dlclose occur.
3815
81ba15f1
DM
38162014-12-01 David Malcolm <dmalcolm@redhat.com>
3817
3818 * docs/examples/tut02-square.c (main): Release the context
3819 earlier, to show that this is possible. Update error-handling
3820 to avoid a double-release of the context, and to avoid
3821 releasing a NULL result.
3822 * docs/intro/tutorial02.rst: Discuss gcc_jit_context_release.
3823 * docs/topics/functions.rst (GCC_JIT_FUNCTION_EXPORTED): Emphasize
3824 * docs/topics/results.rst (gcc_jit_result): Mention that this
3825 controls the lifetimes of machine code functions.
3826 (gcc_jit_result_get_code): Spell out the requirements for this
3827 to succeed, and the lifetime of the result.
3828 (gcc_jit_result_release): Mention that this invalidates any code
3829 that was obtained from the result.
3830 * docs/_build/texinfo/libgccjit.texi: Regenerate.
3831
e250f0dc
DM
38322014-12-01 David Malcolm <dmalcolm@redhat.com>
3833
3834 PR jit/64018
3835 * docs/intro/tutorial02.rst: Spell out lifetime of generated code.
3836 Add description of error-handling, taken in part from...
3837 * docs/topics/contexts.rst (Error-handling): Expand, and move some
3838 content to tutorial02.rst.
3839 * docs/_build/texinfo/libgccjit.texi: Regenerate.
3840
eeafb319
DM
38412014-12-01 David Malcolm <dmalcolm@redhat.com>
3842
3843 PR jit/64020
3844 * docs/topics/types.rst (Standard types) Add new enum values to
3845 the table of enum gcc_jit_types: GCC_JIT_TYPE_COMPLEX_FLOAT,
3846 GCC_JIT_TYPE_COMPLEX_DOUBLE, GCC_JIT_TYPE_COMPLEX_LONG_DOUBLE.
3847 Widen the left-hand column so that
3848 GCC_JIT_TYPE_COMPLEX_LONG_DOUBLE will fit.
3849 * docs/_build/texinfo/libgccjit.texi: Regenerate.
3850
3851 * jit-builtins.c: Include stringpool.h and jit-playback.h.
3852 Move everything out of the gcc::jit::recording namespace into
3853 just gcc::jit.
3854 (struct builtin_data): Add fields "fnclass", "attr", and
3855 "implicit_p".
3856 (DEF_BUILTIN): Update macro so populate the new fields.
3857 (builtins_manager::builtins_manager): Update for move out of
3858 recording namespace. Initialize the m_attributes array.
3859 (builtins_manager::get_builtin_function): Likewise.
3860 (builtins_manager::get_builtin_function_by_id): New function.
3861 (builtins_manager::make_builtin_function): Update for move out of
3862 recording namespace. Add fix for PR jit/64020 by detecting
3863 specific builtin ids and having them ensure that builtins for
3864 other ids are created as necessary.
3865 (builtins_manager::get_type): Update for move out of recording
3866 namespace.
3867 (builtins_manager::make_type): Likewise. Add some missing
3868 #undefs.
3869 (builtins_manager::make_primitive_type): Update for move out of
3870 recording namespace. Implement the three BT_COMPLEX_ cases and
3871 BT_DOUBLE_PTR.
3872 (builtins_manager::make_fn_type): Update for move out of recording
3873 namespace.
3874 (builtins_manager::make_ptr_type): Likewise.
3875 (builtins_manager::finish_playback): New function.
3876 (builtins_manager::get_class): New function.
3877 (builtins_manager::implicit_p): New function.
3878 (builtins_manager::get_attrs_tree): Two new functions.
3879 (builtins_manager::make_attrs_tree): New function.
3880
3881 * jit-builtins.h: Move everything out of the gcc::jit::recording
3882 namespace into just gcc::jit.
3883 (enum built_in_attribute): New.
3884 (builtins_manager::builtins_manager): Update decl for namespace
3885 change.
3886 (builtins_manager::get_builtin_function): Likewise.
3887 (builtins_manager::get_class): New.
3888 (builtins_manager::implicit_p): New.
3889 (builtins_manager::get_attrs_tree): Two new functions.
3890 (builtins_manager::make_attrs_tree): New function.
3891 (builtins_manager::finish_playback): New.
3892 (builtins_manager::get_builtin_function_by_id): New.
3893 (builtins_manager::make_builtin_function): Update decl for
3894 namespace change.
3895 (builtins_manager::get_type): Likewise.
3896 (builtins_manager::make_type): Likewise.
3897 (builtins_manager::make_primitive_type): Likewise.
3898 (builtins_manager::make_fn_type): Likewise.
3899 (builtins_manager::make_ptr_type): Likewise.
3900 (builtins_manager): Likewise for fields. Add new field
3901 "m_attributes".
3902
3903 * jit-common.h (NUM_GCC_JIT_TYPES): Update.
3904 (builtins_manager): Update forward decl to reflect namespace
3905 change.
3906
3907 * jit-playback.c: Include attribs.h and jit-builtins.h.
3908 (gcc::jit::playback::context::get_tree_node_for_type): Add cases
3909 for the new COMPLEX_ types.
3910 (gcc::jit::playback::context::new_function): If creating a
3911 builtin, set the DECL_BUILT_IN_CLASS and attributes on the fndecl,
3912 and call set_builtin_decl.
3913 (gcc::jit::playback::context::replay): If we have a
3914 builtins_manager, call its finish_playback method when we're done.
3915
3916 * jit-playback.h:
3917 (gcc::jit::playback::context::get_builtins_manager): New function.
3918
3919 * jit-recording.c
3920 (gcc::jit::recording::context::get_builtins_manager): New function.
3921 (gcc::jit::recording::get_builtin_function): Use
3922 get_builtins_manager, in case we're a child context.
3923 (gcc::jit::recording::memento_of_get_type::dereference): Add the
3924 COMPLEX_ types.
3925 (gcc::jit::recording::memento_of_get_type::is_int): Likewise.
3926 (gcc::jit::recording::memento_of_get_type::is_float): Likewise.
3927 (gcc::jit::recording::memento_of_get_type::is_bool): Likewise.
3928 (get_type_strings): Likewise.
3929
3930 * jit-recording.h
3931 (gcc::jit::recording::context::get_builtins_manager): New.
3932
3933 * libgccjit.h (enum gcc_jit_types): Add
3934 GCC_JIT_TYPE_COMPLEX_FLOAT, GCC_JIT_TYPE_COMPLEX_DOUBLE,
3935 GCC_JIT_TYPE_COMPLEX_LONG_DOUBLE.
3936
23844fd7
DM
39372014-12-01 David Malcolm <dmalcolm@redhat.com>
3938
3939 * jit-builtins.c
3940 (gcc::jit::recording::builtins_manager::get_builtin_function):
3941 Check for NULL return from make_builtin_function.
3942 (gcc::jit::recording::builtins_manager::make_builtin_function):
3943 Check for NULL return from get_type.
3944
c6760a13
DM
39452014-12-01 David Malcolm <dmalcolm@redhat.com>
3946
3947 * jit-playback.c (gcc::jit::playback::context::compile): Move DSO
3948 creation code into...
3949 (gcc::jit::playback::context::convert_to_dso): New function.
3950 * jit-playback.h (gcc::jit::playback::context::convert_to_dso):
3951 New function.
3952
8f50ee3c
DM
39532014-12-01 David Malcolm <dmalcolm@redhat.com>
3954
3955 * jit-playback.c (gcc::jit::playback::context::compile): Use an
3956 auto_vec<const char *> rather than a const char *[20] for the
3957 top-level argv, and move the logic to build it to...
3958 (gcc::jit::playback::context::make_fake_args): New function.
3959 * jit-playback.h (gcc::jit::playback::context::make_fake_args):
3960 New function.
3961
56dea35f
DM
39622014-12-01 David Malcolm <dmalcolm@redhat.com>
3963
3964 * Make-lang.in (jit_OBJS): Add jit/jit-result.o.
3965 * jit-playback.c: Include new header jit-result.h.
3966 (gcc::jit::result::result): Move to new file jit-result.c.
3967 (gcc::jit::result::~result): Likewise.
3968 (gcc::jit::playback::result): Likewise.
3969 * jit-recording.h (class gcc::jit::result): Move to new
3970 header jit-result.h.
3971 * jit-result.c: New file, to contain...
3972 (gcc::jit::result::result): Move here from jit-playback.c,
3973 removing erroneous "playback" namespace from comment.
3974 (gcc::jit::result::~result): Likewise.
3975 (gcc::jit::playback::result): Likewise.
3976 * jit-result.h: New file, to contain...
3977 (class gcc::jit::result): Move from jit-recording.h.
3978 * libgccjit.c: Include jit-result.h.
3979 (gcc_jit_result_get_code): Update comment to reflect move
3980 of implementation.
3981 (gcc_jit_result_release): Likewise.
3982
52b9468f
DM
39832014-12-01 David Malcolm <dmalcolm@redhat.com>
3984
3985 PR jit/63854
3986 * docs/examples/tut04-toyvm/toyvm.c
3987 (toyvm_compiled_function): New typedef.
3988 (toyvm_compiled_func) Rename to...
3989 (toyvm_compiled_code) ...this.
3990 (struct toyvm_compiled_function): New struct.
3991 (toyvm_function_compile): Return a toyvm_compiled_function *
3992 rather than a toyvm_compiled_func, so that the caller can fully
3993 clean things up. Free "funcname".
3994 (test_script): Update for change to toyvm_function_compile.
3995 Clean up the toyvm_compiled_function.
3996 (main): Likewise.
3997 (docs/intro/tutorial04.rst): Update to reflect the above changes,
3998 and to better spell out the lifetime of the compiled code.
3999
c8d19a69
DM
40002014-12-01 David Malcolm <dmalcolm@redhat.com>
4001
4002 PR jit/63854
4003 * jit-builtins.c
4004 (gcc::jit::recording::builtins_manager::make_fn_type): Call the
4005 context's new_function_type method, rather than directly creating
4006 a function_type instance.
4007 * jit-recording.c
4008 (gcc::jit::recording::context::new_function_type): New method,
4009 adapted from part of...
4010 (gcc::jit::recording::context::new_function_ptr_type): ...this.
4011 Update to call new_function_type.
4012 * jit-recording.h
4013 (gcc::jit::recording::context::new_function_type): New method.
4014
c985705a
DM
40152014-12-01 David Malcolm <dmalcolm@redhat.com>
4016
4017 PR jit/63969
4018 * jit-playback.c: Ensure that ctxt_progname is non-NULL.
4019
b957b2e0
DM
40202014-11-19 David Malcolm <dmalcolm@redhat.com>
4021
4022 PR jit/63854
4023 * jit-playback.c (gcc::jit::playback::compound_type::set_fields):
4024 Convert param from const vec<playback::field *> & to
4025 const auto_vec<playback::field *> *.
4026 (gcc::jit::playback::context::new_function_type): Convert param
4027 "param_types" from vec<type *> * to const auto_vec<type *> *.
4028 (gcc::jit::playback::context::new_function): Convert param
4029 "params" from vec<param *> * to const auto_vec<param *> *.
4030 (gcc::jit::playback::context::build_call): Convert param "args"
4031 from vec<rvalue *> to const auto_vec<rvalue *> *.
4032 (gcc::jit::playback::context::new_call): Likewise.
4033 (gcc::jit::playback::context::new_call_through_ptr): Likewise.
4034 (wrapper_finalizer): New function.
4035 (gcc::jit::playback::wrapper::operator new): Call the finalizer
4036 variant of ggc_internal_cleared_alloc, supplying
4037 wrapper_finalizer.
4038 (gcc::jit::playback::function::finalizer): New.
4039 (gcc::jit::playback::block::finalizer): New.
4040 (gcc::jit::playback::source_file::finalizer): New.
4041 (gcc::jit::playback::source_line::finalizer): New.
4042
4043 * jit-playback.h
4044 (gcc::jit::playback::context::new_function_type): Convert param
4045 "param_types" from vec<type *> * to const auto_vec<type *> *.
4046 (gcc::jit::playback::context::new_function): Convert param
4047 "params" from vec<param *> * to const auto_vec<param *> *.
4048 (gcc::jit::playback::context::new_call): Convert param
4049 "args" from vec<rvalue *> to const auto_vec<rvalue *> *.
4050 (gcc::jit::playback::context::new_call_through_ptr): Likewise.
4051 (gcc::jit::playback::context::build_call): Likewise.
4052 (gcc::jit::playback::context): Convert fields "m_functions",
4053 "m_source_files", "m_cached_locations" from vec to auto_vec.
4054 (gcc::jit::playback::wrapper::finalizer): New virtual function.
4055 (gcc::jit::playback::compound_type::set_fields): Convert param fro
4056 const vec<playback::field *> & to
4057 const auto_vec<playback::field *> *.
4058 (gcc::jit::playback::function::finalizer): New.
4059 (gcc::jit::playback::block::finalizer): New.
4060 (gcc::jit::playback::source_file::finalizer): New.
4061 (gcc::jit::playback::source_line::finalizer): New.
4062
4063 * jit-recording.c
4064 (gcc::jit::recording::function_type::replay_into): Convert local
4065 from a vec into an auto_vec.
4066 (gcc::jit::recording::fields::replay_into): Likewise.
4067 (gcc::jit::recording::function::replay_into): Likewise.
4068 (gcc::jit::recording::call::replay_into): Likewise.
4069 (gcc::jit::recording::call_through_ptr::replay_into): Likewise.
4070
4071 * jit-recording.h (gcc::jit::recording::context): Convert fields
4072 "m_mementos", "m_compound_types", "m_functions" from vec<> to
4073 auto_vec <>.
4074 (gcc::jit::recording::function_type::get_param_types): Convert
4075 return type from vec<type *> to const vec<type *> &.
4076 (gcc::jit::recording::function_type): Convert field
4077 "m_param_types" from a vec<> to an auto_vec<>.
4078 (gcc::jit::recording::fields): Likewise for field "m_fields".
4079 (gcc::jit::recording::function::get_params): Convert return type
4080 from vec <param *> to const vec<param *> &.
4081 (gcc::jit::recording::function): Convert fields "m_params",
4082 "m_locals", "m_blocks" from vec<> to auto_vec<>.
4083 (gcc::jit::recording::block): Likewise for field "m_statements".
4084 vec<> to auto_vec<>.
4085 (gcc::jit::recording::call): Likewise for field "m_args".
4086 (gcc::jit::recording::call_through_ptr): Likewise.
4087
79cafc7a
DM
40882014-11-19 David Malcolm <dmalcolm@redhat.com>
4089
4090 PR jit/63854
4091 * jit-recording.c (recording::function::validate): Convert
4092 "worklist" from vec<> to autovec<> to fix a leak.
4093
35485da9
DM
40942014-11-11 David Malcolm <dmalcolm@redhat.com>
4095
4096 * ChangeLog.jit: New.
4097 * ChangeLog: New.
4098 * Make-lang.in: New.
4099 * TODO.rst: New.
4100 * config-lang.in: New.
4101 * docs/Makefile: New.
4102 * docs/_build/texinfo/Makefile: New.
4103 * docs/_build/texinfo/factorial.png: New.
4104 * docs/_build/texinfo/libgccjit.texi: New.
4105 * docs/_build/texinfo/sum-of-squares.png: New.
4106 * docs/conf.py: New.
4107 * docs/examples/tut01-hello-world.c: New.
4108 * docs/examples/tut02-square.c: New.
4109 * docs/examples/tut03-sum-of-squares.c: New.
4110 * docs/examples/tut04-toyvm/Makefile: New.
4111 * docs/examples/tut04-toyvm/factorial.toy: New.
4112 * docs/examples/tut04-toyvm/fibonacci.toy: New.
4113 * docs/examples/tut04-toyvm/toyvm.c: New.
4114 * docs/index.rst: New.
4115 * docs/internals/index.rst: New.
4116 * docs/intro/factorial.png: New.
4117 * docs/intro/index.rst: New.
4118 * docs/intro/sum-of-squares.png: New.
4119 * docs/intro/tutorial01.rst: New.
4120 * docs/intro/tutorial02.rst: New.
4121 * docs/intro/tutorial03.rst: New.
4122 * docs/intro/tutorial04.rst: New.
4123 * docs/topics/contexts.rst: New.
4124 * docs/topics/expressions.rst: New.
4125 * docs/topics/functions.rst: New.
4126 * docs/topics/index.rst: New.
4127 * docs/topics/locations.rst: New.
4128 * docs/topics/objects.rst: New.
4129 * docs/topics/results.rst: New.
4130 * docs/topics/types.rst: New.
4131 * dummy-frontend.c: New.
4132 * jit-builtins.c: New.
4133 * jit-builtins.h: New.
4134 * jit-common.h: New.
4135 * jit-playback.c: New.
4136 * jit-playback.h: New.
4137 * jit-recording.c: New.
4138 * jit-recording.h: New.
4139 * libgccjit++.h: New.
4140 * libgccjit.c: New.
4141 * libgccjit.h: New.
4142 * libgccjit.map: New.
4143 * notes.txt: New.
4144
41452013-07-26 David Malcolm <dmalcolm@redhat.com>
4146
4147 * Initial creation
818ab71a 4148\f
68127a8e 4149Copyright (C) 2013-2023 Free Software Foundation, Inc.
35485da9
DM
4150
4151Copying and distribution of this file, with or without modification,
4152are permitted in any medium without royalty provided the copyright
4153notice and this notice are preserved.