]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/jit/ChangeLog
Mark offloaded functions as parallelized
[thirdparty/gcc.git] / gcc / jit / ChangeLog
CommitLineData
13fdf2e2
AM
12015-06-08 Andrew MacLeod <amacleod@redhat.com>
2
3 * dummy-frontend.c : Adjust include files.
4 * jit-common.h : Likewise.
5 * jit-playback.c : Likewise.
6
e4753451
DM
72015-06-05 David Malcolm <dmalcolm@redhat.com>
8
9 * dummy-frontend.c
10 (jit_langhook_post_compilation_parsing_cleanups): Remove.
11 (LANG_HOOKS_POST_COMPILATION_PARSING_CLEANUPS): Remove
12 * jit-playback.c (gcc::jit::playback::context::new_global): Add
13 call to varpool_node::finalize_decl.
14 (gcc::jit::playback::context::finalize_global_decls): Remove.
15 * jit-playback.h
16 (gcc::jit::playback::context::finalize_global_decls): Remove.
17
e7547bc6
DM
182015-06-05 David Malcolm <dmalcolm@redhat.com>
19
20 * dummy-frontend.c (jit_langhook_write_globals): Rename to...
21 (jit_langhook_post_compilation_parsing_cleanups): ...this, and
22 eliminate calls to finalize_compilation_unit and
23 write_global_decls_2.
24 (LANG_HOOKS_WRITE_GLOBALS): Rename to...
25 (LANG_HOOKS_POST_COMPILATION_PARSING_CLEANUPS): ...this and
26 redirect from jit_langhook_write_globals to
27 jit_langhook_post_compilation_parsing_cleanups.
28 * jit-playback.c
29 (gcc::jit::playback::context::write_global_decls_1): Rename to...
30 (gcc::jit::playback::context::finalize_global_decls): ...this.
31 (gcc::jit::playback::context::write_global_decls_1): Delete.
32 * jit-playback.h
33 (gcc::jit::playback::context::write_global_decls_1): Rename to...
34 (gcc::jit::playback::context::finalize_global_decls): ...this.
35 (gcc::jit::playback::context::write_global_decls_1): Delete.
36
ecb9f223
AM
372015-06-04 Andrew MacLeod <amacleod@redhat.com>
38
39 * dummy-frontend.c: Adjust includes for restructured coretypes.h.
40 * jit-common.h: Likewise.
41 * jit-playback.c: Likewise.
42
2637afb7
DM
432015-05-12 David Malcolm <dmalcolm@redhat.com>
44
45 * jit-builtins.c: Include vec.h before target.h.
46
46bf0b0a
JW
472015-04-27 Jim Wilson <jim.wilson@linaro.org>
48
49 * Make-lang.in (jit.mostlyclean): Remove shared libraries and object
50 files.
51
51c5c6b5
DM
522015-04-09 David Malcolm <dmalcolm@redhat.com>
53
54 PR jit/65691
55 * docs/cp/topics/expressions.rst (Simple expressions): Fix copy
56 and paste error in description of gccjit::context::one.
57 * docs/topics/expressions.rst (Simple expressions): Likewise in
58 description of gcc_jit_context_one.
59 * docs/_build/texinfo/libgccjit.texi: Regenerate.
60
f40fd895
UB
612015-03-13 Uros Bizjak <ubizjak@gmail.com>
62
63 * jit-recording.c (dump::write): Also check vasprintf return value.
64 (recording::context::add_error_va): Ditto.
65 (recording::string::from_printf): Ditto.
66
18eb0d13
DM
672015-03-13 David Malcolm <dmalcolm@redhat.com>
68
69 * docs/internals/index.rst (Packaging notes): New section.
70 * docs/_build/texinfo/libgccjit.texi: Regenerate.
71
7ef96183
DM
722015-03-05 David Malcolm <dmalcolm@redhat.com>
73
74 * docs/cp/intro/tutorial03.rst: Add missing arguments to
75 gccjit::block::end_with_conditional call. Add on_true/on_false
76 comments. Tweak the wording.
77 * docs/intro/tutorial03.rst: Add missing arguments to
78 gcc_jit_block_end_with_conditional call. Add some clarifying
79 comments.
80 * docs/topics/compilation.rst: Tweak the wording to avoid an
81 ambiguous use of "this".
82 * docs/topics/contexts.rst: Fix a typo.
83 * docs/topics/expressions.rst (GCC_JIT_BINARY_OP_MINUS): Remove
84 a stray backtick.
85 * docs/_build/texinfo/libgccjit.texi: Regenerate.
86
56a9f6bc
TS
872015-02-24 Thomas Schwinge <thomas@codesourcery.com>
88
89 PR libgomp/64625
90 * jit-builtins.c (DEF_FUNCTION_TYPE_VAR_8)
91 (DEF_FUNCTION_TYPE_VAR_12): Remove macros.
92 (DEF_FUNCTION_TYPE_VAR_7, DEF_FUNCTION_TYPE_VAR_11): New macros.
93 * jit-builtins.h (DEF_FUNCTION_TYPE_VAR_8)
94 (DEF_FUNCTION_TYPE_VAR_12): Remove macros.
95 (DEF_FUNCTION_TYPE_VAR_7, DEF_FUNCTION_TYPE_VAR_11): New macros.
96
a4be4e91
DM
972015-02-04 David Malcolm <dmalcolm@redhat.com>
98
99 PR jit/64257
100 * docs/conf.py (html_theme): Change from 'pyramid'
101 to 'sphinxdoc'.
102
f435bff3
DM
1032015-02-04 David Malcolm <dmalcolm@redhat.com>
104
105 * docs/topics/contexts.rst (gcc_jit_context_acquire): Fix
106 typo.
107 * docs/_build/texinfo/libgccjit.texi: Regenerate.
108
0ed4f017
DM
1092015-02-03 David Malcolm <dmalcolm@redhat.com>
110
111 * jit-logging.h (gcc::jit::log_user::log): Make const.
112 * jit-recording.c (gcc::jit::recording::context::set_str_option):
113 Log the new value of the option.
114 (gcc::jit::recording::context::set_int_option): Likewise.
115 (gcc::jit::recording::context::set_bool_option): Likewise.
116 (gcc::jit::recording::context::compile): Log the value of all
117 options.
118 (gcc::jit::recording::context::compile_to_file): Likewise.
119 (gcc::jit::recording::context::log_all_options): New function.
120 (gcc::jit::recording::context::log_str_option): New function.
121 (gcc::jit::recording::context::log_int_option): New function.
122 (gcc::jit::recording::context::log_bool_option): New function.
123 * jit-recording.h (gcc::jit::recording::context::log_all_options):
124 New function.
125 (gcc::jit::recording::context::log_str_option): New function.
126 (gcc::jit::recording::context::log_int_option): New function.
127 (gcc::jit::recording::context::log_bool_option): New function.
128 * docs/internals/test-hello-world.exe.log.txt: Update for above
129 changes.
130 * docs/_build/texinfo/libgccjit.texi: Regenerate.
131
2cb844ce
DM
1322015-02-03 David Malcolm <dmalcolm@redhat.com>
133
134 PR jit/64810
135 * Make-lang.in (jit_OBJS): Add jit/jit-spec.o and gcc.o.
136 (LIBGCCJIT_FILENAME): Add EXTRA_GCC_OBJS.
137 * jit-playback.c: Include gcc.h.
138 (gcc::jit::playback::context::compile): Move mutex acquisition
139 to before the call to make_fake_args.
140 (append_arg_from_driver): New function.
141 (gcc::jit::playback::context::make_fake_args): On the first call,
142 call into driver_get_configure_time_options to get configure-time
143 default options and cache them. Add them to the args for
144 toplev::main.
145 * jit-spec.c: New source file.
146 * docs/internals/test-hello-world.exe.log.txt: Update to reflect
147 above changes.
148 * docs/_build/texinfo/libgccjit.texi: Regenerate.
149
16a71c50
DM
1502015-02-02 David Malcolm <dmalcolm@redhat.com>
151
152 PR jit/64810
153 * dummy-frontend.c (jit_langhook_type_for_mode): Support
154 TYPE_MODE (long_long_integer_type_node).
155
53c04ec9
DM
1562015-01-27 David Malcolm <dmalcolm@redhat.com>
157
158 * docs/internals/test-hello-world.exe.log.txt: Add example version
159 lines.
160 * docs/_build/texinfo/libgccjit.texi: Regenerate.
161 * jit-common.h (gcc::jit::dump::get_file): New accessor.
162 * jit-logging.c: Include toplev.h.
163 (gcc::jit::logger::logger): Log the GCC version.
164 * jit-recording.c: Include toplev.h.
165 (gcc:jit::recording::context::dump_reproducer_to_file): Log the
166 GCC version.
167
dc44ee3a
DM
1682015-01-26 David Malcolm <dmalcolm@redhat.com>
169
170 * docs/topics/compilation.rst (gcc_jit_result_get_code): Fix typo.
171 * docs/topics/contexts.rst (gcc_jit_context_get_last_error): The
172 error buffer is only valid until the next call to the context.
173 * docs/_build/texinfo/libgccjit.texi: Regenerate.
174 * libgccjit.h (gcc_jit_context_get_first_error): Reword the
175 comment to omit mention of compiling.
176 (gcc_jit_context_get_last_error): The error buffer is only valid
177 until the next call to the context.
178
3349605d
DM
1792015-01-26 David Malcolm <dmalcolm@redhat.com>
180
181 PR jit/64708
182 * config-lang.in (compilers): Drop "libgccjit.so".
183
6fc2d0f3
DM
1842015-01-23 David Malcolm <dmalcolm@redhat.com>
185
186 PR jit/64721
187 * jit-playback.c (gcc::jit::playback::context::compile): Construct
188 toplev instances with init_signals=false.
189
fdce7209
DM
1902015-01-19 David Malcolm <dmalcolm@redhat.com>
191
192 * docs/cp/topics/results.rst: Rename to...
193 * docs/cp/topics/compilation.rst: ...this, and add section on
194 ahead-of-time compilation.
195 * docs/cp/topics/index.rst: Update for renaming of results.rst
196 to compilation.rst.
197 * docs/examples/emit-alphabet.bf: New file, a sample "brainf"
198 script.
199 * docs/examples/tut05-bf.c: New file, implementing a compiler
200 for "brainf".
201 * docs/internals/test-hello-world.exe.log.txt: Update to reflect
202 changes to logger output.
203 * docs/intro/index.rst: Add tutorial05.rst
204 * docs/intro/tutorial05.rst: New file.
205 * docs/topics/results.rst: Rename to...
206 * docs/topics/compilation.rst: ...this, and add section on
207 ahead-of-time compilation.
208 * docs/topics/index.rst: Update for renaming of results.rst to
209 compilation.rst.
210 * docs/_build/texinfo/libgccjit.texi: Regenerate.
211 * jit-playback.c (gcc::jit::playback::context::compile): Convert
212 return type from result * to void. Move the code to convert to
213 dso and dlopen the result to a new pure virtual "postprocess"
214 method.
215 (gcc::jit::playback::compile_to_memory::compile_to_memory): New
216 function.
217 (gcc::jit::playback::compile_to_memory::postprocess): New
218 function, based on playback::context::compile.
219 (gcc::jit::playback::compile_to_file::compile_to_file): New
220 function.
221 (gcc::jit::playback::compile_to_file::postprocess): New function.
222 (gcc::jit::playback::compile_to_file::copy_file): New function.
223 (gcc::jit::playback::context::convert_to_dso): Move internals
224 to...
225 (gcc::jit::playback::context::invoke_driver): New method. Add
226 "-shared" and "-c" options to driver's argv as needed.
227 * jit-playback.h: Include "timevar.h".
228 (gcc::jit::playback::context::compile): Convert return type from
229 result * to void.
230 (gcc::jit::playback::context::postprocess): New pure virtual
231 function, making this an abstract base class.
232 (gcc::jit::playback::context::get_tempdir): New accessor.
233 (gcc::jit::playback::context::invoke_driver): New function.
234 (class gcc::jit::playback::compile_to_memory): New subclass of
235 playback::context.
236 (class gcc::jit::playback::compile_to_file): Likewise.
237 * jit-recording.c (gcc::jit::recording::context::compile): Use a
238 playback::compile_to_memory, and extract its result.
239 (gcc::jit::recording::context::compile_to_file): New function.
240 * jit-recording.h (gcc::jit::recording::context::compile_to_file):
241 New function.
242 * libgccjit++.h (gccjit::context::compile_to_file): New method.
243 * libgccjit.c (gcc_jit_context_compile): Update log message to
244 clarify that this is an in-memory compile.
245 (gcc_jit_context_compile_to_file): New function.
246 * libgccjit.h (gcc_jit_context): Clarify that you can compile
247 a context more than once, and that you can compile to a file
248 as well as to memory.
249 (gcc_jit_result): Clarify that this is the result of an
250 in-memory compilation.
251 (gcc_jit_context_compile): Clarify that you can compile, and that
252 this is an in-memory compilation.
253 (enum gcc_jit_output_kind): New enum.
254 (gcc_jit_context_compile_to_file): New function.
255 (gcc_jit_context_enable_dump): Clarify comment to cover both forms
256 of compilation.
257 * libgccjit.map (gcc_jit_context_compile_to_file): New API
258 entrypoint.
259 * notes.txt: Update to show the playback::context::postprocess
260 virtual function.
261
450e225b
DM
2622015-01-19 David Malcolm <dmalcolm@redhat.com>
263
264 * jit-recording.c
265 (gcc::jit::recording::memento_of_new_string_literal::make_debug_string):
266 Add missing format string.
267
499de348
DM
2682015-01-16 David Malcolm <dmalcolm@redhat.com>
269
270 * Make-lang.in (lang_checks_parallelized): Add "check-jit".
271 (check_jit_parallelize): Set this to an arbitrary value (10).
272
e989e68d
JJ
2732015-01-16 Jakub Jelinek <jakub@redhat.com>
274
275 * jit-builtins.h (DEF_FUNCTION_TYPE_VAR_5): Fix spelling of
276 last argument.
277 (DEF_FUNCTION_TYPE_VAR_8, DEF_FUNCTION_TYPE_VAR_12): Define and
278 undef afterwards.
279 * jit-builtins.c (DEF_FUNCTION_TYPE_VAR_8, DEF_FUNCTION_TYPE_VAR_12):
280 Likewise.
281
179ed8f5
RS
2822015-01-15 Richard Sandiford <richard.sandiford@arm.com>
283
284 Update copyright years in docs/.
285
96a87981
DM
2862015-01-15 David Malcolm <dmalcolm@redhat.com>
287
288 * libgccjit.c (gcc_jit_block_add_assignment_op): Check that the
289 lvalue and the rvalue are of compatible type.
290
86d0ac88
DM
2912015-01-13 David Malcolm <dmalcolm@redhat.com>
292
293 * docs/cp/topics/contexts.rst (Debugging): Add
294 gccjit::context::dump_reproducer_to_file.
295 * docs/internals/index.rst (Design notes): New section,
296 discussing input validation and
297 gcc_jit_context_dump_reproducer_to_file.
298 * docs/topics/contexts.rst (Debugging): Add
299 gcc_jit_context_dump_reproducer_to_file.
300 * docs/_build/texinfo/libgccjit.texi: Regenerate.
301 * jit-common.h (gcc::jit::dump::get_context): New accessor.
302 * jit-recording.c: Include "hash-map.h".
303 Within namespace ::gcc::jit...
304 (dump::write): Flush each line.
305 (dump::make_location): Pass false for new param "created_by_user".
306 (class allocator): New class.
307 (allocator::~allocator): New function.
308 (allocator::xstrdup_printf): New function.
309 (allocator::xstrdup_printf_va): New function.
310 (class reproducer): New subclass of dump.
311 (reproducer::reproducer): New function.
312 (reproducer::write_params): New function.
313 (reproducer::write_args): New function.
314 (reproducer::make_identifier): New function.
315 (reproducer::make_tmp_identifier): New function.
316 (reproducer::get_identifier): New pair of functions.
317 (reproducer::get_identifier_as_rvalue): New function.
318 (reproducer::get_identifier_as_lvalue): New function.
319 (reproducer::get_identifier_as_type): New function.
320 (reproducer::xstrdup_printf): New function.
321 (recording::context::context): Initialize m_toplevel_ctxt.
322 (recording::context::new_location): Add param created_by_user.
323 (str_option_reproducer_strings): New table of strings.
324 (int_option_reproducer_strings): Likewise.
325 (bool_option_reproducer_strings): Likewise.
326 (get_type_enum_strings): Likewise.
327 (names_of_function_kinds): Likewise.
328 (global_kind_reproducer_strings): Likewise.
329 (unary_op_reproducer_strings): Likewise.
330 (binary_op_reproducer_strings): Likewise.
331 (comparison_reproducer_strings): Likewise.
332 Within namespace ::gcc::jit::recording::...
333 (context::dump_reproducer_to_file): New function.
334 (string::write_reproducer): Likewise.
335 (location::write_reproducer): Likewise.
336 (type::access_as_type): Likewise.
337 (memento_of_get_type::write_reproducer): Likewise.
338 (memento_of_get_pointer::write_reproducer): Likewise.
339 (memento_of_get_const::write_reproducer): Likewise.
340 (memento_of_get_volatile::write_reproducer): Likewise.
341 (array_type::write_reproducer): Likewise.
342 (function_type::write_reproducer): Likewise.
343 (function_type::write_deferred_reproducer): Likewise.
344 (field::write_reproducer): Likewise.
345 (struct_::access_as_type): Likewise.
346 (struct_::write_reproducer): Likewise.
347 (union_::write_reproducer): Likewise.
348 (fields::write_reproducer): Likewise.
349 (rvalue::access_as_rvalue): Likewise.
350 (lvalue::access_as_rvalue): Likewise.
351 (lvalue::access_as_lvalue): Likewise.
352 (param::access_as_rvalue): Likewise.
353 (param::access_as_lvalue): Likewise.
354 (param::write_reproducer): Likewise.
355 (function::write_reproducer): Likewise.
356 (block::write_reproducer): Likewise.
357 (global::write_reproducer): Likewise.
358 (memento_of_new_rvalue_from_const <int>::write_reproducer):
359 Likewise.
360 (memento_of_new_rvalue_from_const <long>::write_reproducer):
361 Likewise.
362 (memento_of_new_rvalue_from_const <double>::write_reproducer):
363 Likewise.
364 (memento_of_new_rvalue_from_const <void *>::write_reproducer):
365 Likewise.
366 (memento_of_new_string_literal::write_reproducer): Likewise.
367 (unary_op::write_reproducer): Likewise.
368 (binary_op::write_reproducer): Likewise.
369 (comparison::write_reproducer): Likewise.
370 (cast::write_reproducer): Likewise.
371 (call::write_reproducer): Likewise.
372 (call_through_ptr::write_reproducer): Likewise.
373 (array_access::write_reproducer): Likewise.
374 (access_field_of_lvalue::write_reproducer): Likewise.
375 (access_field_rvalue::write_reproducer): Likewise.
376 (dereference_field_rvalue::write_reproducer): Likewise.
377 (dereference_rvalue::write_reproducer): Likewise.
378 (get_address_of_lvalue::write_reproducer): Likewise.
379 (local::write_reproducer): Likewise.
380 (eval::write_reproducer): Likewise.
381 (assignment::write_reproducer): Likewise.
382 (assignment_op::write_reproducer): Likewise.
383 (comment::write_reproducer): Likewise.
384 (conditional::write_reproducer): Likewise.
385 (jump::write_reproducer): Likewise.
386 (return_::write_reproducer): Likewise.
387 * jit-recording.h (gcc::jit::reproducer): New forward declararion.
388 Within namespace ::gcc::jit::recording::...
389 (context::new_location): Add "created_by_user" param.
390 (context::dump_reproducer_to_file): New method.
391 (context::m_toplevel_ctxt): New field.
392 (memento::write_reproducer): New pure virtual function.
393 (memento::dyn_cast_location): New virtual function.
394 (string::write_reproducer):
395 (location::location): Add "created_by_user" param.
396 (location::dyn_cast_location): New function.
397 (location::created_by_user): New accessor.
398 (location::write_reproducer): New function.
399 (location::m_created_by_user): New field.
400 (type::access_as_type): New virtual function.
401 (location::write_reproducer): Likewise.
402 (type::access_as_type): Likewise.
403 (memento_of_get_type::write_reproducer): Likewise.
404 (memento_of_get_pointer::write_reproducer): Likewise.
405 (memento_of_get_const::write_reproducer): Likewise.
406 (memento_of_get_volatile::write_reproducer): Likewise.
407 (array_type::write_reproducer): Likewise.
408 (function_type::write_reproducer): Likewise.
409 (function_type::write_deferred_reproducer): Likewise.
410 (field::write_reproducer): Likewise.
411 (struct_::access_as_type): Likewise.
412 (struct_::write_reproducer): Likewise.
413 (union_::write_reproducer): Likewise.
414 (union_::m_fields): Remove stray unused field.
415 (fields::length): New accessor.
416 (fields::get_field): New accessor.
417 (fields::write_reproducer): New function.
418 (rvalue::access_as_rvalue): Likewise.
419 (lvalue::access_as_rvalue): Likewise.
420 (lvalue::access_as_lvalue): Likewise.
421 (param::access_as_rvalue): Likewise.
422 (param::access_as_lvalue): Likewise.
423 (param::write_reproducer): Likewise.
424 (function::write_reproducer): Likewise.
425 (block::write_reproducer): Likewise.
426 (global::write_reproducer): Likewise.
427 (memento_of_new_rvalue_from_const <HOST_TYPE>::write_reproducer):
428 Likewise.
429 (memento_of_new_string_literal::write_reproducer): Likewise.
430 (unary_op::write_reproducer): Likewise.
431 (binary_op::write_reproducer): Likewise.
432 (comparison::write_reproducer): Likewise.
433 (cast::write_reproducer): Likewise.
434 (call::write_reproducer): Likewise.
435 (call_through_ptr::write_reproducer): Likewise.
436 (array_access::write_reproducer): Likewise.
437 (access_field_of_lvalue::write_reproducer): Likewise.
438 (access_field_rvalue::write_reproducer): Likewise.
439 (dereference_field_rvalue::write_reproducer): Likewise.
440 (dereference_rvalue::write_reproducer): Likewise.
441 (get_address_of_lvalue::write_reproducer): Likewise.
442 (local::write_reproducer): Likewise.
443 (eval::write_reproducer): Likewise.
444 (assignment::write_reproducer): Likewise.
445 (assignment_op::write_reproducer): Likewise.
446 (comment::write_reproducer): Likewise.
447 (conditional::write_reproducer): Likewise.
448 (jump::write_reproducer): Likewise.
449 (return_::write_reproducer): Likewise.
450 * libgccjit++.h (gccjit::context::dump_reproducer_to_file): New.
451 * libgccjit.c (gcc_jit_context_new_location): Pass "true" as
452 param "created_by_user".
453 (gcc_jit_context_dump_reproducer_to_file): New API entrypoint.
454 * libgccjit.h (gcc_jit_context_dump_reproducer_to_file): New API
455 entrypoint.
456 * libgccjit.map (gcc_jit_context_dump_reproducer_to_file): New API
457 entrypoint.
458
f6f2b019
DM
4592015-01-12 David Malcolm <dmalcolm@redhat.com>
460
461 * jit-recording.c (class gcc::jit::rvalue_usage_validator): New.
462 (gcc::jit::rvalue_usage_validator::rvalue_usage_validator): New
463 ctor.
464 (gcc::jit::rvalue_usage_validator::visit): New function.
465 (gcc::jit::recording::rvalue::verify_valid_within_stmt): New
466 function.
467 (gcc::jit::recording::rvalue::set_scope): New function.
468 (gcc::jit::recording::function::function): Call set_scope on each
469 param, issuing errors for any params that already have a function.
470 (gcc::jit::recording::block::add_eval): Return the new statement;
471 update the comment given that some error-checking now happens after
472 this returns.
473 (gcc::jit::recording::block::add_assignment): Likewise.
474 (gcc::jit::recording::block::add_assignment_op): Likewise.
475 (gcc::jit::recording::block::add_comment): Likewise.
476 (gcc::jit::recording::block::end_with_conditional): Likewise.
477 (gcc::jit::recording::block::end_with_jump): Likewise.
478 (gcc::jit::recording::block::end_with_return): Likewise.
479 (gcc::jit::recording::block::validate): Add a comment.
480 (gcc::jit::recording::unary_op::visit_children): New function.
481 (gcc::jit::recording::binary_op::visit_children): New function.
482 (gcc::jit::recording::comparison::visit_children): New function.
483 (gcc::jit::recording::cast::visit_children): New function.
484 (gcc::jit::recording::call::visit_children): New function.
485 (gcc::jit::recording::call_through_ptr::visit_children): New function.
486 (gcc::jit::recording::array_access::visit_children): New function.
487 (gcc::jit::recording::access_field_of_lvalue::visit_children): New
488 function.
489 (gcc::jit::recording::access_field_rvalue::visit_children): New
490 function.
491 (gcc::jit::recording::dereference_field_rvalue::visit_children):
492 New function.
493 (gcc::jit::recording::dereference_rvalue::visit_children): New
494 function.
495 (gcc::jit::recording::get_address_of_lvalue::visit_children): New
496 function.
497 * jit-recording.h: Within namespace gcc::jit::recording...
498 (class rvalue_visitor): New.
499 (rvalue::rvalue): Initialize m_scope.
500 (rvalue::get_loc): New accessor.
501 (rvalue::verify_valid_within_stmt): New function.
502 (rvalue::visit_children): New pure virtual function.
503 (rvalue::set_scope): New function.
504 (rvalue::get_scope): New function.
505 (rvalue::dyn_cast_param): New function.
506 (rvalue::m_scope): New field.
507 (param::visit_children): New empty function.
508 (param::dyn_cast_param): New function.
509 (function::get_loc): New function.
510 (block::add_eval): Return the new statement.
511 (block::add_assignment): Likewise.
512 (block::add_assignment_op): Likewise.
513 (block::add_comment): Likewise.
514 (block::end_with_conditional): Likewise.
515 (block::end_with_jump): Likewise.
516 (block::end_with_return): Likewise.
517 (global::visit_children): New function.
518 (memento_of_new_rvalue_from_const<HOST_TYPE>::visit_children):
519 New function.
520 (memento_of_new_string_literal::visit_children): New function.
521 (unary_op::visit_children): New function.
522 (binary_op::visit_children): New function.
523 (comparison::visit_children): New function.
524 (cast::visit_children): New function.
525 (call::visit_children): New function.
526 (call_through_ptr::visit_children): New function.
527 (array_access::visit_children): New function.
528 (access_field_of_lvalue::visit_children): New function.
529 (access_field_rvalue::visit_children): New function.
530 (dereference_field_rvalue::visit_children): New function.
531 (dereference_rvalue::visit_children): New function.
532 (get_address_of_lvalue::visit_children): New function.
533 (local::local): Call set_scope.
534 (local::visit_children): New function.
535 (statement::get_block): Make public.
536 * libgccjit.c (RETURN_VAL_IF_FAIL_PRINTF5): New macro.
537 (RETURN_NULL_IF_FAIL_PRINTF5): New macro.
538 (gcc_jit_context_new_function): Verify that each param has
539 not yet been used for creating another function.
540 (gcc_jit_block_add_eval): After creating the stmt, verify
541 that the rvalue expression tree is valid to use within it.
542 (gcc_jit_block_add_assignment): Likewise for the lvalue and
543 rvalue expression trees.
544 (gcc_jit_block_add_assignment_op): Likewise.
545 (gcc_jit_block_end_with_conditional): Likewise for the boolval
546 expression tree.
547 (gcc_jit_block_end_with_return): Likewise for the rvalue
548 expression tree.
549 (gcc_jit_block_end_with_void_return): Remove return of "void",
550 now that block::end_with_return is now non-void.
551
1c35cc2c
DM
5522015-01-12 David Malcolm <dmalcolm@redhat.com>
553
554 * jit-playback.c (gcc::jit::playback::context::read_dump_file):
555 Add missing fclose on error-handling path.
556
791cfef8
DM
5572015-01-12 David Malcolm <dmalcolm@redhat.com>
558
559 * docs/cp/topics/expressions.rst (Global variables): Add
560 enum gcc_jit_global_kind param to gccjit::context::new_global.
561 * docs/topics/expressions.rst (Global variables): Likewise.
562 Document the new enum.
563 * docs/topics/results.rst (Compilation results): Document
564 globals-handling.
565 * docs/_build/texinfo/libgccjit.texi: Regenerate.
566 * dummy-frontend.c (jit_langhook_write_globals): Call into the
567 playback context's write_global_decls_1 and write_global_decls_2
568 before and after calling symtab->finalize_compilation_unit ().
569 * jit-playback.c: Include "debug.h".
570 (gcc::jit::playback::context::new_global): Add "kind" param and
571 use it to set TREE_PUBLIC, TREE_STATIC and DECL_EXTERNAL on the
572 underlying VAR_DECL. Call varpool_node::get_create on the
573 VAR_DECL, and add it to m_globals.
574 (gcc::jit::playback::context::write_global_decls_1): New function.
575 (gcc::jit::playback::context::write_global_decls_2): New function.
576 * jit-playback.h (gcc::jit::playback::context::context): Call
577 create on m_globals.
578 (gcc::jit::playback::context::new_global): Add "kind" param.
579 (gcc::jit::playback::context::write_global_decls_1): New function.
580 (gcc::jit::playback::context::write_global_decls_2): New function.
581 (gcc::jit::playback::context::m_globals): New field.
582 * jit-recording.c (gcc::jit::recording::context::context):
583 Initialize m_globals.
584 (gcc::jit::recording::context::new_global): Add param "kind".
585 Add the new global to m_globals.
586 (gcc::jit::recording::context::dump_to_file): Dump the globals.
587 (gcc::jit::recording::global::replay_into): Add field m_kind.
588 (gcc::jit::recording::global::write_to_dump): New override.
589 * jit-recording.h (gcc::jit::recording::context::new_global): Add
590 param "kind".
591 (gcc::jit::recording::context::m_globals): New field.
592 (gcc::jit::recording::global::global): Add param kind.
593 (gcc::jit::recording::global::write_to_dump): New override.
594 (gcc::jit::recording::global::m_kind): New field.
595 * jit-result.c (gcc::jit::result::get_global): New function.
596 * jit-result.h (gcc::jit::result::get_global): New function.
597 * libgccjit++.h (gccjit::context::new_global): Add "kind" param.
598 * libgccjit.c (gcc_jit_context_new_global): Likewise.
599 (gcc_jit_result_get_global): New API entrypoint.
600 * libgccjit.h (gcc_jit_result_get_global): New API entrypoint.
601 (enum gcc_jit_global_kind): New enum.
602 (gcc_jit_context_new_global): API change: add "kind" param.
603 * libgccjit.map (gcc_jit_result_get_global): New symbol.
604
860e981c
DM
6052015-01-09 David Malcolm <dmalcolm@redhat.com>
606
607 * dummy-frontend.c: Include "fixed-value.h", "alias.h", "flags.h",
608 "symtab.h", "inchash.h". Move include of "hash-set.h" much
609 earlier.
610 * jit-builtins.c: Remove redundant includes of "opts.h" and
611 "tree.h".
612 * jit-common.h: Include "hash-set.h", "input.h", "vec.h",
613 "double-int.h", "alias.h", "flags.h", "symtab.h", "inchash.h".
614 * jit-playback.c: Include "hashtab.h", "machmode.h", "input.h",
615 "statistics.h", "vec.h", "double-int.h", "real.h",
616 "fixed-value.h", "alias.h", "flags.h", "symtab.h", "tree-core.h",
617 "inchash.h", "fold-const.h". Move include of "hash-set.h" to
618 earlier.
619 * jit-recording.c: Remove redundant includes of "opts.h" and
620 "tree.h".
621
ccce3b2a
DM
6222015-01-09 David Malcolm <dmalcolm@redhat.com>
623
624 * docs/cp/topics/expressions.rst (Simple expressions): Use
625 ":c:type:" for C types. Document new overload of
626 gcc::jit::context::new_rvalue.
627 * docs/topics/expressions.rst (Simple expressions): Use
628 ":c:type:" for C types. Document new entrypoint
629 gcc_jit_context_new_rvalue_from_long.
630 * docs/_build/texinfo/libgccjit.texi: Regenerate.
631 * jit-playback.c: Within namespace gcc::jit::playback...
632 (context::new_rvalue_from_int): Eliminate in favor of...
633 (context::new_rvalue_from_const <int>): ...this.
634 (context::new_rvalue_from_double): Eliminate in favor of...
635 (context::new_rvalue_from_const <double>): ...this.
636 (context::new_rvalue_from_const <long>): New.
637 (context::new_rvalue_from_ptr): Eliminate in favor of...
638 (context::new_rvalue_from_const <void *>): ...this.
639 * jit-playback.h: Within namespace gcc::jit::playback...
640 (context::new_rvalue_from_int): Eliminate in favor of...
641 (context::new_rvalue_from_const <HOST_TYPE>): ...this.
642 (context::new_rvalue_from_double): Likewise.
643 (context::new_rvalue_from_ptr): Likewise.
644 * jit-recording.c: Within namespace gcc::jit::recording...
645 (context::new_rvalue_from_int): Eliminate.
646 (context::new_rvalue_from_double): Likewise.
647 (context::new_rvalue_from_ptr): Likewise.
648 (class memento_of_new_rvalue_from_const <int>):
649 Add explicit specialization.
650 (class memento_of_new_rvalue_from_const <long>):
651 Likewise.
652 (class memento_of_new_rvalue_from_const <double>):
653 Likewise.
654 (class memento_of_new_rvalue_from_const <void *>):
655 Likewise.
656 (memento_of_new_rvalue_from_int::replay_into):
657 Generalize into...
658 (memento_of_new_rvalue_from_const <HOST_TYPE>::replay_into):
659 ...this...
660 (memento_of_new_rvalue_from_double::replay_into):
661 ...allowing this...
662 (memento_of_new_rvalue_from_ptr::replay_into):
663 ...and this to be deleted.
664 (memento_of_new_rvalue_from_int::make_debug_string):
665 Convert to...
666 (memento_of_new_rvalue_from_const <int>::make_debug_string):
667 ...this.
668 (memento_of_new_rvalue_from_double::make_debug_string):
669 Convert to...
670 (memento_of_new_rvalue_from_const <double>::make_debug_string):
671 ...this.
672 (memento_of_new_rvalue_from_ptr::make_debug_string)
673 Convert to...
674 (memento_of_new_rvalue_from_const <void *>::make_debug_string):
675 ...this.
676 (memento_of_new_rvalue_from_const <long>::make_debug_string):
677 New function.
678 * jit-recording.h: Within namespace gcc::jit::recording...
679 (context::new_rvalue_from_int): Eliminate.
680 (context::new_rvalue_from_double): Likewise.
681 (context::new_rvalue_from_ptr): Likewise, all in favor of...
682 (context::new_rvalue_from_const <HOST_TYPE>): New family of
683 methods.
684 (class memento_of_new_rvalue_from_int): Eliminate.
685 (class memento_of_new_rvalue_from_double): Likewise.
686 (class memento_of_new_rvalue_from_ptr): Likewise.
687 (class memento_of_new_rvalue_from_const <HOST_TYPE>): New family
688 of rvalue subclasses.
689 * libgccjit++.h (gccjit::context::new_rvalue): New overload, for
690 "long".
691 * libgccjit.c (gcc_jit_context_new_rvalue_from_int): Update for
692 rewriting of recording::context::new_rvalue_from_int to
693 recording::context::new_rvalue_from_const <int>.
694 (gcc_jit_context_new_rvalue_from_long): New API entrypoint.
695 (gcc_jit_context_new_rvalue_from_double): Update for
696 rewriting of recording::context::new_rvalue_from_double to
697 recording::context::new_rvalue_from_const <double>.
698 (gcc_jit_context_new_rvalue_from_ptr): Update for
699 rewriting of recording::context::new_rvalue_from_ptr to
700 recording::context::new_rvalue_from_const <void *>.
701 * libgccjit.h (gcc_jit_context_new_rvalue_from_long): New API
702 entrypoint.
703 * libgccjit.map (gcc_jit_context_new_rvalue_from_long): Likewise.
704
d2286af3
DM
7052015-01-09 David Malcolm <dmalcolm@redhat.com>
706
707 PR jit/64206
708 * docs/internals/test-hello-world.exe.log.txt: Update, the log now
709 shows tempdir creation/cleanup.
710 * docs/_build/texinfo/libgccjit.texi: Regenerate.
711 * jit-logging.h (class gcc::jit::log_user): Add gcc::jit::tempdir
712 to the list of subclasses in the comment.
713 * jit-playback.c (gcc::jit::playback::context::context): Add a
714 comment clarifying when the tempdir gets cleaned up.
715 (gcc::jit::playback::context::compile): Pass the context's logger,
716 if any, to the tempdir.
717 (gcc::jit::playback::context::dlopen_built_dso): When creating the
718 gcc::jit::result, if GCC_JIT_BOOL_OPTION_DEBUGINFO is set, hand
719 over ownership of the tempdir to it.
720 * jit-result.c: Include "jit-tempdir.h".
721 (gcc::jit::result::result): Add tempdir param, saving it as
722 m_tempdir.
723 (gcc::jit::result::~result): Delete m_tempdir.
724 * jit-result.h (gcc::jit::result::result): Add tempdir param.
725 (gcc::jit::result::m_tempdir): New field.
726 * jit-tempdir.c (gcc::jit::tempdir::tempdir): Add logger param;
727 add JIT_LOG_SCOPE.
728 (gcc::jit::tempdir::create): Add JIT_LOG_SCOPE to log entry/exit,
729 and log m_path_template and m_path_tempdir.
730 (gcc::jit::tempdir::~tempdir): Add JIT_LOG_SCOPE to log
731 entry/exit, and log the unlink and rmdir calls.
732 * jit-tempdir.h: Include "jit-logging.h".
733 (class gcc::jit::tempdir): Make this be a subclass of log_user.
734 (gcc::jit::tempdir::tempdir): Add logger param.
735 * notes.txt: Update to show the two possible places where the
736 tempdir can be cleaned up.
737
7c8db13e
DM
7382015-01-08 David Malcolm <dmalcolm@redhat.com>
739
740 * libgccjit.h (struct gcc_jit_context): Rewrite the descriptive
741 comment.
742
303e1d56
DM
7432015-01-08 David Malcolm <dmalcolm@redhat.com>
744
745 * docs/topics/contexts.rst (Error-handling): Document new
746 entrypoint gcc_jit_context_get_last_error.
747 * docs/_build/texinfo/libgccjit.texi: Regenerate.
748 * jit-recording.c (gcc::jit::recording::context::context):
749 Initialize new fields "m_last_error_str" and
750 "m_owns_last_error_str".
751 (gcc::jit::recording::context::~context): Clean up
752 m_last_error_str, if needed.
753 (gcc::jit::recording::context::add_error_va): Update
754 m_last_error_str and m_owns_last_error_str, freeing the old
755 value if appropriate.
756 (gcc::jit::recording::context::get_last_error): New function.
757 * jit-recording.h (gcc::jit::recording::context::get_last_error):
758 New function.
759 (gcc::jit::recording::context): New fields m_last_error_str and
760 m_owns_last_error_str.
761 * libgccjit.c (gcc_jit_context_get_last_error): New function.
762 * libgccjit.h (gcc_jit_context_get_last_error): New declaration.
763 * libgccjit.map (gcc_jit_context_get_last_error): New function.
764
eb4c16eb
DM
7652015-01-08 David Malcolm <dmalcolm@redhat.com>
766
767 * Make-lang.in (jit_OBJS): Add jit/jit-logging.o.
768 * docs/internals/index.rst (Overview of code structure): Mention
769 gcc_jit_context_set_logfile, and embed the example logfile.
770 * docs/internals/test-hello-world.exe.log.txt: New file: example
771 of a logfile.
772 * docs/topics/contexts.rst (Debugging): Add documentation
773 for gcc_jit_context_set_logfile.
774 * docs/_build/texinfo/libgccjit.texi: Regenerate.
775 * dummy-frontend.c: Include "jit-logging.h".
776 (jit_langhook_init): Assert that there is an active playback
777 context. If it has a logger, log entry/exit to this function.
778 (jit_langhook_write_globals): Likewise.
779 * jit-common.h (gcc::jit::logger): New forward declaration.
780 * jit-logging.c: New file.
781 * jit-logging.h: New file.
782 * jit-playback.c: Include "jit-logging.h".
783 (gcc::jit::playback::context::context): Initialize the log_user
784 base class from the recording context's logger (if any). Use
785 JIT_LOG_SCOPE to log entry/exit from the function body.
786 (gcc::jit::playback::context::~context): Use JIT_LOG_SCOPE to
787 log entry/exit from the function body.
788 (gcc::jit::playback::build_stmt_list): Likewise.
789 (gcc::jit::playback::function::postprocess): Likewise.
790 (gcc::jit::playback::context::compile): Likewise. Log the
791 entry/exit to toplev::main and toplev::finalize. Log the
792 fake argv passed to toplev::main.
793 (gcc::jit::playback::context::acquire_mutex): Use JIT_LOG_SCOPE to
794 log entry/exit from the function body.
795 (gcc::jit::playback::context::release_mutex): Likewise.
796 (gcc::jit::playback::context::make_fake_args): Likewise.
797 (gcc::jit::playback::context::extract_any_requested_dumps):
798 Likewise.
799 (gcc::jit::playback::context::convert_to_dso): Likewise. Also,
800 log the arguments that the driver is invoked with.
801 (gcc::jit::playback::context::dlopen_built_dso): Likewise. Pass
802 the logger to the result object.
803 (gcc::jit::playback::context::replay): Use JIT_LOG_SCOPE to
804 log entry/exit from the function body.
805 (gcc::jit::playback::context::dump_generated_code): Likewise.
806 (gcc::jit::playback::context::handle_locations): Likewise.
807 * jit-playback.h (gcc::jit::playback::context): Make this be
808 a subclass of gcc::jit::log_user.
809 * jit-recording.c: Include "jit-logging.h".
810 (gcc::jit::recording::context::context: Initialize the logger to
811 NULL for root contexts, or to the parent's logger for child
812 contexts.
813 (gcc::jit::recording::context::~context): Use JIT_LOG_SCOPE to
814 log entry/exit from the function body.
815 (gcc::jit::recording::context::replay_into): Likewise.
816 (gcc::jit::recording::context::disassociate_from_playback):
817 Likewise.
818 (gcc::jit::recording::context::compile): Likewise.
819 (recording::context::add_error_va): Likewise. Also, log the
820 error.
821 (gcc::jit::recording::context::validate): Use JIT_LOG_SCOPE to
822 log entry/exit from the function body.
823 * jit-recording.h: Include "jit-logging.h".
824 (gcc::jit::recording::context): Make this be a subclass of
825 gcc::jit::log_user.
826 * jit-result.c: Include "jit-common.h" and "jit-logging.h".
827 (gcc::jit::result::result): Add logger param, recording it.
828 Use JIT_LOG_SCOPE to log entry/exit from the function body.
829 (gcc::jit::result::~result(): Use JIT_LOG_SCOPE to
830 log entry/exit from the function body.
831 (gcc::jit::result::get_code): Likewise.
832 * jit-result.h (gcc::jit::result): Make this be a subclass of
833 gcc::jit::log_user.
834 (gcc::jit::result::result): Add logger parameter.
835 * libgccjit++.h (gccjit::context::set_logfile): New function.
836 * libgccjit.c: Include "jit-logging.h".
837 (gcc_jit_context_acquire): Log the context.
838 (gcc_jit_context_release): Use JIT_LOG_FUNC to
839 log entry/exit from the function body, and log the context.
840 (gcc_jit_context_new_child_context): Likewise, logging both
841 contexts.
842 (gcc_jit_context_new_location): Use JIT_LOG_FUNC to
843 log entry/exit from the function body.
844 (gcc_jit_context_get_type): Likewise.
845 (gcc_jit_context_get_int_type): Likewise.
846 (gcc_jit_context_new_array_type): Likewise.
847 (gcc_jit_context_new_field): Likewise.
848 (gcc_jit_context_new_struct_type): Likewise.
849 (gcc_jit_context_new_opaque_struct): Likewise.
850 (gcc_jit_struct_set_fields): Likewise.
851 (gcc_jit_context_new_union_type): Likewise.
852 (gcc_jit_context_new_function_ptr_type): Likewise.
853 (gcc_jit_context_new_param): Likewise.
854 (gcc_jit_context_new_function): Likewise.
855 (gcc_jit_context_get_builtin_function): Likewise.
856 (gcc_jit_function_get_param): Likewise.
857 (gcc_jit_function_dump_to_dot): Likewise.
858 (gcc_jit_function_new_block): Likewise.
859 (gcc_jit_context_new_global): Likewise.
860 (gcc_jit_context_new_rvalue_from_int): Likewise.
861 (gcc_jit_context_zero): Likewise.
862 (gcc_jit_context_one): Likewise.
863 (gcc_jit_context_new_rvalue_from_double): Likewise.
864 (gcc_jit_context_new_rvalue_from_ptr): Likewise.
865 (gcc_jit_context_null): Likewise.
866 (gcc_jit_context_new_string_literal): Likewise.
867 (gcc_jit_context_new_unary_op): Likewise.
868 (gcc_jit_context_new_binary_op): Likewise.
869 (gcc_jit_context_new_comparison): Likewise.
870 (gcc_jit_context_new_call): Likewise.
871 (gcc_jit_context_new_call_through_ptr): Likewise.
872 (gcc_jit_context_new_cast): Likewise.
873 (gcc_jit_context_new_array_access): Likewise.
874 (gcc_jit_lvalue_access_field): Likewise.
875 (gcc_jit_rvalue_access_field): Likewise.
876 (gcc_jit_rvalue_dereference_field): Likewise.
877 (gcc_jit_rvalue_dereference): Likewise.
878 (gcc_jit_lvalue_get_address): Likewise.
879 (gcc_jit_function_new_local): Likewise.
880 (gcc_jit_block_add_eval): Likewise.
881 (gcc_jit_block_add_assignment): Likewise.
882 (gcc_jit_block_add_assignment_op): Likewise.
883 (gcc_jit_block_end_with_conditional): Likewise.
884 (gcc_jit_block_add_comment): Likewise.
885 (gcc_jit_block_end_with_jump): Likewise.
886 (gcc_jit_block_end_with_return): Likewise.
887 (gcc_jit_block_end_with_void_return): Likewise.
888 (gcc_jit_context_set_str_option): Likewise.
889 (gcc_jit_context_set_int_option): Likewise.
890 (gcc_jit_context_set_bool_option): Likewise.
891 (gcc_jit_context_enable_dump): Likewise.
892 (gcc_jit_context_compile): Likewise. Also log the context,
893 and the result.
894 (gcc_jit_context_dump_to_file): Likewise.
895 (gcc_jit_context_set_logfile): New function.
896 (gcc_jit_context_get_first_error): Use JIT_LOG_FUNC to
897 log entry/exit from the function body.
898 (gcc_jit_result_get_code): Likewise. Also log the fnname)
899 and the ptr to be returned.
900 (gcc_jit_result_release): Likewise. Also log the result.
901 * libgccjit.h: Include <stdio.h>, since we need FILE *.
902 (gcc_jit_context_set_logfile): New declaration.
903 * libgccjit.map (gcc_jit_context_set_logfile): New.
904
c211cd23
DM
9052015-01-07 David Malcolm <dmalcolm@redhat.com>
906
907 * jit-recording.h (gcc::jit::recording::type::is_void): New
908 virtual function.
909 (gcc::jit::recording::memento_of_get_type::is_void): New
910 function, overriding default implementation.
911 * libgccjit.c (gcc_jit_rvalue_dereference): Verify that
912 the underlying type is not "void".
913
18146f45
DM
9142015-01-07 David Malcolm <dmalcolm@redhat.com>
915
916 * docs/topics/expressions.rst (Unary Operations): Add
917 GCC_JIT_UNARY_OP_ABS.
918 * jit-playback.c (gcc::jit::playback::context::new_unary_op):
919 Likewise.
920 * jit-recording.c (unary_op_strings): Likewise.
921 * libgccjit.c (gcc_jit_context_new_unary_op): Update checking
922 of "op" to reflect addition of GCC_JIT_UNARY_OP_ABS.
923 * libgccjit.h (enum gcc_jit_unary_op): Add GCC_JIT_UNARY_OP_ABS.
924 * docs/_build/texinfo/libgccjit.texi: Regenerate.
925
11af98ff
DM
9262015-01-07 David Malcolm <dmalcolm@redhat.com>
927
928 * jit-recording.h (gcc::jit::recording::memento_of_get_type): Fix
929 typo in comment.
930
433d16df
DM
9312015-01-07 David Malcolm <dmalcolm@redhat.com>
932
933 * TODO.rst (Test suite): Remove item about running C++ testcases.
934 * docs/internals/index.rst (Working on the JIT library): Add
935 "c++" to the enabled languages in the suggested "configure"
936 invocation, and add a description of why this is necessary.
937 * docs/_build/texinfo/libgccjit.texi: Regenerate.
938
50bb6c8e
DM
9392015-01-07 David Malcolm <dmalcolm@redhat.com>
940
941 * docs/internals/index.rst: Update to reflect that built
942 testcases are now test-foo.c.exe, rather than test-foo.exe.
943 * docs/_build/texinfo/libgccjit.texi: Regenerate.
944
1e3b6a3d
JJ
9452015-01-05 Jakub Jelinek <jakub@redhat.com>
946
947 Update copyright years.
948
e8af59bc
DM
9492014-12-19 David Malcolm <dmalcolm@redhat.com>
950
951 * jit-playback.c (gcc::jit::playback::context::build_cast): In
952 case BOOLEAN_TYPE, don't assume that the source expression is
953 of type "int".
954
5afd44e3
DM
9552014-12-19 David Malcolm <dmalcolm@redhat.com>
956
957 * jit-recording.c (gcc::jit::recording::context::context): When
958 copying string options from a parent context, take a copy of the
959 underlying buffers, rather than simply copying the pointer.
960
1f0858d7
DM
9612014-12-19 David Malcolm <dmalcolm@redhat.com>
962
963 * jit-recording.c (gcc::jit::recording::context::set_str_option):
964 Handle NULL.
965
35291c7d
DM
9662014-12-11 David Malcolm <dmalcolm@redhat.com>
967
968 * docs/cp/topics/contexts.rst (gccjit::context::set_str_option):
969 Document new function.
970 * docs/_build/texinfo/libgccjit.texi: Regenerate.
971
7b31ff5e
DM
9722014-12-10 Ulrich Drepper <drepper@gmail.com>
973
974 Minor interface cleanups of libgccjit
975 * jit-playback.c (convert_to_dso): Use auto_vec instead
976 of automatic array to build up command line.
977 * jit-recording.c (recording::context::set_str_option):
978 Make copy of the string.
979 (recording::context::~context): Free string options.
980 * jit-recording.h (recording::context): Adjust type
981 of m_str_options member.
982 * libgccjit.h: Adjust comment about
983 gcc_jit_context_set_str_option parameter being used after
984 the call.
985 Update comment now that all interfaces are copy strings
986 if necessary.
987 * libgccjit++.h (gccjit::context): Add set_str_option
988 member function.
989
29df5715
DM
9902014-12-10 David Malcolm <dmalcolm@redhat.com>
991
992 * docs/cp/index.rst: New file.
993 * docs/cp/intro/index.rst: New file.
994 * docs/cp/intro/tutorial01.rst: New file.
995 * docs/cp/intro/tutorial02.rst: New file.
996 * docs/cp/intro/tutorial03.rst: New file.
997 * docs/cp/intro/tutorial04.rst: New file.
998 * docs/cp/topics/contexts.rst: New file.
999 * docs/cp/topics/expressions.rst: New file.
1000 * docs/cp/topics/functions.rst: New file.
1001 * docs/cp/topics/index.rst: New file.
1002 * docs/cp/topics/locations.rst: New file.
1003 * docs/cp/topics/objects.rst: New file.
1004 * docs/cp/topics/results.rst: New file.
1005 * docs/cp/topics/types.rst: New file.
1006 * docs/examples/tut01-hello-world.cc: New file.
1007 * docs/examples/tut02-square.c: Fix missing newline in output.
1008 * docs/examples/tut02-square.cc: New file.
1009 * docs/examples/tut03-sum-of-squares.cc: New file.
1010 * docs/examples/tut04-toyvm/toyvm.cc: New file.
1011 * docs/index.rst: Move summary to above the table of contents.
1012 Add text about the C vs C++ APIs.
1013 * docs/topics/contexts.rst: Fix a typo.
1014
1015 * docs/_build/texinfo/libgccjit.texi: Regenerate.
1016 * docs/_build/texinfo/factorial1.png: New file.
1017 * docs/_build/texinfo/sum-of-squares1.png: New file.
1018
5cd614ce
DM
10192014-12-09 David Malcolm <dmalcolm@redhat.com>
1020
1021 * docs/examples/tut04-toyvm/toyvm.c (toyvm_function_compile): Move
1022 logic for determine "funcname" to new function...
1023 (get_function_name): ...here, adding logic to skip any leading
1024 path from the filename.
1025 (toyvm_function_parse): Use the filename for fn_filename, rather
1026 than "name", so that the debugger can locate the source .toy
1027 file.
1028 (toyvm_function_parse): Don't fclose a NULL FILE *.
1029
2712de78
DM
10302014-12-09 David Malcolm <dmalcolm@redhat.com>
1031
1032 PR jit/63854
1033 * docs/internals/index.rst (Running under valgrind): New
1034 subsection.
1035 (docs/_build/texinfo/libgccjit.texi): Regenerate.
1036
d1e5f2c7
DM
10372014-12-09 David Malcolm <dmalcolm@redhat.com>
1038
1039 PR jit/64206
1040 * Make-lang.in (jit_OBJS): Add jit/jit-tempdir.o.
1041 * jit-common.h (gcc::jit::tempdir): New forward decl.
1042 * jit-playback.c: Include jit-tempdir.h.
1043 (gcc::jit::playback::context::context): Initialize m_tempdir.
1044 (gcc::jit::playback::context::~context): Move tempdir
1045 cleanup to new file jit-tempdir.c
1046 (make_tempdir_path_template): Move to new file jit-tempdir.c.
1047 (gcc::jit::playback::context::compile): Move tempdir creation
1048 to new tempdir object in new file jit-tempdir.c.
1049 (gcc::jit::playback::context::make_fake_args): Get path from
1050 tempdir object rather than from member data.
1051 (gcc::jit::playback::context::convert_to_dso): Likewise.
1052 (gcc::jit::playback::context::dlopen_built_dso): Likewise.
1053 (gcc::jit::playback::context::dump_generated_code): Likewise.
1054 (gcc::jit::playback::context::get_path_c_file): New function.
1055 (gcc::jit::playback::context::get_path_s_file): New function.
1056 (gcc::jit::playback::context::get_path_so_file): New function.
1057 * jit-playback.h (gcc::jit::playback::context::get_path_c_file):
1058 New function.
1059 (gcc::jit::playback::context::get_path_s_file): New function.
1060 (gcc::jit::playback::context::get_path_so_file): New function.
1061 (gcc::jit::playback::context): Move fields "m_path_template",
1062 "m_path_tempdir", "m_path_c_file", "m_path_s_file",
1063 "m_path_so_file" to new jit::tempdir class; add field "m_tempdir".
1064 * jit-tempdir.c: New file.
1065 * jit-tempdir.h: New file.
1066
38771e4e
DM
10672014-12-09 David Malcolm <dmalcolm@redhat.com>
1068
1069 * jit-playback.c (gcc::jit::playback::context::compile): Acquire the
1070 mutex here, immediately before using toplev, and release it here, on
1071 each exit path after acquisition.
1072 (jit_mutex): Move this variable here, from jit-recording.c.
1073 (gcc::jit::playback::context::acquire_mutex): New function, based on
1074 code in jit-recording.c.
1075 (gcc::jit::playback::context::release_mutex): Likewise.
1076 * jit-playback.h (gcc::jit::playback::context::acquire_mutex): New
1077 function.
1078 (gcc::jit::playback::context::release_mutex): New function.
1079 * jit-recording.c (jit_mutex): Move this variable to jit-playback.c.
1080 (gcc::jit::recording::context::compile): Move mutex-handling from
1081 here into jit-playback.c's gcc::jit::playback::context::compile.
1082 * notes.txt: Update to show the new locations of ACQUIRE_MUTEX
1083 and RELEASE_MUTEX.
1084
38f4f641
DM
10852014-12-09 David Malcolm <dmalcolm@redhat.com>
1086
1087 * jit-playback.c (gcc::jit::playback::context::compile): Move the
1088 dlopen code into...
1089 (gcc::jit::playback::context::dlopen_built_dso): ...this new
1090 function.
1091 * jit-playback.h (gcc::jit::playback::context::dlopen_built_dso):
1092 New function.
1093
82e0c914
DM
10942014-12-09 David Malcolm <dmalcolm@redhat.com>
1095
1096 PR jit/64166
1097 * docs/topics/contexts.rst (Debugging): Add description of
1098 gcc_jit_context_enable_dump.
1099 * docs/_build/texinfo/libgccjit.texi: Regenerate.
1100 * jit-playback.c: Include context.h.
1101 (class auto_argvec): New class.
1102 (auto_argvec::~auto_argvec): New function.
1103 (gcc::jit::playback::context::compile): Convert fake_args to be
1104 an auto_argvec, so that it can contain dynamically-allocated
1105 strings. Construct a vec of all requested dumps, and pass it to
1106 make_fake_args. Extract requested dumps between the calls to
1107 toplev::main and toplev::finalize.
1108 (gcc::jit::playback::context::make_fake_args): Convert param
1109 "argvec" to be a vec <char *>, and gain a "requested_dumps"
1110 param. Convert to dynamically-allocated arg strings by converting
1111 ADD_ARG to take a copy of the arg, and add ADD_ARG_TAKE_OWNERSHIP
1112 for args that are already a copy. Add args for all requested dumps.
1113 (gcc::jit::playback::context::extract_any_requested_dumps): New
1114 function.
1115 (gcc::jit::playback::context::read_dump_file): New function.
1116 * jit-playback.h (gcc::jit::playback::context::make_fake_args):
1117 Convert param "argvec" to be a vec <char *>, and gain a
1118 "requested_dumps" param.
1119 (gcc::jit::playback::context::extract_any_requested_dumps): New
1120 function.
1121 (gcc::jit::playback::context::read_dump_file): New function.
1122 * jit-recording.c (gcc::jit::recording::context::enable_dump): New
1123 function.
1124 (gcc::jit::recording::context::get_all_requested_dumps): New
1125 function.
1126 * jit-recording.h (gcc::jit::recording::requested_dump): New
1127 struct.
1128 (gcc::jit::recording::context::enable_dump): New function.
1129 (gcc::jit::recording::context::get_all_requested_dumps): New
1130 function.
1131 (gcc::jit::recording::context::m_requested_dumps): New field.
1132 * libgccjit.c (gcc_jit_context_enable_dump): New API entrypoint.
1133 * libgccjit.h (gcc_jit_context_enable_dump): New API entrypoint.
1134 * libgccjit.map (gcc_jit_context_enable_dump): New API entrypoint.
1135
53b730ff
DM
11362014-12-08 David Malcolm <dmalcolm@redhat.com>
1137
1138 * libgccjit++.h: Indent the forward declarations of the classes to
1139 show the inheritance hierarchy.
1140
0f379445
DM
11412014-12-08 David Malcolm <dmalcolm@redhat.com>
1142
1143 * notes.txt: Show the beginning and ending of
1144 recording::context::compile vs playback::context::compile. Show
1145 the creation and unlinking of the tempdir. Show toplev::finalize.
1146 Move "RELEASE MUTEX" to the correct location. Show
1147 gcc_jit_result_release, and indicate where the
1148 dlopen/dlsym/dlclose occur.
1149
81ba15f1
DM
11502014-12-01 David Malcolm <dmalcolm@redhat.com>
1151
1152 * docs/examples/tut02-square.c (main): Release the context
1153 earlier, to show that this is possible. Update error-handling
1154 to avoid a double-release of the context, and to avoid
1155 releasing a NULL result.
1156 * docs/intro/tutorial02.rst: Discuss gcc_jit_context_release.
1157 * docs/topics/functions.rst (GCC_JIT_FUNCTION_EXPORTED): Emphasize
1158 * docs/topics/results.rst (gcc_jit_result): Mention that this
1159 controls the lifetimes of machine code functions.
1160 (gcc_jit_result_get_code): Spell out the requirements for this
1161 to succeed, and the lifetime of the result.
1162 (gcc_jit_result_release): Mention that this invalidates any code
1163 that was obtained from the result.
1164 * docs/_build/texinfo/libgccjit.texi: Regenerate.
1165
e250f0dc
DM
11662014-12-01 David Malcolm <dmalcolm@redhat.com>
1167
1168 PR jit/64018
1169 * docs/intro/tutorial02.rst: Spell out lifetime of generated code.
1170 Add description of error-handling, taken in part from...
1171 * docs/topics/contexts.rst (Error-handling): Expand, and move some
1172 content to tutorial02.rst.
1173 * docs/_build/texinfo/libgccjit.texi: Regenerate.
1174
eeafb319
DM
11752014-12-01 David Malcolm <dmalcolm@redhat.com>
1176
1177 PR jit/64020
1178 * docs/topics/types.rst (Standard types) Add new enum values to
1179 the table of enum gcc_jit_types: GCC_JIT_TYPE_COMPLEX_FLOAT,
1180 GCC_JIT_TYPE_COMPLEX_DOUBLE, GCC_JIT_TYPE_COMPLEX_LONG_DOUBLE.
1181 Widen the left-hand column so that
1182 GCC_JIT_TYPE_COMPLEX_LONG_DOUBLE will fit.
1183 * docs/_build/texinfo/libgccjit.texi: Regenerate.
1184
1185 * jit-builtins.c: Include stringpool.h and jit-playback.h.
1186 Move everything out of the gcc::jit::recording namespace into
1187 just gcc::jit.
1188 (struct builtin_data): Add fields "fnclass", "attr", and
1189 "implicit_p".
1190 (DEF_BUILTIN): Update macro so populate the new fields.
1191 (builtins_manager::builtins_manager): Update for move out of
1192 recording namespace. Initialize the m_attributes array.
1193 (builtins_manager::get_builtin_function): Likewise.
1194 (builtins_manager::get_builtin_function_by_id): New function.
1195 (builtins_manager::make_builtin_function): Update for move out of
1196 recording namespace. Add fix for PR jit/64020 by detecting
1197 specific builtin ids and having them ensure that builtins for
1198 other ids are created as necessary.
1199 (builtins_manager::get_type): Update for move out of recording
1200 namespace.
1201 (builtins_manager::make_type): Likewise. Add some missing
1202 #undefs.
1203 (builtins_manager::make_primitive_type): Update for move out of
1204 recording namespace. Implement the three BT_COMPLEX_ cases and
1205 BT_DOUBLE_PTR.
1206 (builtins_manager::make_fn_type): Update for move out of recording
1207 namespace.
1208 (builtins_manager::make_ptr_type): Likewise.
1209 (builtins_manager::finish_playback): New function.
1210 (builtins_manager::get_class): New function.
1211 (builtins_manager::implicit_p): New function.
1212 (builtins_manager::get_attrs_tree): Two new functions.
1213 (builtins_manager::make_attrs_tree): New function.
1214
1215 * jit-builtins.h: Move everything out of the gcc::jit::recording
1216 namespace into just gcc::jit.
1217 (enum built_in_attribute): New.
1218 (builtins_manager::builtins_manager): Update decl for namespace
1219 change.
1220 (builtins_manager::get_builtin_function): Likewise.
1221 (builtins_manager::get_class): New.
1222 (builtins_manager::implicit_p): New.
1223 (builtins_manager::get_attrs_tree): Two new functions.
1224 (builtins_manager::make_attrs_tree): New function.
1225 (builtins_manager::finish_playback): New.
1226 (builtins_manager::get_builtin_function_by_id): New.
1227 (builtins_manager::make_builtin_function): Update decl for
1228 namespace change.
1229 (builtins_manager::get_type): Likewise.
1230 (builtins_manager::make_type): Likewise.
1231 (builtins_manager::make_primitive_type): Likewise.
1232 (builtins_manager::make_fn_type): Likewise.
1233 (builtins_manager::make_ptr_type): Likewise.
1234 (builtins_manager): Likewise for fields. Add new field
1235 "m_attributes".
1236
1237 * jit-common.h (NUM_GCC_JIT_TYPES): Update.
1238 (builtins_manager): Update forward decl to reflect namespace
1239 change.
1240
1241 * jit-playback.c: Include attribs.h and jit-builtins.h.
1242 (gcc::jit::playback::context::get_tree_node_for_type): Add cases
1243 for the new COMPLEX_ types.
1244 (gcc::jit::playback::context::new_function): If creating a
1245 builtin, set the DECL_BUILT_IN_CLASS and attributes on the fndecl,
1246 and call set_builtin_decl.
1247 (gcc::jit::playback::context::replay): If we have a
1248 builtins_manager, call its finish_playback method when we're done.
1249
1250 * jit-playback.h:
1251 (gcc::jit::playback::context::get_builtins_manager): New function.
1252
1253 * jit-recording.c
1254 (gcc::jit::recording::context::get_builtins_manager): New function.
1255 (gcc::jit::recording::get_builtin_function): Use
1256 get_builtins_manager, in case we're a child context.
1257 (gcc::jit::recording::memento_of_get_type::dereference): Add the
1258 COMPLEX_ types.
1259 (gcc::jit::recording::memento_of_get_type::is_int): Likewise.
1260 (gcc::jit::recording::memento_of_get_type::is_float): Likewise.
1261 (gcc::jit::recording::memento_of_get_type::is_bool): Likewise.
1262 (get_type_strings): Likewise.
1263
1264 * jit-recording.h
1265 (gcc::jit::recording::context::get_builtins_manager): New.
1266
1267 * libgccjit.h (enum gcc_jit_types): Add
1268 GCC_JIT_TYPE_COMPLEX_FLOAT, GCC_JIT_TYPE_COMPLEX_DOUBLE,
1269 GCC_JIT_TYPE_COMPLEX_LONG_DOUBLE.
1270
23844fd7
DM
12712014-12-01 David Malcolm <dmalcolm@redhat.com>
1272
1273 * jit-builtins.c
1274 (gcc::jit::recording::builtins_manager::get_builtin_function):
1275 Check for NULL return from make_builtin_function.
1276 (gcc::jit::recording::builtins_manager::make_builtin_function):
1277 Check for NULL return from get_type.
1278
c6760a13
DM
12792014-12-01 David Malcolm <dmalcolm@redhat.com>
1280
1281 * jit-playback.c (gcc::jit::playback::context::compile): Move DSO
1282 creation code into...
1283 (gcc::jit::playback::context::convert_to_dso): New function.
1284 * jit-playback.h (gcc::jit::playback::context::convert_to_dso):
1285 New function.
1286
8f50ee3c
DM
12872014-12-01 David Malcolm <dmalcolm@redhat.com>
1288
1289 * jit-playback.c (gcc::jit::playback::context::compile): Use an
1290 auto_vec<const char *> rather than a const char *[20] for the
1291 top-level argv, and move the logic to build it to...
1292 (gcc::jit::playback::context::make_fake_args): New function.
1293 * jit-playback.h (gcc::jit::playback::context::make_fake_args):
1294 New function.
1295
56dea35f
DM
12962014-12-01 David Malcolm <dmalcolm@redhat.com>
1297
1298 * Make-lang.in (jit_OBJS): Add jit/jit-result.o.
1299 * jit-playback.c: Include new header jit-result.h.
1300 (gcc::jit::result::result): Move to new file jit-result.c.
1301 (gcc::jit::result::~result): Likewise.
1302 (gcc::jit::playback::result): Likewise.
1303 * jit-recording.h (class gcc::jit::result): Move to new
1304 header jit-result.h.
1305 * jit-result.c: New file, to contain...
1306 (gcc::jit::result::result): Move here from jit-playback.c,
1307 removing erroneous "playback" namespace from comment.
1308 (gcc::jit::result::~result): Likewise.
1309 (gcc::jit::playback::result): Likewise.
1310 * jit-result.h: New file, to contain...
1311 (class gcc::jit::result): Move from jit-recording.h.
1312 * libgccjit.c: Include jit-result.h.
1313 (gcc_jit_result_get_code): Update comment to reflect move
1314 of implementation.
1315 (gcc_jit_result_release): Likewise.
1316
52b9468f
DM
13172014-12-01 David Malcolm <dmalcolm@redhat.com>
1318
1319 PR jit/63854
1320 * docs/examples/tut04-toyvm/toyvm.c
1321 (toyvm_compiled_function): New typedef.
1322 (toyvm_compiled_func) Rename to...
1323 (toyvm_compiled_code) ...this.
1324 (struct toyvm_compiled_function): New struct.
1325 (toyvm_function_compile): Return a toyvm_compiled_function *
1326 rather than a toyvm_compiled_func, so that the caller can fully
1327 clean things up. Free "funcname".
1328 (test_script): Update for change to toyvm_function_compile.
1329 Clean up the toyvm_compiled_function.
1330 (main): Likewise.
1331 (docs/intro/tutorial04.rst): Update to reflect the above changes,
1332 and to better spell out the lifetime of the compiled code.
1333
c8d19a69
DM
13342014-12-01 David Malcolm <dmalcolm@redhat.com>
1335
1336 PR jit/63854
1337 * jit-builtins.c
1338 (gcc::jit::recording::builtins_manager::make_fn_type): Call the
1339 context's new_function_type method, rather than directly creating
1340 a function_type instance.
1341 * jit-recording.c
1342 (gcc::jit::recording::context::new_function_type): New method,
1343 adapted from part of...
1344 (gcc::jit::recording::context::new_function_ptr_type): ...this.
1345 Update to call new_function_type.
1346 * jit-recording.h
1347 (gcc::jit::recording::context::new_function_type): New method.
1348
c985705a
DM
13492014-12-01 David Malcolm <dmalcolm@redhat.com>
1350
1351 PR jit/63969
1352 * jit-playback.c: Ensure that ctxt_progname is non-NULL.
1353
b957b2e0
DM
13542014-11-19 David Malcolm <dmalcolm@redhat.com>
1355
1356 PR jit/63854
1357 * jit-playback.c (gcc::jit::playback::compound_type::set_fields):
1358 Convert param from const vec<playback::field *> & to
1359 const auto_vec<playback::field *> *.
1360 (gcc::jit::playback::context::new_function_type): Convert param
1361 "param_types" from vec<type *> * to const auto_vec<type *> *.
1362 (gcc::jit::playback::context::new_function): Convert param
1363 "params" from vec<param *> * to const auto_vec<param *> *.
1364 (gcc::jit::playback::context::build_call): Convert param "args"
1365 from vec<rvalue *> to const auto_vec<rvalue *> *.
1366 (gcc::jit::playback::context::new_call): Likewise.
1367 (gcc::jit::playback::context::new_call_through_ptr): Likewise.
1368 (wrapper_finalizer): New function.
1369 (gcc::jit::playback::wrapper::operator new): Call the finalizer
1370 variant of ggc_internal_cleared_alloc, supplying
1371 wrapper_finalizer.
1372 (gcc::jit::playback::function::finalizer): New.
1373 (gcc::jit::playback::block::finalizer): New.
1374 (gcc::jit::playback::source_file::finalizer): New.
1375 (gcc::jit::playback::source_line::finalizer): New.
1376
1377 * jit-playback.h
1378 (gcc::jit::playback::context::new_function_type): Convert param
1379 "param_types" from vec<type *> * to const auto_vec<type *> *.
1380 (gcc::jit::playback::context::new_function): Convert param
1381 "params" from vec<param *> * to const auto_vec<param *> *.
1382 (gcc::jit::playback::context::new_call): Convert param
1383 "args" from vec<rvalue *> to const auto_vec<rvalue *> *.
1384 (gcc::jit::playback::context::new_call_through_ptr): Likewise.
1385 (gcc::jit::playback::context::build_call): Likewise.
1386 (gcc::jit::playback::context): Convert fields "m_functions",
1387 "m_source_files", "m_cached_locations" from vec to auto_vec.
1388 (gcc::jit::playback::wrapper::finalizer): New virtual function.
1389 (gcc::jit::playback::compound_type::set_fields): Convert param fro
1390 const vec<playback::field *> & to
1391 const auto_vec<playback::field *> *.
1392 (gcc::jit::playback::function::finalizer): New.
1393 (gcc::jit::playback::block::finalizer): New.
1394 (gcc::jit::playback::source_file::finalizer): New.
1395 (gcc::jit::playback::source_line::finalizer): New.
1396
1397 * jit-recording.c
1398 (gcc::jit::recording::function_type::replay_into): Convert local
1399 from a vec into an auto_vec.
1400 (gcc::jit::recording::fields::replay_into): Likewise.
1401 (gcc::jit::recording::function::replay_into): Likewise.
1402 (gcc::jit::recording::call::replay_into): Likewise.
1403 (gcc::jit::recording::call_through_ptr::replay_into): Likewise.
1404
1405 * jit-recording.h (gcc::jit::recording::context): Convert fields
1406 "m_mementos", "m_compound_types", "m_functions" from vec<> to
1407 auto_vec <>.
1408 (gcc::jit::recording::function_type::get_param_types): Convert
1409 return type from vec<type *> to const vec<type *> &.
1410 (gcc::jit::recording::function_type): Convert field
1411 "m_param_types" from a vec<> to an auto_vec<>.
1412 (gcc::jit::recording::fields): Likewise for field "m_fields".
1413 (gcc::jit::recording::function::get_params): Convert return type
1414 from vec <param *> to const vec<param *> &.
1415 (gcc::jit::recording::function): Convert fields "m_params",
1416 "m_locals", "m_blocks" from vec<> to auto_vec<>.
1417 (gcc::jit::recording::block): Likewise for field "m_statements".
1418 vec<> to auto_vec<>.
1419 (gcc::jit::recording::call): Likewise for field "m_args".
1420 (gcc::jit::recording::call_through_ptr): Likewise.
1421
79cafc7a
DM
14222014-11-19 David Malcolm <dmalcolm@redhat.com>
1423
1424 PR jit/63854
1425 * jit-recording.c (recording::function::validate): Convert
1426 "worklist" from vec<> to autovec<> to fix a leak.
1427
35485da9
DM
14282014-11-11 David Malcolm <dmalcolm@redhat.com>
1429
1430 * ChangeLog.jit: New.
1431 * ChangeLog: New.
1432 * Make-lang.in: New.
1433 * TODO.rst: New.
1434 * config-lang.in: New.
1435 * docs/Makefile: New.
1436 * docs/_build/texinfo/Makefile: New.
1437 * docs/_build/texinfo/factorial.png: New.
1438 * docs/_build/texinfo/libgccjit.texi: New.
1439 * docs/_build/texinfo/sum-of-squares.png: New.
1440 * docs/conf.py: New.
1441 * docs/examples/tut01-hello-world.c: New.
1442 * docs/examples/tut02-square.c: New.
1443 * docs/examples/tut03-sum-of-squares.c: New.
1444 * docs/examples/tut04-toyvm/Makefile: New.
1445 * docs/examples/tut04-toyvm/factorial.toy: New.
1446 * docs/examples/tut04-toyvm/fibonacci.toy: New.
1447 * docs/examples/tut04-toyvm/toyvm.c: New.
1448 * docs/index.rst: New.
1449 * docs/internals/index.rst: New.
1450 * docs/intro/factorial.png: New.
1451 * docs/intro/index.rst: New.
1452 * docs/intro/sum-of-squares.png: New.
1453 * docs/intro/tutorial01.rst: New.
1454 * docs/intro/tutorial02.rst: New.
1455 * docs/intro/tutorial03.rst: New.
1456 * docs/intro/tutorial04.rst: New.
1457 * docs/topics/contexts.rst: New.
1458 * docs/topics/expressions.rst: New.
1459 * docs/topics/functions.rst: New.
1460 * docs/topics/index.rst: New.
1461 * docs/topics/locations.rst: New.
1462 * docs/topics/objects.rst: New.
1463 * docs/topics/results.rst: New.
1464 * docs/topics/types.rst: New.
1465 * dummy-frontend.c: New.
1466 * jit-builtins.c: New.
1467 * jit-builtins.h: New.
1468 * jit-common.h: New.
1469 * jit-playback.c: New.
1470 * jit-playback.h: New.
1471 * jit-recording.c: New.
1472 * jit-recording.h: New.
1473 * libgccjit++.h: New.
1474 * libgccjit.c: New.
1475 * libgccjit.h: New.
1476 * libgccjit.map: New.
1477 * notes.txt: New.
1478
14792013-07-26 David Malcolm <dmalcolm@redhat.com>
1480
1481 * Initial creation
1482
1e3b6a3d 1483Copyright (C) 2013-2015 Free Software Foundation, Inc.
35485da9
DM
1484
1485Copying and distribution of this file, with or without modification,
1486are permitted in any medium without royalty provided the copyright
1487notice and this notice are preserved.