annotate gcc/jit/ChangeLog.jit @ 158:494b0b89df80 default tip

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 25 May 2020 18:13:55 +0900
parents 04ced10e8804
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 2014-11-10 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
2
kono
parents:
diff changeset
3 * docs/_build/texinfo/libgccjit.texi: Regenerate.
kono
parents:
diff changeset
4
kono
parents:
diff changeset
5 2014-11-10 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
6
kono
parents:
diff changeset
7 * dummy-frontend.c: Add includes now needed since r216805 by
kono
parents:
diff changeset
8 cgraph.h: hash-map.h, is-a.h, plugin-api.h, vec.h, hashtab.h,
kono
parents:
diff changeset
9 hash-set.h, machmode.h, tm.h, hard-reg-set.h, function.h,
kono
parents:
diff changeset
10 ipa-ref.h, dumpfile.h.
kono
parents:
diff changeset
11 * jit-playback.c: Likewise.
kono
parents:
diff changeset
12
kono
parents:
diff changeset
13 2014-11-05 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
14
kono
parents:
diff changeset
15 * jit-playback.c (gcc::jit::playback::context::handle_locations):
kono
parents:
diff changeset
16 Drop the disabled debugging code.
kono
parents:
diff changeset
17
kono
parents:
diff changeset
18 2014-11-05 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
19
kono
parents:
diff changeset
20 * docs/topics/expressions.rst (Type-coercion): Casts between
kono
parents:
diff changeset
21 pointer types are valid.
kono
parents:
diff changeset
22 * libgccjit.c: Document that gcc_jit_context et al are actually
kono
parents:
diff changeset
23 subclasses of the gcc::jit::recording classes.
kono
parents:
diff changeset
24 (RETURN_VAL_IF_FAIL): Add top-level descriptive comment.
kono
parents:
diff changeset
25 (RETURN_IF_NOT_VALID_BLOCK): Likewise.
kono
parents:
diff changeset
26 (RETURN_NULL_IF_NOT_VALID_BLOCK): Likewise.
kono
parents:
diff changeset
27 (jit_error): Likewise.
kono
parents:
diff changeset
28 (compatible_types): Likewise.
kono
parents:
diff changeset
29 (gcc_jit_context_acquire): Likewise.
kono
parents:
diff changeset
30 (gcc_jit_context_release): Likewise.
kono
parents:
diff changeset
31 (gcc_jit_context_new_child_context): Likewise.
kono
parents:
diff changeset
32 (gcc_jit_context_new_location): Likewise.
kono
parents:
diff changeset
33 (gcc_jit_location_as_object): Likewise.
kono
parents:
diff changeset
34 (gcc_jit_type_as_object): Likewise.
kono
parents:
diff changeset
35 (gcc_jit_context_get_type): Likewise.
kono
parents:
diff changeset
36 (gcc_jit_context_get_int_type): Likewise.
kono
parents:
diff changeset
37 (gcc_jit_type_get_pointer): Likewise.
kono
parents:
diff changeset
38 (gcc_jit_type_get_const): Likewise.
kono
parents:
diff changeset
39 (gcc_jit_type_get_volatile): Likewise.
kono
parents:
diff changeset
40 (gcc_jit_context_new_array_type): Likewise. Also document that
kono
parents:
diff changeset
41 LOC can be NULL. Fail with an error on negative size.
kono
parents:
diff changeset
42 (gcc_jit_context_new_field): Add top-level descriptive comment and
kono
parents:
diff changeset
43 document that LOC can be NULL.
kono
parents:
diff changeset
44 (gcc_jit_field_as_object): Add top-level descriptive comment.
kono
parents:
diff changeset
45 (gcc_jit_context_new_struct_type): Likewise. Also document that
kono
parents:
diff changeset
46 LOC can be NULL.
kono
parents:
diff changeset
47 (gcc_jit_context_new_opaque_struct): Likewise.
kono
parents:
diff changeset
48 (gcc_jit_struct_as_type): Add top-level descriptive comment.
kono
parents:
diff changeset
49 (gcc_jit_struct_set_fields): Likewise. Also document that LOC can
kono
parents:
diff changeset
50 be NULL.
kono
parents:
diff changeset
51 (gcc_jit_context_new_union_type): Likewise.
kono
parents:
diff changeset
52 (gcc_jit_context_new_function_ptr_type): Likewise.
kono
parents:
diff changeset
53 (gcc_jit_context_new_param): Likewise.
kono
parents:
diff changeset
54 (gcc_jit_param_as_object): Add top-level descriptive comment.
kono
parents:
diff changeset
55 (gcc_jit_param_as_lvalue): Likewise.
kono
parents:
diff changeset
56 (gcc_jit_param_as_rvalue): Likewise.
kono
parents:
diff changeset
57 (gcc_jit_context_new_function): Likewise. Also document that LOC
kono
parents:
diff changeset
58 can be NULL.
kono
parents:
diff changeset
59 (gcc_jit_context_get_builtin_function): Add top-level descriptive
kono
parents:
diff changeset
60 comment.
kono
parents:
diff changeset
61 (gcc_jit_function_as_object): Likewise.
kono
parents:
diff changeset
62 (gcc_jit_function_get_param): Likewise.
kono
parents:
diff changeset
63 (gcc_jit_function_dump_to_dot): Likewise.
kono
parents:
diff changeset
64 (gcc_jit_function_new_block): Likewise.
kono
parents:
diff changeset
65 (gcc_jit_block_as_object): Likewise.
kono
parents:
diff changeset
66 (gcc_jit_block_get_function): Likewise.
kono
parents:
diff changeset
67 (gcc_jit_context_new_global): Likewise. Also document that LOC
kono
parents:
diff changeset
68 can be NULL.
kono
parents:
diff changeset
69 (gcc_jit_lvalue_as_object): Add top-level descriptive comment.
kono
parents:
diff changeset
70 (gcc_jit_lvalue_as_rvalue): Likewise.
kono
parents:
diff changeset
71 (gcc_jit_rvalue_as_object): Likewise.
kono
parents:
diff changeset
72 (gcc_jit_rvalue_get_type): Likewise.
kono
parents:
diff changeset
73 (RETURN_NULL_IF_FAIL_NONNULL_NUMERIC_TYPE): Likewise.
kono
parents:
diff changeset
74 (gcc_jit_context_new_rvalue_from_int): Likewise.
kono
parents:
diff changeset
75 (gcc_jit_context_zero): Likewise.
kono
parents:
diff changeset
76 (gcc_jit_context_one): Likewise.
kono
parents:
diff changeset
77 (gcc_jit_context_new_rvalue_from_double): Likewise.
kono
parents:
diff changeset
78 (gcc_jit_context_new_rvalue_from_ptr): Likewise.
kono
parents:
diff changeset
79 (gcc_jit_context_null): Likewise.
kono
parents:
diff changeset
80 (gcc_jit_context_new_string_literal): Likewise.
kono
parents:
diff changeset
81 (gcc_jit_context_new_unary_op): Likewise. Also document that LOC
kono
parents:
diff changeset
82 can be NULL.
kono
parents:
diff changeset
83 (gcc_jit_context_new_binary_op): Likewise.
kono
parents:
diff changeset
84 (gcc_jit_context_new_comparison): Likewise.
kono
parents:
diff changeset
85 (gcc_jit_context_new_call): Likewise.
kono
parents:
diff changeset
86 (gcc_jit_context_new_call_through_ptr): Likewise.
kono
parents:
diff changeset
87 (is_valid_cast): Add top-level descriptive comment.
kono
parents:
diff changeset
88 (gcc_jit_context_new_cast): Likewise. Also document that LOC can
kono
parents:
diff changeset
89 be NULL.
kono
parents:
diff changeset
90 (gcc_jit_context_new_array_access): Likewise.
kono
parents:
diff changeset
91 (gcc_jit_object_get_context): Add top-level descriptive comment.
kono
parents:
diff changeset
92 (gcc_jit_object_get_debug_string): Likewise.
kono
parents:
diff changeset
93 (gcc_jit_lvalue_access_field): Likewise. Also document that LOC can
kono
parents:
diff changeset
94 be NULL.
kono
parents:
diff changeset
95 (gcc_jit_rvalue_access_field): Likewise.
kono
parents:
diff changeset
96 (gcc_jit_rvalue_dereference_field): Likewise.
kono
parents:
diff changeset
97 (gcc_jit_rvalue_dereference): Likewise.
kono
parents:
diff changeset
98 (gcc_jit_lvalue_get_address): Likewise.
kono
parents:
diff changeset
99 (gcc_jit_function_new_local): Likewise.
kono
parents:
diff changeset
100 (gcc_jit_block_add_eval): Likewise.
kono
parents:
diff changeset
101 (gcc_jit_block_add_assignment): Likewise.
kono
parents:
diff changeset
102 (gcc_jit_block_add_assignment_op): Likewise.
kono
parents:
diff changeset
103 (is_bool): Add top-level descriptive comment.
kono
parents:
diff changeset
104 (gcc_jit_block_end_with_conditional): Likewise. Also document
kono
parents:
diff changeset
105 that LOC can be NULL.
kono
parents:
diff changeset
106 (gcc_jit_block_add_comment): Likewise.
kono
parents:
diff changeset
107 (gcc_jit_block_end_with_jump): Likewise.
kono
parents:
diff changeset
108 (gcc_jit_block_end_with_return): Likewise.
kono
parents:
diff changeset
109 (gcc_jit_block_end_with_void_return): Likewise.
kono
parents:
diff changeset
110 (gcc_jit_context_set_str_option): Add top-level descriptive
kono
parents:
diff changeset
111 comment.
kono
parents:
diff changeset
112 (gcc_jit_context_set_int_option): Likewise.
kono
parents:
diff changeset
113 (gcc_jit_context_set_bool_option): Likewise.
kono
parents:
diff changeset
114 (gcc_jit_context_compile): Likewise.
kono
parents:
diff changeset
115 (gcc_jit_context_dump_to_file): Likewise.
kono
parents:
diff changeset
116 (gcc_jit_context_get_first_error): Likewise.
kono
parents:
diff changeset
117 (gcc_jit_result_get_code): Likewise.
kono
parents:
diff changeset
118 (gcc_jit_result_release): Likewise.
kono
parents:
diff changeset
119
kono
parents:
diff changeset
120 * libgccjit.h (gcc_jit_context_acquire): Remove FIXME from
kono
parents:
diff changeset
121 comment.
kono
parents:
diff changeset
122 (gcc_jit_context_get_int_type): Add comment.
kono
parents:
diff changeset
123 (gcc_jit_context_new_field): Likewise.
kono
parents:
diff changeset
124 (gcc_jit_context_new_struct_type): Likewise.
kono
parents:
diff changeset
125 (gcc_jit_context_new_opaque_struct): Likewise.
kono
parents:
diff changeset
126 (gcc_jit_struct_as_type): Likewise.
kono
parents:
diff changeset
127 (gcc_jit_context_new_param): Likewise.
kono
parents:
diff changeset
128 (gcc_jit_param_as_lvalue): Likewise.
kono
parents:
diff changeset
129 (gcc_jit_param_as_rvalue): Likewise.
kono
parents:
diff changeset
130 (enum gcc_jit_function_kind): Likewise.
kono
parents:
diff changeset
131 (gcc_jit_context_new_function): Likewise.
kono
parents:
diff changeset
132 (gcc_jit_context_get_builtin_function): Likewise.
kono
parents:
diff changeset
133 (gcc_jit_function_get_param): Likewise.
kono
parents:
diff changeset
134
kono
parents:
diff changeset
135 2014-11-05 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
136
kono
parents:
diff changeset
137 * libgccjit.c (gcc_jit_context_get_type): Verify that "type"
kono
parents:
diff changeset
138 is valid immediately, rather than relying on called code.
kono
parents:
diff changeset
139 (gcc_jit_context_new_function): Likewise for "kind".
kono
parents:
diff changeset
140 (gcc_jit_context_new_unary_op): Likewise for "op".
kono
parents:
diff changeset
141 (valid_binary_op_p): New.
kono
parents:
diff changeset
142 (gcc_jit_context_new_binary_op): Verify that "op" is valid
kono
parents:
diff changeset
143 immediately, rather than relying on called code.
kono
parents:
diff changeset
144 (gcc_jit_context_new_comparison): Likewise.
kono
parents:
diff changeset
145 (gcc_jit_block_add_assignment_op): Likewise.
kono
parents:
diff changeset
146
kono
parents:
diff changeset
147 2014-11-05 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
148
kono
parents:
diff changeset
149 * libgccjit.c: Include safe-ctype.h from libiberty.
kono
parents:
diff changeset
150 (IS_ASCII_ALPHA): Delete.
kono
parents:
diff changeset
151 (IS_ASCII_DIGIT): Delete.
kono
parents:
diff changeset
152 (IS_ASCII_ALNUM): Delete.
kono
parents:
diff changeset
153 (gcc_jit_context_new_function): Replace use of IS_ASCII_ALPHA and
kono
parents:
diff changeset
154 IS_ASCII_ALNUM with ISALPHA and ISALNUM respectively, from
kono
parents:
diff changeset
155 libiberty.
kono
parents:
diff changeset
156
kono
parents:
diff changeset
157 2014-10-30 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
158
kono
parents:
diff changeset
159 * dummy-frontend.c (jit_langhook_init): Remove some dead code.
kono
parents:
diff changeset
160
kono
parents:
diff changeset
161 2014-10-27 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
162
kono
parents:
diff changeset
163 * dummy-frontend.c: Drop includes of tree-iterator.h,
kono
parents:
diff changeset
164 tree-ssa-alias.h, gimple-expr.h, gimple.h, gimple-pretty-print.h.
kono
parents:
diff changeset
165 * jit-playback.c: Drop includes of debug.h, langhooks.h,
kono
parents:
diff changeset
166 langhooks-def.h, tree-iterator.h, gimple-expr.h, tree-ssa-alias.h,
kono
parents:
diff changeset
167 gimple.h, gimple-pretty-print.h, diagnostic-core.h, dumpfile.h.
kono
parents:
diff changeset
168
kono
parents:
diff changeset
169 2014-10-21 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
170
kono
parents:
diff changeset
171 * jit-recording.c: Include tm.h. Don't include function.h.
kono
parents:
diff changeset
172
kono
parents:
diff changeset
173 2014-10-21 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
174
kono
parents:
diff changeset
175 * docs/_build/texinfo/libgccjit.texi: Regenerate.
kono
parents:
diff changeset
176
kono
parents:
diff changeset
177 2014-10-21 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
178
kono
parents:
diff changeset
179 * docs/intro/index.rst: Drop install.rst. Add tutorial04.rst.
kono
parents:
diff changeset
180 * docs/intro/install.rst: Rename to...
kono
parents:
diff changeset
181 * docs/intro/tutorial01.rst: ...this, renaming old tutorial01.rst to...
kono
parents:
diff changeset
182 * docs/intro/tutorial02.rst: ...this, renaming old tutorial02.rst to...
kono
parents:
diff changeset
183 * docs/intro/tutorial03.rst: ...this, renaming old tutorial03.rst to...
kono
parents:
diff changeset
184 * docs/intro/tutorial04.rst: ...this.
kono
parents:
diff changeset
185 * docs/examples/install-hello-world.c: Rename to...
kono
parents:
diff changeset
186 * docs/examples/tut01-hello-world.c: ...this.
kono
parents:
diff changeset
187 * docs/examples/tut01-square.c: Rename to...
kono
parents:
diff changeset
188 * docs/examples/tut02-square.c: ...this.
kono
parents:
diff changeset
189 * docs/examples/tut02-sum-of-squares.c: Rename to...
kono
parents:
diff changeset
190 * docs/examples/tut03-sum-of-squares.c: ...this.
kono
parents:
diff changeset
191 * docs/examples/tut03-toyvm: Rename directory to...
kono
parents:
diff changeset
192 * docs/examples/tut04-toyvm: ...this.
kono
parents:
diff changeset
193 * docs/examples/tut04-toyvm/toyvm.c (PATH_TO_SCRIPTS): Update
kono
parents:
diff changeset
194 for directory renaming.
kono
parents:
diff changeset
195
kono
parents:
diff changeset
196 2014-10-21 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
197
kono
parents:
diff changeset
198 * docs/intro/install.rst ("Installation via packages"): Drop
kono
parents:
diff changeset
199 this section.
kono
parents:
diff changeset
200 ("Installation from source"): Drop this section, moving parts
kono
parents:
diff changeset
201 of it to https://gcc.gnu.org/wiki/JIT and some others to
kono
parents:
diff changeset
202 docs/internals/index.rst.
kono
parents:
diff changeset
203 ("Hello world"): This section becomes the only remaining part
kono
parents:
diff changeset
204 of this file. Eliminate references to pkg-config.
kono
parents:
diff changeset
205
kono
parents:
diff changeset
206 * docs/internals/index.rst
kono
parents:
diff changeset
207 ("Using a working copy without installing every time"): Rewrite
kono
parents:
diff changeset
208 as...
kono
parents:
diff changeset
209 ("Working on the JIT library"): ...new section, aimed at
kono
parents:
diff changeset
210 contributors (and myself) working from a build directory,
kono
parents:
diff changeset
211 eliminating references to installation. Add description
kono
parents:
diff changeset
212 of pertinent configuration options.
kono
parents:
diff changeset
213 ("Running the test suite"): Add setting of LIBRARY_PATH to
kono
parents:
diff changeset
214 description of how to run a built binary outside of the test
kono
parents:
diff changeset
215 suite.
kono
parents:
diff changeset
216 ("Environment variables"): New section, describing pertinent
kono
parents:
diff changeset
217 environment variables.
kono
parents:
diff changeset
218
kono
parents:
diff changeset
219 2014-10-20 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
220
kono
parents:
diff changeset
221 * jit-recording.c (gcc::jit::dump::dump): Handle fopen failures
kono
parents:
diff changeset
222 by emitting an error on the context.
kono
parents:
diff changeset
223 (gcc::jit::dump::~dump): Likewise for fclose failures.
kono
parents:
diff changeset
224 (gcc::jit::dump::write): Don't attempt further work if the fopen
kono
parents:
diff changeset
225 failed. Handle fwrite failures by emitting an error on the
kono
parents:
diff changeset
226 context.
kono
parents:
diff changeset
227
kono
parents:
diff changeset
228 2014-10-20 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
229
kono
parents:
diff changeset
230 * Make-lang.in (jit.install-common): Drop installation of
kono
parents:
diff changeset
231 libgccjit.pc.
kono
parents:
diff changeset
232 * config-lang.in (outputs): Drop jit/libgccjit.pc.
kono
parents:
diff changeset
233 * libgccjit.pc.in: Delete.
kono
parents:
diff changeset
234
kono
parents:
diff changeset
235 2014-10-17 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
236
kono
parents:
diff changeset
237 * Make-lang.in (jit): Add $(FULL_DRIVER_NAME) as a dependency, so
kono
parents:
diff changeset
238 that the symlink is created for testing.
kono
parents:
diff changeset
239
kono
parents:
diff changeset
240 * jit-playback.c (gcc::jit::playback::context::compile): Add
kono
parents:
diff changeset
241 "-fno-use-linker-plugin" when invoking the driver. Update error
kono
parents:
diff changeset
242 messages to talk about the "gcc driver" rather than the
kono
parents:
diff changeset
243 "gcc harness". To ease troubleshooting, add error messages giving
kono
parents:
diff changeset
244 the driver name and PATH to the error-handling code that fires
kono
parents:
diff changeset
245 when the driver can't be found.
kono
parents:
diff changeset
246
kono
parents:
diff changeset
247 2014-10-07 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
248
kono
parents:
diff changeset
249 * docs/_build/texinfo/libgccjit.texi: Regenerate.
kono
parents:
diff changeset
250
kono
parents:
diff changeset
251 2014-10-07 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
252
kono
parents:
diff changeset
253 * docs/internals/index.rst (Overview of code structure): Directly
kono
parents:
diff changeset
254 include the comment from jit-common.h as rst, rather than as a
kono
parents:
diff changeset
255 quoted C++ comment.
kono
parents:
diff changeset
256 * jit-common.h: Convert the summary format to valid reStructured
kono
parents:
diff changeset
257 text for inclusion by docs/internals/index.rst.
kono
parents:
diff changeset
258 * notes.txt: Clarify where libgccjit.c, jit-recording.c and
kono
parents:
diff changeset
259 jit-playback.c fit into the high-level diagram.
kono
parents:
diff changeset
260
kono
parents:
diff changeset
261 2014-10-07 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
262
kono
parents:
diff changeset
263 * Make-lang.in (jit_OBJS): Drop jit/internal-api.o.
kono
parents:
diff changeset
264 Add jit/jit-recording.o and jit/jit-playback.o.
kono
parents:
diff changeset
265
kono
parents:
diff changeset
266 * internal-api.c: Delete, moving content to new files jit-recording.c
kono
parents:
diff changeset
267 and jit-playback.c.
kono
parents:
diff changeset
268 * internal-api.h: Delete, moving content to new files
kono
parents:
diff changeset
269 jit-common.h, jit-playback.h, jit-recording.h.
kono
parents:
diff changeset
270 * jit-common.h: New file, containing the forward decls of classes
kono
parents:
diff changeset
271 formerly in internal-api.h.
kono
parents:
diff changeset
272 * jit-recording.c: New file, containing the gcc::jit::recording
kono
parents:
diff changeset
273 code formerly in internal-api.c, and gcc::jit::dump.
kono
parents:
diff changeset
274 * jit-recording.h: New file, containing the gcc::jit::recording
kono
parents:
diff changeset
275 prototypes formerly in internal-api.h.
kono
parents:
diff changeset
276 * jit-playback.c: New file, containing the gcc::jit::playback
kono
parents:
diff changeset
277 code formerly in internal-api.c.
kono
parents:
diff changeset
278 * jit-playback.h: New file, containing the gcc::jit::playback
kono
parents:
diff changeset
279 prototypes formerly in internal-api.h.
kono
parents:
diff changeset
280
kono
parents:
diff changeset
281 * dummy-frontend.c: Don't include "internal-api.h". Add includes
kono
parents:
diff changeset
282 of jit-common.h and jit-playback.h.
kono
parents:
diff changeset
283 * jit-builtins.h: Replace include of internal-api.h with
kono
parents:
diff changeset
284 jit-common.h.
kono
parents:
diff changeset
285 * jit-builtins.c: Replace include of internal-api.h with
kono
parents:
diff changeset
286 jit-common.h. Add include of jit-recording.h.
kono
parents:
diff changeset
287 * libgccjit.c: Likewise.
kono
parents:
diff changeset
288
kono
parents:
diff changeset
289 * docs/internals/index.rst (Overview of code structure): Update
kono
parents:
diff changeset
290 to reflect the above changes.
kono
parents:
diff changeset
291
kono
parents:
diff changeset
292 2014-10-07 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
293
kono
parents:
diff changeset
294 * docs/internals/index.rst
kono
parents:
diff changeset
295 (Using a working copy without installing): Rename to...
kono
parents:
diff changeset
296 (Using a working copy without installing every time): ...this, and
kono
parents:
diff changeset
297 update to reflect the need to have installed the driver binary
kono
parents:
diff changeset
298 when running directly from a build directory.
kono
parents:
diff changeset
299 (Running the test suite): Add PATH setting to the example.
kono
parents:
diff changeset
300 * docs/intro/install.rst ("Hello world"): Likewise.
kono
parents:
diff changeset
301 * internal-api.c: Include new autogenerated header
kono
parents:
diff changeset
302 "gcc-driver-name.h".
kono
parents:
diff changeset
303 (gcc::jit::playback::context::compile): Rather than looking for a
kono
parents:
diff changeset
304 "gcc" on the path, look for GCC_DRIVER_NAME from gcc-driver-name.h,
kono
parents:
diff changeset
305 as created by the configure script, so that we are using one for
kono
parents:
diff changeset
306 the correct target.
kono
parents:
diff changeset
307
kono
parents:
diff changeset
308 2014-10-02 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
309
kono
parents:
diff changeset
310 * Make-lang.in (jit.info): Implement.
kono
parents:
diff changeset
311 (jit.install-info): Implement.
kono
parents:
diff changeset
312 (jit.dvi): Implement.
kono
parents:
diff changeset
313 (jit.pdf): Implement in terms of new target "jit.texinfo.pdf".
kono
parents:
diff changeset
314 (jit.install-pdf): Likewise for new target
kono
parents:
diff changeset
315 "jit.texinfo.install-pdf".
kono
parents:
diff changeset
316 (jit.install-html): Implement in terms of
kono
parents:
diff changeset
317 "jit.$(doc_build_sys).install-html" to redirect to new targets
kono
parents:
diff changeset
318 "jit.sphinx.install-html" or "jit.texinfo.install-html".
kono
parents:
diff changeset
319 (jit.html): Implement in terms of "jit.$(doc_build_sys).html" to
kono
parents:
diff changeset
320 redirect to new targets "jit.sphinx.html" or "jit.texinfo.html".
kono
parents:
diff changeset
321 (JIT_TEXI_FILES): New variable.
kono
parents:
diff changeset
322 (jit.texinfo.html): New target.
kono
parents:
diff changeset
323 (jit.texinfo.install-html): New target.
kono
parents:
diff changeset
324 (jit.texinfo.pdf): New target.
kono
parents:
diff changeset
325 (jit.texinfo.install-pdf): New target.
kono
parents:
diff changeset
326 (SPHINX_BUILD_DIR): New variable.
kono
parents:
diff changeset
327 (jit.sphinx.html): New target.
kono
parents:
diff changeset
328 (jit_htmldir): New variable.
kono
parents:
diff changeset
329 (jit.sphinx.install-html): New target.
kono
parents:
diff changeset
330 (jit.sphinx.pdf): New target.
kono
parents:
diff changeset
331
kono
parents:
diff changeset
332 2014-09-26 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
333
kono
parents:
diff changeset
334 * internal-api.h (gcc::jit::recording::context): Convert field
kono
parents:
diff changeset
335 "m_first_error_str" from a fixed-size buffer to a pointer, and add
kono
parents:
diff changeset
336 a field "m_owns_first_error_str" to determine if we're responsible
kono
parents:
diff changeset
337 for freeing it.
kono
parents:
diff changeset
338 * internal-api.c (gcc::jit::recording::context::context): Update
kono
parents:
diff changeset
339 initializations in ctor for above change.
kono
parents:
diff changeset
340 (gcc::jit::recording::context::~context): Free m_first_error_str
kono
parents:
diff changeset
341 if we own it.
kono
parents:
diff changeset
342 (gcc::jit::recording::context::add_error_va): When capturing the
kono
parents:
diff changeset
343 first error message on a context, rather than copying "errmsg" to
kono
parents:
diff changeset
344 a fixed-size buffer and truncating if oversize, simply store the
kono
parents:
diff changeset
345 pointer to the error message, and flag whether we need to free it.
kono
parents:
diff changeset
346 (gcc::jit::recording::context::get_first_error): Update for change
kono
parents:
diff changeset
347 of "m_first_error_str" from an internal buffer to a pointer.
kono
parents:
diff changeset
348
kono
parents:
diff changeset
349 2014-09-25 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
350
kono
parents:
diff changeset
351 * internal-api.c (gcc::jit::playback::context::compile): Use
kono
parents:
diff changeset
352 pex_one rather than system when invoking "gcc" to go from a .s
kono
parents:
diff changeset
353 file to a .so file.
kono
parents:
diff changeset
354
kono
parents:
diff changeset
355 2014-09-25 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
356
kono
parents:
diff changeset
357 * internal-api.c (make_tempdir_path_template): New.
kono
parents:
diff changeset
358 (gcc::jit::playback::context::compile): Call
kono
parents:
diff changeset
359 make_tempdir_path_template to make m_path_template, rather than
kono
parents:
diff changeset
360 hardcoding "/tmp/" within "/tmp/libgccjit-XXXXXX".
kono
parents:
diff changeset
361
kono
parents:
diff changeset
362 2014-09-24 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
363
kono
parents:
diff changeset
364 * docs/internals/index.rst ("Overview of code structure"): Add
kono
parents:
diff changeset
365 more descriptive text, including various fragments of
kono
parents:
diff changeset
366 internal-api.h as appropriate.
kono
parents:
diff changeset
367 * internal-api.h: Add marker comments for use by "literalinclude"
kono
parents:
diff changeset
368 directives in docs/internals/index.rst.
kono
parents:
diff changeset
369
kono
parents:
diff changeset
370 2014-09-24 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
371
kono
parents:
diff changeset
372 * dummy-frontend.c (my_walker): Rename to...
kono
parents:
diff changeset
373 (my_ggc_walker): ...this.
kono
parents:
diff changeset
374 (my_root_tab): Rename to...
kono
parents:
diff changeset
375 (jit_root_tab): ...this.
kono
parents:
diff changeset
376 (jit_langhook_init): Update for renaming of "my_root_tab" to
kono
parents:
diff changeset
377 "jit_root_tab".
kono
parents:
diff changeset
378 * internal-api.c: Add descriptive API comments to functions
kono
parents:
diff changeset
379 throughout.
kono
parents:
diff changeset
380 (mutex): Rename to...
kono
parents:
diff changeset
381 (jit_mutex): ...this.
kono
parents:
diff changeset
382 (gcc::jit::recording::context::compile): Update for renaming of
kono
parents:
diff changeset
383 "mutex" to "jit_mutex".
kono
parents:
diff changeset
384 * internal-api.h: Add descriptive API comments to functions
kono
parents:
diff changeset
385 throughout. Add indentation to forward declarations of classes
kono
parents:
diff changeset
386 to indicate inheritance.
kono
parents:
diff changeset
387 * jit-builtins.c: Likewise.
kono
parents:
diff changeset
388
kono
parents:
diff changeset
389 2014-09-24 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
390
kono
parents:
diff changeset
391 * internal-api.c (gcc::jit::dump::write): Eliminate fixed-size
kono
parents:
diff changeset
392 buffer "buf" by replacing call to vsnprintf with one to vasprintf
kono
parents:
diff changeset
393 and a free, emitting an error on the dump's context if a malloc
kono
parents:
diff changeset
394 failure occurs.
kono
parents:
diff changeset
395 (gcc::jit::recording::context::add_error_va): Likewise, using
kono
parents:
diff changeset
396 a precanned message if the malloc inside vasprinf fails. Split
kono
parents:
diff changeset
397 local "buf" into "malloced_msg" and "errmsg" to ensure that we
kono
parents:
diff changeset
398 free the message iff we're using one malloc-ed by vasprintf.
kono
parents:
diff changeset
399 (gcc::jit::recording::string::from_printf): Eliminate fixed-size
kono
parents:
diff changeset
400 buffer "buf" by replacing call to vsnprintf with one to vasprintf
kono
parents:
diff changeset
401 and a free, emitting an error on the relevant context if a malloc
kono
parents:
diff changeset
402 failure occurs.
kono
parents:
diff changeset
403
kono
parents:
diff changeset
404 2014-09-24 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
405
kono
parents:
diff changeset
406 * dummy-frontend.c: Update copyright year. Follow standard for
kono
parents:
diff changeset
407 initial includes by removing redundant include of "ansidecl.h".
kono
parents:
diff changeset
408 * internal-api.c: Follow standard for initial includes by removing
kono
parents:
diff changeset
409 redundant include of "ansidecl.h".
kono
parents:
diff changeset
410 * jit-builtins.c: Likewise.
kono
parents:
diff changeset
411 * libgccjit.c: Likewise.
kono
parents:
diff changeset
412
kono
parents:
diff changeset
413 2014-09-24 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
414
kono
parents:
diff changeset
415 * ChangeLog.jit: Add copyright footer.
kono
parents:
diff changeset
416 * Make-lang.in: Update copyright.
kono
parents:
diff changeset
417 * config-lang.in: Update copyright.
kono
parents:
diff changeset
418 * docs/examples/install-hello-world.c: Add copyright header.
kono
parents:
diff changeset
419 * docs/examples/tut01-square.c: Likewise.
kono
parents:
diff changeset
420 * docs/examples/tut02-sum-of-squares.c: Likewise.
kono
parents:
diff changeset
421 * docs/examples/tut03-toyvm/toyvm.c: Likewise.
kono
parents:
diff changeset
422 * internal-api.c: Likewise.
kono
parents:
diff changeset
423 * internal-api.h: Likewise.
kono
parents:
diff changeset
424 * libgccjit++.h: Likewise.
kono
parents:
diff changeset
425 * libgccjit.c: Likewise.
kono
parents:
diff changeset
426 * libgccjit.h: Likewise.
kono
parents:
diff changeset
427 * libgccjit.map: Likewise.
kono
parents:
diff changeset
428
kono
parents:
diff changeset
429 2014-09-23 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
430
kono
parents:
diff changeset
431 * TODO.rst (API): Shift operators are done.
kono
parents:
diff changeset
432 * docs/topics/expressions.rst (Binary): Add shift operators.
kono
parents:
diff changeset
433 * internal-api.c (binary_op_strings): Likewise.
kono
parents:
diff changeset
434 (gcc::jit::playback::context::new_binary_op): Likewise.
kono
parents:
diff changeset
435 * libgccjit.h (enum gcc_jit_binary_op): Likewise.
kono
parents:
diff changeset
436
kono
parents:
diff changeset
437 2014-09-23 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
438
kono
parents:
diff changeset
439 * TODO.rst: Rename "Initial Release" section to "API", and
kono
parents:
diff changeset
440 remove completed items: builtins, docs, pkgconfig file, fuzz
kono
parents:
diff changeset
441 testing. Move ability to name contexts and stmt_list per block
kono
parents:
diff changeset
442 ideas to a new "Nice to have" section and note that it might be
kono
parents:
diff changeset
443 better to go straight to gimple.
kono
parents:
diff changeset
444 Move code coverage to "Test suite" section.
kono
parents:
diff changeset
445 Add a "Probably not needed" section, moving some items to it.
kono
parents:
diff changeset
446 Note that we're still missing shift operators.
kono
parents:
diff changeset
447 Add idea that we could warn about unused objects in a context.
kono
parents:
diff changeset
448
kono
parents:
diff changeset
449 2014-09-23 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
450
kono
parents:
diff changeset
451 * docs/examples/tut03-toyvm/toyvm.c: Include <dejagnu.h>.
kono
parents:
diff changeset
452 Add missing typedef of compilation_state.
kono
parents:
diff changeset
453 (toyvm_function_parse): Add "name param.
kono
parents:
diff changeset
454 (test): New.
kono
parents:
diff changeset
455 (CHECK_NON_NULL): New, from harness.h
kono
parents:
diff changeset
456 (CHECK_VALUE): Likewise.
kono
parents:
diff changeset
457 (test_script): New.
kono
parents:
diff changeset
458 (PATH_TO_SCRIPTS): New define.
kono
parents:
diff changeset
459 (test_suite): New.
kono
parents:
diff changeset
460 (main): If called with no args, run the test suite.
kono
parents:
diff changeset
461
kono
parents:
diff changeset
462 2014-09-23 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
463
kono
parents:
diff changeset
464 * docs/conf.py (__read_file): New helper function, for
kono
parents:
diff changeset
465 extracting...
kono
parents:
diff changeset
466 (gcc_BASEVER): New variable, read from "BASE-VER" in gcc src dir.
kono
parents:
diff changeset
467 (gcc_DEVPHASE): Likewise, from file "DEV-PHASE".
kono
parents:
diff changeset
468 (gcc_DATESTAMP): Likewise, from file "DATESTAMP".
kono
parents:
diff changeset
469 (gcc_REVISION): Likewise, from file "REVISION" (if present).
kono
parents:
diff changeset
470 (version): Rather than hardcoding this variable, extract from file
kono
parents:
diff changeset
471 BASE-VER, via gcc_BASEVER local.
kono
parents:
diff changeset
472 (release): Likewise, building it up from the files read above.
kono
parents:
diff changeset
473 * docs/_build/texinfo/libgccjit.texi: Regenerate.
kono
parents:
diff changeset
474
kono
parents:
diff changeset
475 2014-09-22 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
476
kono
parents:
diff changeset
477 * docs/intro/tutorial01.rst: Remove stray "FIXME".
kono
parents:
diff changeset
478 * docs/_build/texinfo/libgccjit.texi: Regenerate.
kono
parents:
diff changeset
479
kono
parents:
diff changeset
480 2014-09-22 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
481
kono
parents:
diff changeset
482 * docs/index.rst: Add internals/index.rst.
kono
parents:
diff changeset
483 * docs/internals/index.rst: New.
kono
parents:
diff changeset
484 * notes.txt: Update to reflect renaming of toplev_main to
kono
parents:
diff changeset
485 toplev::main.
kono
parents:
diff changeset
486
kono
parents:
diff changeset
487 2014-09-22 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
488
kono
parents:
diff changeset
489 * docs/_build/texinfo/libgccjit.texi: Regenerate.
kono
parents:
diff changeset
490 * docs/intro/install.rst: Reduce width of listing.
kono
parents:
diff changeset
491 * docs/intro/tutorial01.rst: Use <libgccjit.h> rather than
kono
parents:
diff changeset
492 "libgccjit.h" when including the header.
kono
parents:
diff changeset
493 * docs/intro/tutorial02.rst: Likewise.
kono
parents:
diff changeset
494 * docs/intro/tutorial03.rst: Clarify various sections; show
kono
parents:
diff changeset
495 effect of reducing optimization level down from 3 to 2.
kono
parents:
diff changeset
496 ("Putting it all together"): Move to above...
kono
parents:
diff changeset
497 ("Behind the curtain: optimizing away stack manipulation"):
kono
parents:
diff changeset
498 ...this, and rename this to...
kono
parents:
diff changeset
499 ("Behind the curtain: How does our code get optimized?"): ...and
kono
parents:
diff changeset
500 add more detail, and discussion of elimination of tail recursion.
kono
parents:
diff changeset
501
kono
parents:
diff changeset
502 2014-09-19 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
503
kono
parents:
diff changeset
504 * TODO.rst: Add detection of uninitialized variables, since
kono
parents:
diff changeset
505 this bit me when developing "toyvm".
kono
parents:
diff changeset
506
kono
parents:
diff changeset
507 * docs/examples/tut03-toyvm/Makefile: New.
kono
parents:
diff changeset
508 * docs/examples/tut03-toyvm/factorial.toy: New.
kono
parents:
diff changeset
509 * docs/examples/tut03-toyvm/fibonacci.toy: New.
kono
parents:
diff changeset
510 * docs/examples/tut03-toyvm/toyvm.c: New.
kono
parents:
diff changeset
511
kono
parents:
diff changeset
512 * docs/intro/index.rst: Add tutorial03.rst.
kono
parents:
diff changeset
513 * docs/intro/tutorial01.rst: Fix example of how to dump
kono
parents:
diff changeset
514 generated machine code.
kono
parents:
diff changeset
515 * docs/intro/tutorial03.rst: New.
kono
parents:
diff changeset
516 * docs/intro/factorial.png: New.
kono
parents:
diff changeset
517
kono
parents:
diff changeset
518 * docs/_build/texinfo/libgccjit.texi: Regenerate.
kono
parents:
diff changeset
519 * docs/_build/texinfo/factorial.png: New (copied by sphinx from
kono
parents:
diff changeset
520 docs/intro/factorial.png).
kono
parents:
diff changeset
521
kono
parents:
diff changeset
522 2014-09-18 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
523
kono
parents:
diff changeset
524 * Make-lang.in (jit.install-common): Install libgccjit.pc to
kono
parents:
diff changeset
525 "$(DESTDIR)/$(libdir)/pkgconfig".
kono
parents:
diff changeset
526 * config-lang.in (outputs): Define this, adding jit/libgccjit.pc
kono
parents:
diff changeset
527 so that it makes it into AC_CONFIG_FILES and is thus generated from
kono
parents:
diff changeset
528 jit/libgccjit.pc.in at configure time.
kono
parents:
diff changeset
529 * docs/intro/install.rst ("Hello world"): Add discussion about the
kono
parents:
diff changeset
530 use of pkg-config when building against an install in
kono
parents:
diff changeset
531 a non-standard location.
kono
parents:
diff changeset
532 * docs/_build/texinfo/libgccjit.texi: Regenerate.
kono
parents:
diff changeset
533 * libgccjit.pc.in: New.
kono
parents:
diff changeset
534
kono
parents:
diff changeset
535 2014-09-18 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
536
kono
parents:
diff changeset
537 * docs/index.rst: Split index out into two new files...
kono
parents:
diff changeset
538 * docs/intro/index.rst: New file.
kono
parents:
diff changeset
539 * docs/topics/index.rst: New file.
kono
parents:
diff changeset
540 * docs/_build/texinfo/libgccjit.texi: Regenerate.
kono
parents:
diff changeset
541
kono
parents:
diff changeset
542 2014-09-18 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
543
kono
parents:
diff changeset
544 * docs/_build/texinfo/Makefile: New file, generated by Sphinx, by
kono
parents:
diff changeset
545 running "make texinfo" in docs directory.
kono
parents:
diff changeset
546 * docs/_build/texinfo/libgccjit.texi: Likewise.
kono
parents:
diff changeset
547 * docs/_build/texinfo/sum-of-squares.png: Likewise.
kono
parents:
diff changeset
548
kono
parents:
diff changeset
549 2014-09-18 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
550
kono
parents:
diff changeset
551 * docs/conf.py (Options for HTML output): Update html_theme from
kono
parents:
diff changeset
552 "default" to "pyramid".
kono
parents:
diff changeset
553
kono
parents:
diff changeset
554 2014-09-18 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
555
kono
parents:
diff changeset
556 * docs/intro/install.rst: Markup fixes.
kono
parents:
diff changeset
557 * docs/intro/tutorial01.rst: Likewise.
kono
parents:
diff changeset
558 * docs/intro/tutorial02.rst: Likewise.
kono
parents:
diff changeset
559 * docs/topics/contexts.rst: Likewise.
kono
parents:
diff changeset
560 * docs/topics/expressions.rst: Likewise.
kono
parents:
diff changeset
561 * docs/topics/functions.rst: Likewise.
kono
parents:
diff changeset
562 * docs/topics/locations.rst: Likewise.
kono
parents:
diff changeset
563 * docs/topics/types.rst: Likewise.
kono
parents:
diff changeset
564
kono
parents:
diff changeset
565 2014-09-18 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
566
kono
parents:
diff changeset
567 * docs/examples/install-hello-world.c (main): Fix missing
kono
parents:
diff changeset
568 "return".
kono
parents:
diff changeset
569 * docs/examples/tut01-square.c (main): Likewise.
kono
parents:
diff changeset
570 * docs/examples/tut02-sum-of-squares.c (main): Likewise.
kono
parents:
diff changeset
571
kono
parents:
diff changeset
572 2014-09-17 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
573
kono
parents:
diff changeset
574 * docs/Makefile: New file.
kono
parents:
diff changeset
575 * docs/conf.py: New file.
kono
parents:
diff changeset
576 * docs/examples/install-hello-world.c: New file.
kono
parents:
diff changeset
577 * docs/examples/tut01-square.c: New file.
kono
parents:
diff changeset
578 * docs/examples/tut02-sum-of-squares.c: New file.
kono
parents:
diff changeset
579 * docs/index.rst: New file.
kono
parents:
diff changeset
580 * docs/intro/install.rst: New file.
kono
parents:
diff changeset
581 * docs/intro/sum-of-squares.png: New file.
kono
parents:
diff changeset
582 * docs/intro/tutorial01.rst: New file.
kono
parents:
diff changeset
583 * docs/intro/tutorial02.rst: New file.
kono
parents:
diff changeset
584 * docs/topics/contexts.rst: New file.
kono
parents:
diff changeset
585 * docs/topics/expressions.rst: New file.
kono
parents:
diff changeset
586 * docs/topics/functions.rst: New file.
kono
parents:
diff changeset
587 * docs/topics/locations.rst: New file.
kono
parents:
diff changeset
588 * docs/topics/objects.rst: New file.
kono
parents:
diff changeset
589 * docs/topics/results.rst: New file.
kono
parents:
diff changeset
590 * docs/topics/types.rst: New file.
kono
parents:
diff changeset
591
kono
parents:
diff changeset
592 2014-09-11 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
593
kono
parents:
diff changeset
594 * TODO.rst (Initial Release): Update for addition of myself as
kono
parents:
diff changeset
595 maintainer.
kono
parents:
diff changeset
596
kono
parents:
diff changeset
597 2014-09-10 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
598
kono
parents:
diff changeset
599 * TODO.rst (Test suite): Multithreaded test is done.
kono
parents:
diff changeset
600
kono
parents:
diff changeset
601 2014-09-10 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
602
kono
parents:
diff changeset
603 * dummy-frontend.c: Fix up for the header file flattening on
kono
parents:
diff changeset
604 trunk by adding includes of signop.h, tree-core.h, stor-layout.h,
kono
parents:
diff changeset
605 tree-ssa-alias.h, gimple-expr.h.
kono
parents:
diff changeset
606 (jit_langhook_write_globals): Update call to
kono
parents:
diff changeset
607 finalize_compilation_unit to symtab->finalize_compilation_unit to
kono
parents:
diff changeset
608 track change made on trunk in r214422.
kono
parents:
diff changeset
609
kono
parents:
diff changeset
610 * internal-api.c: Fix up for the header file flattening on trunk
kono
parents:
diff changeset
611 by adding includes of gimple-expr.h, tree-ssa-alias.h,
kono
parents:
diff changeset
612 stringpool.h, stor-layout.h, print-tree.h, gimplify.h.
kono
parents:
diff changeset
613 (new_rvalue_from_int): Update call to real_from_integer.
kono
parents:
diff changeset
614 (gcc::jit::playback::wrapper::operator new): Use
kono
parents:
diff changeset
615 ggc_internal_cleared_alloc rather than
kono
parents:
diff changeset
616 ggc_internal_cleared_alloc_stat.
kono
parents:
diff changeset
617 (gcc::jit::playback::function::postprocess): Update call to
kono
parents:
diff changeset
618 cgraph_finalize_function tocgraph_node::finalize_function.
kono
parents:
diff changeset
619 (gcc::jit::playback::block::add_comment): Update call to
kono
parents:
diff changeset
620 ggc_internal_alloc_stat to ggc_internal_alloc.
kono
parents:
diff changeset
621
kono
parents:
diff changeset
622 2014-08-08 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
623
kono
parents:
diff changeset
624 * libgccjit.h (gcc_jit_context_new_union_type): New entrypoint.
kono
parents:
diff changeset
625 (gcc_jit_lvalue_access_field): Rename first param from "struct_"
kono
parents:
diff changeset
626 to "struct_or_union".
kono
parents:
diff changeset
627 (gcc_jit_rvalue_access_field): Likewise.
kono
parents:
diff changeset
628
kono
parents:
diff changeset
629 * libgccjit.c (gcc_jit_context_new_union_type): New entrypoint.
kono
parents:
diff changeset
630
kono
parents:
diff changeset
631 * libgccjit.map (gcc_jit_context_new_union_type): New entrypoint.
kono
parents:
diff changeset
632
kono
parents:
diff changeset
633 * internal-api.h (gcc::jit::recording::compound_type): New class
kono
parents:
diff changeset
634 (gcc::jit::recording::union): New class.
kono
parents:
diff changeset
635 (gcc::jit::playback::struct_): Rename this class to...
kono
parents:
diff changeset
636 (gcc::jit::playback::compound_type): ...this.
kono
parents:
diff changeset
637 (gcc::jit::recording::context::new_union_type): New method.
kono
parents:
diff changeset
638 (gcc::jit::recording::context): Rename field "m_structs" to
kono
parents:
diff changeset
639 "m_compound_types", generalizing from a vec <struct_ *> to a
kono
parents:
diff changeset
640 vec<compound_type *>.
kono
parents:
diff changeset
641 (gcc::jit::recording::field): Update field m_container from
kono
parents:
diff changeset
642 struct * to container_type *.
kono
parents:
diff changeset
643 (gcc::jit::recording::field::get_container): Generalize from
kono
parents:
diff changeset
644 struct_ * to container_type *.
kono
parents:
diff changeset
645 (gcc::jit::recording::field::set_container): Likewise.
kono
parents:
diff changeset
646 (gcc::jit::recording::compound_type): New subclass of type, to
kono
parents:
diff changeset
647 be a superclass of existing class struct_ and new class union_.
kono
parents:
diff changeset
648 (gcc::jit::recording::struct_::get_name): Move to...
kono
parents:
diff changeset
649 (gcc::jit::recording::compound_type::get_name): ...here.
kono
parents:
diff changeset
650 (gcc::jit::recording::struct_::get_loc): Move to...
kono
parents:
diff changeset
651 (gcc::jit::recording::compound_type::get_loc): ...here.
kono
parents:
diff changeset
652 (gcc::jit::recording::struct_::set_fields): Move to...
kono
parents:
diff changeset
653 (gcc::jit::recording::compound_type::set_fields): ...here.
kono
parents:
diff changeset
654 (gcc::jit::recording::struct_::dereference): Move to...
kono
parents:
diff changeset
655 (gcc::jit::recording::compound_type::dereference): ...here.
kono
parents:
diff changeset
656 (gcc::jit::recording::struct_::is_int): Move to...
kono
parents:
diff changeset
657 (gcc::jit::recording::compound_type::is_int): ...here.
kono
parents:
diff changeset
658 (gcc::jit::recording::struct_::is_float): Move to...
kono
parents:
diff changeset
659 (gcc::jit::recording::compound_type::is_float): ...here.
kono
parents:
diff changeset
660 (gcc::jit::recording::struct_::is_bool): Move to...
kono
parents:
diff changeset
661 (gcc::jit::recording::compound_type::is_bool): ...here.
kono
parents:
diff changeset
662 (gcc::jit::recording::struct_::is_pointer): Move to...
kono
parents:
diff changeset
663 (gcc::jit::recording::compound_type::is_pointer): ...here.
kono
parents:
diff changeset
664 (gcc::jit::recording::struct_::is_array): Move to...
kono
parents:
diff changeset
665 (gcc::jit::recording::compound_type::is_array): ...here.
kono
parents:
diff changeset
666 (gcc::jit::recording::struct_::playback_struct): Move to...
kono
parents:
diff changeset
667 (gcc::jit::recording::compound_type::playback_compound_type):
kono
parents:
diff changeset
668 ...here, renaming and updating return type.
kono
parents:
diff changeset
669 (gcc::jit::recording::struct_): Inherit from compound_type,
kono
parents:
diff changeset
670 rather than just type.
kono
parents:
diff changeset
671 (gcc::jit::recording::fields): Update to work on compound_type *
kono
parents:
diff changeset
672 rather than struct_ *, renaming "m_struct" to "m_struct_or_union".
kono
parents:
diff changeset
673 (gcc::jit::recording::union): New subclass of compound_type.
kono
parents:
diff changeset
674 (gcc::jit::playback::context::new_struct_type): Generalize by
kono
parents:
diff changeset
675 renaming to...
kono
parents:
diff changeset
676 (gcc::jit::playback::context::new_compound_type): ...this, and
kono
parents:
diff changeset
677 and an "is_struct" bool param.
kono
parents:
diff changeset
678 (gcc::jit::playback::struct_): Generalize by renaming class to...
kono
parents:
diff changeset
679 (gcc::jit::playback::compound_type): ...this.
kono
parents:
diff changeset
680
kono
parents:
diff changeset
681 * internal-api.c (gcc::jit::recording::context::context): Rename
kono
parents:
diff changeset
682 field "m_structs" to "m_compound_types".
kono
parents:
diff changeset
683 (gcc::jit::recording::context::new_struct_type): Likewise.
kono
parents:
diff changeset
684 (gcc::jit::recording::context::new_union_type): New method.
kono
parents:
diff changeset
685 (gcc::jit::recording::context::dump_to_file): Field "m_structs"
kono
parents:
diff changeset
686 is renamed "m_compound_types" and changes type from struct_ *
kono
parents:
diff changeset
687 to compound_type *.
kono
parents:
diff changeset
688 (gcc::jit::recording::compound_type::compound_type): New ctor,
kono
parents:
diff changeset
689 built from old body of gcc::jit::recording::struct_::struct_.
kono
parents:
diff changeset
690 (gcc::jit::recording::struct_::set_fields): Move class to...
kono
parents:
diff changeset
691 (gcc::jit::recording::compound_type::set_fields): ... here.
kono
parents:
diff changeset
692 (gcc::jit::recording::struct_::dereference): Move class to...
kono
parents:
diff changeset
693 (gcc::jit::recording::compound_type::dereference): ...here.
kono
parents:
diff changeset
694 (gcc::jit::recording::struct_::struct_): Reimplement by calling
kono
parents:
diff changeset
695 base class ctor.
kono
parents:
diff changeset
696 (gcc::jit::recording::struct_::replay_into): The playback hook
kono
parents:
diff changeset
697 is now "new_compound_type" and adds a bool, with true for
kono
parents:
diff changeset
698 "is_struct" (vs a union).
kono
parents:
diff changeset
699 (gcc::jit::recording::struct_::make_debug_string): "m_name" is
kono
parents:
diff changeset
700 now moved to base class and private, so use an accessor.
kono
parents:
diff changeset
701 (gcc::jit::recording::union_::union_): New function.
kono
parents:
diff changeset
702 (gcc::jit::recording::union_::replay_into): New function.
kono
parents:
diff changeset
703 (gcc::jit::recording::union_::make_debug_string): New function.
kono
parents:
diff changeset
704 (gcc::jit::recording::fields::fields): Update first param from
kono
parents:
diff changeset
705 struct_ * to compound_type *, and rename field "m_struct" to
kono
parents:
diff changeset
706 "m_struct_or_union".
kono
parents:
diff changeset
707 (gcc::jit::recording::fields::replay_into): "m_struct" is now
kono
parents:
diff changeset
708 "m_struct_or_union" and has a playback_compound_type rather
kono
parents:
diff changeset
709 than a playback_struct.
kono
parents:
diff changeset
710 (gcc::jit::recording::fields::write_to_dump): Update for
kono
parents:
diff changeset
711 renaming of m_struct to m_struct_or_union.
kono
parents:
diff changeset
712 (gcc::jit::playback::context::new_struct_type): Rename method
kono
parents:
diff changeset
713 to...
kono
parents:
diff changeset
714 (gcc::jit::playback::context::new_compound_type): this,
kono
parents:
diff changeset
715 generalizing so that it can make unions as well as structs; the
kono
parents:
diff changeset
716 underlying playback type is now called "compound_type".
kono
parents:
diff changeset
717 (gcc::jit::playback::struct_::set_fields): This method's class has
kono
parents:
diff changeset
718 changed name, so this is now...
kono
parents:
diff changeset
719 (gcc::jit::playback::compound_type::set_fields): ...this method.
kono
parents:
diff changeset
720
kono
parents:
diff changeset
721 * TODO.rst: Unions are done.
kono
parents:
diff changeset
722
kono
parents:
diff changeset
723 2014-08-08 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
724
kono
parents:
diff changeset
725 * TODO.rst: Function ptrs are done.
kono
parents:
diff changeset
726 * internal-api.c
kono
parents:
diff changeset
727 (gcc::jit::recording::context::new_function_ptr_type): New method.
kono
parents:
diff changeset
728 (gcc::jit::recording::context::new_call_through_ptr): New method.
kono
parents:
diff changeset
729 (gcc::jit::recording::memento_of_get_pointer::make_debug_string):
kono
parents:
diff changeset
730 Add special-case handling of function pointer types.
kono
parents:
diff changeset
731 (gcc::jit::recording::function_type::make_debug_string_with_ptr):
kono
parents:
diff changeset
732 New method.
kono
parents:
diff changeset
733 (gcc::jit::recording::function_type::make_debug_string):
kono
parents:
diff changeset
734 Reimplement in terms of...
kono
parents:
diff changeset
735 (gcc::jit::recording::function_type::make_debug_string_with): New
kono
parents:
diff changeset
736 method, based on make_debug_string, but allowing for arbitrary
kono
parents:
diff changeset
737 text between the return type and the parameters.
kono
parents:
diff changeset
738 (gcc::jit::recording::call_through_ptr::call_through_ptr): New
kono
parents:
diff changeset
739 method.
kono
parents:
diff changeset
740 (gcc::jit::recording::call_through_ptr::replay_into): New method.
kono
parents:
diff changeset
741 (gcc::jit::recording::call_through_ptr::make_debug_string): New
kono
parents:
diff changeset
742 method.
kono
parents:
diff changeset
743 (gcc::jit::playback::context::new_call): Reimplement in terms of...
kono
parents:
diff changeset
744 (gcc::jit::playback::context::build_call): New method, using parts
kono
parents:
diff changeset
745 of old implementation of new_call, so that we can share this
kono
parents:
diff changeset
746 with...
kono
parents:
diff changeset
747 (gcc::jit::playback::context::new_call_through_ptr): New method.
kono
parents:
diff changeset
748 * internal-api.h
kono
parents:
diff changeset
749 (gcc::jit::recording::context::new_function_ptr_type): New method.
kono
parents:
diff changeset
750 (gcc::jit::recording::context::new_call_through_ptr): New method.
kono
parents:
diff changeset
751 (gcc::jit::recording::type::dyn_cast_function_type): New method.
kono
parents:
diff changeset
752 (gcc::jit::recording::function_type::dyn_cast_function_type): New
kono
parents:
diff changeset
753 method.
kono
parents:
diff changeset
754 (gcc::jit::recording::function_type::make_debug_string_with_ptr):
kono
parents:
diff changeset
755 New method.
kono
parents:
diff changeset
756 (gcc::jit::recording::function_type::make_debug_string_with): New
kono
parents:
diff changeset
757 method.
kono
parents:
diff changeset
758 (gcc::jit::recording::call_through_ptr): New subclass of rvalue.
kono
parents:
diff changeset
759 (gcc::jit::playback::context::new_call_through_ptr): New method.
kono
parents:
diff changeset
760 (gcc::jit::playback::context::build_call): New method.
kono
parents:
diff changeset
761 * libgccjit.c (gcc_jit_context_new_function_ptr_type): New
kono
parents:
diff changeset
762 function.
kono
parents:
diff changeset
763 (gcc_jit_context_new_call_through_ptr): New function.
kono
parents:
diff changeset
764 * libgccjit.h (gcc_jit_context_new_function_ptr_type): New
kono
parents:
diff changeset
765 function.
kono
parents:
diff changeset
766 (gcc_jit_context_new_call_through_ptr): New function.
kono
parents:
diff changeset
767 * libgccjit.map (gcc_jit_context_new_call_through_ptr): New function.
kono
parents:
diff changeset
768 (gcc_jit_context_new_function_ptr_type): New function.
kono
parents:
diff changeset
769
kono
parents:
diff changeset
770 2014-07-25 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
771
kono
parents:
diff changeset
772 * TODO.rst (error-checking): Remove various items that either
kono
parents:
diff changeset
773 already were implemented, or are implemented by this commit.
kono
parents:
diff changeset
774 * internal-api.h (gcc::jit::recording::type::is_numeric): New.
kono
parents:
diff changeset
775 * libgccjit.c (RETURN_NULL_IF_FAIL_NONNULL_NUMERIC_TYPE): New macro.
kono
parents:
diff changeset
776 (gcc_jit_context_new_rvalue_from_int): Verify that numeric_type is
kono
parents:
diff changeset
777 indeed numeric.
kono
parents:
diff changeset
778 (gcc_jit_context_zero): Likewise.
kono
parents:
diff changeset
779 (gcc_jit_context_one): Likewise.
kono
parents:
diff changeset
780 (gcc_jit_context_new_rvalue_from_double): Likewise.
kono
parents:
diff changeset
781 (gcc_jit_context_new_array_access): Likewise for type of "index".
kono
parents:
diff changeset
782
kono
parents:
diff changeset
783 2014-07-14 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
784
kono
parents:
diff changeset
785 * internal-api.c (gcc::jit::recording::context::new_array_type):
kono
parents:
diff changeset
786 Reject attempts to create an array of a struct if the fields of
kono
parents:
diff changeset
787 the struct haven't yet been set.
kono
parents:
diff changeset
788 * internal-api.h (gcc::jit::recording::type::dyn_cast_struct): New
kono
parents:
diff changeset
789 virtual function.
kono
parents:
diff changeset
790 (gcc::jit::recording::struct_::dyn_cast_struct): New, overriding
kono
parents:
diff changeset
791 for this subclass.
kono
parents:
diff changeset
792 (gcc::jit::recording::struct_::get_name): New.
kono
parents:
diff changeset
793
kono
parents:
diff changeset
794 2014-05-07 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
795
kono
parents:
diff changeset
796 * Make-lang.in (LIBGCCJIT_LINKER_NAME): New.
kono
parents:
diff changeset
797 (LIBGCCJIT_VERSION_NUM): New.
kono
parents:
diff changeset
798 (LIBGCCJIT_MINOR_NUM): New.
kono
parents:
diff changeset
799 (LIBGCCJIT_RELEASE_NUM): New.
kono
parents:
diff changeset
800 (LIBGCCJIT_SONAME): New.
kono
parents:
diff changeset
801 (LIBGCCJIT_FILENAME): New.
kono
parents:
diff changeset
802 (LIBGCCJIT_LINKER_NAME_SYMLINK): New.
kono
parents:
diff changeset
803 (LIBGCCJIT_SONAME_SYMLINK): New.
kono
parents:
diff changeset
804 (jit): Add symlink targets.
kono
parents:
diff changeset
805 (libgccjit.so): Convert to...
kono
parents:
diff changeset
806 (LIBGCCJIT_FILENAME): ...and add a soname.
kono
parents:
diff changeset
807 (jit.install-common): Install the library with a soname, and
kono
parents:
diff changeset
808 symlinks. Install libgccjit++.h.
kono
parents:
diff changeset
809
kono
parents:
diff changeset
810 2014-04-25 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
811
kono
parents:
diff changeset
812 * internal-api.c (gcc::jit::playback::context::compile): Put
kono
parents:
diff changeset
813 any output of dlerror through the add_error method, rather
kono
parents:
diff changeset
814 than merely printing it to stderr, so that the error is also
kono
parents:
diff changeset
815 recorded on the context.
kono
parents:
diff changeset
816
kono
parents:
diff changeset
817 2014-03-19 Tom Tromey <tromey@redhat.com>
kono
parents:
diff changeset
818
kono
parents:
diff changeset
819 * internal-api.c (compile): Use auto_timevar.
kono
parents:
diff changeset
820
kono
parents:
diff changeset
821 2014-03-19 Tom Tromey <tromey@redhat.com>
kono
parents:
diff changeset
822
kono
parents:
diff changeset
823 * internal-api.c (compile): Use toplev, not toplev_options.
kono
parents:
diff changeset
824 Simplify.
kono
parents:
diff changeset
825
kono
parents:
diff changeset
826 2014-03-19 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
827
kono
parents:
diff changeset
828 * internal-api.c (gcc::jit::recording::context::add_error_va):
kono
parents:
diff changeset
829 Rename local "progname" to "ctxt_progname" to avoid shadowing
kono
parents:
diff changeset
830 the related global, for clarity.
kono
parents:
diff changeset
831 (gcc::jit::playback::context::compile): Likewise.
kono
parents:
diff changeset
832
kono
parents:
diff changeset
833 2014-03-19 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
834
kono
parents:
diff changeset
835 * internal-api.c (gcc::jit::recording::memento_of_get_pointer::
kono
parents:
diff changeset
836 accepts_writes_from): Accept writes from pointers, but not arrays.
kono
parents:
diff changeset
837
kono
parents:
diff changeset
838 * internal-api.h (gcc::jit::recording::type::is_pointer): New.
kono
parents:
diff changeset
839 (gcc::jit::recording::type::is_array): New.
kono
parents:
diff changeset
840 (gcc::jit::recording::memento_of_get_type::accepts_writes_from):
kono
parents:
diff changeset
841 Allow (void *) to accept writes of pointers, but not arrays.
kono
parents:
diff changeset
842 (gcc::jit::recording::memento_of_get_type::is_pointer): New.
kono
parents:
diff changeset
843 (gcc::jit::recording::memento_of_get_type::is_array): New.
kono
parents:
diff changeset
844 (gcc::jit::recording::memento_of_get_pointer::is_pointer): New.
kono
parents:
diff changeset
845 (gcc::jit::recording::memento_of_get_pointer::is_array): New.
kono
parents:
diff changeset
846 (gcc::jit::recording::memento_of_get_const::is_pointer): New.
kono
parents:
diff changeset
847 (gcc::jit::recording::memento_of_get_const::is_array): New.
kono
parents:
diff changeset
848 (gcc::jit::recording::memento_of_get_volatile::is_pointer): New.
kono
parents:
diff changeset
849 (gcc::jit::recording::memento_of_get_volatile::is_array): New.
kono
parents:
diff changeset
850 (gcc::jit::recording::array_type::is_pointer): New.
kono
parents:
diff changeset
851 (gcc::jit::recording::array_type::is_array): New.
kono
parents:
diff changeset
852 (gcc::jit::recording::function_type::is_pointer): New.
kono
parents:
diff changeset
853 (gcc::jit::recording::function_type::is_array): New.
kono
parents:
diff changeset
854 (gcc::jit::recording::struct_::is_pointer): New.
kono
parents:
diff changeset
855 (gcc::jit::recording::struct_::is_array): New.
kono
parents:
diff changeset
856
kono
parents:
diff changeset
857 * libgccjit.c (gcc_jit_context_new_rvalue_from_ptr): Require the
kono
parents:
diff changeset
858 pointer_type to be a pointer, not an array.
kono
parents:
diff changeset
859 (gcc_jit_context_null): Likewise.
kono
parents:
diff changeset
860 (is_valid_cast): Require pointer casts to be between pointer types,
kono
parents:
diff changeset
861 not arrays.
kono
parents:
diff changeset
862 (gcc_jit_context_new_array_access): Update error message from "not
kono
parents:
diff changeset
863 a pointer" to "not a pointer or array".
kono
parents:
diff changeset
864 (gcc_jit_rvalue_dereference_field): Require the pointer arg to be
kono
parents:
diff changeset
865 of pointer type, not an array.
kono
parents:
diff changeset
866 (gcc_jit_rvalue_dereference): Likewise.
kono
parents:
diff changeset
867
kono
parents:
diff changeset
868 2014-03-14 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
869
kono
parents:
diff changeset
870 * libgccjit.c (is_valid_cast): Permit casts between pointer types.
kono
parents:
diff changeset
871
kono
parents:
diff changeset
872 * internal-api.c (convert): Report more information if this ever
kono
parents:
diff changeset
873 occurs, and make the error occur on the playback context, so that
kono
parents:
diff changeset
874 it makes the gcc_jit_result be NULL.
kono
parents:
diff changeset
875 (gcc::jit::playback::context::build_cast): Handle pointers. Report
kono
parents:
diff changeset
876 more information if an unhandlable cast reaches here.
kono
parents:
diff changeset
877
kono
parents:
diff changeset
878 2014-03-13 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
879
kono
parents:
diff changeset
880 * libgccjit.c (is_valid_cast): New.
kono
parents:
diff changeset
881 (gcc_jit_context_new_cast): Check for compatible types.
kono
parents:
diff changeset
882
kono
parents:
diff changeset
883 * internal-api.c (gcc::jit::recording::memento_of_get_type::
kono
parents:
diff changeset
884 is_int): New.
kono
parents:
diff changeset
885 (gcc::jit::recording::memento_of_get_type::is_float): New.
kono
parents:
diff changeset
886 (gcc::jit::recording::memento_of_get_type::is_bool): New.
kono
parents:
diff changeset
887
kono
parents:
diff changeset
888 * internal-api.h (gcc::jit::recording::type::is_int): New.
kono
parents:
diff changeset
889 (gcc::jit::recording::type::is_float): New.
kono
parents:
diff changeset
890 (gcc::jit::recording::type::is_bool): New.
kono
parents:
diff changeset
891
kono
parents:
diff changeset
892 (gcc::jit::recording::memento_of_get_type::is_int): New.
kono
parents:
diff changeset
893 (gcc::jit::recording::memento_of_get_type::is_float): New.
kono
parents:
diff changeset
894 (gcc::jit::recording::memento_of_get_type::is_bool): New.
kono
parents:
diff changeset
895
kono
parents:
diff changeset
896 (gcc::jit::recording::memento_of_get_pointer::is_int): New.
kono
parents:
diff changeset
897 (gcc::jit::recording::memento_of_get_pointer::is_float): New.
kono
parents:
diff changeset
898 (gcc::jit::recording::memento_of_get_pointer::is_bool): New.
kono
parents:
diff changeset
899
kono
parents:
diff changeset
900 (gcc::jit::recording::memento_of_get_const::is_int): New.
kono
parents:
diff changeset
901 (gcc::jit::recording::memento_of_get_const::is_float): New.
kono
parents:
diff changeset
902 (gcc::jit::recording::memento_of_get_const::is_bool): New.
kono
parents:
diff changeset
903
kono
parents:
diff changeset
904 (gcc::jit::recording::memento_of_get_volatile::is_int): New.
kono
parents:
diff changeset
905 (gcc::jit::recording::memento_of_get_volatile::is_float): New.
kono
parents:
diff changeset
906 (gcc::jit::recording::memento_of_get_volatile::is_bool): New.
kono
parents:
diff changeset
907
kono
parents:
diff changeset
908 (gcc::jit::recording::array_type::is_int): New.
kono
parents:
diff changeset
909 (gcc::jit::recording::array_type::is_float): New.
kono
parents:
diff changeset
910 (gcc::jit::recording::array_type::is_bool): New.
kono
parents:
diff changeset
911
kono
parents:
diff changeset
912 (gcc::jit::recording::function_type::is_int): New.
kono
parents:
diff changeset
913 (gcc::jit::recording::function_type::is_float): New.
kono
parents:
diff changeset
914 (gcc::jit::recording::function_type::is_bool): New.
kono
parents:
diff changeset
915
kono
parents:
diff changeset
916 (gcc::jit::recording::struct_::is_int): New.
kono
parents:
diff changeset
917 (gcc::jit::recording::struct_::is_float): New.
kono
parents:
diff changeset
918 (gcc::jit::recording::struct_::is_bool): New.
kono
parents:
diff changeset
919
kono
parents:
diff changeset
920 2014-03-13 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
921
kono
parents:
diff changeset
922 * internal-api.c (gcc::jit::recording::context::set_str_option):
kono
parents:
diff changeset
923 Provide NULL recording::location to add_error.
kono
parents:
diff changeset
924 (gcc::jit::recording::context::set_int_option): Likewise.
kono
parents:
diff changeset
925 (gcc::jit::recording::context::set_bool_option): Likewise.
kono
parents:
diff changeset
926 (gcc::jit::playback::context::compile): Likewise.
kono
parents:
diff changeset
927 (gcc::jit::recording::context::add_error): Add recording::location
kono
parents:
diff changeset
928 param.
kono
parents:
diff changeset
929 (gcc::jit::recording::context::add_error_va): Likewise; print it
kono
parents:
diff changeset
930 when present; add "error: " to stderr messages.
kono
parents:
diff changeset
931 (gcc::jit::recording::location::replay_into): Provide
kono
parents:
diff changeset
932 recording::location to the playback::location.
kono
parents:
diff changeset
933
kono
parents:
diff changeset
934 (gcc::jit::recording::function::validate): Add locations to the
kono
parents:
diff changeset
935 add_error invocations.
kono
parents:
diff changeset
936 (gcc::jit::recording::block::validate): Likewise.
kono
parents:
diff changeset
937 (gcc::jit::playback::context::get_type): Likewise.
kono
parents:
diff changeset
938 (gcc::jit::playback::context::new_unary_op): Likewise.
kono
parents:
diff changeset
939 (gcc::jit::playback::context::new_binary_op): Likewise.
kono
parents:
diff changeset
940 (gcc::jit::playback::context::new_comparison): Likewise.
kono
parents:
diff changeset
941
kono
parents:
diff changeset
942 (gcc::jit::recording::block::get_loc): New.
kono
parents:
diff changeset
943 (gcc::jit::recording::block::get_first_statement): New.
kono
parents:
diff changeset
944
kono
parents:
diff changeset
945 (gcc::jit::playback::context::build_cast): Pass in higher-level
kono
parents:
diff changeset
946 arguments in the hope of eventually providing better error
kono
parents:
diff changeset
947 messages when a cast isn't possible.
kono
parents:
diff changeset
948 (gcc::jit::playback::context::new_cast): As above.
kono
parents:
diff changeset
949
kono
parents:
diff changeset
950 (gcc::jit::playback::context::add_error): Add playback::location
kono
parents:
diff changeset
951 parameter, using it to provide the corresponding
kono
parents:
diff changeset
952 recording::location (if any) when reporting the error to the
kono
parents:
diff changeset
953 recording::context.
kono
parents:
diff changeset
954 (gcc::jit::playback::context::add_error_va): Likewise.
kono
parents:
diff changeset
955 (gcc::jit::playback::context::new_location): Likewise.
kono
parents:
diff changeset
956 (gcc::jit::playback::source_line::get_location): Likewise.
kono
parents:
diff changeset
957 (gcc::jit::playback::location::location): Likewise.
kono
parents:
diff changeset
958
kono
parents:
diff changeset
959 * internal-api.h (gcc::jit::recording::context::add_error): Add
kono
parents:
diff changeset
960 recording::location param.
kono
parents:
diff changeset
961 (gcc::jit::recording::context::add_error_va): Likewise.
kono
parents:
diff changeset
962
kono
parents:
diff changeset
963 (gcc::jit::recording::context::errors_occurred): Also consider
kono
parents:
diff changeset
964 errors that occur on a parent or ancestor context, recursively.
kono
parents:
diff changeset
965
kono
parents:
diff changeset
966 (gcc::jit::recording::block::get_loc): New.
kono
parents:
diff changeset
967 (gcc::jit::recording::block::get_first_statement): New.
kono
parents:
diff changeset
968 (gcc::jit::recording::statement::get_loc): New.
kono
parents:
diff changeset
969
kono
parents:
diff changeset
970 (gcc::jit::playback::context::new_location): Add recording::location
kono
parents:
diff changeset
971 parameter.
kono
parents:
diff changeset
972
kono
parents:
diff changeset
973 (gcc::jit::playback::context::add_error): Add playback::location
kono
parents:
diff changeset
974 parameter.
kono
parents:
diff changeset
975 (gcc::jit::playback::context::add_error_va): Likewise.
kono
parents:
diff changeset
976
kono
parents:
diff changeset
977 (gcc::jit::playback::context::build_cast): Pass in higher-level
kono
parents:
diff changeset
978 arguments in the hope of eventually providing better error
kono
parents:
diff changeset
979 messages when a cast isn't possible.
kono
parents:
diff changeset
980
kono
parents:
diff changeset
981 (gcc::jit::playback::source_line::get_location): Add
kono
parents:
diff changeset
982 recording::location parameter.
kono
parents:
diff changeset
983 (gcc::jit::playback::location::location): Likewise.
kono
parents:
diff changeset
984 (gcc::jit::playback::location::get_recording_loc): New.
kono
parents:
diff changeset
985 (gcc::jit::playback::location::m_recording_loc): New.
kono
parents:
diff changeset
986
kono
parents:
diff changeset
987 * jit-builtins.c (gcc::jit::builtins_manager::get_builtin_function):
kono
parents:
diff changeset
988 Provide NULL recording::location to add_error.
kono
parents:
diff changeset
989 (gcc::jit::builtins_manager::make_primitive_type): Likewise.
kono
parents:
diff changeset
990
kono
parents:
diff changeset
991 * libgccjit.c (RETURN_VAL_IF_FAIL): Add location argument.
kono
parents:
diff changeset
992 (RETURN_VAL_IF_FAIL_PRINTF1): Likewise.
kono
parents:
diff changeset
993 (RETURN_VAL_IF_FAIL_PRINTF2): Likewise.
kono
parents:
diff changeset
994 (RETURN_VAL_IF_FAIL_PRINTF3): Likewise.
kono
parents:
diff changeset
995 (RETURN_VAL_IF_FAIL_PRINTF4): Likewise.
kono
parents:
diff changeset
996 (RETURN_VAL_IF_FAIL_PRINTF6): Likewise.
kono
parents:
diff changeset
997 (RETURN_NULL_IF_FAIL): Likewise.
kono
parents:
diff changeset
998 (RETURN_NULL_IF_FAIL_PRINTF1): Likewise.
kono
parents:
diff changeset
999 (RETURN_NULL_IF_FAIL_PRINTF2): Likewise.
kono
parents:
diff changeset
1000 (RETURN_NULL_IF_FAIL_PRINTF3): Likewise.
kono
parents:
diff changeset
1001 (RETURN_NULL_IF_FAIL_PRINTF4): Likewise.
kono
parents:
diff changeset
1002 (RETURN_NULL_IF_FAIL_PRINTF6): Likewise.
kono
parents:
diff changeset
1003 (RETURN_IF_FAIL): Likewise.
kono
parents:
diff changeset
1004 (RETURN_IF_FAIL_PRINTF1): Likewise.
kono
parents:
diff changeset
1005 (RETURN_IF_FAIL_PRINTF2): Likewise.
kono
parents:
diff changeset
1006 (RETURN_IF_FAIL_PRINTF4): Likewise.
kono
parents:
diff changeset
1007 (RETURN_IF_NOT_VALID_BLOCK): Likewise.
kono
parents:
diff changeset
1008 (RETURN_NULL_IF_NOT_VALID_BLOCK): Likewise.
kono
parents:
diff changeset
1009
kono
parents:
diff changeset
1010 (jit_error): Likewise.
kono
parents:
diff changeset
1011
kono
parents:
diff changeset
1012 (gcc_jit_location_as_object): Provided location argument to
kono
parents:
diff changeset
1013 error-handling macros.
kono
parents:
diff changeset
1014 (gcc_jit_type_as_object): Likewise.
kono
parents:
diff changeset
1015 (gcc_jit_context_get_type): Likewise.
kono
parents:
diff changeset
1016 (gcc_jit_context_get_int_type): Likewise.
kono
parents:
diff changeset
1017 (gcc_jit_type_get_pointer): Likewise.
kono
parents:
diff changeset
1018 (gcc_jit_type_get_const): Likewise.
kono
parents:
diff changeset
1019 (gcc_jit_type_get_volatile): Likewise.
kono
parents:
diff changeset
1020 (gcc_jit_context_new_array_type): Likewise.
kono
parents:
diff changeset
1021 (gcc_jit_context_new_field): Likewise.
kono
parents:
diff changeset
1022 (gcc_jit_context_new_struct_type): Likewise.
kono
parents:
diff changeset
1023 (gcc_jit_context_new_opaque_struct): Likewise.
kono
parents:
diff changeset
1024 (gcc_jit_struct_as_type): Likewise.
kono
parents:
diff changeset
1025 (gcc_jit_struct_set_fields): Likewise.
kono
parents:
diff changeset
1026 (gcc_jit_context_new_param): Likewise.
kono
parents:
diff changeset
1027 (gcc_jit_param_as_object): Likewise.
kono
parents:
diff changeset
1028 (gcc_jit_param_as_lvalue): Likewise.
kono
parents:
diff changeset
1029 (gcc_jit_param_as_rvalue): Likewise.
kono
parents:
diff changeset
1030 (gcc_jit_context_new_function): Likewise.
kono
parents:
diff changeset
1031 (gcc_jit_context_get_builtin_function): Likewise.
kono
parents:
diff changeset
1032 (gcc_jit_function_as_object): Likewise.
kono
parents:
diff changeset
1033 (gcc_jit_function_get_param): Likewise.
kono
parents:
diff changeset
1034 (gcc_jit_function_dump_to_dot): Likewise.
kono
parents:
diff changeset
1035 (gcc_jit_function_new_block): Likewise.
kono
parents:
diff changeset
1036 (gcc_jit_block_as_object): Likewise.
kono
parents:
diff changeset
1037 (gcc_jit_block_get_function): Likewise.
kono
parents:
diff changeset
1038 (gcc_jit_context_new_global): Likewise.
kono
parents:
diff changeset
1039 (gcc_jit_lvalue_as_object): Likewise.
kono
parents:
diff changeset
1040 (gcc_jit_lvalue_as_rvalue): Likewise.
kono
parents:
diff changeset
1041 (gcc_jit_rvalue_as_object): Likewise.
kono
parents:
diff changeset
1042 (gcc_jit_rvalue_get_type): Likewise.
kono
parents:
diff changeset
1043 (gcc_jit_context_new_rvalue_from_int): Likewise.
kono
parents:
diff changeset
1044 (gcc_jit_context_zero): Likewise.
kono
parents:
diff changeset
1045 (gcc_jit_context_one): Likewise.
kono
parents:
diff changeset
1046 (gcc_jit_context_new_rvalue_from_double): Likewise.
kono
parents:
diff changeset
1047 (gcc_jit_context_new_rvalue_from_ptr): Likewise.
kono
parents:
diff changeset
1048 (gcc_jit_context_null): Likewise.
kono
parents:
diff changeset
1049 (gcc_jit_context_new_string_literal): Likewise.
kono
parents:
diff changeset
1050 (gcc_jit_context_new_unary_op): Likewise.
kono
parents:
diff changeset
1051 (gcc_jit_context_new_binary_op): Likewise.
kono
parents:
diff changeset
1052 (gcc_jit_context_new_comparison): Likewise.
kono
parents:
diff changeset
1053 (gcc_jit_context_new_call): Likewise.
kono
parents:
diff changeset
1054 (gcc_jit_context_new_cast): Likewise.
kono
parents:
diff changeset
1055 (gcc_jit_context_new_array_access): Likewise.
kono
parents:
diff changeset
1056 (gcc_jit_object_get_context): Likewise.
kono
parents:
diff changeset
1057 (gcc_jit_object_get_debug_string): Likewise.
kono
parents:
diff changeset
1058 (gcc_jit_lvalue_access_field): Likewise.
kono
parents:
diff changeset
1059 (gcc_jit_rvalue_access_field): Likewise.
kono
parents:
diff changeset
1060 (gcc_jit_rvalue_dereference_field): Likewise.
kono
parents:
diff changeset
1061 (gcc_jit_rvalue_dereference_field): Likewise.
kono
parents:
diff changeset
1062 (gcc_jit_rvalue_dereference): Likewise.
kono
parents:
diff changeset
1063 (gcc_jit_lvalue_get_address): Likewise.
kono
parents:
diff changeset
1064 (gcc_jit_function_new_local): Likewise.
kono
parents:
diff changeset
1065 (gcc_jit_block_add_eval): Likewise.
kono
parents:
diff changeset
1066 (gcc_jit_block_add_assignment): Likewise.
kono
parents:
diff changeset
1067 (gcc_jit_block_add_assignment_op): Likewise.
kono
parents:
diff changeset
1068 (gcc_jit_block_end_with_conditional): Likewise.
kono
parents:
diff changeset
1069 (gcc_jit_block_add_comment): Likewise.
kono
parents:
diff changeset
1070 (gcc_jit_block_end_with_jump): Likewise.
kono
parents:
diff changeset
1071 (gcc_jit_block_end_with_return): Likewise.
kono
parents:
diff changeset
1072 (gcc_jit_block_end_with_void_return): Likewise.
kono
parents:
diff changeset
1073 (gcc_jit_context_set_str_option): Likewise.
kono
parents:
diff changeset
1074 (gcc_jit_context_set_int_option): Likewise.
kono
parents:
diff changeset
1075 (gcc_jit_context_set_bool_option): Likewise.
kono
parents:
diff changeset
1076 (gcc_jit_context_compile): Likewise.
kono
parents:
diff changeset
1077 (gcc_jit_context_dump_to_file): Likewise.
kono
parents:
diff changeset
1078 (gcc_jit_context_get_first_error): Likewise.
kono
parents:
diff changeset
1079 (gcc_jit_result_get_code): Likewise.
kono
parents:
diff changeset
1080 (gcc_jit_result_get_code): Likewise.
kono
parents:
diff changeset
1081 (gcc_jit_result_release): Likewise.
kono
parents:
diff changeset
1082
kono
parents:
diff changeset
1083 2014-03-10 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
1084
kono
parents:
diff changeset
1085 * libgccjit++.h (gccjit::context::new_rvalue): Make these
kono
parents:
diff changeset
1086 methods const.
kono
parents:
diff changeset
1087 (gccjit::context::zero): Likewise.
kono
parents:
diff changeset
1088 (gccjit::context::one): Likewise.
kono
parents:
diff changeset
1089 (gccjit::function::get_param): Likewise.
kono
parents:
diff changeset
1090
kono
parents:
diff changeset
1091 2014-03-10 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
1092
kono
parents:
diff changeset
1093 * libgccjit++.h (gccjit::error): New class, for exceptions.
kono
parents:
diff changeset
1094 (gccjit::context::get_inner_context): New accessor, so that we
kono
parents:
diff changeset
1095 can...
kono
parents:
diff changeset
1096 (gccjit::context::m_inner_ctxt): Make private.
kono
parents:
diff changeset
1097 (gccjit::context::context): Throw a gccjit::error if a NULL
kono
parents:
diff changeset
1098 context is passed in.
kono
parents:
diff changeset
1099 (gccjit::context::compile): Throw a gccjit::error if a NULL
kono
parents:
diff changeset
1100 result is returned from the C API, which indicates an error.
kono
parents:
diff changeset
1101 (gccjit::object::object): Throw a gccjit::error if a NULL
kono
parents:
diff changeset
1102 object is passed in, since that indicates that an error has
kono
parents:
diff changeset
1103 occurred.
kono
parents:
diff changeset
1104 (gccjit::location::location): In the default ctor, call the
kono
parents:
diff changeset
1105 base class default ctor rather than passing in a NULL to the
kono
parents:
diff changeset
1106 single-argument ctor, since the latter now indicates an error
kono
parents:
diff changeset
1107 has occurred at the C API level.
kono
parents:
diff changeset
1108 (gccjit::field::field): Likewise.
kono
parents:
diff changeset
1109 (gccjit::type::type): Likewise.
kono
parents:
diff changeset
1110 (gccjit::function::function): Likewise.
kono
parents:
diff changeset
1111 (gccjit::block::block): Likewise.
kono
parents:
diff changeset
1112 (gccjit::rvalue::rvalue): Likewise.
kono
parents:
diff changeset
1113
kono
parents:
diff changeset
1114 2014-03-07 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
1115
kono
parents:
diff changeset
1116 * libgccjit.h (enum gcc_jit_function_kind): Add
kono
parents:
diff changeset
1117 GCC_JIT_FUNCTION_ALWAYS_INLINE.
kono
parents:
diff changeset
1118 * internal-api.c (gcc::jit::recording::function::write_to_dump):
kono
parents:
diff changeset
1119 Handle GCC_JIT_FUNCTION_ALWAYS_INLINE.
kono
parents:
diff changeset
1120 (gcc::jit::playback::context::new_function): Likewise.
kono
parents:
diff changeset
1121 (gcc::jit::playback::context::postprocess): Handle
kono
parents:
diff changeset
1122 GCC_JIT_FUNCTION_INTERNAL and GCC_JIT_FUNCTION_ALWAYS_INLINE by
kono
parents:
diff changeset
1123 clearing DECL_EXTERNAL and TREE_PUBLIC. Doing so fixes the
kono
parents:
diff changeset
1124 "undefined symbol" bug seen with GCC_JIT_FUNCTION_INTERNAL.
kono
parents:
diff changeset
1125 * TODO.rst: Update.
kono
parents:
diff changeset
1126
kono
parents:
diff changeset
1127 2014-03-07 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
1128
kono
parents:
diff changeset
1129 * libgccjit++.h (gccjit::context::new_global): New.
kono
parents:
diff changeset
1130
kono
parents:
diff changeset
1131 2014-03-07 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
1132
kono
parents:
diff changeset
1133 * internal-api.c (gcc::jit::playback::context::handle_locations):
kono
parents:
diff changeset
1134 Add a disabled call to line_table_dump, in case it's handy for
kono
parents:
diff changeset
1135 debugging in the future.
kono
parents:
diff changeset
1136 (gcc::jit::playback::context::set_tree_location): Assert that
kono
parents:
diff changeset
1137 the location is non-NULL.
kono
parents:
diff changeset
1138 (gcc::jit::playback::location::location): Initialize m_src_loc
kono
parents:
diff changeset
1139 to UNKNOWN_LOCATION. This field should always be overwritten by
kono
parents:
diff changeset
1140 handle_locations before use, but given recent issues with bogus
kono
parents:
diff changeset
1141 locations it seems safer to initialize it.
kono
parents:
diff changeset
1142
kono
parents:
diff changeset
1143 2014-03-06 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
1144
kono
parents:
diff changeset
1145 * internal-api.c (gcc::jit::recording::context::
kono
parents:
diff changeset
1146 disassociate_from_playback): Recursively visit parent contexts.
kono
parents:
diff changeset
1147
kono
parents:
diff changeset
1148 2014-03-05 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
1149
kono
parents:
diff changeset
1150 * libgccjit.h (gcc_jit_function_dump_to_dot): New.
kono
parents:
diff changeset
1151 * libgccjit.map (gcc_jit_function_dump_to_dot): New.
kono
parents:
diff changeset
1152 * libgccjit++.h (gccjit::function::dump_to_dot): New.
kono
parents:
diff changeset
1153 * libgccjit.c (gcc_jit_function_dump_to_dot): New.
kono
parents:
diff changeset
1154 * internal-api.h (gcc::jit::recording::function::dump_to_dot): New.
kono
parents:
diff changeset
1155 (gcc::jit::recording::block::block): Add m_index member.
kono
parents:
diff changeset
1156 (gcc::jit::recording::block::dump_to_dot): New.
kono
parents:
diff changeset
1157 (gcc::jit::recording::block::dump_edges_to_dot): New.
kono
parents:
diff changeset
1158 * internal-api.c (gcc::jit::recording::function::new_block): Give
kono
parents:
diff changeset
1159 each block an index.
kono
parents:
diff changeset
1160 (gcc::jit::recording::function::dump_to_dot): New.
kono
parents:
diff changeset
1161 (gcc::jit::recording::block::dump_to_dot): New.
kono
parents:
diff changeset
1162 (gcc::jit::recording::block::dump_edges_to_dot): New.
kono
parents:
diff changeset
1163
kono
parents:
diff changeset
1164 2014-03-04 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
1165
kono
parents:
diff changeset
1166 * internal-api.c (gcc::jit::recording::memento_of_get_pointer::
kono
parents:
diff changeset
1167 accepts_writes_from): Avoid segfaulting when the argument is not
kono
parents:
diff changeset
1168 of pointer type.
kono
parents:
diff changeset
1169 * internal-api.h (gcc::jit::recording::accepts_writes_from): Add
kono
parents:
diff changeset
1170 an assertion.
kono
parents:
diff changeset
1171 * libgccjit.c (gcc_jit_context_new_comparison): Strip away const
kono
parents:
diff changeset
1172 and volatile when comparing input types.
kono
parents:
diff changeset
1173
kono
parents:
diff changeset
1174 2014-03-04 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
1175
kono
parents:
diff changeset
1176 * libgccjit.h (gcc_jit_type_get_volatile): New.
kono
parents:
diff changeset
1177 * libgccjit.map (gcc_jit_type_get_volatile): New.
kono
parents:
diff changeset
1178 * libgccjit.c (gcc_jit_type_get_volatile): New.
kono
parents:
diff changeset
1179 * libgccjit++.h (gccjit::type::get_volatile): New.
kono
parents:
diff changeset
1180 * internal-api.c (gcc::jit::recording::type::get_volatile): New.
kono
parents:
diff changeset
1181 (gcc::jit::recording::memento_of_get_volatile::replay_into): New.
kono
parents:
diff changeset
1182 (gcc::jit::recording::memento_of_get_volatile::make_debug_string): New.
kono
parents:
diff changeset
1183 * internal-api.h (gcc::jit::recording::type::get_volatile): New.
kono
parents:
diff changeset
1184 (gcc::jit::recording::type::accepts_writes_from): Strip off
kono
parents:
diff changeset
1185 qualifiers such as "const" and "volatile" from the source type.
kono
parents:
diff changeset
1186 (gcc::jit::recording::memento_of_get_volatile): New class.
kono
parents:
diff changeset
1187 (gcc::jit::playback::type::get_volatile): New.
kono
parents:
diff changeset
1188 * TODO.rst: Update.
kono
parents:
diff changeset
1189
kono
parents:
diff changeset
1190 2014-03-03 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
1191
kono
parents:
diff changeset
1192 * libgccjit++.h (gccjit::function::operator()): Add overload for
kono
parents:
diff changeset
1193 a call with 3 arguments.
kono
parents:
diff changeset
1194 (gccjit::block::add_call): Likewise for 4 arguments.
kono
parents:
diff changeset
1195 (gccjit::rvalue::cast_to): New method.
kono
parents:
diff changeset
1196 (gccjit::rvalue::operator[]): New methods.
kono
parents:
diff changeset
1197
kono
parents:
diff changeset
1198 2014-02-28 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
1199
kono
parents:
diff changeset
1200 * libgccjit.c (gcc_jit_context_new_binary_op): Check that the
kono
parents:
diff changeset
1201 operands have the same type.
kono
parents:
diff changeset
1202 (gcc_jit_context_new_comparison): Likewise.
kono
parents:
diff changeset
1203
kono
parents:
diff changeset
1204 2014-02-28 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
1205
kono
parents:
diff changeset
1206 * libgccjit.h (gcc_jit_context_new_cast): New.
kono
parents:
diff changeset
1207 * libgccjit.map (gcc_jit_context_new_cast): New.
kono
parents:
diff changeset
1208 * libgccjit++.h (gccjit::context::new_cast): New method.
kono
parents:
diff changeset
1209 * libgccjit.c (gcc_jit_context_new_cast): New.
kono
parents:
diff changeset
1210
kono
parents:
diff changeset
1211 * internal-api.h (gcc::jit::recording::context::new_cast): New method.
kono
parents:
diff changeset
1212 (gcc::jit::recording::cast): New subclass of rvalue.
kono
parents:
diff changeset
1213 (gcc::jit::playback::context::new_cast): New method.
kono
parents:
diff changeset
1214 (gcc::jit::playback::context::build_cast): New method.
kono
parents:
diff changeset
1215
kono
parents:
diff changeset
1216 * internal-api.c (convert): New.
kono
parents:
diff changeset
1217 (gcc::jit::recording::context::new_cast): New.
kono
parents:
diff changeset
1218 (gcc::jit::recording::cast::replay_into): New.
kono
parents:
diff changeset
1219 (gcc::jit::recording::cast::make_debug_string): New.
kono
parents:
diff changeset
1220 (gcc::jit::playback::context::build_cast): New.
kono
parents:
diff changeset
1221 (gcc::jit::playback::context::new_cast): New.
kono
parents:
diff changeset
1222
kono
parents:
diff changeset
1223 * TODO.rst: Update.
kono
parents:
diff changeset
1224
kono
parents:
diff changeset
1225 2014-02-28 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
1226
kono
parents:
diff changeset
1227 * libgccjit.h (gcc_jit_block_get_function): New.
kono
parents:
diff changeset
1228 * libgccjit.map (gcc_jit_block_get_function): New.
kono
parents:
diff changeset
1229 * libgccjit++.h (gccjit::block::get_function): New method.
kono
parents:
diff changeset
1230 * libgccjit.c (gcc_jit_block_get_function): New.
kono
parents:
diff changeset
1231
kono
parents:
diff changeset
1232 2014-02-27 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
1233
kono
parents:
diff changeset
1234 * libgccjit.h (gcc_jit_label): Delete in favor of...
kono
parents:
diff changeset
1235 (gcc_jit_block): New type.
kono
parents:
diff changeset
1236 (gcc_jit_loop): Delete.
kono
parents:
diff changeset
1237
kono
parents:
diff changeset
1238 (gcc_jit_function_new_forward_label): Delete in favor of...
kono
parents:
diff changeset
1239 (gcc_jit_function_new_block): New.
kono
parents:
diff changeset
1240
kono
parents:
diff changeset
1241 (gcc_jit_label_as_object): Delete in favor of...
kono
parents:
diff changeset
1242 (gcc_jit_block_as_object): New.
kono
parents:
diff changeset
1243
kono
parents:
diff changeset
1244 (gcc_jit_function_add_eval): Delete in favor of...
kono
parents:
diff changeset
1245 (gcc_jit_block_add_eval): New.
kono
parents:
diff changeset
1246
kono
parents:
diff changeset
1247 (gcc_jit_function_add_assignment): Delete in favor of...
kono
parents:
diff changeset
1248 (gcc_jit_block_add_assignment): New.
kono
parents:
diff changeset
1249
kono
parents:
diff changeset
1250 (gcc_jit_function_add_assignment_op): Delete in favor of...
kono
parents:
diff changeset
1251 (gcc_jit_block_add_assignment_op): New.
kono
parents:
diff changeset
1252
kono
parents:
diff changeset
1253 (gcc_jit_function_add_comment): Delete in favor of...
kono
parents:
diff changeset
1254 (gcc_jit_block_add_comment): New.
kono
parents:
diff changeset
1255
kono
parents:
diff changeset
1256 (gcc_jit_label_as_object): Delete in favor of...
kono
parents:
diff changeset
1257 (gcc_jit_block_as_object): New.
kono
parents:
diff changeset
1258
kono
parents:
diff changeset
1259 (gcc_jit_function_add_conditional): Delete in favor of...
kono
parents:
diff changeset
1260 (gcc_jit_block_end_with_conditional): New.
kono
parents:
diff changeset
1261
kono
parents:
diff changeset
1262 (gcc_jit_function_add_jump): Delete in favor of...
kono
parents:
diff changeset
1263 (gcc_jit_block_end_with_jump): New.
kono
parents:
diff changeset
1264
kono
parents:
diff changeset
1265 (gcc_jit_function_add_return): Delete in favor of...
kono
parents:
diff changeset
1266 (gcc_jit_block_end_with_return): New.
kono
parents:
diff changeset
1267
kono
parents:
diff changeset
1268 (gcc_jit_function_add_void_return): Delete in favor of...
kono
parents:
diff changeset
1269 (gcc_jit_block_end_with_void_return): New.
kono
parents:
diff changeset
1270
kono
parents:
diff changeset
1271 (gcc_jit_function_new_loop): Delete.
kono
parents:
diff changeset
1272 (gcc_jit_function_new_loop_over_range): Delete.
kono
parents:
diff changeset
1273 (gcc_jit_loop_as_object): Delete.
kono
parents:
diff changeset
1274 (gcc_jit_loop_end): Delete.
kono
parents:
diff changeset
1275
kono
parents:
diff changeset
1276 * libgccjit.map (gcc_jit_function_add_assignment): Delete in favor of...
kono
parents:
diff changeset
1277 (gcc_jit_block_add_assignment): New.
kono
parents:
diff changeset
1278
kono
parents:
diff changeset
1279 (gcc_jit_function_add_assignment_op): Delete in favor of...
kono
parents:
diff changeset
1280 (gcc_jit_block_add_assignment_op): New.
kono
parents:
diff changeset
1281
kono
parents:
diff changeset
1282 (gcc_jit_function_add_comment): Delete in favor of...
kono
parents:
diff changeset
1283 (gcc_jit_block_add_comment): New.
kono
parents:
diff changeset
1284
kono
parents:
diff changeset
1285 (gcc_jit_function_add_eval): Delete in favor of...
kono
parents:
diff changeset
1286 (gcc_jit_block_add_eval): New.
kono
parents:
diff changeset
1287
kono
parents:
diff changeset
1288 (gcc_jit_label_as_object): Delete in favor of...
kono
parents:
diff changeset
1289 (gcc_jit_block_as_object): New.
kono
parents:
diff changeset
1290
kono
parents:
diff changeset
1291 (gcc_jit_function_add_conditional): Delete in favor of...
kono
parents:
diff changeset
1292 (gcc_jit_block_end_with_conditional): New.
kono
parents:
diff changeset
1293
kono
parents:
diff changeset
1294 (gcc_jit_function_add_jump): Delete in favor of...
kono
parents:
diff changeset
1295 (gcc_jit_block_end_with_jump): New.
kono
parents:
diff changeset
1296
kono
parents:
diff changeset
1297 (gcc_jit_function_add_return): Delete in favor of...
kono
parents:
diff changeset
1298 (gcc_jit_block_end_with_return): New.
kono
parents:
diff changeset
1299
kono
parents:
diff changeset
1300 (gcc_jit_function_add_void_return): Delete in favor of...
kono
parents:
diff changeset
1301 (gcc_jit_block_end_with_void_return): New.
kono
parents:
diff changeset
1302
kono
parents:
diff changeset
1303 (gcc_jit_function_add_label): Delete in favor of...
kono
parents:
diff changeset
1304 (gcc_jit_function_new_block): New.
kono
parents:
diff changeset
1305 (gcc_jit_function_new_forward_label): Delete.
kono
parents:
diff changeset
1306 (gcc_jit_function_place_forward_label): Delete.
kono
parents:
diff changeset
1307
kono
parents:
diff changeset
1308 (gcc_jit_function_new_loop): Delete.
kono
parents:
diff changeset
1309 (gcc_jit_function_new_loop_over_range): Delete.
kono
parents:
diff changeset
1310 (gcc_jit_loop_as_object): Delete.
kono
parents:
diff changeset
1311 (gcc_jit_loop_end): Delete.
kono
parents:
diff changeset
1312
kono
parents:
diff changeset
1313 * libgccjit.c (gcc_jit_label): Delete in favor of...
kono
parents:
diff changeset
1314 (gcc_jit_block): New type.
kono
parents:
diff changeset
1315 (gcc_jit_loop): Delete.
kono
parents:
diff changeset
1316
kono
parents:
diff changeset
1317 (RETURN_IF_NOT_FUNC_DEFINITION): Delete in favor of...
kono
parents:
diff changeset
1318 (RETURN_IF_NOT_VALID_BLOCK): New macro.
kono
parents:
diff changeset
1319 (RETURN_NULL_IF_NOT_FUNC_DEFINITION): Delete in favor of...
kono
parents:
diff changeset
1320 (RETURN_NULL_IF_NOT_VALID_BLOCK): New macro.
kono
parents:
diff changeset
1321
kono
parents:
diff changeset
1322 (gcc_jit_function_new_forward_label): Delete in favor of...
kono
parents:
diff changeset
1323 (gcc_jit_function_new_block): New.
kono
parents:
diff changeset
1324
kono
parents:
diff changeset
1325 (gcc_jit_label_as_object): Delete in favor of...
kono
parents:
diff changeset
1326 (gcc_jit_block_as_object): New.
kono
parents:
diff changeset
1327
kono
parents:
diff changeset
1328 (gcc_jit_rvalue_dereference_field): Ensure that field has been
kono
parents:
diff changeset
1329 placed.
kono
parents:
diff changeset
1330
kono
parents:
diff changeset
1331 (gcc_jit_function_add_label): Delete
kono
parents:
diff changeset
1332 (gcc_jit_function_place_forward_label): Delete.
kono
parents:
diff changeset
1333
kono
parents:
diff changeset
1334 (gcc_jit_function_add_eval): Delete in favor of...
kono
parents:
diff changeset
1335 (gcc_jit_block_add_eval): New.
kono
parents:
diff changeset
1336
kono
parents:
diff changeset
1337 (gcc_jit_function_add_assignment): Delete in favor of...
kono
parents:
diff changeset
1338 (gcc_jit_block_add_assignment): New.
kono
parents:
diff changeset
1339
kono
parents:
diff changeset
1340 (gcc_jit_function_add_assignment_op): Delete in favor of...
kono
parents:
diff changeset
1341 (gcc_jit_block_add_assignment_op): New.
kono
parents:
diff changeset
1342
kono
parents:
diff changeset
1343 (gcc_jit_function_add_conditional): Delete in favor of...
kono
parents:
diff changeset
1344 (gcc_jit_block_end_with_conditional): New.
kono
parents:
diff changeset
1345
kono
parents:
diff changeset
1346 (gcc_jit_function_add_comment): Delete in favor of...
kono
parents:
diff changeset
1347 (gcc_jit_block_add_comment): New.
kono
parents:
diff changeset
1348
kono
parents:
diff changeset
1349 (gcc_jit_function_add_jump): Delete in favor of...
kono
parents:
diff changeset
1350 (gcc_jit_block_end_with_jump): New.
kono
parents:
diff changeset
1351
kono
parents:
diff changeset
1352 (gcc_jit_function_add_return): Delete in favor of...
kono
parents:
diff changeset
1353 (gcc_jit_block_end_with_return): New.
kono
parents:
diff changeset
1354
kono
parents:
diff changeset
1355 (gcc_jit_function_add_void_return): Delete in favor of...
kono
parents:
diff changeset
1356 (gcc_jit_block_end_with_void_return): New.
kono
parents:
diff changeset
1357
kono
parents:
diff changeset
1358 (gcc_jit_function_new_loop): Delete.
kono
parents:
diff changeset
1359 (gcc_jit_function_new_loop_over_range): Delete.
kono
parents:
diff changeset
1360 (gcc_jit_loop_as_object): Delete.
kono
parents:
diff changeset
1361 (gcc_jit_loop_end): Delete.
kono
parents:
diff changeset
1362
kono
parents:
diff changeset
1363 * internal-api.h (gcc::jit::recording::label): Delete class in
kono
parents:
diff changeset
1364 favor of...
kono
parents:
diff changeset
1365 (gcc::jit::recording::block): New class.
kono
parents:
diff changeset
1366 (gcc::jit::recording::loop): Delete class.
kono
parents:
diff changeset
1367 (gcc::jit::recording::loop_end): Delete class.
kono
parents:
diff changeset
1368
kono
parents:
diff changeset
1369 (gcc::jit::playback::label): Delete class in favor of...
kono
parents:
diff changeset
1370 (gcc::jit::playback::block): New class.
kono
parents:
diff changeset
1371
kono
parents:
diff changeset
1372 (gcc::jit::playback::loop): Delete class.
kono
parents:
diff changeset
1373
kono
parents:
diff changeset
1374 (gcc::jit::recording::playback_label): Delete function in favor of...
kono
parents:
diff changeset
1375 (gcc::jit::recording::playback_block): New function.
kono
parents:
diff changeset
1376
kono
parents:
diff changeset
1377 (gcc::jit::recording::context::validate): New.
kono
parents:
diff changeset
1378
kono
parents:
diff changeset
1379 (gcc::jit::recording::function::new_forward_label): Delete method.
kono
parents:
diff changeset
1380 (gcc::jit::recording::function::add_eval): Delete method in favor
kono
parents:
diff changeset
1381 of method of new gcc::jit::recording::block class.
kono
parents:
diff changeset
1382 (gcc::jit::recording::function::add_assignment): Likewise.
kono
parents:
diff changeset
1383 (gcc::jit::recording::function::add_assignment_op): Likewise.
kono
parents:
diff changeset
1384 (gcc::jit::recording::function::add_comment): Likewise.
kono
parents:
diff changeset
1385 (gcc::jit::recording::function::add_conditional): Likewise.
kono
parents:
diff changeset
1386 (gcc::jit::recording::function::place_forward_label): Likewise.
kono
parents:
diff changeset
1387 (gcc::jit::recording::function::add_jump): Likewise.
kono
parents:
diff changeset
1388 (gcc::jit::recording::function::add_return): Likewise.
kono
parents:
diff changeset
1389
kono
parents:
diff changeset
1390 (gcc::jit::recording::function::add_label): Delete method in favor of...
kono
parents:
diff changeset
1391 (gcc::jit::recording::function::new_block): New method.
kono
parents:
diff changeset
1392
kono
parents:
diff changeset
1393 (gcc::jit::recording::function::new_loop): Delete method.
kono
parents:
diff changeset
1394
kono
parents:
diff changeset
1395 (gcc::jit::recording::function::validate): New method.
kono
parents:
diff changeset
1396 (gcc::jit::recording::function::m_activity): Delete field in favor of...
kono
parents:
diff changeset
1397 (gcc::jit::recording::function::m_blocks): New field.
kono
parents:
diff changeset
1398
kono
parents:
diff changeset
1399 (gcc::jit::recording::statement::get_successor_blocks): New method.
kono
parents:
diff changeset
1400 (gcc::jit::recording::statement::write_to_dump): Make public.
kono
parents:
diff changeset
1401 (gcc::jit::recording::statement::statement): Accept a block rather
kono
parents:
diff changeset
1402 than a function.
kono
parents:
diff changeset
1403 (gcc::jit::recording::statement::playback_function): Delete.
kono
parents:
diff changeset
1404 (gcc::jit::recording::statement::get_block): New.
kono
parents:
diff changeset
1405 (gcc::jit::recording::statement::m_func): Delete in favor of...
kono
parents:
diff changeset
1406 (gcc::jit::recording::statement::m_block): ...this.
kono
parents:
diff changeset
1407
kono
parents:
diff changeset
1408 (gcc::jit::recording::eval::eval): Accept a block rather than a
kono
parents:
diff changeset
1409 function.
kono
parents:
diff changeset
1410 (gcc::jit::recording::assignment::assignment): Likewise.
kono
parents:
diff changeset
1411 (gcc::jit::recording::assignment_op::assignment_op): Likewise.
kono
parents:
diff changeset
1412 (gcc::jit::recording::comment::comment): Likewise.
kono
parents:
diff changeset
1413 (gcc::jit::recording::return::return): Likewise.
kono
parents:
diff changeset
1414 (gcc::jit::recording::conditional::conditional): Likewise; accept
kono
parents:
diff changeset
1415 blocks rather than labels.
kono
parents:
diff changeset
1416 (gcc::jit::recording::jump::jump): Likewise.
kono
parents:
diff changeset
1417 (gcc::jit::recording::conditional::get_successor_blocks): New.
kono
parents:
diff changeset
1418 (gcc::jit::recording::jump::get_successor_blocks): New.
kono
parents:
diff changeset
1419
kono
parents:
diff changeset
1420 (gcc::jit::playback::function::new_forward_label): Delete method
kono
parents:
diff changeset
1421 in favor of...
kono
parents:
diff changeset
1422 (gcc::jit::playback::function::new_block): New method.
kono
parents:
diff changeset
1423 (gcc::jit::playback::function::build_stmt_list): New method.
kono
parents:
diff changeset
1424 (gcc::jit::playback::function::m_blocks): New field.
kono
parents:
diff changeset
1425
kono
parents:
diff changeset
1426 * libgccjit++.h (gccjit::label): Delete class in favor of...
kono
parents:
diff changeset
1427 (gccjit::block): New class.
kono
parents:
diff changeset
1428 (gccjit::function::new_forward_label): Delete methods in favor of...
kono
parents:
diff changeset
1429 (gccjit::function::new_block): New methods.
kono
parents:
diff changeset
1430 (gccjit::function::add_comment): Delete methods in favor of methods
kono
parents:
diff changeset
1431 of new class gccjit::block.
kono
parents:
diff changeset
1432 (gccjit::function::add_conditional): Likewise.
kono
parents:
diff changeset
1433 (gccjit::function::add_label): Likewise.
kono
parents:
diff changeset
1434 (gccjit::function::place_forward_label): Likewise.
kono
parents:
diff changeset
1435 (gccjit::function::add_jump): Likewise.
kono
parents:
diff changeset
1436 (gccjit::function::add_return): Likewise.
kono
parents:
diff changeset
1437 (gccjit::function::add_call): Likewise.
kono
parents:
diff changeset
1438
kono
parents:
diff changeset
1439 * internal-api.c (gcc::jit::recording::playback_label): Delete in
kono
parents:
diff changeset
1440 favor of...
kono
parents:
diff changeset
1441 (gcc::jit::recording::playback_block): New.
kono
parents:
diff changeset
1442 (gcc::jit::recording::context::compile): Validate.
kono
parents:
diff changeset
1443 (gcc::jit::recording::context::validate): New.
kono
parents:
diff changeset
1444 (gcc::jit::recording::function::function): Update.
kono
parents:
diff changeset
1445 (gcc::jit::recording::function::new_forward_label): Delete.
kono
parents:
diff changeset
1446 (gcc::jit::recording::function::add_eval): Delete.
kono
parents:
diff changeset
1447 (gcc::jit::recording::function::add_assignment): Delete.
kono
parents:
diff changeset
1448 (gcc::jit::recording::function::add_assignment_op): Delete.
kono
parents:
diff changeset
1449 (gcc::jit::recording::function::new_block): New.
kono
parents:
diff changeset
1450 (gcc::jit::recording::function::add_comment): Delete.
kono
parents:
diff changeset
1451 (gcc::jit::ecording::function::add_conditional): Delete.
kono
parents:
diff changeset
1452 (gcc::jit::recording::function::add_label): Delete.
kono
parents:
diff changeset
1453 (gcc::jit::recording::function::place_forward_label): Delete.
kono
parents:
diff changeset
1454 (gcc::jit::recording::function::add_jump): Delete.
kono
parents:
diff changeset
1455 (gcc::jit::recording::function::add_return): Delete.
kono
parents:
diff changeset
1456 (gcc::jit::recording::function::new_loop): Delete.
kono
parents:
diff changeset
1457 (gcc::jit::recording::function::write_to_dump): Port to block-based
kono
parents:
diff changeset
1458 representation.
kono
parents:
diff changeset
1459 (gcc::jit::recording::function::validate): New.
kono
parents:
diff changeset
1460 (gcc::jit::recording::block::add_eval): New.
kono
parents:
diff changeset
1461 (gcc::jit::recording::block::add_assignment): New.
kono
parents:
diff changeset
1462 (gcc::jit::recording::label::replay_into): Delete.
kono
parents:
diff changeset
1463 (gcc::jit::recording::block::add_assignment_op): New.
kono
parents:
diff changeset
1464 (gcc::jit::recording::block::add_comment): New.
kono
parents:
diff changeset
1465 (gcc::jit::recording::block::end_with_conditional): New.
kono
parents:
diff changeset
1466 (gcc::jit::recording::block::end_with_jump): New.
kono
parents:
diff changeset
1467 (gcc::jit::recording::block::end_with_return): New.
kono
parents:
diff changeset
1468 (gcc::jit::recording::block::write_to_dump): New.
kono
parents:
diff changeset
1469 (gcc::jit::recording::block::validate): New.
kono
parents:
diff changeset
1470 (gcc::jit::recording::block::get_last_statement): New.
kono
parents:
diff changeset
1471 (gcc::jit::recording::block::get_successor_blocks): New.
kono
parents:
diff changeset
1472 (gcc::jit::recording::block::replay_into): New.
kono
parents:
diff changeset
1473 (gcc::jit::recording::label::make_debug_string): Delete.
kono
parents:
diff changeset
1474 (gcc::jit::recording::block::make_debug_string): New.
kono
parents:
diff changeset
1475 (gcc::jit::recording::statement::get_successor_blocks): New.
kono
parents:
diff changeset
1476 (gcc::jit::recording::eval::replay_into): Port to block-based
kono
parents:
diff changeset
1477 representation.
kono
parents:
diff changeset
1478 (gcc::jit::recording::assignment::replay_into): Likewise.
kono
parents:
diff changeset
1479 (gcc::jit::recording::assignment_op::replay_into): Likewise.
kono
parents:
diff changeset
1480 (gcc::jit::recording::comment::replay_into): Likewise.
kono
parents:
diff changeset
1481 (gcc::jit::recording::conditional::replay_into): Likewise.
kono
parents:
diff changeset
1482 (gcc::jit::recording::jump::replay_into): Likewise.
kono
parents:
diff changeset
1483 (gcc::jit::recording::return_::replay_into): Likewise.
kono
parents:
diff changeset
1484
kono
parents:
diff changeset
1485 (gcc::jit::recording::conditional::get_successor_blocks): New.
kono
parents:
diff changeset
1486 (gcc::jit::recording::place_label::place_label): Delete.
kono
parents:
diff changeset
1487 (gcc::jit::recording::place_label::replay_into): Delete.
kono
parents:
diff changeset
1488 (gcc::jit::recording::place_label::make_debug_string): Delete.
kono
parents:
diff changeset
1489 (gcc::jit::recording::place_label::write_to_dump): Delete.
kono
parents:
diff changeset
1490
kono
parents:
diff changeset
1491 (gcc::jit::recording::jump::get_successor_blocks): New.
kono
parents:
diff changeset
1492 (gcc::jit::recording::return_::get_successor_blocks): New.
kono
parents:
diff changeset
1493
kono
parents:
diff changeset
1494 (gcc::jit::recording::loop::replay_into): Delete.
kono
parents:
diff changeset
1495 (gcc::jit::recording::loop::make_debug_string): Delete.
kono
parents:
diff changeset
1496 (gcc::jit::recording::loop::end): Delete.
kono
parents:
diff changeset
1497 (gcc::jit::recording::loop_end::replay_into): Delete.
kono
parents:
diff changeset
1498 (gcc::jit::recording::loop_end::make_debug_string): Delete.
kono
parents:
diff changeset
1499
kono
parents:
diff changeset
1500 (gcc::jit::playback::function::new_forward_label): Delete.
kono
parents:
diff changeset
1501 (gcc::jit::playback::function::new_block): New.
kono
parents:
diff changeset
1502 (gcc::jit::playback::function::build_stmt_list): New.
kono
parents:
diff changeset
1503 (gcc::jit::playback::function::add_eval): Replace with...
kono
parents:
diff changeset
1504 (gcc::jit::playback::block::add_eval): New.
kono
parents:
diff changeset
1505 (gcc::jit::playback::function::add_assignment): Replace with...
kono
parents:
diff changeset
1506 (gcc::jit::playback::block::add_assignment): New.
kono
parents:
diff changeset
1507 (gcc::jit::playback::function::add_comment): Replace with...
kono
parents:
diff changeset
1508 (gcc::jit::playback::block::add_comment): New, reimplementing,
kono
parents:
diff changeset
1509 given that we no longer have labels.
kono
parents:
diff changeset
1510 (gcc::jit::playback::function::add_conditional): Replace with...
kono
parents:
diff changeset
1511 (gcc::jit::playback::block::add_conditional): New, reworking,
kono
parents:
diff changeset
1512 given that on_false can no longer be NULL.
kono
parents:
diff changeset
1513 (gcc::jit::playback::function::add_label): Delete.
kono
parents:
diff changeset
1514 (gcc::jit::playback::function::place_forward_label): Delete.
kono
parents:
diff changeset
1515 (gcc::jit::playback::function::add_jump): Replace with...
kono
parents:
diff changeset
1516 (gcc::jit::playback::block::add_jump): New.
kono
parents:
diff changeset
1517 (gcc::jit::playback::function::add_return): Replace with...
kono
parents:
diff changeset
1518 (gcc::jit::playback::block::add_return): New.
kono
parents:
diff changeset
1519 (gcc::jit::playback::function::new_loop): Delete.
kono
parents:
diff changeset
1520 (gcc::jit::playback::label::label): Replace with...
kono
parents:
diff changeset
1521 (gcc::jit::playback::block::block): ...this.
kono
parents:
diff changeset
1522
kono
parents:
diff changeset
1523 (gcc::jit::playback::loop::loop): Delete.
kono
parents:
diff changeset
1524 (gcc::jit::playback::loop::end): Delete.
kono
parents:
diff changeset
1525
kono
parents:
diff changeset
1526 (gcc::jit::playback::context::replay): Call each function's
kono
parents:
diff changeset
1527 build_stmt_list.
kono
parents:
diff changeset
1528
kono
parents:
diff changeset
1529 * TODO.rst: Update
kono
parents:
diff changeset
1530
kono
parents:
diff changeset
1531 2014-02-25 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
1532
kono
parents:
diff changeset
1533 * libgccjit.h (gcc_jit_function_add_void_return): New.
kono
parents:
diff changeset
1534 * libgccjit.map (gcc_jit_function_add_void_return): New.
kono
parents:
diff changeset
1535 * libgccjit.c (gcc_jit_function_add_void_return): New.
kono
parents:
diff changeset
1536 * libgccjit++.h (add_return): Add overloaded variant with no
kono
parents:
diff changeset
1537 rvalue, calling gcc_jit_function_add_void_return.
kono
parents:
diff changeset
1538
kono
parents:
diff changeset
1539 * internal-api.c (gcc::jit::recording::function::add_return): Add
kono
parents:
diff changeset
1540 comment that rvalue could be NULL.
kono
parents:
diff changeset
1541 (gcc::jit::playback::function::add_return): Support rvalue being
kono
parents:
diff changeset
1542 NULL.
kono
parents:
diff changeset
1543
kono
parents:
diff changeset
1544 2014-02-25 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
1545
kono
parents:
diff changeset
1546 * internal-api.h (gcc::jit::playback::function): Add field
kono
parents:
diff changeset
1547 m_inner_block.
kono
parents:
diff changeset
1548
kono
parents:
diff changeset
1549 * internal-api.c (gcc::jit::playback::function::function):
kono
parents:
diff changeset
1550 Create BLOCK here and link it to the BIND_EXPR.
kono
parents:
diff changeset
1551 (gcc::jit::playback::function::gt_ggc_mx): Walk m_inner_block.
kono
parents:
diff changeset
1552 (gcc::jit::playback::function::postprocess): Set up BLOCK_VARS on
kono
parents:
diff changeset
1553 the block, so that the local variables make it into the debuginfo.
kono
parents:
diff changeset
1554
kono
parents:
diff changeset
1555 2014-02-24 Philip Herron <redbrain@gcc.gnu.org>
kono
parents:
diff changeset
1556
kono
parents:
diff changeset
1557 * Make-lang.in (jit.install-common): Implement.
kono
parents:
diff changeset
1558
kono
parents:
diff changeset
1559 2014-02-21 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
1560
kono
parents:
diff changeset
1561 * libgccjit.h (gcc_jit_context_dump_to_file): New.
kono
parents:
diff changeset
1562 * libgccjit.map (gcc_jit_context_dump_to_file): New.
kono
parents:
diff changeset
1563 * libgccjit.c (gcc_jit_context_dump_to_file): New.
kono
parents:
diff changeset
1564 * libgccjit++.h (gccjit::context::dump_to_file): New.
kono
parents:
diff changeset
1565
kono
parents:
diff changeset
1566 * internal-api.h (gcc::jit::dump): New class.
kono
parents:
diff changeset
1567 (gcc::jit::recording::playback_location): Add a replayer argument,
kono
parents:
diff changeset
1568 so that playback locations can be created before playback statements.
kono
parents:
diff changeset
1569 (gcc::jit::recording::location::playback_location): Likewise.
kono
parents:
diff changeset
1570 (gcc::jit::recording::statement::playback_location): Likewise.
kono
parents:
diff changeset
1571 (gcc::jit::recording::context::dump_to_file): New.
kono
parents:
diff changeset
1572 (gcc::jit::recording::context::m_structs): New field, for use by
kono
parents:
diff changeset
1573 dump_to_file.
kono
parents:
diff changeset
1574 (gcc::jit::recording::context::m_functions): Likewise.
kono
parents:
diff changeset
1575 (gcc::jit::recording::memento::write_to_dump): New virtual function.
kono
parents:
diff changeset
1576 (gcc::jit::recording::field::write_to_dump): New.
kono
parents:
diff changeset
1577 (gcc::jit::recording::fields::write_to_dump): New.
kono
parents:
diff changeset
1578 (gcc::jit::recording::function::write_to_dump): New.
kono
parents:
diff changeset
1579 (gcc::jit::recording::function::m_locals): New field for use by
kono
parents:
diff changeset
1580 write_to_dump.
kono
parents:
diff changeset
1581 (gcc::jit::recording::function::m_activity): Likewise.
kono
parents:
diff changeset
1582 (gcc::jit::recording::local::write_to_dump): New.
kono
parents:
diff changeset
1583 (gcc::jit::recording::statement::write_to_dump): New.
kono
parents:
diff changeset
1584 (gcc::jit::recording::place_label::write_to_dump): New.
kono
parents:
diff changeset
1585
kono
parents:
diff changeset
1586 * internal-api.c (gcc::jit::dump::dump): New.
kono
parents:
diff changeset
1587 (gcc::jit::dump::~dump): New.
kono
parents:
diff changeset
1588 (gcc::jit::dump::write): New.
kono
parents:
diff changeset
1589 (gcc::jit::dump::make_location): New.
kono
parents:
diff changeset
1590 (gcc::jit::recording::playback_location): Add a replayer argument,
kono
parents:
diff changeset
1591 so that playback locations can be created before playback statements.
kono
parents:
diff changeset
1592
kono
parents:
diff changeset
1593 (gcc::jit::recording::context::context): Initialize new fields.
kono
parents:
diff changeset
1594 (gcc::jit::recording::function::function): Likewise.
kono
parents:
diff changeset
1595
kono
parents:
diff changeset
1596 (gcc::jit::recording::context::new_struct_type): Add struct to the
kono
parents:
diff changeset
1597 context's m_structs vector.
kono
parents:
diff changeset
1598 (gcc::jit::recording::context::new_function): Add function to the
kono
parents:
diff changeset
1599 context's m_functions vector.
kono
parents:
diff changeset
1600 (gcc::jit::recording::context::dump_to_file): New.
kono
parents:
diff changeset
1601 (gcc::jit::recording::memento::write_to_dump): New.
kono
parents:
diff changeset
1602 (gcc::jit::recording::field::write_to_dump): New.
kono
parents:
diff changeset
1603 (gcc::jit::recording::fields::write_to_dump): New.
kono
parents:
diff changeset
1604 (gcc::jit::recording::function::write_to_dump): New.
kono
parents:
diff changeset
1605 (gcc::jit::recording::local::write_to_dump): New.
kono
parents:
diff changeset
1606 (gcc::jit::recording::statement::write_to_dump): New.
kono
parents:
diff changeset
1607 (gcc::jit::recording::place_label::write_to_dump): New.
kono
parents:
diff changeset
1608
kono
parents:
diff changeset
1609 (gcc::jit::recording::array_type::replay_into): Pass on replayer
kono
parents:
diff changeset
1610 to call to playback_location.
kono
parents:
diff changeset
1611 (gcc::jit::recording::field::replay_into): Likewise.
kono
parents:
diff changeset
1612 (gcc::jit::recording::struct_::replay_into): Likewise.
kono
parents:
diff changeset
1613 (gcc::jit::recording::param::replay_into): Likewise.
kono
parents:
diff changeset
1614 (gcc::jit::recording::function::replay_into): Likewise.
kono
parents:
diff changeset
1615 (gcc::jit::recording::global::replay_into): Likewise.
kono
parents:
diff changeset
1616 (gcc::jit::recording::unary_op::replay_into): Likewise.
kono
parents:
diff changeset
1617 (gcc::jit::recording::binary_op::replay_into): Likewise.
kono
parents:
diff changeset
1618 (gcc::jit::recording::comparison::replay_into): Likewise.
kono
parents:
diff changeset
1619 (gcc::jit::recording::call::replay_into): Likewise.
kono
parents:
diff changeset
1620 (gcc::jit::recording::array_access::replay_into): Likewise.
kono
parents:
diff changeset
1621 (gcc::jit::recording::access_field_of_lvalue::replay_into): Likewise.
kono
parents:
diff changeset
1622 (gcc::jit::recording::access_field_rvalue::replay_into): Likewise.
kono
parents:
diff changeset
1623 (gcc::jit::recording::dereference_field_rvalue::replay_into): Likewise.
kono
parents:
diff changeset
1624 (gcc::jit::recording::dereference_rvalue::replay_into): Likewise.
kono
parents:
diff changeset
1625 (gcc::jit::recording::get_address_of_lvalue::replay_into): Likewise.
kono
parents:
diff changeset
1626 (gcc::jit::recording::local::replay_into): Likewise.
kono
parents:
diff changeset
1627 (gcc::jit::recording::eval::replay_into): Likewise.
kono
parents:
diff changeset
1628 (gcc::jit::recording::assignment::replay_into): Likewise.
kono
parents:
diff changeset
1629 (gcc::jit::recording::assignment_op::replay_into): Likewise.
kono
parents:
diff changeset
1630 (gcc::jit::recording::comment::replay_into): Likewise.
kono
parents:
diff changeset
1631 (gcc::jit::recording::conditional::replay_into): Likewise.
kono
parents:
diff changeset
1632 (gcc::jit::recording::place_label::replay_into): Likewise.
kono
parents:
diff changeset
1633 (gcc::jit::recording::jump::replay_into): Likewise.
kono
parents:
diff changeset
1634 (gcc::jit::recording::return_::replay_into): Likewise.
kono
parents:
diff changeset
1635 (gcc::jit::recording::loop::replay_into): Likewise.
kono
parents:
diff changeset
1636 (gcc::jit::recording::loop_end::replay_into): Likewise.
kono
parents:
diff changeset
1637
kono
parents:
diff changeset
1638 (gcc::jit::recording::function::new_local): Add to the function's
kono
parents:
diff changeset
1639 vector of locals.
kono
parents:
diff changeset
1640 (gcc::jit::recording::function::add_eval): Add to the function's
kono
parents:
diff changeset
1641 m_activity field.
kono
parents:
diff changeset
1642 (gcc::jit::recording::function::add_assignment): Likewise.
kono
parents:
diff changeset
1643 (gcc::jit::recording::function::add_assignment_op): Likewise.
kono
parents:
diff changeset
1644 (gcc::jit::recording::function::add_comment): Likewise.
kono
parents:
diff changeset
1645 (gcc::jit::recording::function::add_conditional): Likewise.
kono
parents:
diff changeset
1646 (gcc::jit::recording::function::place_forward_label): Likewise.
kono
parents:
diff changeset
1647 (gcc::jit::recording::function::add_jump): Likewise.
kono
parents:
diff changeset
1648 (gcc::jit::recording::function::add_return): Likewise.
kono
parents:
diff changeset
1649 (gcc::jit::recording::function::new_loop): Likewise.
kono
parents:
diff changeset
1650
kono
parents:
diff changeset
1651 (gcc::jit::recording::conditional::make_debug_string): Add missing
kono
parents:
diff changeset
1652 semicolon.
kono
parents:
diff changeset
1653
kono
parents:
diff changeset
1654 2014-02-19 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
1655
kono
parents:
diff changeset
1656 * libgccjit.c (gcc_jit_context_new_rvalue_from_ptr): Verify that
kono
parents:
diff changeset
1657 pointer_type is indeed a pointer type.
kono
parents:
diff changeset
1658 (gcc_jit_context_null): Likewise.
kono
parents:
diff changeset
1659 (gcc_jit_context_new_array_access): Verify that ptr is indeed a
kono
parents:
diff changeset
1660 pointer.
kono
parents:
diff changeset
1661
kono
parents:
diff changeset
1662 * TODO.rst: Update
kono
parents:
diff changeset
1663
kono
parents:
diff changeset
1664 2014-02-18 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
1665
kono
parents:
diff changeset
1666 * libgccjit.h (gcc_jit_struct): New.
kono
parents:
diff changeset
1667 (gcc_jit_context_new_struct_type): Change return type from gcc_jit_type
kono
parents:
diff changeset
1668 to gcc_jit_struct.
kono
parents:
diff changeset
1669 (gcc_jit_context_new_opaque_struct): New.
kono
parents:
diff changeset
1670 (gcc_jit_struct_as_type): New.
kono
parents:
diff changeset
1671 (gcc_jit_struct_set_fields): New.
kono
parents:
diff changeset
1672 (gcc_jit_context_null): New.
kono
parents:
diff changeset
1673
kono
parents:
diff changeset
1674 * libgccjit.map (gcc_jit_context_new_opaque_struct): New.
kono
parents:
diff changeset
1675 (gcc_jit_context_null): New.
kono
parents:
diff changeset
1676 (gcc_jit_struct_as_type): New.
kono
parents:
diff changeset
1677 (gcc_jit_struct_set_fields): New.
kono
parents:
diff changeset
1678
kono
parents:
diff changeset
1679 * libgccjit++.h (gccjit::context::new_struct_type): Return a
kono
parents:
diff changeset
1680 struct_ rather than a type.
kono
parents:
diff changeset
1681 (gccjit::context::new_opaque_struct_type): New.
kono
parents:
diff changeset
1682 (gccjit::struct_): New subclass of type.
kono
parents:
diff changeset
1683
kono
parents:
diff changeset
1684 * libgccjit.c (gcc_jit_struct): New.
kono
parents:
diff changeset
1685 (RETURN_VAL_IF_FAIL_PRINTF1): New.
kono
parents:
diff changeset
1686 (RETURN_VAL_IF_FAIL_PRINTF2): New.
kono
parents:
diff changeset
1687 (RETURN_NULL_IF_FAIL_PRINTF1): New.
kono
parents:
diff changeset
1688 (RETURN_IF_FAIL_PRINTF1): New.
kono
parents:
diff changeset
1689 (RETURN_IF_FAIL_PRINTF2): New.
kono
parents:
diff changeset
1690 (gcc_jit_context_new_struct_type): Return a gcc_jit_struct rather
kono
parents:
diff changeset
1691 than a gcc_jit_type; implement by creating the struct, then
kono
parents:
diff changeset
1692 setting the fields in it.
kono
parents:
diff changeset
1693 (gcc_jit_context_new_opaque_struct): New.
kono
parents:
diff changeset
1694 (gcc_jit_struct_as_type): New.
kono
parents:
diff changeset
1695 (gcc_jit_struct_set_fields): New.
kono
parents:
diff changeset
1696 (gcc_jit_context_null): New.
kono
parents:
diff changeset
1697 (gcc_jit_lvalue_access_field): Use the struct's context when
kono
parents:
diff changeset
1698 reporting on a NULL field; verify that the field has been placed
kono
parents:
diff changeset
1699 in a struct.
kono
parents:
diff changeset
1700 (gcc_jit_rvalue_access_field): Likewise.
kono
parents:
diff changeset
1701 (is_bool): New.
kono
parents:
diff changeset
1702 (gcc_jit_function_add_conditional): Use the function's context
kono
parents:
diff changeset
1703 when reporting errors; verify that boolval's type is indeed
kono
parents:
diff changeset
1704 boolean.
kono
parents:
diff changeset
1705 (gcc_jit_function_new_loop): Likewise.
kono
parents:
diff changeset
1706
kono
parents:
diff changeset
1707 * internal-api.h (gcc::jit::recording::context::new_struct_type):
kono
parents:
diff changeset
1708 Don't accept fields, and return a struct_ rather than a type_, so
kono
parents:
diff changeset
1709 that fields can be set later.
kono
parents:
diff changeset
1710 (gcc::jit::recording::struct_::struct_): Store a (fields *) rather
kono
parents:
diff changeset
1711 than a vec of fields.
kono
parents:
diff changeset
1712 (gcc::jit::recording::struct_::as_type): New.
kono
parents:
diff changeset
1713 (gcc::jit::recording::struct_::get_fields): New.
kono
parents:
diff changeset
1714 (gcc::jit::recording::struct_::set_fields): New.
kono
parents:
diff changeset
1715 (gcc::jit::recording::struct_::playback_struct): New.
kono
parents:
diff changeset
1716 (gcc::jit::recording::fields): New class.
kono
parents:
diff changeset
1717 (gcc::jit::playback::context::new_struct_type): Don't accept
kono
parents:
diff changeset
1718 fields, and return a struct_ rather than a type_, so that fields
kono
parents:
diff changeset
1719 can be set later.
kono
parents:
diff changeset
1720 (gcc::jit::playback::struct_): New subclass of type.
kono
parents:
diff changeset
1721
kono
parents:
diff changeset
1722 * internal-api.c (gcc::jit::recording::context::get_type): With
kono
parents:
diff changeset
1723 nested contexts, create basic types within the ultimate parent
kono
parents:
diff changeset
1724 context, allowing for a fast check for the boolean type using
kono
parents:
diff changeset
1725 pointer equality.
kono
parents:
diff changeset
1726 (gcc::jit::recording::context::new_struct_type): Don't accept
kono
parents:
diff changeset
1727 fields, and return a struct_ rather than a type_, so that fields
kono
parents:
diff changeset
1728 can be set later.
kono
parents:
diff changeset
1729 (gcc::jit::recording::context::get_opaque_FILE_type): Update for
kono
parents:
diff changeset
1730 struct-creation changes.
kono
parents:
diff changeset
1731 (gcc::jit::recording::struct_::struct_): Store a (fields *) rather
kono
parents:
diff changeset
1732 than a vec of fields.
kono
parents:
diff changeset
1733 (gcc::jit::recording::struct_::set_fields): New.
kono
parents:
diff changeset
1734 (gcc::jit::recording::struct_::replay_into): Don't playback the
kono
parents:
diff changeset
1735 fields, as this is now done by a fields instance.
kono
parents:
diff changeset
1736 (gcc::jit::recording::fields::fields): New.
kono
parents:
diff changeset
1737 (gcc::jit::recording::fields::replay_into): New.
kono
parents:
diff changeset
1738 (gcc::jit::recording::fields::make_debug_string): New.
kono
parents:
diff changeset
1739 (gcc::jit:: playback::context::new_struct_type): Don't accept
kono
parents:
diff changeset
1740 fields, and return a struct_ rather than a type_, so that fields
kono
parents:
diff changeset
1741 can be set later.
kono
parents:
diff changeset
1742 (gcc::jit::playback::struct_::set_fields): New.
kono
parents:
diff changeset
1743
kono
parents:
diff changeset
1744 * TODO.rst: Update.
kono
parents:
diff changeset
1745
kono
parents:
diff changeset
1746 2014-02-18 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
1747
kono
parents:
diff changeset
1748 * libgccjit.c (gcc_jit_function_new_local): Use the context of the
kono
parents:
diff changeset
1749 function when reporting errors.
kono
parents:
diff changeset
1750 (gcc_jit_function_place_forward_label): Likewise.
kono
parents:
diff changeset
1751 (gcc_jit_function_add_eval): Likewise.
kono
parents:
diff changeset
1752 (gcc_jit_function_add_assignment_op): Likewise.
kono
parents:
diff changeset
1753 (gcc_jit_function_add_comment): Likewise.
kono
parents:
diff changeset
1754 (gcc_jit_function_add_jump): Likewise.
kono
parents:
diff changeset
1755
kono
parents:
diff changeset
1756 2014-02-14 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
1757
kono
parents:
diff changeset
1758 * libgccjit++.h (gccjit::type::zero): New method.
kono
parents:
diff changeset
1759 (gccjit::type::one): New method.
kono
parents:
diff changeset
1760 (gccjit::function::add_call): New family of overloaded methods.
kono
parents:
diff changeset
1761
kono
parents:
diff changeset
1762 2014-02-13 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
1763
kono
parents:
diff changeset
1764 * libgccjit.h (gcc_jit_context_get_builtin_function): New.
kono
parents:
diff changeset
1765 * libgccjit.map (gcc_jit_context_get_builtin_function): New.
kono
parents:
diff changeset
1766 * libgccjit++.h (gccjit::context::get_builtin_function): New method.
kono
parents:
diff changeset
1767
kono
parents:
diff changeset
1768 * Make-lang.in (jit_OBJS): Add jit/jit-builtins.o
kono
parents:
diff changeset
1769 * jit-builtins.c: New source file, for managing builtin functions
kono
parents:
diff changeset
1770 and their types.
kono
parents:
diff changeset
1771 * jit-builtins.h: Likewise.
kono
parents:
diff changeset
1772
kono
parents:
diff changeset
1773 * libgccjit.c (gcc_jit_context_new_function): Pass BUILT_IN_NONE for
kono
parents:
diff changeset
1774 the new argument of new_function
kono
parents:
diff changeset
1775 (gcc_jit_context_get_builtin_function): New.
kono
parents:
diff changeset
1776
kono
parents:
diff changeset
1777 * internal-api.h: Add idempotency guards.
kono
parents:
diff changeset
1778 (gcc::jit::recording::context::new_function): Add parameter
kono
parents:
diff changeset
1779 for builtin functions.
kono
parents:
diff changeset
1780 (gcc::jit::recording::context::get_builtin_function): New method.
kono
parents:
diff changeset
1781 (gcc::jit::recording::context::m_builtins_manager): New field.
kono
parents:
diff changeset
1782 (gcc::jit::recording::type::as_a_function_type): New virtual function.
kono
parents:
diff changeset
1783 (gcc::jit::recording::function_type): New subclass of type.
kono
parents:
diff changeset
1784 (gcc::jit::recording::function::function): Add parameter for
kono
parents:
diff changeset
1785 builtin functions.
kono
parents:
diff changeset
1786 (gcc::jit::recording::function::m_builtin_id): New field.
kono
parents:
diff changeset
1787 (gcc::jit::recording::function::new_function_type): New method.
kono
parents:
diff changeset
1788 (gcc::jit::playback::function::function): Add parameter for
kono
parents:
diff changeset
1789 builtin functions.
kono
parents:
diff changeset
1790 * internal-api.c (gcc::jit::recording::context::context):
kono
parents:
diff changeset
1791 NULL-initialize new field m_builtins_manager.
kono
parents:
diff changeset
1792 (gcc::jit::recording::context::~context): Clean up the builtins
kono
parents:
diff changeset
1793 manager, if one has been created.
kono
parents:
diff changeset
1794 (gcc::jit::recording::context::new_function): Add parameter
kono
parents:
diff changeset
1795 (gcc::jit::recording::context::get_builtin_function): New method.
kono
parents:
diff changeset
1796 (gcc::jit::recording::function_type::function_type): Implement
kono
parents:
diff changeset
1797 constructor for new subclass.
kono
parents:
diff changeset
1798 (gcc::jit::recording::function_type::dereference): Implement
kono
parents:
diff changeset
1799 method for new subclass.
kono
parents:
diff changeset
1800 (gcc::jit::recording::function_type::replay_into): Likewise.
kono
parents:
diff changeset
1801 (gcc::jit::recording::function_type::make_debug_string): Likewise.
kono
parents:
diff changeset
1802 (gcc::jit::recording::function::function): Add parameter for
kono
parents:
diff changeset
1803 builtin functions.
kono
parents:
diff changeset
1804 (gcc::jit::recording::function::replay_into): Likewise for
kono
parents:
diff changeset
1805 creation of playback object.
kono
parents:
diff changeset
1806 (gcc::jit::recording::function::new_function_type): New method.
kono
parents:
diff changeset
1807 (gcc::jit::playback::function::new_function): Add parameter for
kono
parents:
diff changeset
1808 builtin functions, using it to set up the fndecl accordingly.
kono
parents:
diff changeset
1809
kono
parents:
diff changeset
1810 2014-02-11 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
1811
kono
parents:
diff changeset
1812 * libgccjit.c (IS_ASCII_ALPHA): New macro.
kono
parents:
diff changeset
1813 (IS_ASCII_DIGIT): New macro.
kono
parents:
diff changeset
1814 (IS_ASCII_ALNUM): New macro.
kono
parents:
diff changeset
1815 (gcc_jit_context_new_function): Require that function names be valid
kono
parents:
diff changeset
1816 C identifiers for now, to avoid later problems in the assembler.
kono
parents:
diff changeset
1817
kono
parents:
diff changeset
1818 2014-02-11 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
1819
kono
parents:
diff changeset
1820 * libgccjit.h (enum gcc_jit_types): Add GCC_JIT_TYPE_BOOL.
kono
parents:
diff changeset
1821
kono
parents:
diff changeset
1822 * internal-api.h (gcc::jit::recording::comparison::comparison): Use
kono
parents:
diff changeset
1823 GCC_JIT_TYPE_BOOL as the types of comparisons, rather than
kono
parents:
diff changeset
1824 GCC_JIT_TYPE_INT.
kono
parents:
diff changeset
1825
kono
parents:
diff changeset
1826 * internal-api.c (gcc::jit::recording::memento_of_get_type::
kono
parents:
diff changeset
1827 dereference): Handle GCC_JIT_TYPE_BOOL (with an error).
kono
parents:
diff changeset
1828 (get_type_strings): Add GCC_JIT_TYPE_BOOL.
kono
parents:
diff changeset
1829 (get_tree_node_for_type): Handle GCC_JIT_TYPE_BOOL.
kono
parents:
diff changeset
1830
kono
parents:
diff changeset
1831 2014-02-11 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
1832
kono
parents:
diff changeset
1833 * internal-api.c (gcc::jit::recording::context::add_error_va): If
kono
parents:
diff changeset
1834 GCC_JIT_STR_OPTION_PROGNAME is NULL, use "libgccjit.so", as per
kono
parents:
diff changeset
1835 the comment in libgccjit.h
kono
parents:
diff changeset
1836 (gcc::jit::recording::label::replay_into): When reporting on an
kono
parents:
diff changeset
1837 unplaced label, include the name of the containing function in
kono
parents:
diff changeset
1838 the error message.
kono
parents:
diff changeset
1839 * libgccjit.c: Remove comment about "Functions for use within the
kono
parents:
diff changeset
1840 code factory", as this distinction went away in commit
kono
parents:
diff changeset
1841 96b218c9a1d5f39fb649e02c0e77586b180e8516.
kono
parents:
diff changeset
1842 (RETURN_VAL_IF_FAIL_PRINTF4): New.
kono
parents:
diff changeset
1843 (RETURN_NULL_IF_FAIL_PRINTF4): New.
kono
parents:
diff changeset
1844 (jit_error): Invoke vfprintf with the correct format string in
kono
parents:
diff changeset
1845 the NULL context case.
kono
parents:
diff changeset
1846 (gcc_jit_context_new_call): Check for NULL entries within the
kono
parents:
diff changeset
1847 array of arguments.
kono
parents:
diff changeset
1848
kono
parents:
diff changeset
1849 2014-02-10 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
1850
kono
parents:
diff changeset
1851 * libgccjit.h (gcc_jit_context_get_int_type): New.
kono
parents:
diff changeset
1852 * libgccjit.map (gcc_jit_context_get_int_type): New.
kono
parents:
diff changeset
1853 * libgccjit.c (gcc_jit_context_get_int_type): New.
kono
parents:
diff changeset
1854
kono
parents:
diff changeset
1855 * internal-api.h (gcc::jit::recording::context::get_int_type): New.
kono
parents:
diff changeset
1856 (gcc::jit::recording::context::get_int_type<T>): New template.
kono
parents:
diff changeset
1857 * internal-api.c (gcc::jit::recording::context::get_int_type): New.
kono
parents:
diff changeset
1858
kono
parents:
diff changeset
1859 * libgccjit++.h: Include <limits> so we can use std::numeric_limits.
kono
parents:
diff changeset
1860 (gccjit::context::get_int_type): New.
kono
parents:
diff changeset
1861 (gccjit::context::get_int_type<T>): New.
kono
parents:
diff changeset
1862
kono
parents:
diff changeset
1863 2014-02-10 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
1864
kono
parents:
diff changeset
1865 * libgccjit.h (gcc_jit_function_get_param): New.
kono
parents:
diff changeset
1866 * libgccjit.map (gcc_jit_function_get_param): New.
kono
parents:
diff changeset
1867 * libgccjit.c (gcc_jit_function_get_param): New.
kono
parents:
diff changeset
1868 * libgccjit++.h (gccjit::function::get_param): New.
kono
parents:
diff changeset
1869
kono
parents:
diff changeset
1870 2014-02-10 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
1871
kono
parents:
diff changeset
1872 * libgccjit++.h (gccjit::object::get_inner_object): Make const.
kono
parents:
diff changeset
1873 (gccjit::location::get_inner_location): Likewise.
kono
parents:
diff changeset
1874 (gccjit::field::get_inner_field): Likewise.
kono
parents:
diff changeset
1875 (gccjit::type::get_inner_type): Likewise.
kono
parents:
diff changeset
1876 (gccjit::function::get_inner_function): Likewise.
kono
parents:
diff changeset
1877 (gccjit::label::get_inner_label): Likewise.
kono
parents:
diff changeset
1878 (gccjit::rvalue::get_inner_rvalue): Likewise.
kono
parents:
diff changeset
1879 (gccjit::lvalue::get_inner_lvalue): Likewise.
kono
parents:
diff changeset
1880 (gccjit::param::get_inner_param): Likewise.
kono
parents:
diff changeset
1881
kono
parents:
diff changeset
1882 2014-02-10 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
1883
kono
parents:
diff changeset
1884 * libgccjit++.h (gccjit::object::get_context): New method.
kono
parents:
diff changeset
1885 (gccjit::function): Add overloaded operator () for various
kono
parents:
diff changeset
1886 numbers of arguments as a very terse way of creating function calls.
kono
parents:
diff changeset
1887 (gccjit::rvalue::get_type): New method.
kono
parents:
diff changeset
1888
kono
parents:
diff changeset
1889 (operator-): New overloaded unary op for rvalues.
kono
parents:
diff changeset
1890 (operator~): Likewise.
kono
parents:
diff changeset
1891 (operator!): Likewise.
kono
parents:
diff changeset
1892
kono
parents:
diff changeset
1893 (operator+): New overloaded binary op for rvalues.
kono
parents:
diff changeset
1894 (operator-): Likewise.
kono
parents:
diff changeset
1895 (operator*): Likewise.
kono
parents:
diff changeset
1896 (operator/): Likewise.
kono
parents:
diff changeset
1897 (operator%): Likewise.
kono
parents:
diff changeset
1898 (operator&): Likewise.
kono
parents:
diff changeset
1899 (operator^): Likewise.
kono
parents:
diff changeset
1900 (operator|): Likewise.
kono
parents:
diff changeset
1901 (operator&&): Likewise.
kono
parents:
diff changeset
1902 (operator||): Likewise.
kono
parents:
diff changeset
1903
kono
parents:
diff changeset
1904 (operator==): New overloaded comparison for rvalues.
kono
parents:
diff changeset
1905 (operator!=): Likewise.
kono
parents:
diff changeset
1906 (operator<): Likewise.
kono
parents:
diff changeset
1907 (operator<=): Likewise.
kono
parents:
diff changeset
1908 (operator>): Likewise.
kono
parents:
diff changeset
1909 (operator>=): Likewise.
kono
parents:
diff changeset
1910
kono
parents:
diff changeset
1911 (operator*): New overloaded operator for dereferencing an
kono
parents:
diff changeset
1912 rvalue representing a pointer.
kono
parents:
diff changeset
1913
kono
parents:
diff changeset
1914 * libgccjit.c (gcc_jit_rvalue_get_type): New.
kono
parents:
diff changeset
1915 * libgccjit.h (gcc_jit_rvalue_get_type): New.
kono
parents:
diff changeset
1916 * libgccjit.map (gcc_jit_rvalue_get_type): New.
kono
parents:
diff changeset
1917
kono
parents:
diff changeset
1918 2014-02-10 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
1919
kono
parents:
diff changeset
1920 * libgccjit++.h (gccjit::context::new_minus): New method,
kono
parents:
diff changeset
1921 providing a way to do a specific unary op with less typing.
kono
parents:
diff changeset
1922 (gccjit::context::new_bitwise_negate): Likewise.
kono
parents:
diff changeset
1923 (gccjit::context::new_logical_negate): Likewise.
kono
parents:
diff changeset
1924
kono
parents:
diff changeset
1925 (gccjit::context::new_plus): Likewise, for binary op.
kono
parents:
diff changeset
1926 (gccjit::context::new_minus): Likewise.
kono
parents:
diff changeset
1927 (gccjit::context::new_mult): Likewise.
kono
parents:
diff changeset
1928 (gccjit::context::new_divide): Likewise.
kono
parents:
diff changeset
1929 (gccjit::context::new_modulo): Likewise.
kono
parents:
diff changeset
1930 (gccjit::context::new_bitwise_and): Likewise.
kono
parents:
diff changeset
1931 (gccjit::context::new_bitwise_xor): Likewise.
kono
parents:
diff changeset
1932 (gccjit::context::new_bitwise_or): Likewise.
kono
parents:
diff changeset
1933 (gccjit::context::new_logical_and): Likewise.
kono
parents:
diff changeset
1934 (gccjit::context::new_logical_or): Likewise.
kono
parents:
diff changeset
1935
kono
parents:
diff changeset
1936 (gccjit::context::new_eq): Likewise, for comparison.
kono
parents:
diff changeset
1937 (gccjit::context::new_ne): Likewise.
kono
parents:
diff changeset
1938 (gccjit::context::new_lt): Likewise.
kono
parents:
diff changeset
1939 (gccjit::context::new_le): Likewise.
kono
parents:
diff changeset
1940 (gccjit::context::gccjit::context::new_gt): Likewise.
kono
parents:
diff changeset
1941 (gccjit::context::gccjit::context::new_ge): Likewise.
kono
parents:
diff changeset
1942
kono
parents:
diff changeset
1943 (gccjit::context::new_call): Add a series of overloaded methods
kono
parents:
diff changeset
1944 for specific numbers of args (from 0 - 6), to avoid the need for
kono
parents:
diff changeset
1945 client code to manually build a std::vector (or requiring C++11).
kono
parents:
diff changeset
1946
kono
parents:
diff changeset
1947 2014-02-10 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
1948
kono
parents:
diff changeset
1949 * libgccjit++.h (gccjit::context::new_struct_type): Pass std::vector
kono
parents:
diff changeset
1950 "fields" argument by reference rather than by value.
kono
parents:
diff changeset
1951 (gccjit::context::new_function): Likewise, for "params" arg.
kono
parents:
diff changeset
1952 (gccjit::context::new_call): Likewise, for "args" arg.
kono
parents:
diff changeset
1953
kono
parents:
diff changeset
1954 2014-02-10 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
1955
kono
parents:
diff changeset
1956 * libgccjit++.h (gccjit::context::new_location): Update filename
kono
parents:
diff changeset
1957 arg from a const char * to a const std::string &.
kono
parents:
diff changeset
1958 (gccjit::context::new_field): Likewise for "name" arg.
kono
parents:
diff changeset
1959 (gccjit::context::new_struct_type): Likewise.
kono
parents:
diff changeset
1960 (gccjit::context::new_param): Likewise.
kono
parents:
diff changeset
1961 (gccjit::context::new_function): Likewise.
kono
parents:
diff changeset
1962 (gccjit::function::new_local): Likewise.
kono
parents:
diff changeset
1963 (gccjit::context::new_rvalue): Likewise for "value" arg.
kono
parents:
diff changeset
1964 (gccjit::function::add_comment): Likewise for "text" arg.
kono
parents:
diff changeset
1965 (gccjit::function::new_forward_label): Likewise for "name" arg; add
kono
parents:
diff changeset
1966 variant taking no args for anonymous labels.
kono
parents:
diff changeset
1967 (gccjit::function::add_label): Likewise.
kono
parents:
diff changeset
1968
kono
parents:
diff changeset
1969 2014-02-10 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
1970
kono
parents:
diff changeset
1971 * libgccjit++.h (gccjit::object, gccjit::location): Move
kono
parents:
diff changeset
1972 these declarations to before that of gccjit::context so that
kono
parents:
diff changeset
1973 the various methods of context taking a location can have a
kono
parents:
diff changeset
1974 default location value.
kono
parents:
diff changeset
1975 (gccjit::context::new_array_type): Consolidate two methods,
kono
parents:
diff changeset
1976 one accepting a gccjit::location, the other without, by
kono
parents:
diff changeset
1977 providing a default argument (which thus has to be moved to the
kono
parents:
diff changeset
1978 end of the argument list).
kono
parents:
diff changeset
1979 (gccjit::context::new_field): Likewise.
kono
parents:
diff changeset
1980 (gccjit::context::new_struct_type): Likewise.
kono
parents:
diff changeset
1981 (gccjit::context::new_param): Likewise.
kono
parents:
diff changeset
1982 (gccjit::context::new_function): Likewise.
kono
parents:
diff changeset
1983 (gccjit::context::new_unary_op): Likewise.
kono
parents:
diff changeset
1984 (gccjit::context::new_binary_op): Likewise.
kono
parents:
diff changeset
1985 (gccjit::context::new_comparison): Likewise.
kono
parents:
diff changeset
1986 (gccjit::context::new_call): Likewise.
kono
parents:
diff changeset
1987 (gccjit::context::new_array_access): Likewise.
kono
parents:
diff changeset
1988 (gccjit::function::new_local): Likewise.
kono
parents:
diff changeset
1989 (gccjit::function::add_eval): Likewise.
kono
parents:
diff changeset
1990 (gccjit::function::add_assignment): Likewise.
kono
parents:
diff changeset
1991 (gccjit::function::add_assignment_op): Likewise.
kono
parents:
diff changeset
1992 (gccjit::function::add_comment): Likewise.
kono
parents:
diff changeset
1993 (gccjit::function::add_conditional): Likewise.
kono
parents:
diff changeset
1994 (gccjit::function::add_label): Likewise.
kono
parents:
diff changeset
1995 (gccjit::function::place_forward_label): Likewise.
kono
parents:
diff changeset
1996 (gccjit::function::add_jump): Likewise.
kono
parents:
diff changeset
1997 (gccjit::function::add_return): Likewise.
kono
parents:
diff changeset
1998 (gccjit::rvalue::access_field): Likewise.
kono
parents:
diff changeset
1999 (gccjit::rvalue::dereference_field): Likewise.
kono
parents:
diff changeset
2000 (gccjit::rvalue::dereference): Likewise.
kono
parents:
diff changeset
2001 (gccjit::lvalue::access_field): Likewise.
kono
parents:
diff changeset
2002 (gccjit::lvalue::get_address): Likewise.
kono
parents:
diff changeset
2003
kono
parents:
diff changeset
2004 2014-02-10 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
2005
kono
parents:
diff changeset
2006 * TODO.rst: Update.
kono
parents:
diff changeset
2007
kono
parents:
diff changeset
2008 2014-02-06 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
2009
kono
parents:
diff changeset
2010 * libgccjit++.h: Include <ostream> rather than <iostream>, since
kono
parents:
diff changeset
2011 the former gets us std::ostream, and the latter may introduce
kono
parents:
diff changeset
2012 startup-time overhead for constructing std::cout et al.
kono
parents:
diff changeset
2013 (gccjit::context::new_child_context): New.
kono
parents:
diff changeset
2014 (gccjit::context::release): New.
kono
parents:
diff changeset
2015 (gccjit::context::compile): New.
kono
parents:
diff changeset
2016 (gccjit::context::set_int_option): New.
kono
parents:
diff changeset
2017 (gccjit::context::set_bool_option): New.
kono
parents:
diff changeset
2018
kono
parents:
diff changeset
2019 2014-02-03 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
2020
kono
parents:
diff changeset
2021 * libgccjit.h (struct gcc_jit_object): New.
kono
parents:
diff changeset
2022 (gcc_jit_object_get_context): New.
kono
parents:
diff changeset
2023 (gcc_jit_object_get_debug_string): New.
kono
parents:
diff changeset
2024 (gcc_jit_location_as_object): New.
kono
parents:
diff changeset
2025 (gcc_jit_type_as_object): New.
kono
parents:
diff changeset
2026 (gcc_jit_field_as_object): New.
kono
parents:
diff changeset
2027 (gcc_jit_param_as_object): New.
kono
parents:
diff changeset
2028 (gcc_jit_function_as_object): New.
kono
parents:
diff changeset
2029 (gcc_jit_label_as_object): New.
kono
parents:
diff changeset
2030 (gcc_jit_lvalue_as_object): New.
kono
parents:
diff changeset
2031 (gcc_jit_rvalue_as_object): New.
kono
parents:
diff changeset
2032 (gcc_jit_loop_as_object): New.
kono
parents:
diff changeset
2033
kono
parents:
diff changeset
2034 * libgccjit.map (gcc_jit_field_as_object): New.
kono
parents:
diff changeset
2035 (gcc_jit_function_as_object): New.
kono
parents:
diff changeset
2036 (gcc_jit_label_as_object): New.
kono
parents:
diff changeset
2037 (gcc_jit_location_as_object): New.
kono
parents:
diff changeset
2038 (gcc_jit_loop_as_object): New.
kono
parents:
diff changeset
2039 (gcc_jit_lvalue_as_object): New.
kono
parents:
diff changeset
2040 (gcc_jit_object_get_context): New.
kono
parents:
diff changeset
2041 (gcc_jit_object_get_debug_string): New.
kono
parents:
diff changeset
2042 (gcc_jit_param_as_object): New.
kono
parents:
diff changeset
2043 (gcc_jit_rvalue_as_object): New.
kono
parents:
diff changeset
2044 (gcc_jit_type_as_object): New.
kono
parents:
diff changeset
2045
kono
parents:
diff changeset
2046 * libgccjit.c (struct gcc_jit_object): New.
kono
parents:
diff changeset
2047 (gcc_jit_location_as_object): New.
kono
parents:
diff changeset
2048 (gcc_jit_type_as_object): New.
kono
parents:
diff changeset
2049 (gcc_jit_field_as_object): New.
kono
parents:
diff changeset
2050 (gcc_jit_param_as_object): New.
kono
parents:
diff changeset
2051 (gcc_jit_function_as_object): New.
kono
parents:
diff changeset
2052 (gcc_jit_label_as_object): New.
kono
parents:
diff changeset
2053 (gcc_jit_lvalue_as_object): New.
kono
parents:
diff changeset
2054 (gcc_jit_rvalue_as_object): New.
kono
parents:
diff changeset
2055 (gcc_jit_object_get_context): New.
kono
parents:
diff changeset
2056 (gcc_jit_object_get_debug_string): New.
kono
parents:
diff changeset
2057 (gcc_jit_loop_as_object): New.
kono
parents:
diff changeset
2058 * internal-api.h (gcc::jit::recording::memento::get_context): New.
kono
parents:
diff changeset
2059 (gcc::jit::recording::memento::as_object): New.
kono
parents:
diff changeset
2060
kono
parents:
diff changeset
2061 * libgccjit++.h: Require iostream, for std::ostream.
kono
parents:
diff changeset
2062 (class object): New base class.
kono
parents:
diff changeset
2063 (operator << (std::ostream& stream, const object &obj)): New.
kono
parents:
diff changeset
2064 (location): Inherit from the new "object" base class.
kono
parents:
diff changeset
2065 (location::m_inner_loc): Remove, in favor of...
kono
parents:
diff changeset
2066 (location::get_inner_location): ...new method.
kono
parents:
diff changeset
2067 (field): Inherit from the new "object" base class.
kono
parents:
diff changeset
2068 (field::m_inner_field): Remove, in favor of...
kono
parents:
diff changeset
2069 (field::get_inner_field): ...new method.
kono
parents:
diff changeset
2070 (type): Inherit from the new "object" base class.
kono
parents:
diff changeset
2071 (type::m_inner_type): Remove, in favor of...
kono
parents:
diff changeset
2072 (type::get_inner_type): ...new method.
kono
parents:
diff changeset
2073 (function): Inherit from the new "object" base class.
kono
parents:
diff changeset
2074 (function::m_inner_func): Remove, in favor of...
kono
parents:
diff changeset
2075 (function::get_inner_function): ...new method.
kono
parents:
diff changeset
2076 (label): Inherit from the new "object" base class.
kono
parents:
diff changeset
2077 (label::m_inner_label): Remove, in favor of...
kono
parents:
diff changeset
2078 (label::get_inner_label): ...new method.
kono
parents:
diff changeset
2079 (rvalue) Inherit from the new "object" base class.
kono
parents:
diff changeset
2080 (rvalue::m_inner_rvalue): Remove, in favor of...
kono
parents:
diff changeset
2081 (rvalue::get_inner_rvalue): ...new method.
kono
parents:
diff changeset
2082
kono
parents:
diff changeset
2083 (context::new_field): Update for move of inner pointer to the
kono
parents:
diff changeset
2084 "object" base class.
kono
parents:
diff changeset
2085 (context::new_struct_type): Likewise.
kono
parents:
diff changeset
2086 (context::new_param): Likewise.
kono
parents:
diff changeset
2087 (context::new_function): Likewise.
kono
parents:
diff changeset
2088 (context::new_rvalue): Likewise.
kono
parents:
diff changeset
2089 (context::zero): Likewise.
kono
parents:
diff changeset
2090 (context::one): Likewise.
kono
parents:
diff changeset
2091 (context::new_rvalue): Likewise.
kono
parents:
diff changeset
2092 (context::new_rvalue): Likewise.
kono
parents:
diff changeset
2093 (context::new_unary_op): Likewise.
kono
parents:
diff changeset
2094 (context::new_binary_op): Likewise.
kono
parents:
diff changeset
2095 (context::new_comparison): Likewise.
kono
parents:
diff changeset
2096 (context::new_call): Likewise.
kono
parents:
diff changeset
2097
kono
parents:
diff changeset
2098 (object::get_debug_string): New.
kono
parents:
diff changeset
2099 (object::object): New.
kono
parents:
diff changeset
2100 (object::get_inner_object): New.
kono
parents:
diff changeset
2101 (operator << (std::ostream&, const object &)): New.
kono
parents:
diff changeset
2102
kono
parents:
diff changeset
2103 (location::location): Update for move of inner pointer to the
kono
parents:
diff changeset
2104 "object" base class.
kono
parents:
diff changeset
2105 (location::get_inner_location): New.
kono
parents:
diff changeset
2106
kono
parents:
diff changeset
2107 (field::field): Update for move of inner pointer to the
kono
parents:
diff changeset
2108 "object" base class.
kono
parents:
diff changeset
2109 (field::get_inner_field): New.
kono
parents:
diff changeset
2110
kono
parents:
diff changeset
2111 (type::type): Update for move of inner pointer to the
kono
parents:
diff changeset
2112 "object" base class.
kono
parents:
diff changeset
2113 (type::get_pointer): Likewise.
kono
parents:
diff changeset
2114 (type::get_inner_type): New.
kono
parents:
diff changeset
2115
kono
parents:
diff changeset
2116 (function::function): Update for move of inner pointer to the
kono
parents:
diff changeset
2117 "object" base class.
kono
parents:
diff changeset
2118 (function::new_forward_label): Likewise.
kono
parents:
diff changeset
2119 (function::new_local): Likewise.
kono
parents:
diff changeset
2120 (function::add_eval): Likewise.
kono
parents:
diff changeset
2121 (function::add_assignment): Likewise.
kono
parents:
diff changeset
2122 (function::add_assignment_op): Likewise.
kono
parents:
diff changeset
2123 (function::add_comment): Likewise.
kono
parents:
diff changeset
2124 (function::add_conditional): Likewise.
kono
parents:
diff changeset
2125 (function::add_label): Likewise.
kono
parents:
diff changeset
2126 (function::place_forward_label): Likewise.
kono
parents:
diff changeset
2127 (function::add_jump): Likewise.
kono
parents:
diff changeset
2128 (function::add_return): Likewise.
kono
parents:
diff changeset
2129 (function::get_inner_function): New.
kono
parents:
diff changeset
2130
kono
parents:
diff changeset
2131 (label::label): Update for move of inner pointer to the "object"
kono
parents:
diff changeset
2132 base class.
kono
parents:
diff changeset
2133 (label::get_inner_label): New
kono
parents:
diff changeset
2134
kono
parents:
diff changeset
2135 (rvalue::rvalue): Update for move of inner pointer to the "object"
kono
parents:
diff changeset
2136 base class.
kono
parents:
diff changeset
2137 (rvalue::get_inner_rvalue): New.
kono
parents:
diff changeset
2138 (rvalue::access_field): Likewise.
kono
parents:
diff changeset
2139 (rvalue::dereference_field): Likewise.
kono
parents:
diff changeset
2140 (rvalue::dereference): Likewise.
kono
parents:
diff changeset
2141
kono
parents:
diff changeset
2142 (lvalue::get_inner_lvalue): Update for move of inner pointer to
kono
parents:
diff changeset
2143 the "object" base class.
kono
parents:
diff changeset
2144 (lvalue::access_field): Likewise.
kono
parents:
diff changeset
2145 (lvalue::get_address): Likewise.
kono
parents:
diff changeset
2146
kono
parents:
diff changeset
2147 2014-01-31 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
2148
kono
parents:
diff changeset
2149 * libgccjit++.h: New file - a C++ wrapper for the libgccjit.h API.
kono
parents:
diff changeset
2150
kono
parents:
diff changeset
2151 * TODO.rst ("Test Suite"): New section, adding note about C++
kono
parents:
diff changeset
2152 tests.
kono
parents:
diff changeset
2153
kono
parents:
diff changeset
2154 2014-01-31 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
2155
kono
parents:
diff changeset
2156 * libgccjit.h (gcc_jit_context_new_rvalue_from_int): Give the type
kono
parents:
diff changeset
2157 parameter a more descriptive name.
kono
parents:
diff changeset
2158 (gcc_jit_context_zero): Likewise.
kono
parents:
diff changeset
2159 (gcc_jit_context_one): Likewise.
kono
parents:
diff changeset
2160 (gcc_jit_context_new_rvalue_from_double): Likewise.
kono
parents:
diff changeset
2161 (gcc_jit_context_new_rvalue_from_ptr): Likewise.
kono
parents:
diff changeset
2162
kono
parents:
diff changeset
2163 * libgccjit.c (gcc_jit_context_new_rvalue_from_int): Likewise.
kono
parents:
diff changeset
2164 (gcc_jit_context_zero): Likewise.
kono
parents:
diff changeset
2165 (gcc_jit_context_one): Likewise.
kono
parents:
diff changeset
2166 (gcc_jit_context_new_rvalue_from_double): Likewise.
kono
parents:
diff changeset
2167 (gcc_jit_context_new_rvalue_from_ptr): Likewise.
kono
parents:
diff changeset
2168
kono
parents:
diff changeset
2169 * internal-api.h (gcc::jit::recording::context::
kono
parents:
diff changeset
2170 new_rvalue_from_int): Likewise.
kono
parents:
diff changeset
2171 (gcc::jit::recording::context::
kono
parents:
diff changeset
2172 new_rvalue_from_double): Likewise.
kono
parents:
diff changeset
2173 (gcc::jit::recording::memento_of_new_rvalue_from_int::
kono
parents:
diff changeset
2174 memento_of_new_rvalue_from_int): Likewise.
kono
parents:
diff changeset
2175 (gcc::jit::recording::memento_of_new_rvalue_from_double::
kono
parents:
diff changeset
2176 memento_of_new_rvalue_from_double): Likewise.
kono
parents:
diff changeset
2177 (gcc::jit::recording::memento_of_new_rvalue_from_ptr::
kono
parents:
diff changeset
2178 memento_of_new_rvalue_from_ptr): Likewise.
kono
parents:
diff changeset
2179
kono
parents:
diff changeset
2180 2014-01-30 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
2181
kono
parents:
diff changeset
2182 * TODO.rst: Label-placement is now checked.
kono
parents:
diff changeset
2183
kono
parents:
diff changeset
2184 * internal-api.c (gcc::jit::recording::context::replay_into): Give
kono
parents:
diff changeset
2185 up if any errors occur during the playback.
kono
parents:
diff changeset
2186 (gcc::jit::recording::label::replay_into): Issue an error if the
kono
parents:
diff changeset
2187 label has not yet been placed (at playback time).
kono
parents:
diff changeset
2188 (gcc::jit::recording::place_label::place_label): Move this here
kono
parents:
diff changeset
2189 from internal-api.h. Issue an error if the label has already
kono
parents:
diff changeset
2190 been placed (at recording time).
kono
parents:
diff changeset
2191
kono
parents:
diff changeset
2192 * internal-api.h (gcc::jit::recording::label): Add an
kono
parents:
diff changeset
2193 m_has_been_placed field, and make class place_label a friend so
kono
parents:
diff changeset
2194 it can set it.
kono
parents:
diff changeset
2195 (gcc::jit::recording::label::has_been_placed): New accessor.
kono
parents:
diff changeset
2196 (gcc::jit::recording::place_label::place_label): Move to
kono
parents:
diff changeset
2197 internal-api.c.
kono
parents:
diff changeset
2198
kono
parents:
diff changeset
2199 (gcc::jit::playback::context::errors_occurred): Make public, for
kono
parents:
diff changeset
2200 use by gcc::jit::recording::context::replay_into.
kono
parents:
diff changeset
2201
kono
parents:
diff changeset
2202 2014-01-30 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
2203
kono
parents:
diff changeset
2204 * internal-api.c (gcc::jit::recording::type::get_pointer):
kono
parents:
diff changeset
2205 Ensure that repeated calls yield the same type.
kono
parents:
diff changeset
2206 (gcc::jit::recording::memento_of_get_pointer::
kono
parents:
diff changeset
2207 accepts_writes_from): New.
kono
parents:
diff changeset
2208 (gcc::jit::recording::context::new_call): Move
kono
parents:
diff changeset
2209 the existing argument checking to...
kono
parents:
diff changeset
2210
kono
parents:
diff changeset
2211 * libgccjit.c (gcc_jit_context_new_call): ...here, and add
kono
parents:
diff changeset
2212 checking of the types of the arguments against the function.
kono
parents:
diff changeset
2213 (RETURN_VAL_IF_FAIL_PRINTF6): New.
kono
parents:
diff changeset
2214 (RETURN_NULL_IF_FAIL_PRINTF6): New.
kono
parents:
diff changeset
2215
kono
parents:
diff changeset
2216 * internal-api.h (gcc::jit::recording::type): New field
kono
parents:
diff changeset
2217 m_pointer_to_this_type, for use by get_pointer method.
kono
parents:
diff changeset
2218 (gcc::jit::recording::memento_of_get_pointer::
kono
parents:
diff changeset
2219 accepts_writes_from): New.
kono
parents:
diff changeset
2220 (gcc::jit::recording::function::get_param): New.
kono
parents:
diff changeset
2221
kono
parents:
diff changeset
2222 * TODO.rst (argument checking of gcc_jit_context_new_call): Done.
kono
parents:
diff changeset
2223
kono
parents:
diff changeset
2224 2014-01-30 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
2225
kono
parents:
diff changeset
2226 * TODO.rst: begin a list of error-checking we could do that this
kono
parents:
diff changeset
2227 commit *doesn't* cover.
kono
parents:
diff changeset
2228
kono
parents:
diff changeset
2229 * libgccjit.h (gcc_jit_field): Add note that fields can't be
kono
parents:
diff changeset
2230 shared between structs.
kono
parents:
diff changeset
2231 (GCC_JIT_BINARY_OP_MODULO): Fix typo in comment.
kono
parents:
diff changeset
2232
kono
parents:
diff changeset
2233 * libgccjit.c: (RETURN_VAL_IF_FAIL_PRINTF2): New.
kono
parents:
diff changeset
2234 (RETURN_VAL_IF_FAIL_PRINTF3): New.
kono
parents:
diff changeset
2235 (RETURN_NULL_IF_FAIL_PRINTF2): New.
kono
parents:
diff changeset
2236 (RETURN_NULL_IF_FAIL_PRINTF3): New.
kono
parents:
diff changeset
2237 (RETURN_IF_FAIL_PRINTF4): New.
kono
parents:
diff changeset
2238
kono
parents:
diff changeset
2239 (jit_error): Take a gcc::jit::recording::context rather than
kono
parents:
diff changeset
2240 a gcc_jit_context so that we pass in contexts from the inner
kono
parents:
diff changeset
2241 layer.
kono
parents:
diff changeset
2242
kono
parents:
diff changeset
2243 (compatible_types): New, for use in type-checking.
kono
parents:
diff changeset
2244
kono
parents:
diff changeset
2245 (gcc_jit_context_new_struct_type): Check each field to ensure that
kono
parents:
diff changeset
2246 it isn't already in use by another struct.
kono
parents:
diff changeset
2247
kono
parents:
diff changeset
2248 (gcc_jit_rvalue_dereference_field): Check that ptr is of a pointer
kono
parents:
diff changeset
2249 type and that the field is within the correct struct, using new
kono
parents:
diff changeset
2250 get_debug_string hooks to generate error messages.
kono
parents:
diff changeset
2251
kono
parents:
diff changeset
2252 (gcc_jit_rvalue_dereference): Check that rvalue is of a pointer
kono
parents:
diff changeset
2253 type.
kono
parents:
diff changeset
2254
kono
parents:
diff changeset
2255 (gcc_jit_function_add_assignment): Use the function's context when
kono
parents:
diff changeset
2256 reporting on NULL lvalue or rvalue. Verify that the lvalue and
kono
parents:
diff changeset
2257 rvalue have compatible types.
kono
parents:
diff changeset
2258
kono
parents:
diff changeset
2259 (gcc_jit_function_add_return): Use the function's context when
kono
parents:
diff changeset
2260 reporting on NULL rvalue. Verify that the rvalue is of an
kono
parents:
diff changeset
2261 appropriate type given the function's return type.
kono
parents:
diff changeset
2262
kono
parents:
diff changeset
2263 * internal-api.h (NUM_GCC_JIT_TYPES): New.
kono
parents:
diff changeset
2264 (gcc::jit::recording::context::record): Move from here to
kono
parents:
diff changeset
2265 internal-api.c.
kono
parents:
diff changeset
2266 (gcc::jit::recording::context::get_opaque_FILE_type): New.
kono
parents:
diff changeset
2267 (gcc::jit::recording::context::m_basic_types): New field.
kono
parents:
diff changeset
2268 (gcc::jit::recording::context::m_FILE_type): New field.
kono
parents:
diff changeset
2269
kono
parents:
diff changeset
2270 (gcc::jit::recording::memento::get_debug_string): New method.
kono
parents:
diff changeset
2271 (gcc::jit::recording::memento::memento): Initialize new field
kono
parents:
diff changeset
2272 m_debug_string, and verify context is non-NULL.
kono
parents:
diff changeset
2273 (gcc::jit::recording::memento::make_debug_string): New
kono
parents:
diff changeset
2274 pure-virtual function lazily used by get_debug_string.
kono
parents:
diff changeset
2275 (gcc::jit::recording::memento::m_debug_string): New field, for
kono
parents:
diff changeset
2276 get_debug_string to use as a cache.
kono
parents:
diff changeset
2277
kono
parents:
diff changeset
2278 (gcc::jit::recording::string): Rename field m_copy to m_buffer.
kono
parents:
diff changeset
2279 (gcc::jit::recording::from_printf): New factory function.
kono
parents:
diff changeset
2280 (gcc::jit::recording::make_debug_string): New.
kono
parents:
diff changeset
2281
kono
parents:
diff changeset
2282 (gcc::jit::recording::location::make_debug_string): New.
kono
parents:
diff changeset
2283
kono
parents:
diff changeset
2284 (gcc::jit::recording::type::dereference): New pure-virtual
kono
parents:
diff changeset
2285 function.
kono
parents:
diff changeset
2286 (gcc::jit::recording::type::accepts_writes_from): New virtual
kono
parents:
diff changeset
2287 function.
kono
parents:
diff changeset
2288 (gcc::jit::recording::type::unqualified): New virtual function.
kono
parents:
diff changeset
2289
kono
parents:
diff changeset
2290 (gcc::jit::recording::memento_of_get_type::dereference): New.
kono
parents:
diff changeset
2291 (gcc::jit::recording::memento_of_get_type::
kono
parents:
diff changeset
2292 accepts_writes_from): New.
kono
parents:
diff changeset
2293 (gcc::jit::recording::memento_of_get_type::make_debug_string):
kono
parents:
diff changeset
2294 New.
kono
parents:
diff changeset
2295
kono
parents:
diff changeset
2296 (gcc::jit::recording::memento_of_get_pointer::make_debug_string):
kono
parents:
diff changeset
2297 New.
kono
parents:
diff changeset
2298 (gcc::jit::recording::memento_of_get_pointer::dereference): New.
kono
parents:
diff changeset
2299 New.
kono
parents:
diff changeset
2300
kono
parents:
diff changeset
2301 (gcc::jit::recording::memento_of_get_const::make_debug_string):
kono
parents:
diff changeset
2302 New.
kono
parents:
diff changeset
2303 (gcc::jit::recording::memento_of_get_const::dereference): New.
kono
parents:
diff changeset
2304 New.
kono
parents:
diff changeset
2305 (gcc::jit::recording::memento_of_get_const::accepts_writes_from):
kono
parents:
diff changeset
2306 New.
kono
parents:
diff changeset
2307 (gcc::jit::recording::memento_of_get_const::unqualified): New.
kono
parents:
diff changeset
2308
kono
parents:
diff changeset
2309 (gcc::jit::recording::field): New field m_container, for the
kono
parents:
diff changeset
2310 containing struct (or union, if we implement that).
kono
parents:
diff changeset
2311 (gcc::jit::recording::field::get_type): New.
kono
parents:
diff changeset
2312 (gcc::jit::recording::field::get_container): New.
kono
parents:
diff changeset
2313 (gcc::jit::recording::field:set_container): New.
kono
parents:
diff changeset
2314 (gcc::jit::recording::field::make_debug_string): New.
kono
parents:
diff changeset
2315
kono
parents:
diff changeset
2316 (gcc::jit::recording::struct_::struct_): Move ctor implementation
kono
parents:
diff changeset
2317 from here into internal-api.c.
kono
parents:
diff changeset
2318 (gcc::jit::recording::struct_::dereference): New.
kono
parents:
diff changeset
2319 (gcc::jit::recording::struct_::make_debug_string): New.
kono
parents:
diff changeset
2320
kono
parents:
diff changeset
2321 (gcc::jit::recording::rvalue::m_type): New field.
kono
parents:
diff changeset
2322 (gcc::jit::recording::rvalue::rvalue): Require a non-NULL type for
kono
parents:
diff changeset
2323 new rvalue instances.
kono
parents:
diff changeset
2324 (gcc::jit::recording::rvalue::get_type): New accessor.
kono
parents:
diff changeset
2325
kono
parents:
diff changeset
2326 (gcc::jit::recording::lvalue): Eliminate field m_type in favor of
kono
parents:
diff changeset
2327 that within the rvalue base class.
kono
parents:
diff changeset
2328
kono
parents:
diff changeset
2329 (gcc::jit::recording::param::make_debug_string): New.
kono
parents:
diff changeset
2330
kono
parents:
diff changeset
2331 (gcc::jit::recording::function::get_return_type): New accessor.
kono
parents:
diff changeset
2332 (gcc::jit::recording::function::make_debug_string): New.
kono
parents:
diff changeset
2333
kono
parents:
diff changeset
2334 (gcc::jit::recording::label::make_debug_string): New.
kono
parents:
diff changeset
2335
kono
parents:
diff changeset
2336 (gcc::jit::recording::global): Eliminate field m_type in favor of
kono
parents:
diff changeset
2337 that within the rvalue ultimate base class (via lvalue).
kono
parents:
diff changeset
2338 (gcc::jit::recording::make_debug_string): New.
kono
parents:
diff changeset
2339
kono
parents:
diff changeset
2340 (gcc::jit::recording::memento_of_new_rvalue_from_int): Eliminate
kono
parents:
diff changeset
2341 field m_type in favor of that within the rvalue base class.
kono
parents:
diff changeset
2342 (gcc::jit::recording::memento_of_new_rvalue_from_int::
kono
parents:
diff changeset
2343 make_debug_string): New.
kono
parents:
diff changeset
2344
kono
parents:
diff changeset
2345 (gcc::jit::recording::memento_of_new_rvalue_from_double): Eliminate
kono
parents:
diff changeset
2346 field m_type in favor of that within the rvalue base class.
kono
parents:
diff changeset
2347 (gcc::jit::recording::memento_of_new_rvalue_from_double::
kono
parents:
diff changeset
2348 make_debug_string): New.
kono
parents:
diff changeset
2349
kono
parents:
diff changeset
2350 (gcc::jit::recording::memento_of_new_rvalue_from_ptr): Eliminate
kono
parents:
diff changeset
2351 field m_type in favor of that within the rvalue base class.
kono
parents:
diff changeset
2352 (gcc::jit::recording::memento_of_new_rvalue_from_ptr::
kono
parents:
diff changeset
2353 make_debug_string): New.
kono
parents:
diff changeset
2354
kono
parents:
diff changeset
2355 (gcc::jit::recording::memento_of_new_string_literal::
kono
parents:
diff changeset
2356 memento_of_new_string_literal): Initialize type.
kono
parents:
diff changeset
2357 (gcc::jit::recording::memento_of_new_string_literal::
kono
parents:
diff changeset
2358 make_debug_string): New.
kono
parents:
diff changeset
2359
kono
parents:
diff changeset
2360 (gcc::jit::recording::unary_op): Eliminate field m_result_type in
kono
parents:
diff changeset
2361 favor of m_type within the rvalue base class.
kono
parents:
diff changeset
2362 (gcc::jit::recording::unary_op::make_debug_string): New.
kono
parents:
diff changeset
2363
kono
parents:
diff changeset
2364 (gcc::jit::recording::binary_op): Eliminate field m_result_type in
kono
parents:
diff changeset
2365 favor of m_type within the rvalue base class.
kono
parents:
diff changeset
2366 (gcc::jit::recording::binary_op::make_debug_string): New.
kono
parents:
diff changeset
2367
kono
parents:
diff changeset
2368 (gcc::jit::recording::comparison): Eliminate field m_result_type
kono
parents:
diff changeset
2369 in favor of m_type within the rvalue base class.
kono
parents:
diff changeset
2370 (gcc::jit::recording::comparison::make_debug_string): New.
kono
parents:
diff changeset
2371
kono
parents:
diff changeset
2372 (gcc::jit::recording::make_debug_string): New.
kono
parents:
diff changeset
2373
kono
parents:
diff changeset
2374 (gcc::jit::recording::array_lookup::array_lookup): Initialize type
kono
parents:
diff changeset
2375 by dereferencing the type of the pointer.
kono
parents:
diff changeset
2376 (gcc::jit::recording::array_lookup::make_debug_string): New.
kono
parents:
diff changeset
2377
kono
parents:
diff changeset
2378 (gcc::jit::recording::access_field_of_lvalue::
kono
parents:
diff changeset
2379 access_field_of_lvalue): Initialize type from that of the field.
kono
parents:
diff changeset
2380 (gcc::jit::recording::access_field_of_lvalue::
kono
parents:
diff changeset
2381 make_debug_string): New.
kono
parents:
diff changeset
2382
kono
parents:
diff changeset
2383 (gcc::jit::recording::access_field_rvalue::
kono
parents:
diff changeset
2384 access_field_of_rvalue): Initialize type from that of the field.
kono
parents:
diff changeset
2385 (gcc::jit::recording::access_field_rvalue::make_debug_string):
kono
parents:
diff changeset
2386 New.
kono
parents:
diff changeset
2387
kono
parents:
diff changeset
2388 (gcc::jit::recording::dereference_field_rvalue::
kono
parents:
diff changeset
2389 dereference_field_rvalue): Initialize type from that of the field.
kono
parents:
diff changeset
2390 (gcc::jit::recording::dereference_field_rvalue::
kono
parents:
diff changeset
2391 make_debug_string): New.
kono
parents:
diff changeset
2392
kono
parents:
diff changeset
2393 (gcc::jit::recording::dereference_rvalue::dereference_rvalue):
kono
parents:
diff changeset
2394 Initialize type by dereferencing the type of the pointer.
kono
parents:
diff changeset
2395 (gcc::jit::recording::dereference_rvalue::make_debug_string): New.
kono
parents:
diff changeset
2396
kono
parents:
diff changeset
2397 (gcc::jit::recording::get_address_of_lvalue::
kono
parents:
diff changeset
2398 get_address_of_lvalue): Initialize type by dereferencing the type
kono
parents:
diff changeset
2399 of the pointer.
kono
parents:
diff changeset
2400 (gcc::jit::recording::get_address_of_lvalue::make_debug_string):
kono
parents:
diff changeset
2401 New.
kono
parents:
diff changeset
2402
kono
parents:
diff changeset
2403 (gcc::jit::recording::local): Eliminate field m_type in favor of
kono
parents:
diff changeset
2404 that within the rvalue ultimate base class (via lvalue).
kono
parents:
diff changeset
2405 (gcc::jit::recording::make_debug_string): New.
kono
parents:
diff changeset
2406
kono
parents:
diff changeset
2407 (gcc::jit::recording::eval::make_debug_string): New.
kono
parents:
diff changeset
2408 (gcc::jit::recording::assignment::make_debug_string): New.
kono
parents:
diff changeset
2409 (gcc::jit::recording::assignment_op::make_debug_string): New.
kono
parents:
diff changeset
2410 (gcc::jit::recording::comment::make_debug_string): New.
kono
parents:
diff changeset
2411 (gcc::jit::recording::conditional::make_debug_string): New.
kono
parents:
diff changeset
2412 (gcc::jit::recording::place_label::make_debug_string): New.
kono
parents:
diff changeset
2413 (gcc::jit::recording::jump::make_debug_string): New.
kono
parents:
diff changeset
2414 (gcc::jit::recording::return_::make_debug_string): New.
kono
parents:
diff changeset
2415 (gcc::jit::recording::loop::make_debug_string): New.
kono
parents:
diff changeset
2416 (gcc::jit::recording::loop_end::make_debug_string): New.
kono
parents:
diff changeset
2417
kono
parents:
diff changeset
2418 * internal-api.c (gcc::jit::recording::context::context):
kono
parents:
diff changeset
2419 Initialize m_FILE_type and m_basic_types.
kono
parents:
diff changeset
2420 (gcc::jit::recording::context::record): Move here from
kono
parents:
diff changeset
2421 internal-api.h.
kono
parents:
diff changeset
2422 (gcc::jit::recording::context::replay_into): Add a disabled way to
kono
parents:
diff changeset
2423 log everything during a replay, exercising the stringification
kono
parents:
diff changeset
2424 machinery.
kono
parents:
diff changeset
2425 (gcc::jit::recording::context::get_type): Cache and reuse the
kono
parents:
diff changeset
2426 types, so that repeated calls on the context give the same object.
kono
parents:
diff changeset
2427 (gcc::jit::recording::context::get_opaque_FILE_type): New, for
kono
parents:
diff changeset
2428 the result of dereferencing (FILE*), mostly so that fuzz-testing
kono
parents:
diff changeset
2429 that tries this gets something sane back.
kono
parents:
diff changeset
2430 (gcc::jit::recording::memento::get_debug_string): New method,
kono
parents:
diff changeset
2431 giving a way to easily get a descriptive (const char *) for
kono
parents:
diff changeset
2432 an API entity. Internally, it lazily calls the make_debug_string
kono
parents:
diff changeset
2433 virtual function, storing the result in m_debug_string.
kono
parents:
diff changeset
2434
kono
parents:
diff changeset
2435 (gcc::jit::recording::string::string): Rename field m_copy to m_buffer.
kono
parents:
diff changeset
2436 (gcc::jit::recording::string::~string): Likewise.
kono
parents:
diff changeset
2437 (gcc::jit::recording::string::from_printf): New factory function,
kono
parents:
diff changeset
2438 to make it easy to implement the make_debug_string hooks.
kono
parents:
diff changeset
2439
kono
parents:
diff changeset
2440 (gcc::jit::recording::string::make_debug_string): New.
kono
parents:
diff changeset
2441
kono
parents:
diff changeset
2442 (gcc::jit::recording::location::make_debug_string): New.
kono
parents:
diff changeset
2443
kono
parents:
diff changeset
2444 (gcc::jit::recording::memento_of_get_type::dereference): New.
kono
parents:
diff changeset
2445
kono
parents:
diff changeset
2446 (get_type_strings): New table of strings, for use by...
kono
parents:
diff changeset
2447 (gcc::jit::recording::memento_of_get_type::make_debug_string): New.
kono
parents:
diff changeset
2448
kono
parents:
diff changeset
2449 (gcc::jit::recording::memento_of_get_pointer::make_debug_string): New.
kono
parents:
diff changeset
2450
kono
parents:
diff changeset
2451 (gcc::jit::recording::memento_of_get_const::make_debug_string): New.
kono
parents:
diff changeset
2452
kono
parents:
diff changeset
2453 (gcc::jit::recording::field::make_debug_string): New.
kono
parents:
diff changeset
2454
kono
parents:
diff changeset
2455 (gcc::jit::recording::struct_::struct_): Move here from
kono
parents:
diff changeset
2456 internal-api.h. Mark all fields as belonging to the new struct.
kono
parents:
diff changeset
2457
kono
parents:
diff changeset
2458 (gcc::jit::recording::struct_::dereference): New.
kono
parents:
diff changeset
2459 (gcc::jit::recording::struct_::make_debug_string): New.
kono
parents:
diff changeset
2460
kono
parents:
diff changeset
2461 (gcc::jit::recording::function::make_debug_string): New.
kono
parents:
diff changeset
2462
kono
parents:
diff changeset
2463 (gcc::jit::recording::label::make_debug_string): New.
kono
parents:
diff changeset
2464
kono
parents:
diff changeset
2465 (gcc::jit::recording::memento_of_new_rvalue_from_int::
kono
parents:
diff changeset
2466 make_debug_string): New.
kono
parents:
diff changeset
2467 (gcc::jit::recording::memento_of_new_rvalue_from_double::
kono
parents:
diff changeset
2468 make_debug_string): New.
kono
parents:
diff changeset
2469 (gcc::jit::recording::memento_of_new_rvalue_from_ptr::
kono
parents:
diff changeset
2470 make_debug_string): New.
kono
parents:
diff changeset
2471 (gcc::jit::recording::memento_of_new_string_literal::
kono
parents:
diff changeset
2472 make_debug_string): New.
kono
parents:
diff changeset
2473
kono
parents:
diff changeset
2474 (gcc::jit::recording::unary_op::replay_into): Use get_type ()
kono
parents:
diff changeset
2475 rather than the now-defunct m_result_type.
kono
parents:
diff changeset
2476 (gcc::jit::recording::binary_op::replay_into): Likewise.
kono
parents:
diff changeset
2477
kono
parents:
diff changeset
2478 (unary_op_strings): New table of strings for use by...
kono
parents:
diff changeset
2479 (gcc::jit::recording::unary_op::make_debug_string): New.
kono
parents:
diff changeset
2480
kono
parents:
diff changeset
2481 (binary_op_strings): New table of strings for use by...
kono
parents:
diff changeset
2482 (gcc::jit::recording::binary_op::make_debug_string): New.
kono
parents:
diff changeset
2483
kono
parents:
diff changeset
2484 (comparison_strings): New table of strings for use by...
kono
parents:
diff changeset
2485 (gcc::jit::recording::comparison::make_debug_string): New.
kono
parents:
diff changeset
2486
kono
parents:
diff changeset
2487 (gcc::jit::recording::call::call): Initialize the type.
kono
parents:
diff changeset
2488 (gcc::jit::recording::call::make_debug_string): New.
kono
parents:
diff changeset
2489
kono
parents:
diff changeset
2490 (gcc::jit::recording::array_lookup::make_debug_string): New.
kono
parents:
diff changeset
2491 (gcc::jit::recording::access_field_of_lvalue::
kono
parents:
diff changeset
2492 make_debug_string): New.
kono
parents:
diff changeset
2493 (gcc::jit::recording::access_field_rvalue::
kono
parents:
diff changeset
2494 make_debug_string): New.
kono
parents:
diff changeset
2495 (gcc::jit::recording::dereference_field_rvalue::
kono
parents:
diff changeset
2496 make_debug_string): New.
kono
parents:
diff changeset
2497 (gcc::jit::recording::dereference_rvalue::make_debug_string): New.
kono
parents:
diff changeset
2498 (gcc::jit::recording::get_address_of_lvalue::
kono
parents:
diff changeset
2499 make_debug_string): New.
kono
parents:
diff changeset
2500 (gcc::jit::recording::eval::make_debug_string): New.
kono
parents:
diff changeset
2501 (gcc::jit::recording::assignment::make_debug_string): New.
kono
parents:
diff changeset
2502 (gcc::jit::recording::assignment_op::make_debug_string): New.
kono
parents:
diff changeset
2503 (gcc::jit::recording::comment::make_debug_string): New.
kono
parents:
diff changeset
2504 (gcc::jit::recording::conditional::make_debug_string): New.
kono
parents:
diff changeset
2505 (gcc::jit::recording::place_label::make_debug_string): New.
kono
parents:
diff changeset
2506 (gcc::jit::recording::jump::make_debug_string): New.
kono
parents:
diff changeset
2507 (gcc::jit::recording::return_::make_debug_string): New.
kono
parents:
diff changeset
2508 (gcc::jit::recording::loop::make_debug_string): New.
kono
parents:
diff changeset
2509 (gcc::jit::recording::loop_end::make_debug_string): New.
kono
parents:
diff changeset
2510
kono
parents:
diff changeset
2511 2014-01-29 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
2512
kono
parents:
diff changeset
2513 * libgccjit.h (gcc_jit_lvalue_access_field): Require
kono
parents:
diff changeset
2514 a (gcc_jit_field *) rather than a field name.
kono
parents:
diff changeset
2515 (gcc_jit_rvalue_access_field): Likewise.
kono
parents:
diff changeset
2516 (gcc_jit_rvalue_dereference_field): Likewise.
kono
parents:
diff changeset
2517
kono
parents:
diff changeset
2518 * libgccjit.c (gcc_jit_lvalue_access_field): Require
kono
parents:
diff changeset
2519 a (gcc_jit_field *) rather than a field name.
kono
parents:
diff changeset
2520 (gcc_jit_rvalue_access_field): Likewise.
kono
parents:
diff changeset
2521 (gcc_jit_rvalue_dereference_field): Likewise.
kono
parents:
diff changeset
2522
kono
parents:
diff changeset
2523 * internal-api.c (gcc::jit::recording::rvalue::access_field):
kono
parents:
diff changeset
2524 Require a field rather than a fieldname string.
kono
parents:
diff changeset
2525 (gcc::jit::recording::rvalue::dereference_field): Likewise.
kono
parents:
diff changeset
2526 (gcc::jit::recording::lvalue::access_field): Likewise.
kono
parents:
diff changeset
2527
kono
parents:
diff changeset
2528 (gcc::jit::recording::access_field_of_lvalue::replay_into): Update
kono
parents:
diff changeset
2529 given that this now has a field, rather than a fieldname.
kono
parents:
diff changeset
2530 (gcc::jit::recording::access_field_rvalue::replay_into): Likewise.
kono
parents:
diff changeset
2531 (gcc::jit::recording::dereference_field_rvalue::replay_into): Likewise.
kono
parents:
diff changeset
2532
kono
parents:
diff changeset
2533 (get_field): Delete, as we no longer need to convert
kono
parents:
diff changeset
2534 from (struct, identifier) pairs to fields, instead directly using
kono
parents:
diff changeset
2535 fields.
kono
parents:
diff changeset
2536
kono
parents:
diff changeset
2537 (gcc::jit::playback::context::new_field_access): Require a field
kono
parents:
diff changeset
2538 rather than a fieldname, removing the need to look up the field by
kono
parents:
diff changeset
2539 name within the struct.
kono
parents:
diff changeset
2540
kono
parents:
diff changeset
2541 (gcc::jit::playback::lvalue::access_field): Likewise.
kono
parents:
diff changeset
2542 (gcc::jit::playback::rvalue::access_field): Likewise.
kono
parents:
diff changeset
2543 (gcc::jit::playback::rvalue::dereference_field): Likewise.
kono
parents:
diff changeset
2544
kono
parents:
diff changeset
2545 * internal-api.h (gcc::jit::recording::rvalue::access_field):
kono
parents:
diff changeset
2546 Require a field rather than a fieldname string.
kono
parents:
diff changeset
2547 (gcc::jit::recording::rvalue::dereference_field): Likewise.
kono
parents:
diff changeset
2548 (gcc::jit::recording::lvalue::access_field): Likewise.
kono
parents:
diff changeset
2549
kono
parents:
diff changeset
2550 (gcc::jit::recording::access_field_of_lvalue::access_field_of_lvalue):
kono
parents:
diff changeset
2551 Likewise.
kono
parents:
diff changeset
2552 (gcc::jit::recording::access_field_of_lvalue::m_fieldname): Drop
kono
parents:
diff changeset
2553 string field in favor of...
kono
parents:
diff changeset
2554 (gcc::jit::recording::access_field_of_lvalue::m_field):
kono
parents:
diff changeset
2555 ..."field" field, as it were.
kono
parents:
diff changeset
2556
kono
parents:
diff changeset
2557 (gcc::jit::recording::access_field_of_rvalue::access_field_of_rvalue):
kono
parents:
diff changeset
2558 Likewise.
kono
parents:
diff changeset
2559 (gcc::jit::recording::access_field_of_rvalue::m_fieldname): Drop
kono
parents:
diff changeset
2560 string field in favor of...
kono
parents:
diff changeset
2561 (gcc::jit::recording::access_field_of_rvalue::m_field):
kono
parents:
diff changeset
2562 ..."field" field.
kono
parents:
diff changeset
2563
kono
parents:
diff changeset
2564 (gcc::jit::recording::dereference_field_rvalue::
kono
parents:
diff changeset
2565 dereference_field_rvalue): Likewise.
kono
parents:
diff changeset
2566 (gcc::jit::recording::dereference_field_rvalue::m_fieldname): Drop
kono
parents:
diff changeset
2567 string field in favor of...
kono
parents:
diff changeset
2568 (gcc::jit::recording::dereference_field_rvalue::m_field):
kono
parents:
diff changeset
2569 ..."field" field.
kono
parents:
diff changeset
2570
kono
parents:
diff changeset
2571 (gcc::jit::playback::context::new_field_access): Require a field
kono
parents:
diff changeset
2572 rather than a fieldname string.
kono
parents:
diff changeset
2573 (gcc::jit::playback::context::access_field): Likewise.
kono
parents:
diff changeset
2574 (gcc::jit::playback::context::dereference_field): Likewise.
kono
parents:
diff changeset
2575 (gcc::jit::playback::rvalue::access_field):
kono
parents:
diff changeset
2576
kono
parents:
diff changeset
2577 2014-01-28 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
2578
kono
parents:
diff changeset
2579 * libgccjit.h (gcc_jit_context_new_child_context): New function.
kono
parents:
diff changeset
2580
kono
parents:
diff changeset
2581 * libgccjit.map (gcc_jit_context_new_child_context): New function.
kono
parents:
diff changeset
2582
kono
parents:
diff changeset
2583 * libgccjit.c (gcc_jit_context): Make the constructor explicit,
kono
parents:
diff changeset
2584 with a parent context as a parameter.
kono
parents:
diff changeset
2585 (gcc_jit_context_acquire): Create context with a NULL parent.
kono
parents:
diff changeset
2586 (gcc_jit_context_new_child_context): New function, creating a
kono
parents:
diff changeset
2587 context with the given parent.
kono
parents:
diff changeset
2588
kono
parents:
diff changeset
2589 * internal-api.h (gcc::jit::recording::context::context): New
kono
parents:
diff changeset
2590 explicit constructor, taking a parent context as a parameter.
kono
parents:
diff changeset
2591 (gcc::jit::recording::context::m_parent_ctxt): New field.
kono
parents:
diff changeset
2592
kono
parents:
diff changeset
2593 * internal-api.c (gcc::jit::recording::context::context): New
kono
parents:
diff changeset
2594 explicit constructor, taking a parent context as a parameter.
kono
parents:
diff changeset
2595 (gcc::jit::recording::context::replay_into): Replay parent contexts
kono
parents:
diff changeset
2596 before replaying the context itself.
kono
parents:
diff changeset
2597
kono
parents:
diff changeset
2598 2014-01-27 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
2599
kono
parents:
diff changeset
2600 * internal-api.c (gcc::jit::playback::context::compile): Removal
kono
parents:
diff changeset
2601 of the code-creation callback (96b218c9a1d5f39fb649e02c0e77586b180e8516)
kono
parents:
diff changeset
2602 accidentally removed the implementation of
kono
parents:
diff changeset
2603 GCC_JIT_BOOL_OPTION_DUMP_GENERATED_CODE; reinstate it.
kono
parents:
diff changeset
2604
kono
parents:
diff changeset
2605 2014-01-27 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
2606
kono
parents:
diff changeset
2607 * internal-api (gcc::jit::recording::context::new_call): Verify
kono
parents:
diff changeset
2608 the argument count of the call against the parameter count of the
kono
parents:
diff changeset
2609 function, issuing an error if there's a mismatch.
kono
parents:
diff changeset
2610
kono
parents:
diff changeset
2611 * internal-api.h (gcc::jit::recording::function::get_name): New.
kono
parents:
diff changeset
2612 * (gcc::jit::recording::function::get_params): New.
kono
parents:
diff changeset
2613 * (gcc::jit::recording::function::is_variadic): New.
kono
parents:
diff changeset
2614
kono
parents:
diff changeset
2615 2014-01-27 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
2616
kono
parents:
diff changeset
2617 * libgccjit.h (enum gcc_jit_binary_op): Remove
kono
parents:
diff changeset
2618 GCC_JIT_BINARY_OP_FLOATING_DIVIDE, which I accidentally added
kono
parents:
diff changeset
2619 as part of a880c0d9c642730550f39d328f29a1d9935cb07e.
kono
parents:
diff changeset
2620
kono
parents:
diff changeset
2621 2014-01-24 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
2622
kono
parents:
diff changeset
2623 * libgccjit.h: Update comments to eliminate the code-creation
kono
parents:
diff changeset
2624 callback. All "contextual" objects change from merely being
kono
parents:
diff changeset
2625 "alive" during the callback to having a lifetime equal to that
kono
parents:
diff changeset
2626 of the context they are created within, with automatic cleanup
kono
parents:
diff changeset
2627 when the context is released.
kono
parents:
diff changeset
2628 (gcc_jit_code_callback): Delete.
kono
parents:
diff changeset
2629 (gcc_jit_context_set_code_factory): Delete.
kono
parents:
diff changeset
2630
kono
parents:
diff changeset
2631 * libgccjit.map (gcc_jit_context_set_code_factory): Delete.
kono
parents:
diff changeset
2632
kono
parents:
diff changeset
2633 * dummy-frontend.c (my_walker): Update for rename of the singleton
kono
parents:
diff changeset
2634 reference-owning context.
kono
parents:
diff changeset
2635 (jit_langhook_parse_file): Rather than run a client-provided
kono
parents:
diff changeset
2636 callback, we now replay a recording of the client activity.
kono
parents:
diff changeset
2637
kono
parents:
diff changeset
2638 * internal-api.h (gcc::jit): Split the existing API into two
kono
parents:
diff changeset
2639 copies...
kono
parents:
diff changeset
2640 (gcc::jit::recording): ...a class hierarchy used to implement
kono
parents:
diff changeset
2641 the client-facing API, which records the API calls made to it
kono
parents:
diff changeset
2642 and...
kono
parents:
diff changeset
2643 (gcc::jit::playback): ...a class hierarchy used within the
kono
parents:
diff changeset
2644 dummy GCC frontend, which plays back the recorded API calls once
kono
parents:
diff changeset
2645 GCC is initialized.
kono
parents:
diff changeset
2646
kono
parents:
diff changeset
2647 * internal-api.c (gcc::jit::recording::playback_location): New
kono
parents:
diff changeset
2648 API, in which client API calls are recorded as a list of "memento"
kono
parents:
diff changeset
2649 objects, to be played back into GCC when the dummy frontend runs.
kono
parents:
diff changeset
2650 (gcc::jit::recording::playback_string): Likewise.
kono
parents:
diff changeset
2651 (gcc::jit::recording::playback_label): Likewise.
kono
parents:
diff changeset
2652 (gcc::jit::recording::context::~context): Likewise.
kono
parents:
diff changeset
2653 (gcc::jit::recording::context::replay_into): Likewise.
kono
parents:
diff changeset
2654 (gcc::jit::recording::context::disassociate_from_playback): Likewise.
kono
parents:
diff changeset
2655 (gcc::jit::recording::context::new_string): Likewise.
kono
parents:
diff changeset
2656 (gcc::jit::recording::context::new_location): Likewise.
kono
parents:
diff changeset
2657 (gcc::jit::recording::context::get_type): Likewise.
kono
parents:
diff changeset
2658 (gcc::jit::recording::context::new_field): Likewise.
kono
parents:
diff changeset
2659 (gcc::jit::recording::context::new_struct_type): Likewise.
kono
parents:
diff changeset
2660 (gcc::jit::recording::context::new_param): Likewise.
kono
parents:
diff changeset
2661 (gcc::jit::recording::context::new_function): Likewise.
kono
parents:
diff changeset
2662 (gcc::jit::recording::context::new_global): Likewise.
kono
parents:
diff changeset
2663 (gcc::jit::recording::context::new_rvalue_from_int): Likewise.
kono
parents:
diff changeset
2664 (gcc::jit::recording::context::new_rvalue_from_double): Likewise.
kono
parents:
diff changeset
2665 (gcc::jit::recording::context::new_rvalue_from_ptr): Likewise.
kono
parents:
diff changeset
2666 (gcc::jit::recording::context::new_string_literal): Likewise.
kono
parents:
diff changeset
2667 (gcc::jit::recording::context::new_unary_op): Likewise.
kono
parents:
diff changeset
2668 (gcc::jit::recording::context::new_binary_op): Likewise.
kono
parents:
diff changeset
2669 (gcc::jit::recording::context::new_comparison): Likewise.
kono
parents:
diff changeset
2670 (gcc::jit::recording::context::new_call): Likewise.
kono
parents:
diff changeset
2671 (gcc::jit::recording::context::new_array_lookup): Likewise.
kono
parents:
diff changeset
2672 (gcc::jit::recording::string::string): Likewise.
kono
parents:
diff changeset
2673 (gcc::jit::recording::string::~string): Likewise.
kono
parents:
diff changeset
2674 (gcc::jit::recording::location::replay_into): Likewise.
kono
parents:
diff changeset
2675 (gcc::jit::recording::type::get_pointer): Likewise.
kono
parents:
diff changeset
2676 (gcc::jit::recording::type::get_const): Likewise.
kono
parents:
diff changeset
2677 (gcc::jit::recording::memento_of_get_type::replay_into): Likewise.
kono
parents:
diff changeset
2678 (gcc::jit::recording::memento_of_get_pointer::replay_into): Likewise.
kono
parents:
diff changeset
2679 (gcc::jit::recording::memento_of_get_const::replay_into): Likewise.
kono
parents:
diff changeset
2680 (gcc::jit::recording::field::replay_into): Likewise.
kono
parents:
diff changeset
2681 (gcc::jit::recording::struct_::replay_into): Likewise.
kono
parents:
diff changeset
2682 (gcc::jit::recording::rvalue::access_field): Likewise.
kono
parents:
diff changeset
2683 (gcc::jit::recording::rvalue::dereference_field): Likewise.
kono
parents:
diff changeset
2684 (gcc::jit::recording::rvalue::dereference): Likewise.
kono
parents:
diff changeset
2685 (gcc::jit::recording::lvalue::access_field): Likewise.
kono
parents:
diff changeset
2686 (gcc::jit::recording::lvalue::get_address): Likewise.
kono
parents:
diff changeset
2687 (gcc::jit::recording::param::replay_into): Likewise.
kono
parents:
diff changeset
2688 (gcc::jit::recording::function::function): Likewise.
kono
parents:
diff changeset
2689 (gcc::jit::recording::function::replay_into): Likewise.
kono
parents:
diff changeset
2690 (gcc::jit::recording::function::new_local): Likewise.
kono
parents:
diff changeset
2691 (gcc::jit::recording::function::new_forward_label): Likewise.
kono
parents:
diff changeset
2692 (gcc::jit::recording::function::add_eval): Likewise.
kono
parents:
diff changeset
2693 (gcc::jit::recording::function::add_assignment): Likewise.
kono
parents:
diff changeset
2694 (gcc::jit::recording::function::add_assignment_op): Likewise.
kono
parents:
diff changeset
2695 (gcc::jit::recording::function::add_comment): Likewise.
kono
parents:
diff changeset
2696 (gcc::jit::recording::function::add_conditional): Likewise.
kono
parents:
diff changeset
2697 (gcc::jit::recording::function::add_label): Likewise.
kono
parents:
diff changeset
2698 (gcc::jit::recording::function::place_forward_label): Likewise.
kono
parents:
diff changeset
2699 (gcc::jit::recording::function::add_jump): Likewise.
kono
parents:
diff changeset
2700 (gcc::jit::recording::function::add_return): Likewise.
kono
parents:
diff changeset
2701 (gcc::jit::recording::function::new_loop): Likewise.
kono
parents:
diff changeset
2702 (gcc::jit::recording::label::replay_into): Likewise.
kono
parents:
diff changeset
2703 (gcc::jit::recording::global::replay_into): Likewise.
kono
parents:
diff changeset
2704 (gcc::jit::recording::memento_of_new_rvalue_from_int::replay_into):
kono
parents:
diff changeset
2705 Likewise.
kono
parents:
diff changeset
2706 (gcc::jit::recording::memento_of_new_rvalue_from_double::replay_into):
kono
parents:
diff changeset
2707 Likewise.
kono
parents:
diff changeset
2708 (gcc::jit::recording::memento_of_new_rvalue_from_ptr::replay_into):
kono
parents:
diff changeset
2709 Likewise.
kono
parents:
diff changeset
2710 (gcc::jit::recording::memento_of_new_string_literal::replay_into):
kono
parents:
diff changeset
2711 Likewise.
kono
parents:
diff changeset
2712 (gcc::jit::recording::unary_op::replay_into): Likewise.
kono
parents:
diff changeset
2713 (gcc::jit::recording::binary_op::replay_into): Likewise.
kono
parents:
diff changeset
2714 (gcc::jit::recording::comparison::replay_into): Likewise.
kono
parents:
diff changeset
2715 (gcc::jit::recording::call::call): Likewise.
kono
parents:
diff changeset
2716 (gcc::jit::recording::call::replay_into): Likewise.
kono
parents:
diff changeset
2717 (gcc::jit::recording::array_lookup::replay_into): Likewise.
kono
parents:
diff changeset
2718 (gcc::jit::recording::access_field_of_lvalue::replay_into): Likewise.
kono
parents:
diff changeset
2719 (gcc::jit::recording::access_field_rvalue::replay_into): Likewise.
kono
parents:
diff changeset
2720 (gcc::jit::recording::dereference_field_rvalue::replay_into): Likewise.
kono
parents:
diff changeset
2721 (gcc::jit::recording::dereference_rvalue::replay_into): Likewise.
kono
parents:
diff changeset
2722 (gcc::jit::recording::get_address_of_lvalue::replay_into): Likewise.
kono
parents:
diff changeset
2723 (gcc::jit::recording::local::replay_into): Likewise.
kono
parents:
diff changeset
2724 (gcc::jit::recording::eval::replay_into): Likewise.
kono
parents:
diff changeset
2725 (gcc::jit::recording::assignment::replay_into): Likewise.
kono
parents:
diff changeset
2726 (gcc::jit::recording::assignment_op::replay_into): Likewise.
kono
parents:
diff changeset
2727 (gcc::jit::recording::comment::replay_into): Likewise.
kono
parents:
diff changeset
2728 (gcc::jit::recording::conditional::replay_into): Likewise.
kono
parents:
diff changeset
2729 (gcc::jit::recording::place_label::replay_into): Likewise.
kono
parents:
diff changeset
2730 (gcc::jit::recording::jump::replay_into): Likewise.
kono
parents:
diff changeset
2731 (gcc::jit::recording::return_::replay_into): Likewise.
kono
parents:
diff changeset
2732 (gcc::jit::recording::loop::replay_into): Likewise.
kono
parents:
diff changeset
2733 (gcc::jit::recording::loop::end): Likewise.
kono
parents:
diff changeset
2734 (gcc::jit::recording::loop_end::replay_into): Likewise.
kono
parents:
diff changeset
2735
kono
parents:
diff changeset
2736 (gcc::jit::recording::context::set_str_option): Likewise.
kono
parents:
diff changeset
2737 Option setting and error-handling is now "owned" by the recording
kono
parents:
diff changeset
2738 context; the playback context delegates to the recording context
kono
parents:
diff changeset
2739 for these aspects.
kono
parents:
diff changeset
2740 (gcc::jit::recording::context::set_int_option): Likewise.
kono
parents:
diff changeset
2741 (gcc::jit::recording::context::set_bool_option): Likewise.
kono
parents:
diff changeset
2742 (gcc::jit::recording::context::compile): Likewise.
kono
parents:
diff changeset
2743 (gcc::jit::recording::context::add_error): Likewise.
kono
parents:
diff changeset
2744 (gcc::jit::recording::context::add_error_va): Likewise.
kono
parents:
diff changeset
2745 (gcc::jit::recording::context::get_first_error): Likewise.
kono
parents:
diff changeset
2746
kono
parents:
diff changeset
2747 (gcc::jit::context::context): Rename to...
kono
parents:
diff changeset
2748 (gcc::jit::playback::context::context): ...this.
kono
parents:
diff changeset
2749 (gcc::jit::context::~context): Rename to...
kono
parents:
diff changeset
2750 (gcc::jit::playback::context::~context): ...this.
kono
parents:
diff changeset
2751 (gcc::jit::context::gt_ggc_mx): Rename to...
kono
parents:
diff changeset
2752 (gcc::jit::playback::context::gt_ggc_mx): ...this.
kono
parents:
diff changeset
2753
kono
parents:
diff changeset
2754 (gcc::jit::context::set_code_factory): Eliminate.
kono
parents:
diff changeset
2755
kono
parents:
diff changeset
2756 (gcc::jit::context::get_type): Rename to...
kono
parents:
diff changeset
2757 (gcc::jit::playback::context::get_type): ...this.
kono
parents:
diff changeset
2758 (gcc::jit::context::new_field): Rename to...
kono
parents:
diff changeset
2759 (gcc::jit::playback::context::new_field): ...this.
kono
parents:
diff changeset
2760 (gcc::jit::context::new_struct_type): Rename to...
kono
parents:
diff changeset
2761 (gcc::jit::playback::context::new_struct_type): ...this, and
kono
parents:
diff changeset
2762 update to require a vec<field *>.
kono
parents:
diff changeset
2763 (gcc::jit::context::new_param): Rename to...
kono
parents:
diff changeset
2764 (gcc::jit::playback::context::new_param): ...this.
kono
parents:
diff changeset
2765 (gcc::jit::context::new_function): Rename to...
kono
parents:
diff changeset
2766 (gcc::jit::playback::context::new_function): ...this, and update
kono
parents:
diff changeset
2767 to require a vec<param *>.
kono
parents:
diff changeset
2768 (gcc::jit::context::new_global): Rename to...
kono
parents:
diff changeset
2769 (gcc::jit::playback::context::new_global): ...this.
kono
parents:
diff changeset
2770 (gcc::jit::context::new_rvalue_from_int): Rename to...
kono
parents:
diff changeset
2771 (gcc::jit::playback::context::new_rvalue_from_int): ...this.
kono
parents:
diff changeset
2772 (gcc::jit::context::new_rvalue_from_double): Rename to...
kono
parents:
diff changeset
2773 (gcc::jit::playback::context::new_rvalue_from_double): ...this.
kono
parents:
diff changeset
2774 (gcc::jit::context::new_rvalue_from_ptr): Rename to...
kono
parents:
diff changeset
2775 (gcc::jit::playback::context::new_rvalue_from_ptr): ...this.
kono
parents:
diff changeset
2776 (gcc::jit::context::new_string_literal): Rename to...
kono
parents:
diff changeset
2777 (gcc::jit::playback::context::new_string_literal): ...this.
kono
parents:
diff changeset
2778 (gcc::jit::context::as_truth_value): Rename to...
kono
parents:
diff changeset
2779 (gcc::jit::playback::context::as_truth_value): ...this.
kono
parents:
diff changeset
2780 (gcc::jit::context::new_unary_op): Rename to...
kono
parents:
diff changeset
2781 (gcc::jit::playback::context::new_unary_op): ...this.
kono
parents:
diff changeset
2782 (gcc::jit::context::new_binary_op): Rename to...
kono
parents:
diff changeset
2783 (gcc::jit::playback::context::new_binary_op): ...this.
kono
parents:
diff changeset
2784 (gcc::jit::context::new_comparison): Rename to...
kono
parents:
diff changeset
2785 (gcc::jit::playback::context::new_comparison): ...this.
kono
parents:
diff changeset
2786 (gcc::jit::context::new_call): Rename to...
kono
parents:
diff changeset
2787 (gcc::jit::playback::context::new_call): ...this, and update
kono
parents:
diff changeset
2788 to require a vec<rvalue *>.
kono
parents:
diff changeset
2789 (gcc::jit::context::new_array_lookup): Rename to...
kono
parents:
diff changeset
2790 (gcc::jit::playback::context::new_array_lookup): ...this.
kono
parents:
diff changeset
2791 (gcc::jit::context::new_field_access): Rename to...
kono
parents:
diff changeset
2792 (gcc::jit::playback::context::new_field_access): ...this.
kono
parents:
diff changeset
2793 (gcc::jit::context::new_dereference): Rename to...
kono
parents:
diff changeset
2794 (gcc::jit::playback::context::new_dereference): ...this.
kono
parents:
diff changeset
2795
kono
parents:
diff changeset
2796 (gcc::jit::lvalue::access_field): Rename to...
kono
parents:
diff changeset
2797 (gcc::jit::playback::lvalue::access_field): ...this.
kono
parents:
diff changeset
2798 (gcc::jit::lvalue::get_address): Rename to...
kono
parents:
diff changeset
2799 (gcc::jit::playback::lvalue::get_address): ...this.
kono
parents:
diff changeset
2800
kono
parents:
diff changeset
2801 (gcc::jit::rvalue::dereference_field): Rename to...
kono
parents:
diff changeset
2802 (gcc::jit::playback::rvalue::dereference_field): ...this.
kono
parents:
diff changeset
2803
kono
parents:
diff changeset
2804 (gcc::jit::rvalue::dereference): Rename to...
kono
parents:
diff changeset
2805 (gcc::jit::playback::rvalue::dereference): ...this.
kono
parents:
diff changeset
2806
kono
parents:
diff changeset
2807 (gcc::jit::wrapper::operator new): Rename to...
kono
parents:
diff changeset
2808 (gcc::jit::playback::wrapper::operator new): ...this.
kono
parents:
diff changeset
2809
kono
parents:
diff changeset
2810 (gcc::jit::function::function): Rename to...
kono
parents:
diff changeset
2811 (gcc::jit::playback::function::function): ...this.
kono
parents:
diff changeset
2812 (gcc::jit::function::gt_ggc_mx): Rename to...
kono
parents:
diff changeset
2813 (gcc::jit::playback::function::gt_ggc_mx): ...this.
kono
parents:
diff changeset
2814 (gcc::jit::function::get_return_type_as_tree): Rename to...
kono
parents:
diff changeset
2815 (gcc::jit::playback::function::get_return_type_as_tree): ...this.
kono
parents:
diff changeset
2816 (gcc::jit::function::new_local): Rename to...
kono
parents:
diff changeset
2817 (gcc::jit::playback::function::new_local): ...this.
kono
parents:
diff changeset
2818 (gcc::jit::function::new_forward_label): Rename to...
kono
parents:
diff changeset
2819 (gcc::jit::playback::function::new_forward_label): ...this.
kono
parents:
diff changeset
2820 (gcc::jit::function::postprocess): Rename to...
kono
parents:
diff changeset
2821 (gcc::jit::playback::function::postprocess): ...this.
kono
parents:
diff changeset
2822 (gcc::jit::function::add_eval): Rename to...
kono
parents:
diff changeset
2823 (gcc::jit::playback::function::add_eval): ...this.
kono
parents:
diff changeset
2824 (gcc::jit::function::add_assignment): Rename to...
kono
parents:
diff changeset
2825 (gcc::jit::playback::function::add_assignment): ...this.
kono
parents:
diff changeset
2826 (gcc::jit::function::add_comment): Rename to...
kono
parents:
diff changeset
2827 (gcc::jit::playback::function::add_comment): ...this.
kono
parents:
diff changeset
2828 (gcc::jit::function::add_conditional): Rename to...
kono
parents:
diff changeset
2829 (gcc::jit::playback::function::add_conditional): ...this.
kono
parents:
diff changeset
2830 (gcc::jit::function::add_label): Rename to...
kono
parents:
diff changeset
2831 (gcc::jit::playback::function::add_label): ...this.
kono
parents:
diff changeset
2832 (gcc::jit::function::place_forward_label): Rename to...
kono
parents:
diff changeset
2833 (gcc::jit::playback::function::place_forward_label): ...this.
kono
parents:
diff changeset
2834 (gcc::jit::function::add_jump): Rename to...
kono
parents:
diff changeset
2835 (gcc::jit::playback::function::add_jump): ...this.
kono
parents:
diff changeset
2836 (gcc::jit::function::add_return): Rename to...
kono
parents:
diff changeset
2837 (gcc::jit::playback::function::add_return): ...this.
kono
parents:
diff changeset
2838 (gcc::jit::function::new_loop): Rename to...
kono
parents:
diff changeset
2839 (gcc::jit::playback::function::new_loop): ...this.
kono
parents:
diff changeset
2840
kono
parents:
diff changeset
2841 (gcc::jit::label::label): Rename to...
kono
parents:
diff changeset
2842 (gcc::jit::playback::label::label): ...this.
kono
parents:
diff changeset
2843
kono
parents:
diff changeset
2844 (gcc::jit::loop::loop): Rename to...
kono
parents:
diff changeset
2845 (gc::jit::playback::loop::loop): ...this.
kono
parents:
diff changeset
2846 (gcc::jit::loop::end): Rename to...
kono
parents:
diff changeset
2847 (gcc::jit::playback::loop): ...this.
kono
parents:
diff changeset
2848
kono
parents:
diff changeset
2849 (gcc::jit::active_jit_ctxt): Eliminate in favor of...
kono
parents:
diff changeset
2850 (gcc::jit::active_playback_ctxt): ...this.
kono
parents:
diff changeset
2851
kono
parents:
diff changeset
2852 (gcc::jit::context::compile): Rename to...
kono
parents:
diff changeset
2853 (gcc::jit::playback::context::compile): ...this, and eliminate the
kono
parents:
diff changeset
2854 mutex handling; this is done for us by the caller.
kono
parents:
diff changeset
2855
kono
parents:
diff changeset
2856 (gcc::jit::context::invoke_code_factory): Rename to...
kono
parents:
diff changeset
2857 (gcc::jit::playback::context::replay): this. Rather than call
kono
parents:
diff changeset
2858 a client-provided callback, instead replay the recorded API
kono
parents:
diff changeset
2859 calls.
kono
parents:
diff changeset
2860
kono
parents:
diff changeset
2861 (gcc::jit::context::dump_generated_code): Rename to...
kono
parents:
diff changeset
2862 (gcc::jit::playback::context::dump_generated_code): ...this.
kono
parents:
diff changeset
2863
kono
parents:
diff changeset
2864 (location_comparator): Update for renamed types.
kono
parents:
diff changeset
2865
kono
parents:
diff changeset
2866 (gcc::jit::context::handle_locations): Rename to...
kono
parents:
diff changeset
2867 (gcc::jit::playback::context::handle_locations): ...this.
kono
parents:
diff changeset
2868
kono
parents:
diff changeset
2869 (gcc::jit::context::add_error): Rename to...
kono
parents:
diff changeset
2870 (gcc::jit::playback::context::add_error): this, and delegate to
kono
parents:
diff changeset
2871 the recording context's add_error_va.
kono
parents:
diff changeset
2872
kono
parents:
diff changeset
2873 (gcc::jit::context::add_error_va): Rename to...
kono
parents:
diff changeset
2874 (gcc::jit::playback::context::add_error_va): this, and delegate
kono
parents:
diff changeset
2875 to the recording context.
kono
parents:
diff changeset
2876
kono
parents:
diff changeset
2877 (gcc::jit::context::new_location): Rename to...
kono
parents:
diff changeset
2878 (gcc::jit::playback::context::new_location): ...this.
kono
parents:
diff changeset
2879 (gcc::jit::context::set_tree_location): Rename to...
kono
parents:
diff changeset
2880 (gcc::jit::playback::context::set_tree_location): ...this.
kono
parents:
diff changeset
2881 (gcc::jit::context::get_source_file): Rename to...
kono
parents:
diff changeset
2882 (gcc::jit::playback::context::get_source_file): ...this.
kono
parents:
diff changeset
2883 (gcc::jit::source_file::source_file): Rename to...
kono
parents:
diff changeset
2884 (gcc::jit::playback::source_file::source_file): ...this.
kono
parents:
diff changeset
2885 (gcc::jit::source_file::get_source_line): Rename to...
kono
parents:
diff changeset
2886 (gcc::jit::playback::source_file::get_source_line): ...this.
kono
parents:
diff changeset
2887 (gcc::jit::source_line::source_line): Rename to...
kono
parents:
diff changeset
2888 (gcc::jit::playback::source_line::source_line): ...this.
kono
parents:
diff changeset
2889 (gcc::jit::source_line::get_location): Rename to...
kono
parents:
diff changeset
2890 (gcc::jit::playback::source_line::get_location): ...this.
kono
parents:
diff changeset
2891
kono
parents:
diff changeset
2892 (gcc::jit::location::location): Rename to...
kono
parents:
diff changeset
2893 (gcc::jit::playback::location::location): ...this.
kono
parents:
diff changeset
2894
kono
parents:
diff changeset
2895 * libgccjit.c: Update classes to derive from the "jit::recording"
kono
parents:
diff changeset
2896 class hierarchy.
kono
parents:
diff changeset
2897 (RETURN_IF_NOT_INITIAL_CTXT): Eliminate, as it relates to
kono
parents:
diff changeset
2898 code-creation callbacks.
kono
parents:
diff changeset
2899 (RETURN_NULL_IF_NOT_INITIAL_CTXT): Likewise.
kono
parents:
diff changeset
2900 (RETURN_NULL_IF_NOT_CALLBACK_CTXT): Likewise.
kono
parents:
diff changeset
2901 (jit_error): There isn't an "active jit context" anymore, except
kono
parents:
diff changeset
2902 during actual compilation, so simplify the logic here.
kono
parents:
diff changeset
2903 (gcc_jit_context_set_code_factory): Delete.
kono
parents:
diff changeset
2904
kono
parents:
diff changeset
2905 (gcc_jit_context_new_location): Update preconditions now that we
kono
parents:
diff changeset
2906 don't have code-creation callbacks.
kono
parents:
diff changeset
2907 (gcc_jit_context_get_type): Likewise.
kono
parents:
diff changeset
2908 (gcc_jit_type_get_pointer): Likewise.
kono
parents:
diff changeset
2909 (gcc_jit_type_get_const): Likewise.
kono
parents:
diff changeset
2910 (gcc_jit_context_new_field): Likewise.
kono
parents:
diff changeset
2911 (gcc_jit_context_new_struct_type): Likewise.
kono
parents:
diff changeset
2912 (gcc_jit_context_new_param): Likewise.
kono
parents:
diff changeset
2913 (gcc_jit_param_as_lvalue): Likewise.
kono
parents:
diff changeset
2914 (gcc_jit_param_as_rvalue): Likewise.
kono
parents:
diff changeset
2915 (gcc_jit_context_new_function): Likewise.
kono
parents:
diff changeset
2916 (gcc_jit_context_new_function): Likewise.
kono
parents:
diff changeset
2917 (gcc_jit_function_new_forward_label): Likewise.
kono
parents:
diff changeset
2918 (gcc_jit_context_new_global): Likewise.
kono
parents:
diff changeset
2919 (gcc_jit_lvalue_as_rvalue): Likewise.
kono
parents:
diff changeset
2920 (gcc_jit_context_new_rvalue_from_int): Likewise.
kono
parents:
diff changeset
2921 (gcc_jit_context_zero): Likewise.
kono
parents:
diff changeset
2922 (gcc_jit_context_one): Likewise.
kono
parents:
diff changeset
2923 (gcc_jit_context_new_rvalue_from_double): Likewise.
kono
parents:
diff changeset
2924 (gcc_jit_context_new_rvalue_from_ptr): Likewise.
kono
parents:
diff changeset
2925 (gcc_jit_context_new_string_literal): Likewise.
kono
parents:
diff changeset
2926 (gcc_jit_context_new_unary_op): Likewise.
kono
parents:
diff changeset
2927 (gcc_jit_context_new_binary_op): Likewise.
kono
parents:
diff changeset
2928 (gcc_jit_context_new_comparison): Likewise.
kono
parents:
diff changeset
2929 (gcc_jit_context_new_call): Likewise.
kono
parents:
diff changeset
2930 (gcc_jit_context_new_call): Likewise.
kono
parents:
diff changeset
2931 (gcc_jit_context_new_array_lookup): Likewise.
kono
parents:
diff changeset
2932 (gcc_jit_context_set_str_option): Likewise.
kono
parents:
diff changeset
2933 (gcc_jit_context_set_int_option): Likewise.
kono
parents:
diff changeset
2934 (gcc_jit_context_set_bool_option): Likewise.
kono
parents:
diff changeset
2935 (gcc_jit_context_compile): Likewise.
kono
parents:
diff changeset
2936 (gcc_jit_function_add_assignment_op): Likewise. Also,
kono
parents:
diff changeset
2937 reimplement as a separate kind of recording, since we can't know
kono
parents:
diff changeset
2938 the type of the lvalue at recording-time.
kono
parents:
diff changeset
2939
kono
parents:
diff changeset
2940 * notes.txt: Update diagram to reflect the new implementation.
kono
parents:
diff changeset
2941
kono
parents:
diff changeset
2942 2014-01-24 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
2943
kono
parents:
diff changeset
2944 * libgccjit.h (enum gcc_jit_binary_op): We will use the result
kono
parents:
diff changeset
2945 type to determine if GCC_JIT_BINARY_OP_DIVIDE should
kono
parents:
diff changeset
2946 truncate towards zero, or be floating-point division.
kono
parents:
diff changeset
2947
kono
parents:
diff changeset
2948 * internal-api.c (gcc::jit::context::new_binary_op): Likewise.
kono
parents:
diff changeset
2949
kono
parents:
diff changeset
2950 2014-01-24 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
2951
kono
parents:
diff changeset
2952 * internal-api.h (gcc::jit::context::get_str_option): New access
kono
parents:
diff changeset
2953 method.
kono
parents:
diff changeset
2954 (gcc::jit::context::get_int_option): Likewise.
kono
parents:
diff changeset
2955
kono
parents:
diff changeset
2956 * internal-api.c (gcc::jit::context::~context): Use access methods
kono
parents:
diff changeset
2957 for options, rather than direct field access.
kono
parents:
diff changeset
2958 (gcc::jit::context::compile): Likewise.
kono
parents:
diff changeset
2959
kono
parents:
diff changeset
2960 2014-01-23 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
2961
kono
parents:
diff changeset
2962 * libgccjit.h (enum gcc_jit_bool_option): New value:
kono
parents:
diff changeset
2963 GCC_JIT_BOOL_OPTION_DUMP_GENERATED_CODE.
kono
parents:
diff changeset
2964
kono
parents:
diff changeset
2965 * internal-api.c (gcc::jit::context::compile): Call
kono
parents:
diff changeset
2966 dump_generated_code if the user has requested it.
kono
parents:
diff changeset
2967 (gcc::jit::context::dump_generated_code): New, copying
kono
parents:
diff changeset
2968 from the .s file to stderr.
kono
parents:
diff changeset
2969
kono
parents:
diff changeset
2970 * internal-api.h (gcc::jit::context::dump_generated_code): New.
kono
parents:
diff changeset
2971
kono
parents:
diff changeset
2972 2014-01-23 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
2973
kono
parents:
diff changeset
2974 * internal-api.h (gcc::jit::function): Add field
kono
parents:
diff changeset
2975 "m_inner_bind_expr".
kono
parents:
diff changeset
2976 * internal-api.c (gcc::jit::function::function): Create a BIND_EXPR
kono
parents:
diff changeset
2977 for all non-imported functions, and put the statement list within
kono
parents:
diff changeset
2978 it.
kono
parents:
diff changeset
2979 (gcc::jit::function::gt_ggc_mx): Visit m_inner_bind_expr.
kono
parents:
diff changeset
2980 (gcc::jit::function::new_local): Set the DECL_CONTEXT of the new
kono
parents:
diff changeset
2981 local to be the function's BIND_EXPR, and prepend the new local
kono
parents:
diff changeset
2982 to said BIND_EXPR's BIND_EXPR_VARS chain.
kono
parents:
diff changeset
2983 (gcc::jit::function::postprocess): Set the DECL_SAVED_TREE of the
kono
parents:
diff changeset
2984 FUNCTION_DECL to be the BIND_EXPR, rather than the statement list.
kono
parents:
diff changeset
2985 The latter is now contained within the former.
kono
parents:
diff changeset
2986
kono
parents:
diff changeset
2987 2014-01-23 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
2988
kono
parents:
diff changeset
2989 * internal-api.h (gcc::jit::function::add_stmt): New.
kono
parents:
diff changeset
2990
kono
parents:
diff changeset
2991 * internal-api.c (gcc::jit::function::add_eval): Replace use of
kono
parents:
diff changeset
2992 tsi_link_stmt with call to add_stmt.
kono
parents:
diff changeset
2993 (gcc::jit::function::add_assignment): Likewise.
kono
parents:
diff changeset
2994 (gcc::jit::function::add_conditional): Likewise.
kono
parents:
diff changeset
2995 (gcc::jit::function::place_forward_label): Likewise.
kono
parents:
diff changeset
2996 (gcc::jit::function::add_jump): Likewise.
kono
parents:
diff changeset
2997 (gcc::jit::function::add_return): Likewise.
kono
parents:
diff changeset
2998
kono
parents:
diff changeset
2999 2014-01-21 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
3000
kono
parents:
diff changeset
3001 * internal-api.c (gcc::jit::function::add_comment): New.
kono
parents:
diff changeset
3002 * internal-api.h (gcc::jit::function::add_comment): New.
kono
parents:
diff changeset
3003 * libgccjit.c (gcc_jit_function_add_comment): New.
kono
parents:
diff changeset
3004 * libgccjit.h (gcc_jit_function_add_comment): New.
kono
parents:
diff changeset
3005 * libgccjit.map: Add gcc_jit_function_add_comment.
kono
parents:
diff changeset
3006
kono
parents:
diff changeset
3007 2013-10-24 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
3008
kono
parents:
diff changeset
3009 * internal-api.c (gcc::jit::function::add_eval): Handle non-NULL
kono
parents:
diff changeset
3010 locations.
kono
parents:
diff changeset
3011 (gcc::jit::context::handle_locations): Fix test for the various
kono
parents:
diff changeset
3012 kinds of declarations, replacing use of DECL_MINIMAL_CHECK,
kono
parents:
diff changeset
3013 which aborts on failure (such as if we saw a type).
kono
parents:
diff changeset
3014 * libgccjit.h (GCC_JIT_BOOL_OPTION_DEBUGINFO): Fix out-of-date
kono
parents:
diff changeset
3015 comment.
kono
parents:
diff changeset
3016
kono
parents:
diff changeset
3017 2013-10-23 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
3018
kono
parents:
diff changeset
3019 * internal-api.c: Update for rename of tree-flow.h to tree-cfg.h
kono
parents:
diff changeset
3020 in r203320, for declaration of dump_function_to_file.
kono
parents:
diff changeset
3021 * TODO.rst ("segfault seen in libbacktrace"): Remove - this was
kono
parents:
diff changeset
3022 fixed by Ian in r203810.
kono
parents:
diff changeset
3023
kono
parents:
diff changeset
3024 2013-10-23 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
3025
kono
parents:
diff changeset
3026 * internal-api.c: Add missing include of diagnostic-core.h
kono
parents:
diff changeset
3027
kono
parents:
diff changeset
3028 2013-10-22 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
3029
kono
parents:
diff changeset
3030 * internal-api.c (gcc::jit::context::add_error_va): Record the
kono
parents:
diff changeset
3031 first error that occurs on a context.
kono
parents:
diff changeset
3032 (gcc::jit::context::get_first_error): New.
kono
parents:
diff changeset
3033 * internal-api.h (gcc::jit::context::get_first_error): New.
kono
parents:
diff changeset
3034 (gcc::jit::context::m_first_error_str): New.
kono
parents:
diff changeset
3035 * libgccjit.c (gcc_jit_context_get_first_error): New.
kono
parents:
diff changeset
3036 * libgccjit.h (gcc_jit_context_get_first_error): New.
kono
parents:
diff changeset
3037 * libgccjit.map (gcc_jit_context_get_first_error): New.
kono
parents:
diff changeset
3038
kono
parents:
diff changeset
3039 2013-10-21 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
3040
kono
parents:
diff changeset
3041 * internal-api.c (gcc::jit::context::compile): Correctly cleanup
kono
parents:
diff changeset
3042 timevars in error-handling, preventing an issue where an error
kono
parents:
diff changeset
3043 on a context left timevar.c in an unstopped state, leading to an
kono
parents:
diff changeset
3044 assertion failure when restarting timevars in the next compile.
kono
parents:
diff changeset
3045 Found via fuzz-testing.
kono
parents:
diff changeset
3046
kono
parents:
diff changeset
3047 2013-10-21 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
3048
kono
parents:
diff changeset
3049 * internal-api.c (gcc::jit::context::postprocess): Show source
kono
parents:
diff changeset
3050 line numbers (if any) in gimple dump.
kono
parents:
diff changeset
3051
kono
parents:
diff changeset
3052 2013-10-21 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
3053
kono
parents:
diff changeset
3054 * libgccjit.c (gcc_jit_function_new_local): Use a more clear
kono
parents:
diff changeset
3055 error message for the case where someone tries to add a local
kono
parents:
diff changeset
3056 to a function imported from elsewhere.
kono
parents:
diff changeset
3057
kono
parents:
diff changeset
3058 2013-10-21 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
3059
kono
parents:
diff changeset
3060 * TODO.rst ("the C unary prefix "&" operator"): Remove completed item.
kono
parents:
diff changeset
3061 * internal-api.c (gcc::jit::lvalue::get_address): New.
kono
parents:
diff changeset
3062 * internal-api.h (gcc::jit::lvalue::get_address): New.
kono
parents:
diff changeset
3063 * libgccjit.c (gcc_jit_lvalue_get_address): New.
kono
parents:
diff changeset
3064 * libgccjit.h (gcc_jit_lvalue_get_address): New.
kono
parents:
diff changeset
3065 * libgccjit.map (gcc_jit_lvalue_get_address): New.
kono
parents:
diff changeset
3066
kono
parents:
diff changeset
3067 2013-10-18 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
3068
kono
parents:
diff changeset
3069 * internal-api.c (gcc::jit::context::new_param): Add context
kono
parents:
diff changeset
3070 argument to ctor for rvalue and its subclasses.
kono
parents:
diff changeset
3071 (gcc::jit::context::new_global): Likewise.
kono
parents:
diff changeset
3072 (gcc::jit::context::new_rvalue_from_int): Likewise.
kono
parents:
diff changeset
3073 (gcc::jit::context::new_rvalue_from_double): Likewise.
kono
parents:
diff changeset
3074 (gcc::jit::context::new_rvalue_from_ptr): Likewise.
kono
parents:
diff changeset
3075 (gcc::jit::context::new_string_literal): Likewise.
kono
parents:
diff changeset
3076 (gcc::jit::context::new_call): Likewise.
kono
parents:
diff changeset
3077 (gcc::jit::context::new_array_lookup): Likewise.
kono
parents:
diff changeset
3078 (gcc::jit::function::new_local): Likewise.
kono
parents:
diff changeset
3079 (gcc::jit::context::new_binary_op): Likewise; add new
kono
parents:
diff changeset
3080 operations.
kono
parents:
diff changeset
3081 (gcc::jit::context::new_comparison): Likewise; add new
kono
parents:
diff changeset
3082 comparisons.
kono
parents:
diff changeset
3083 (gcc::jit::context::as_truth_value): New.
kono
parents:
diff changeset
3084 (gcc::jit::context::new_unary_op): New.
kono
parents:
diff changeset
3085 (gcc::jit::context::new_field_access): Convert to a helper
kono
parents:
diff changeset
3086 method for use by the access_fields methods.
kono
parents:
diff changeset
3087 (gcc::jit::context::new_dereference): New.
kono
parents:
diff changeset
3088 (gcc::jit::lvalue::access_field): New.
kono
parents:
diff changeset
3089 (gcc::jit::rvalue::access_field): New.
kono
parents:
diff changeset
3090 (gcc::jit::rvalue::dereference_field): New.
kono
parents:
diff changeset
3091 (gcc::jit::rvalue::dereference): New.
kono
parents:
diff changeset
3092 * internal-api.h (gcc::jit::context::new_unary_op): New.
kono
parents:
diff changeset
3093 (gcc::jit::context::new_field_access): Work
kono
parents:
diff changeset
3094 (gcc::jit::context::new_dereference): New.
kono
parents:
diff changeset
3095 (gcc::jit::context::as_truth_value): New.
kono
parents:
diff changeset
3096 (gcc::jit::rvalue): Add a context field.
kono
parents:
diff changeset
3097 (gcc::jit::rvalue::access_field): New.
kono
parents:
diff changeset
3098 (gcc::jit::rvalue::dereference_field): New.
kono
parents:
diff changeset
3099 (gcc::jit::rvalue::dereference): New.
kono
parents:
diff changeset
3100 (gcc::jit::lvalue::lvalue): Add context to ctor.
kono
parents:
diff changeset
3101 (gcc::jit::lvalue::access_field): New.
kono
parents:
diff changeset
3102 (gcc::jit::param::param): Add context to ctor.
kono
parents:
diff changeset
3103 * libgccjit.c (gcc_jit_context_new_unary_op): New.
kono
parents:
diff changeset
3104 (gcc_jit_context_new_field_access): Remove.
kono
parents:
diff changeset
3105 (gcc_jit_lvalue_access_field): New.
kono
parents:
diff changeset
3106 (gcc_jit_rvalue_access_field): New.
kono
parents:
diff changeset
3107 (gcc_jit_rvalue_dereference_field): New.
kono
parents:
diff changeset
3108 (gcc_jit_rvalue_dereference): New.
kono
parents:
diff changeset
3109 *libgccjit.h (enum gcc_jit_unary_op): New.
kono
parents:
diff changeset
3110 (gcc_jit_context_new_unary_op): New.
kono
parents:
diff changeset
3111 (enum gcc_jit_binary_op): Document values, and add...
kono
parents:
diff changeset
3112 (GCC_JIT_BINARY_OP_DIVIDE): New.
kono
parents:
diff changeset
3113 (GCC_JIT_BINARY_OP_MODULO): New.
kono
parents:
diff changeset
3114 (GCC_JIT_BINARY_OP_BITWISE_AND): New.
kono
parents:
diff changeset
3115 (GCC_JIT_BINARY_OP_BITWISE_XOR): New.
kono
parents:
diff changeset
3116 (GCC_JIT_BINARY_OP_BITWISE_OR): New.
kono
parents:
diff changeset
3117 (GCC_JIT_BINARY_OP_LOGICAL_AND): New.
kono
parents:
diff changeset
3118 (GCC_JIT_BINARY_OP_LOGICAL_OR): New.
kono
parents:
diff changeset
3119 (enum gcc_jit_comparison): Document values, and add...
kono
parents:
diff changeset
3120 (GCC_JIT_COMPARISON_EQ): New.
kono
parents:
diff changeset
3121 (GCC_JIT_COMPARISON_NE): New.
kono
parents:
diff changeset
3122 (GCC_JIT_COMPARISON_LE): New.
kono
parents:
diff changeset
3123 (GCC_JIT_COMPARISON_GT): New.
kono
parents:
diff changeset
3124 (GCC_JIT_COMPARISON_GE): New.
kono
parents:
diff changeset
3125 (gcc_jit_context_new_field_access): Remove.
kono
parents:
diff changeset
3126 (gcc_jit_lvalue_access_field): New.
kono
parents:
diff changeset
3127 (gcc_jit_rvalue_access_field): New.
kono
parents:
diff changeset
3128 (gcc_jit_rvalue_dereference_field): New.
kono
parents:
diff changeset
3129 (gcc_jit_rvalue_dereference): New.
kono
parents:
diff changeset
3130 * libgccjit.map (gcc_jit_context_new_field_access): Remove.
kono
parents:
diff changeset
3131 (gcc_jit_lvalue_access_field): New.
kono
parents:
diff changeset
3132 (gcc_jit_rvalue_access_field): New.
kono
parents:
diff changeset
3133 (gcc_jit_rvalue_dereference_field): New.
kono
parents:
diff changeset
3134 (gcc_jit_rvalue_dereference): New.
kono
parents:
diff changeset
3135 * TODO.rst: Update
kono
parents:
diff changeset
3136
kono
parents:
diff changeset
3137 2013-10-18 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
3138
kono
parents:
diff changeset
3139 * internal-api.c (gcc::jit::context::get_type): Improve error
kono
parents:
diff changeset
3140 message, and report the bogus value.
kono
parents:
diff changeset
3141 (gcc::jit::context::new_binary_op): Likewise.
kono
parents:
diff changeset
3142 (gcc::jit::context::new_comparison): Likewise.
kono
parents:
diff changeset
3143 (gcc::jit::context::set_str_option): Likewise.
kono
parents:
diff changeset
3144 (gcc::jit::context::set_int_option): Likewise.
kono
parents:
diff changeset
3145 (gcc::jit::context::set_bool_option): Likewise.
kono
parents:
diff changeset
3146 (gcc::jit::context::compile): Likewise, and make the errors
kono
parents:
diff changeset
3147 block the creation of result, rather than just the return
kono
parents:
diff changeset
3148 value of the client callback.
kono
parents:
diff changeset
3149 (gcc::jit::context::add_error): Add varargs and provide
kono
parents:
diff changeset
3150 implementation, calling into...
kono
parents:
diff changeset
3151 (gcc::jit::context::add_error_va): New.
kono
parents:
diff changeset
3152 * internal-api.h (GNU_PRINTF): New.
kono
parents:
diff changeset
3153 (gcc::jit::context::add_error): Add varargs and GNU_PRINTF
kono
parents:
diff changeset
3154 attribute macro.
kono
parents:
diff changeset
3155 (gcc::jit::context::add_error_va): New.
kono
parents:
diff changeset
3156 (gcc::jit::context::errors_occurred): New.
kono
parents:
diff changeset
3157 (gcc::jit::context::m_error_count): New.
kono
parents:
diff changeset
3158 (gcc::jit::function::get_kind): New.
kono
parents:
diff changeset
3159 * libgccjit.c (JIT_BEGIN_STMT): New.
kono
parents:
diff changeset
3160 (JIT_END_STMT): New.
kono
parents:
diff changeset
3161 (RETURN_VAL_IF_FAIL): New.
kono
parents:
diff changeset
3162 (RETURN_NULL_IF_FAIL): New.
kono
parents:
diff changeset
3163 (RETURN_IF_FAIL): New.
kono
parents:
diff changeset
3164 (RETURN_IF_NOT_INITIAL_CTXT): New.
kono
parents:
diff changeset
3165 (RETURN_NULL_IF_NOT_INITIAL_CTXT): New.
kono
parents:
diff changeset
3166 (RETURN_NULL_IF_NOT_CALLBACK_CTXT): New.
kono
parents:
diff changeset
3167 (RETURN_IF_NOT_FUNC_DEFINITION): New.
kono
parents:
diff changeset
3168 (RETURN_NULL_IF_NOT_FUNC_DEFINITION): New.
kono
parents:
diff changeset
3169 (jit_error): New.
kono
parents:
diff changeset
3170 (gcc_jit_context_set_code_factory): Use new error-checking
kono
parents:
diff changeset
3171 macros.
kono
parents:
diff changeset
3172 (ASSERT_WITHIN_CALLBACK): Remove.
kono
parents:
diff changeset
3173 (ASSERT_NOT_WITHIN_CALLBACK): Remove.
kono
parents:
diff changeset
3174 (gcc_jit_context_new_location): Use new error-checking macros.
kono
parents:
diff changeset
3175 (gcc_jit_context_get_type): Likewise.
kono
parents:
diff changeset
3176 (gcc_jit_type_get_pointer): Likewise.
kono
parents:
diff changeset
3177 (gcc_jit_type_get_const): Likewise.
kono
parents:
diff changeset
3178 (gcc_jit_context_new_field): Likewise.
kono
parents:
diff changeset
3179 (gcc_jit_context_new_struct_type): Likewise.
kono
parents:
diff changeset
3180 (gcc_jit_context_new_param): Likewise.
kono
parents:
diff changeset
3181 (gcc_jit_param_as_lvalue): Likewise.
kono
parents:
diff changeset
3182 (gcc_jit_param_as_rvalue): Likewise.
kono
parents:
diff changeset
3183 (gcc_jit_context_new_function): Likewise.
kono
parents:
diff changeset
3184 (gcc_jit_function_new_forward_label): Likewise.
kono
parents:
diff changeset
3185 (gcc_jit_context_new_global): Likewise.
kono
parents:
diff changeset
3186 (gcc_jit_lvalue_as_rvalue): Likewise.
kono
parents:
diff changeset
3187 (gcc_jit_context_new_rvalue_from_int): Likewise.
kono
parents:
diff changeset
3188 (gcc_jit_context_zero): Likewise.
kono
parents:
diff changeset
3189 (gcc_jit_context_one): Likewise.
kono
parents:
diff changeset
3190 (gcc_jit_context_new_rvalue_from_double): Likewise.
kono
parents:
diff changeset
3191 (gcc_jit_context_new_rvalue_from_ptr): Likewise.
kono
parents:
diff changeset
3192 (gcc_jit_context_new_string_literal): Likewise.
kono
parents:
diff changeset
3193 (gcc_jit_context_new_binary_op): Likewise.
kono
parents:
diff changeset
3194 (gcc_jit_context_new_comparison): Likewise.
kono
parents:
diff changeset
3195 (gcc_jit_context_new_call): Likewise.
kono
parents:
diff changeset
3196 (gcc_jit_context_new_array_lookup): Likewise.
kono
parents:
diff changeset
3197 (gcc_jit_context_new_field_access): Likewise.
kono
parents:
diff changeset
3198 (gcc_jit_function_new_local): Likewise.
kono
parents:
diff changeset
3199 (gcc_jit_function_add_label): Likewise.
kono
parents:
diff changeset
3200 (gcc_jit_function_place_forward_label): Likewise.
kono
parents:
diff changeset
3201 (gcc_jit_function_add_eval): Likewise.
kono
parents:
diff changeset
3202 (gcc_jit_function_add_assignment): Likewise.
kono
parents:
diff changeset
3203 (gcc_jit_function_add_assignment_op): Likewise.
kono
parents:
diff changeset
3204 (gcc_jit_function_add_conditional): Likewise.
kono
parents:
diff changeset
3205 (gcc_jit_function_add_jump): Likewise.
kono
parents:
diff changeset
3206 (gcc_jit_function_add_return): Likewise.
kono
parents:
diff changeset
3207 (gcc_jit_function_new_loop): Likewise.
kono
parents:
diff changeset
3208 (gcc_jit_loop_end): Likewise.
kono
parents:
diff changeset
3209 (gcc_jit_context_set_str_option): Likewise.
kono
parents:
diff changeset
3210 (gcc_jit_context_set_int_option): Likewise.
kono
parents:
diff changeset
3211 (gcc_jit_context_set_bool_option): Likewise.
kono
parents:
diff changeset
3212 (gcc_jit_context_compile): Likewise.
kono
parents:
diff changeset
3213 (gcc_jit_result_get_code): Likewise.
kono
parents:
diff changeset
3214 (gcc_jit_result_release): Likewise.
kono
parents:
diff changeset
3215 * libgccjit.h (gcc_jit_function_new_forward_label): Clarify
kono
parents:
diff changeset
3216 behavior.
kono
parents:
diff changeset
3217 (gcc_jit_function_add_label): Likewise.
kono
parents:
diff changeset
3218
kono
parents:
diff changeset
3219 2013-10-17 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
3220
kono
parents:
diff changeset
3221 * internal-api.c (gcc::jit::context::get_void_type): Remove.
kono
parents:
diff changeset
3222 (gcc::jit::context::get_char_type): Remove.
kono
parents:
diff changeset
3223 (gcc::jit::context::get_int_type): Remove.
kono
parents:
diff changeset
3224 (gcc::jit::context::get_float_type): Remove.
kono
parents:
diff changeset
3225 (gcc::jit::context::get_double_type): Remove.
kono
parents:
diff changeset
3226 (get_tree_node_for_type): New.
kono
parents:
diff changeset
3227 (gcc::jit::context::get_type): New.
kono
parents:
diff changeset
3228 (gcc::jit::context::new_rvalue_from_double): New.
kono
parents:
diff changeset
3229 (gcc::jit::context::new_rvalue_from_ptr): New.
kono
parents:
diff changeset
3230 * internal-api.h (gcc::jit::context::get_void_type): Remove.
kono
parents:
diff changeset
3231 (gcc::jit::context::get_char_type): Remove.
kono
parents:
diff changeset
3232 (gcc::jit::context::get_int_type): Remove.
kono
parents:
diff changeset
3233 (gcc::jit::context::get_float_type): Remove.
kono
parents:
diff changeset
3234 (gcc::jit::context::get_double_type): Remove.
kono
parents:
diff changeset
3235 (gcc::jit::context::get_type): New.
kono
parents:
diff changeset
3236 (gcc::jit::context::new_rvalue_from_double): New.
kono
parents:
diff changeset
3237 (gcc::jit::context::new_rvalue_from_ptr): New.
kono
parents:
diff changeset
3238 * libgccjit.c (gcc_jit_context_get_void_type): Remove.
kono
parents:
diff changeset
3239 (gcc_jit_context_get_char_type): Remove.
kono
parents:
diff changeset
3240 (gcc_jit_context_get_int_type): Remove.
kono
parents:
diff changeset
3241 (gcc_jit_context_get_float_type): Remove.
kono
parents:
diff changeset
3242 (gcc_jit_context_get_double_type): Remove.
kono
parents:
diff changeset
3243 (gcc_jit_context_get_type): New.
kono
parents:
diff changeset
3244 (gcc_jit_context_new_rvalue_from_double): New.
kono
parents:
diff changeset
3245 (gcc_jit_context_new_rvalue_from_ptr): New.
kono
parents:
diff changeset
3246 * libgccjit.h (gcc_jit_context_get_void_type): Remove.
kono
parents:
diff changeset
3247 (gcc_jit_context_get_char_type): Remove.
kono
parents:
diff changeset
3248 (gcc_jit_context_get_int_type): Remove.
kono
parents:
diff changeset
3249 (gcc_jit_context_get_float_type): Remove.
kono
parents:
diff changeset
3250 (gcc_jit_context_get_double_type): Remove.
kono
parents:
diff changeset
3251 (enum gcc_jit_types): New.
kono
parents:
diff changeset
3252 (gcc_jit_context_get_type): New.
kono
parents:
diff changeset
3253 (gcc_jit_context_new_rvalue_from_double): New.
kono
parents:
diff changeset
3254 (gcc_jit_context_new_rvalue_from_ptr): New.
kono
parents:
diff changeset
3255 * libgccjit.map (gcc_jit_context_get_void_type): Remove.
kono
parents:
diff changeset
3256 (gcc_jit_context_get_char_type): Remove.
kono
parents:
diff changeset
3257 (gcc_jit_context_get_int_type): Remove.
kono
parents:
diff changeset
3258 (gcc_jit_context_get_float_type): Remove.
kono
parents:
diff changeset
3259 (gcc_jit_context_get_double_type): Remove.
kono
parents:
diff changeset
3260 (enum gcc_jit_types): New.
kono
parents:
diff changeset
3261 (gcc_jit_context_get_type): New.
kono
parents:
diff changeset
3262 (gcc_jit_context_new_rvalue_from_double): New.
kono
parents:
diff changeset
3263 (gcc_jit_context_new_rvalue_from_ptr): New.
kono
parents:
diff changeset
3264 * TODO.rst ("access to more primitive types"): Remove
kono
parents:
diff changeset
3265 completed item.
kono
parents:
diff changeset
3266
kono
parents:
diff changeset
3267 2013-10-17 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
3268
kono
parents:
diff changeset
3269 * libgccjit.h: Add and reword comments throughout.
kono
parents:
diff changeset
3270
kono
parents:
diff changeset
3271 2013-10-17 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
3272
kono
parents:
diff changeset
3273 * TODO.rst: Update.
kono
parents:
diff changeset
3274
kono
parents:
diff changeset
3275 2013-10-16 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
3276
kono
parents:
diff changeset
3277 * TODO.rst (gcc_jit_context_new_local): Remove completed item.
kono
parents:
diff changeset
3278 * internal-api.c (gcc::jit::context::new_local): Replace with...
kono
parents:
diff changeset
3279 (gcc::jit::function::new_local): ...this, and change return type
kono
parents:
diff changeset
3280 from (local*) to (lvalue*).
kono
parents:
diff changeset
3281 * internal-api.h (gcc::jit::local): Eliminate.
kono
parents:
diff changeset
3282 (gcc::jit::context::new_local): Replace with...
kono
parents:
diff changeset
3283 (gcc::jit::function::new_local): ...this, and change return type
kono
parents:
diff changeset
3284 from (local*) to (lvalue*).
kono
parents:
diff changeset
3285 * libgccjit.c (gcc_jit_local): Eliminate.
kono
parents:
diff changeset
3286 (gcc_jit_context_new_local): Replace with...
kono
parents:
diff changeset
3287 (gcc_jit_function_new_local): ...this, and change return type
kono
parents:
diff changeset
3288 from (gcc_jit_local*) to (gcc_jit_lvalue*).
kono
parents:
diff changeset
3289 (gcc_jit_local_as_lvalue): Remove.
kono
parents:
diff changeset
3290 (gcc_jit_local_as_rvalue): Remove.
kono
parents:
diff changeset
3291 * libgccjit.h (gcc_jit_local): Remove.
kono
parents:
diff changeset
3292 (gcc_jit_context_new_local): Replace with...
kono
parents:
diff changeset
3293 (gcc_jit_function_new_local): ...this, and change return type
kono
parents:
diff changeset
3294 from (gcc_jit_local*) to (gcc_jit_lvalue*).
kono
parents:
diff changeset
3295 (gcc_jit_local_as_lvalue): Remove.
kono
parents:
diff changeset
3296 (gcc_jit_local_as_rvalue): Remove.
kono
parents:
diff changeset
3297 * libgccjit.map (gcc_jit_context_new_local): Replace with...
kono
parents:
diff changeset
3298 (gcc_jit_function_new_local): ...this.
kono
parents:
diff changeset
3299 (gcc_jit_local_as_lvalue): Remove.
kono
parents:
diff changeset
3300 (gcc_jit_local_as_rvalue): Remove.
kono
parents:
diff changeset
3301
kono
parents:
diff changeset
3302 2013-10-15 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
3303
kono
parents:
diff changeset
3304 * libgccjit.h (gcc_jit_location): Rewrite comment to reflect
kono
parents:
diff changeset
3305 that this part of the API is now implemented.
kono
parents:
diff changeset
3306 ("Functions for use within the code factory."): Add notes on
kono
parents:
diff changeset
3307 memory-management and lifetimes.
kono
parents:
diff changeset
3308 * notes.txt: Update diagram to show handle_locations.
kono
parents:
diff changeset
3309
kono
parents:
diff changeset
3310 2013-10-15 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
3311
kono
parents:
diff changeset
3312 * TODO.rst: Update.
kono
parents:
diff changeset
3313
kono
parents:
diff changeset
3314 2013-10-14 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
3315
kono
parents:
diff changeset
3316 * libgccjit.map: Alphabetize the exported symbols.
kono
parents:
diff changeset
3317
kono
parents:
diff changeset
3318 2013-10-14 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
3319
kono
parents:
diff changeset
3320 * internal-api.c (gcc::jit::context::new_field): Implement
kono
parents:
diff changeset
3321 location support, by calling set_tree_location.
kono
parents:
diff changeset
3322 (gcc::jit::context::new_struct_type): Likewise.
kono
parents:
diff changeset
3323 (gcc::jit::context::new_param): Likewise.
kono
parents:
diff changeset
3324 (gcc::jit::context::new_function): Likewise.
kono
parents:
diff changeset
3325 (gcc::jit::context::new_global): Likewise.
kono
parents:
diff changeset
3326 (gcc::jit::context::new_local): Likewise.
kono
parents:
diff changeset
3327 (gcc::jit::context::new_binary_op): Likewise.
kono
parents:
diff changeset
3328 (gcc::jit::context::new_comparison): Likewise.
kono
parents:
diff changeset
3329 (gcc::jit::context::new_call): Likewise.
kono
parents:
diff changeset
3330 (gcc::jit::context::new_array_lookup): Likewise.
kono
parents:
diff changeset
3331 (gcc::jit::context::new_field_access): Likewise.
kono
parents:
diff changeset
3332 (gcc::jit::context::add_assignment): Likewise.
kono
parents:
diff changeset
3333 (gcc::jit::context::add_conditional): Likewise.
kono
parents:
diff changeset
3334 (gcc::jit::function::add_label): Likewise.
kono
parents:
diff changeset
3335 (gcc::jit::function::add_jump): Likewise.
kono
parents:
diff changeset
3336 (gcc::jit::function::add_return): Likewise.
kono
parents:
diff changeset
3337 (gcc::jit::function::place_forward_label): Likewise, adding
kono
parents:
diff changeset
3338 location parameter.
kono
parents:
diff changeset
3339 (gcc::jit::loop::loop): Add loc arg to place_forward_label.
kono
parents:
diff changeset
3340 (gcc::jit::loop::end): Likewise.
kono
parents:
diff changeset
3341 (gcc::jit::context::invoke_code_factory): Call handle_locations
kono
parents:
diff changeset
3342 after the client callback is done, before any GC can run.
kono
parents:
diff changeset
3343 (line_comparator): New.
kono
parents:
diff changeset
3344 (location_comparator): New.
kono
parents:
diff changeset
3345 (gcc::jit::context::handle_locations): New.
kono
parents:
diff changeset
3346 (gcc::jit::context::new_location): New.
kono
parents:
diff changeset
3347 (gcc::jit::context::set_tree_location): New.
kono
parents:
diff changeset
3348 (gcc::jit::context::get_source_file): New.
kono
parents:
diff changeset
3349 (gcc::jit::source_file::source_file): New.
kono
parents:
diff changeset
3350 (gcc::jit::source_file::get_source_line): New.
kono
parents:
diff changeset
3351 (gcc::jit::source_line::source_line): New.
kono
parents:
diff changeset
3352 (gcc::jit::source_line::get_location): New.
kono
parents:
diff changeset
3353 (gcc::jit::location::location): New.
kono
parents:
diff changeset
3354 * internal-api.h (gcc::jit::context::new_location): New.
kono
parents:
diff changeset
3355 (gcc::jit::context::set_tree_location): New.
kono
parents:
diff changeset
3356 (gcc::jit::context::handle_locations): New.
kono
parents:
diff changeset
3357 (gcc::jit::context::get_source_file): New.
kono
parents:
diff changeset
3358 (gcc::jit::context::m_source_files): New field.
kono
parents:
diff changeset
3359 (gcc::jit::context::m_cached_locations: New field.
kono
parents:
diff changeset
3360 (gcc::jit::function::place_forward_label): Add location
kono
parents:
diff changeset
3361 parameter.
kono
parents:
diff changeset
3362 (gcc::jit::function::set_tree_location): New.
kono
parents:
diff changeset
3363 (gcc::jit::source_file): New class.
kono
parents:
diff changeset
3364 (gcc::jit::source_line): New class.
kono
parents:
diff changeset
3365 (gcc::jit::location): New class.
kono
parents:
diff changeset
3366 * libgccjit.c (gcc_jit_context_new_location): New.
kono
parents:
diff changeset
3367 (gcc_jit_function_place_forward_label): Add location parameter,
kono
parents:
diff changeset
3368 changing public API.
kono
parents:
diff changeset
3369 * libgccjit.h (gcc_jit_context_new_location): New.
kono
parents:
diff changeset
3370 (gcc_jit_function_place_forward_label): Add location parameter,
kono
parents:
diff changeset
3371 changing public API.
kono
parents:
diff changeset
3372 * libgccjit.map (gcc_jit_context_new_location): New.
kono
parents:
diff changeset
3373 (main): Remove obsolete export.
kono
parents:
diff changeset
3374 (called_function): Likewise.
kono
parents:
diff changeset
3375
kono
parents:
diff changeset
3376 2013-10-11 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
3377
kono
parents:
diff changeset
3378 * internal-api.c: Update includes to reflect move of decl of
kono
parents:
diff changeset
3379 dump_function_to_file from tree-dump.h to tree-flow.h in
kono
parents:
diff changeset
3380 r203320.
kono
parents:
diff changeset
3381
kono
parents:
diff changeset
3382 2013-10-10 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
3383
kono
parents:
diff changeset
3384 * libgccjit.h (GCC_JIT_BOOL_OPTION_DUMP_SUMMARY): New.
kono
parents:
diff changeset
3385 * internal-api.c ((gcc::jit::context::compile): Implement
kono
parents:
diff changeset
3386 GCC_JIT_BOOL_OPTION_DUMP_SUMMARY.
kono
parents:
diff changeset
3387
kono
parents:
diff changeset
3388 2013-10-10 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
3389
kono
parents:
diff changeset
3390 * libgccjit.h (GCC_JIT_BOOL_OPTION_SELFCHECK_GC): Improve
kono
parents:
diff changeset
3391 documentation.
kono
parents:
diff changeset
3392 (GCC_JIT_BOOL_OPTION_DUMP_INITIAL_GIMPLE): Likewise.
kono
parents:
diff changeset
3393
kono
parents:
diff changeset
3394 2013-10-10 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
3395
kono
parents:
diff changeset
3396 * libgccjit.h: Clarify the separation of the API into "outside
kono
parents:
diff changeset
3397 the callback" and "within the callback" entrypoints, moving the
kono
parents:
diff changeset
3398 latter to the bottom of the header.
kono
parents:
diff changeset
3399
kono
parents:
diff changeset
3400 2013-10-10 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
3401
kono
parents:
diff changeset
3402 * libgccjit.h: Add comments throughout.
kono
parents:
diff changeset
3403
kono
parents:
diff changeset
3404 2013-10-09 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
3405
kono
parents:
diff changeset
3406 * internal-api.c (gcc::jit::context::~context): Fix indentation;
kono
parents:
diff changeset
3407 clean up memory allocations when using
kono
parents:
diff changeset
3408 GCC_JIT_BOOL_OPTION_KEEP_INTERMEDIATES.
kono
parents:
diff changeset
3409
kono
parents:
diff changeset
3410 2013-10-09 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
3411
kono
parents:
diff changeset
3412 * libgccjit.h (enum gcc_jit_bool_option): Add
kono
parents:
diff changeset
3413 GCC_JIT_BOOL_OPTION_DUMP_EVERYTHING.
kono
parents:
diff changeset
3414 * internal-api.c (gcc::jit::context::compile): Implement
kono
parents:
diff changeset
3415 GCC_JIT_BOOL_OPTION_DUMP_EVERYTHING.
kono
parents:
diff changeset
3416
kono
parents:
diff changeset
3417 2013-10-09 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
3418
kono
parents:
diff changeset
3419 * libgccjit.h (enum gcc_jit_bool_option): Add
kono
parents:
diff changeset
3420 GCC_JIT_BOOL_OPTION_KEEP_INTERMEDIATES.
kono
parents:
diff changeset
3421 * internal-api.c (gcc::jit::context::~context): Implement
kono
parents:
diff changeset
3422 GCC_JIT_BOOL_OPTION_KEEP_INTERMEDIATES.
kono
parents:
diff changeset
3423
kono
parents:
diff changeset
3424 2013-10-08 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
3425
kono
parents:
diff changeset
3426 * internal-api.c (gcc::jit::context::compile): Use mkdtemp to
kono
parents:
diff changeset
3427 create a temporary directory and create the .s and .so files
kono
parents:
diff changeset
3428 there, rather than writing to "fake.s" and then reading it to
kono
parents:
diff changeset
3429 make "fake.so", then using it, fixing various possible race
kono
parents:
diff changeset
3430 attacks by processes that can write to the process' current
kono
parents:
diff changeset
3431 working directory.
kono
parents:
diff changeset
3432 (gcc::jit::context::~context): Clean up tempfiles and path
kono
parents:
diff changeset
3433 buffers.
kono
parents:
diff changeset
3434 * internal-api.h (gcc::jit::context): Add fields
kono
parents:
diff changeset
3435 m_path_template, m_path_tempdir, m_path_c_file, m_path_s_file,
kono
parents:
diff changeset
3436 m_path_so_file.
kono
parents:
diff changeset
3437
kono
parents:
diff changeset
3438 2013-10-08 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
3439
kono
parents:
diff changeset
3440 * internal-api.c (gcc::jit::context::new_function): Fix leak of
kono
parents:
diff changeset
3441 arg_types.
kono
parents:
diff changeset
3442
kono
parents:
diff changeset
3443 2013-10-08 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
3444
kono
parents:
diff changeset
3445 * internal-api.c (gcc::jit::context::~context): New.
kono
parents:
diff changeset
3446 * internal-api.h (gcc::jit::context::~context): New.
kono
parents:
diff changeset
3447
kono
parents:
diff changeset
3448 2013-10-07 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
3449
kono
parents:
diff changeset
3450 * internal-api.c (gcc::jit::context::compile): Implement
kono
parents:
diff changeset
3451 GCC_JIT_BOOL_OPTION_SELFCHECK_GC.
kono
parents:
diff changeset
3452
kono
parents:
diff changeset
3453 * libgccjit.h (enum gcc_jit_bool_option): Add
kono
parents:
diff changeset
3454 GCC_JIT_BOOL_OPTION_SELFCHECK_GC.
kono
parents:
diff changeset
3455
kono
parents:
diff changeset
3456 2013-10-07 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
3457
kono
parents:
diff changeset
3458 * Make-lang.in: Rename JIT_OBJS to jit_OBJS. Delete manual
kono
parents:
diff changeset
3459 dependencies.
kono
parents:
diff changeset
3460
kono
parents:
diff changeset
3461 2013-10-04 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
3462
kono
parents:
diff changeset
3463 * internal-api.c (gcc::jit::context::new_global): New.
kono
parents:
diff changeset
3464 * internal-api.h (gcc::jit::context::new_global): New.
kono
parents:
diff changeset
3465 * libgccjit.c (gcc_jit_context_new_global) New.
kono
parents:
diff changeset
3466 * libgccjit.h (gcc_jit_context_new_global) New.
kono
parents:
diff changeset
3467 * libgccjit.map: Add gcc_jit_context_new_global.
kono
parents:
diff changeset
3468
kono
parents:
diff changeset
3469 2013-10-03 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
3470
kono
parents:
diff changeset
3471 * libgccjit.c (gcc_jit_param_as_lvalue): New.
kono
parents:
diff changeset
3472 * libgccjit.h (gcc_jit_param_as_lvalue): New.
kono
parents:
diff changeset
3473 * libgccjit.map: Add gcc_jit_param_as_lvalue.
kono
parents:
diff changeset
3474
kono
parents:
diff changeset
3475 2013-10-03 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
3476
kono
parents:
diff changeset
3477 * internal-api.c (gcc::jit::function::postprocess): Dump gimple
kono
parents:
diff changeset
3478 using dump_function_to_file rather than debug_gimple_seq so that
kono
parents:
diff changeset
3479 we also get the declaration.
kono
parents:
diff changeset
3480
kono
parents:
diff changeset
3481 2013-10-03 David Malcolm <dmalcolm@redhat.com>
kono
parents:
diff changeset
3482
kono
parents:
diff changeset
3483 * Make-lang.in: New.
kono
parents:
diff changeset
3484 * TODO.rst: New.
kono
parents:
diff changeset
3485 * config-lang.in: New.
kono
parents:
diff changeset
3486 * dummy-frontend.c: New.
kono
parents:
diff changeset
3487 * internal-api.c: New.
kono
parents:
diff changeset
3488 * internal-api.h: New.
kono
parents:
diff changeset
3489 * libgccjit.c: New.
kono
parents:
diff changeset
3490 * libgccjit.h: New.
kono
parents:
diff changeset
3491 * libgccjit.map: New.
kono
parents:
diff changeset
3492 * notes.txt: New.
kono
parents:
diff changeset
3493
kono
parents:
diff changeset
3494 Copyright (C) 2013-2014 Free Software Foundation, Inc.
kono
parents:
diff changeset
3495
kono
parents:
diff changeset
3496 Copying and distribution of this file, with or without modification,
kono
parents:
diff changeset
3497 are permitted in any medium without royalty provided the copyright
kono
parents:
diff changeset
3498 notice and this notice are preserved.