145
|
1 2020-01-01 Jakub Jelinek <jakub@redhat.com>
|
|
2
|
|
3 Update copyright years.
|
|
4
|
|
5 2019-10-04 Joseph Myers <joseph@codesourcery.com>
|
|
6
|
|
7 * brig-lang.c (flag_isoc2x): New variable.
|
|
8
|
|
9 2019-08-23 Jakub Jelinek <jakub@redhat.com>
|
|
10
|
|
11 PR middle-end/91283
|
|
12 * brig-lang.c (brig_langhook_post_options): Set flag_excess_precision
|
|
13 instead of flag_excess_precision_cmdline.
|
|
14
|
|
15 2019-06-25 Jozef Lawrynowicz <jozef.l@mittosystems.com>
|
|
16
|
|
17 * brig-lang.c (brig_build_c_type_nodes): Accept "__intN__"
|
|
18 format of "__intN" types for SIZE_TYPE.
|
|
19
|
|
20 2019-05-16 Martin Sebor <msebor@redhat.com>
|
|
21
|
|
22 * brigfrontend/brig-control-handler.cc
|
|
23 (brig_directive_control_handler::operator): Remove trailing newline
|
|
24 from a diagnostic.
|
|
25 * brigfrontend/brig-module-handler.cc
|
|
26 (brig_directive_module_handler::operator): Remove a duplicated space
|
|
27 from a diagnostic.
|
|
28
|
|
29 2019-01-01 Jakub Jelinek <jakub@redhat.com>
|
|
30
|
|
31 Update copyright years.
|
|
32
|
131
|
33 2018-10-17 David Malcolm <dmalcolm@redhat.com>
|
|
34
|
|
35 * Make-lang.in (selftest-brig): New.
|
|
36
|
|
37 2018-07-20 Martin Sebor <msebor@redhat.com>
|
|
38
|
|
39 PR middle-end/82063
|
145
|
40 * brig-lang.c (brig_langhook_handle_option): Change function
|
131
|
41 argument to HOST_WIDE_INT.
|
|
42
|
|
43 2018-07-04 Martin Jambor <mjambor@suse.cz>
|
|
44
|
|
45 PR hsa/86371
|
|
46 * Make-lang.in (BRIGINCLUDES): Remove erroneous include path in $HOME.
|
|
47
|
|
48 2018-06-28 Martin Liska <mliska@suse.cz>
|
|
49
|
|
50 * brigspec.c: Add missing header file inclusion.
|
|
51
|
|
52 2018-06-08 David Malcolm <dmalcolm@redhat.com>
|
|
53
|
|
54 * brigfrontend/brig-to-generic.cc
|
|
55 (brig_to_generic::write_globals): Use TDF_NONE rather than 0.
|
|
56 (dump_function): Likewise.
|
|
57
|
|
58 2018-05-18 Richard Sandiford <richard.sandiford@linaro.org>
|
|
59
|
|
60 * brigfrontend/brig-function.cc
|
|
61 (brig_function::get_builtin_for_hsa_opcode): Use BUILT_IN_FMA
|
|
62 for BRIG_OPCODE_FMA.
|
|
63 (brig_function::get_tree_code_for_hsa_opcode): Treat BUILT_IN_FMA
|
|
64 as a call.
|
|
65
|
|
66 2018-05-04 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
|
|
67
|
145
|
68 * brigfrontend/brig-basic-inst-handler.cc: Fix handling of NOPs.
|
131
|
69
|
|
70 2018-05-04 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
|
|
71
|
|
72 Add flag -fassume-phsa that is on by default. If -fno-assume-phsa
|
|
73 is given, these optimizations are disabled. With this flag, gccbrig
|
|
74 can generate GENERIC that assumes we are targeting a phsa-runtime
|
|
75 based implementation, which allows us to expose the work-item context
|
|
76 accesses to retrieve WI IDs etc. which helps optimizers.
|
|
77 First optimization that takes advantage of this is to get rid of
|
|
78 the setworkitemid calls whenever we have non-inlined calls that
|
|
79 use IDs internally. Other optimizations added in this commit:
|
|
80 - expand absoluteid to similar level of simplicity as workitemid.
|
|
81 At the moment absoluteid is the best indexing ID to end up with
|
|
82 WG vectorization.
|
|
83 - propagate ID variables closer to their uses. This is mainly
|
|
84 to avoid known useless casts, which confuse at least scalar
|
|
85 evolution analysis.
|
|
86 - use signed long long for storing IDs. Unsigned integers have
|
|
87 defined wraparound semantics, which confuse at least scalar
|
|
88 evolution analysis, leading to unvectorizable WI loops.
|
|
89 - also refactor some BRIG function generation helpers to brig_function.
|
|
90 - no point in having the wi-loop as a for-loop. It's really
|
|
91 a do...while and SCEV can analyze it just fine still.
|
|
92 - add consts to ptrs etc. in BRIG builtin defs.
|
|
93 Improves optimization opportunities.
|
|
94 - add qualifiers to generated function parameters.
|
|
95 Const and restrict on the hidden local/private pointers,
|
|
96 the arg buffer and the context pointer help some optimizations.
|
145
|
97 * brigfrontend/brig-basic-inst-handler.cc: See above.
|
|
98 * brigfrontend/brig-branch-inst-handler.cc: See above.
|
|
99 * brigfrontend/brig-cmp-inst-handler.cc: See above.
|
|
100 * brigfrontend/brig-code-entry-handler.cc: See above.
|
|
101 * brigfrontend/brig-code-entry-handler.h: See above.
|
|
102 * brigfrontend/brig-control-handler.cc: See above.
|
|
103 * brigfrontend/brig-cvt-inst-handler.cc: See above.
|
|
104 * brigfrontend/brig-function-handler.cc: See above.
|
|
105 * brigfrontend/brig-function.cc: See above.
|
|
106 * brigfrontend/brig-function.h: See above.
|
|
107 * brigfrontend/brig-label-handler.cc: See above.
|
|
108 * brigfrontend/brig-lane-inst-handler.cc: See above.
|
|
109 * brigfrontend/brig-mem-inst-handler.cc: See above.
|
|
110 * brigfrontend/phsa.h: See above.
|
|
111 * lang.opt: See above.
|
131
|
112
|
|
113 2018-05-04 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
|
|
114
|
145
|
115 * brigfrontend/brig-function-handler.cc: Skip multiple forward
|
131
|
116 declarations of the same function.
|
|
117
|
|
118 2018-05-04 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
|
|
119
|
145
|
120 * brig-lang.c: Do not allow optimizations based on known C
|
131
|
121 builtins.
|
|
122
|
|
123 2018-05-04 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
|
|
124
|
145
|
125 * brig-lang.c: Allow controlling strict aliasing from
|
131
|
126 cmd line.
|
|
127
|
|
128 2018-05-04 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
|
|
129
|
145
|
130 * brigfrontend/brig-code-entry-handler.cc: The modulo in
|
131
|
131 ID computation should not be needed.
|
|
132
|
|
133 2018-05-04 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
|
|
134
|
145
|
135 * brig-lang.c: Add support for whole program
|
131
|
136 optimizations by marking the kernels externally visible.
|
145
|
137 * brigfrontend/brig-branch-inst-handler.cc: See above.
|
|
138 * brigfrontend/brig-function-handler.cc: See above.
|
|
139 * brigfrontend/brig-function.cc: See above.
|
|
140 * brigfrontend/brig-to-generic.cc: See above.
|
|
141 * brigfrontend/brig-to-generic.h: See above.
|
|
142 * brigfrontend/brig-variable-handler.h: See above.
|
131
|
143
|
|
144 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org>
|
|
145 Alan Hayward <alan.hayward@arm.com>
|
|
146 David Sherwood <david.sherwood@arm.com>
|
|
147
|
|
148 * brigfrontend/brig-to-generic.cc (get_unsigned_int_type): Handle
|
|
149 polynomial TYPE_VECTOR_SUBPARTS.
|
|
150 * brigfrontend/brig-util.h (gccbrig_type_vector_subparts): Likewise.
|
|
151
|
|
152 2018-01-03 Jakub Jelinek <jakub@redhat.com>
|
|
153
|
|
154 Update copyright years.
|
|
155
|
|
156 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org>
|
|
157 Alan Hayward <alan.hayward@arm.com>
|
|
158 David Sherwood <david.sherwood@arm.com>
|
|
159
|
|
160 * brigfrontend/brig-util.h (gccbrig_type_vector_subparts): New
|
|
161 function.
|
|
162 * brigfrontend/brig-basic-inst-handler.cc
|
|
163 (brig_basic_inst_handler::build_shuffle): Use it instead of
|
|
164 TYPE_VECTOR_SUBPARTS.
|
|
165 (brig_basic_inst_handler::build_unpack): Likewise.
|
|
166 (brig_basic_inst_handler::build_pack): Likewise.
|
|
167 (brig_basic_inst_handler::build_unpack_lo_or_hi): Likewise.
|
|
168 (brig_basic_inst_handler::operator ()): Likewise.
|
|
169 (brig_basic_inst_handler::build_lower_element_broadcast): Likewise.
|
|
170 * brigfrontend/brig-code-entry-handler.cc
|
|
171 (brig_code_entry_handler::get_tree_cst_for_hsa_operand): Likewise.
|
|
172 (brig_code_entry_handler::get_comparison_result_type): Likewise.
|
|
173 (brig_code_entry_handler::expand_or_call_builtin): Likewise.
|
|
174
|
|
175 2017-12-15 Jakub Jelinek <jakub@redhat.com>
|
|
176
|
|
177 * brig-lang.c (brig_attribute_table): Swap affects_type_identity
|
|
178 and handler fields, adjust comments.
|
|
179
|
|
180 2017-12-08 Jakub Jelinek <jakub@redhat.com>
|
|
181
|
|
182 * brig-lang.c (brig_attribute_table): Fix up comment.
|
|
183
|
|
184 2017-11-28 Jakub Jelinek <jakub@redhat.com>
|
|
185
|
|
186 * brigfrontend/brig-branch-inst-handler.cc
|
|
187 (brig_branch_inst_handler::operator): Build SWITCH_EXPR using build2
|
|
188 instead of build3.
|
|
189
|
|
190 2017-11-17 Henry Linjamäki <henry.linjamaki@parmance.com>
|
|
191
|
|
192 * brigfrontend/brig-util.cc: Fix sprintf format string type mismatch
|
|
193 on 32b machines.
|
|
194
|
|
195 2017-11-16 Henry Linjamäki <henry.linjamaki@parmance.com>
|
|
196
|
|
197 Change internal representation of HSA registers. Instead
|
|
198 representing HSA's untyped registers as unsigned int the gccbrig
|
|
199 analyzes brig code and builds the register variables as a type
|
|
200 used in tree expressions at most. This gives better chance to
|
|
201 optimize CONVERT_VIEW_EXPRs away.
|
|
202 * brigfrontend/brig-code-entry-handler.cc: Add analysis method for
|
|
203 register type usage. Handle any-typed register variables.
|
|
204 * brigfrontend/brig-code-entry-handler.h: New declarations for the
|
|
205 above.
|
|
206 * brigfrontend/brig-copy-move-inst-handler.cc: Handle any-typed
|
|
207 register variables.
|
|
208 * brigfrontend/brig-cvt-inst-handler.cc: Likewise.
|
|
209 * brigfrontend/brig-function.cc: Build register variables as a
|
|
210 type based on results of analysis phase.
|
|
211 * brigfrontend/brig-function.h: Move HSA register count defines to
|
|
212 brig-utils.h.
|
|
213 * brigfrontend/brig-to-generic.cc: New analysis handler. Analyze
|
|
214 HSA register usage.
|
|
215 * brigfrontend/brig-to-generic.h: New declarations.
|
|
216 * brigfrontend/brig-util.cc: New utility functions.
|
|
217 * brigfrontend/brig-util.h: New declarations for the above.
|
|
218
|
|
219 2017-11-16 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
|
|
220
|
|
221 * gccbrig.texi: Added some documentation.
|
|
222
|
|
223 2017-10-31 Henry Linjamäki <henry.linjamaki@parmance.com>
|
|
224
|
|
225 * brig-lang.c (brig_langhook_type_for_mode): Fix PR 82771.
|
|
226
|
111
|
227 2017-10-23 Richard Sandiford <richard.sandiford@linaro.org>
|
|
228
|
|
229 * brig-lang.c (brig_langhook_type_for_mode): Use scalar_int_mode
|
|
230 and scalar_float_mode.
|
|
231
|
|
232 2017-10-09 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
|
|
233
|
|
234 * brigfrontend/brig-to-generic.cc: Support BRIG_KIND_NONE
|
|
235 directives. These directives are legal everywhere. They
|
|
236 can be used to patch away BRIG entries at the binary level.
|
|
237 Also add extra error detection for zeroed regions: make sure
|
|
238 the byteCount field is never zero.
|
145
|
239 * brigfrontend/phsa.h: Added a new error prefix for
|
111
|
240 errors which are due to corrupted BRIG modules.
|
|
241
|
|
242 2017-10-09 Henry Linjamäki <henry.linjamaki@parmance.com>
|
|
243
|
|
244 * brigfrontend/brig-branch-inst-handler.cc: The call code
|
|
245 still failed a few test cases. Now all PRM cases pass again.
|
|
246
|
|
247 2017-10-03 Henry Linjamäki <henry.linjamaki@parmance.com>
|
|
248
|
|
249 * brigfrontend/brig-branch-inst-handler.cc: Fix (more) crash with
|
|
250 calls with more than 4 args. It missed a reference which is required
|
|
251 because vector expansion can move the object to another location.
|
|
252
|
|
253 2017-09-29 Henry Linjamäki <henry.linjamaki@parmance.com>
|
|
254
|
|
255 * brigfrontend/brig-branch-inst-handler.cc: Fix crash with
|
|
256 calls with more than 4 args. Also fix a misexecution issue
|
|
257 with kernels that have both unexpanded ID functions and
|
|
258 calls to subfunctions.
|
|
259
|
|
260 2017-09-28 Henry Linjamäki <henry.linjamaki@parmance.com>
|
|
261
|
|
262 * brig-lang.c: Added function attributes and their handlers.
|
|
263 Make BRIGFE 3-level optimize by default.
|
|
264
|
|
265 2017-09-27 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
|
|
266
|
|
267 * brig-lang.c: Improved support for function and module scope
|
|
268 group segment variables. PRM specs defines function and module
|
|
269 scope group segment variables as an experimental feature. However,
|
|
270 PRM test suite uses and hcc relies on them. In addition, hcc
|
|
271 assumes certain group variable layout in its dynamic group segment
|
|
272 allocation code. We cannot have global group memory offsets if we
|
|
273 want to both have kernel-specific group segment size and multiple
|
|
274 kernels calling the same functions that use function scope group memory
|
|
275 variables. Now group segment is handled by separate book keeping of
|
|
276 module scope and function (kernel) offsets. Each function has a "frame"
|
|
277 in the group segment offset to which is given as an argument.
|
|
278 * brigfrontend/brig-branch-inst-handler.cc: See above.
|
|
279 * brigfrontend/brig-code-entry-handler.cc: See above.
|
|
280 * brigfrontend/brig-fbarrier-handler.cc: See above.
|
|
281 * brigfrontend/brig-function-handler.cc: See above.
|
|
282 * brigfrontend/brig-function.cc: See above.
|
|
283 * brigfrontend/brig-function.h: See above.
|
|
284 * brigfrontend/brig-to-generic.cc: See above.
|
|
285 * brigfrontend/brig-to-generic.h: See above.
|
|
286 * brigfrontend/brig-util.cc: See above.
|
|
287 * brigfrontend/brig-util.h: See above.
|
|
288 * brigfrontend/brig-variable-handler.cc: See above.
|
|
289
|
|
290 2017-09-25 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
|
|
291
|
|
292 * brigfrontend/brig-to-generic.cc: Ensure per WI copies of
|
|
293 private variables are aligned too.
|
|
294
|
|
295 2017-09-17 Thomas Schwinge <thomas@codesourcery.com>
|
|
296
|
|
297 * Make-lang.in (GO_TEXI_FILES): Rename to...
|
|
298 (BRIG_TEXI_FILES): ... this.
|
|
299 (doc/gccbrig.info, doc/gccbrig.dvi, doc/gccbrig.pdf, brig.info)
|
|
300 (brig.srcinfo, brig.man, brig.srcman, brig.install-man)
|
|
301 ($(DESTDIR)$(man1dir)/$(GCCBRIG_INSTALL_NAME)$(man1ext)):
|
|
302 Uncomment/enable targets.
|
|
303 (gccbrig.pod): New target.
|
|
304 * gccbrig.texi: New file.
|
|
305
|
|
306 2017-08-04 Henry Linjamäki <henry.linjamaki@parmance.com>
|
|
307
|
|
308 Fix PR 81713
|
|
309 * brigfrontend/brig-basic-inst-handler.cc: replace build_int_cst with
|
|
310 bitsize_int in building BIT_FIELD_REF.
|
|
311 * brigfrontend/brig-code-entry-handler.cc: likewise.
|
|
312
|
|
313 2017-07-05 Richard Sandiford <richard.sandiford@linaro.org>
|
|
314 Alan Hayward <alan.hayward@arm.com>
|
|
315 David Sherwood <david.sherwood@arm.com>
|
|
316
|
|
317 * brig-c.h (brig_type_for_mode): Remove "enum" before "machine_mode".
|
|
318 * brig-lang.c (brig_langhook_type_for_mode): Likewise.
|
|
319
|
|
320 2017-07-04 Jakub Jelinek <jakub@redhat.com>
|
|
321
|
|
322 * brigfrontend/brig-function.cc: Include profile-count.h.
|
|
323 * brigfrontend/brig-to-generic.cc: Likewise.
|
|
324
|
|
325 2017-05-18 Thomas Schwinge <thomas@codesourcery.com>
|
|
326
|
|
327 * brigfrontend/brig-to-generic.h (class brig_to_generic): Use
|
|
328 "dump_flags_t" for "m_dump_flags" member.
|
|
329
|
|
330 2017-05-13 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
|
|
331
|
|
332 * brigfrontend/brig-code-entry-handler.cc
|
|
333 (brig_code_entry_handler::build_address_operand): Fix
|
|
334 an assertion when doing an 'lda' of a private array
|
|
335 offset.
|
|
336
|
|
337 2017-05-03 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
|
|
338
|
|
339 * brigfrontend/brig-code-entry-handler.cc
|
|
340 (brig_code_entry_handler::build_address_operand): Fix a bug
|
|
341 with reg+offset addressing on 32b segments. In large mode,
|
|
342 the offset is treated as 32bits unless it's global, readonly or
|
|
343 kernarg address space.
|
|
344
|
|
345 2016-02-01 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
|
|
346
|
|
347 * brigfrontend/brig-code-entry-handler.cc: fix address
|
|
348 expressions which refer only to offset 0, but nothing else.
|
|
349 * brigfrontend/brig-lane-inst-handler.cc: fix
|
|
350 activelanepermute_b64 HSAIL instruction.
|
|
351 * brigfrontend/brig-to-generic.cc: remove useless c_str()
|
|
352 call. Add missing va_end (). Fix PR79250.
|
|
353
|
|
354 2017-01-30 Jakub Jelinek <jakub@redhat.com>
|
|
355
|
|
356 * brigfrontend/brig-code-entry-handler.cc
|
|
357 (brig_code_entry_handler::get_tree_cst_for_hsa_operand): For %lu
|
|
358 cast size_t arguments to unsigned long.
|
|
359
|
|
360 2017-01-27 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
|
|
361
|
|
362 * config-lang.in: Removed stale target-libbrig reference.
|
|
363
|
|
364 2017-01-26 Jakub Jelinek <jakub@redhat.com>
|
|
365
|
|
366 Update copyright years.
|
|
367
|
|
368 2017-01-24 Pekka Jääskeläinen <pekka@parmance.com>
|
|
369 Martin Jambor <mjambor@suse.cz>
|
|
370
|
|
371 * Make-lang.in: New file.
|
|
372 * brig-builtins.h: Likewise.
|
|
373 * brig-c.h: Likewise.
|
|
374 * brig-lang.c: Likewise.
|
|
375 * brigspec.c: Likewise.
|
|
376 * config-lang.in: Likewise.
|
|
377 * lang-specs.h: Likewise.
|
|
378 * lang.opt: Likewise.
|
|
379 * brigfrontend/brig-arg-block-handler.cc: Likewise.
|
|
380 * brigfrontend/brig-atomic-inst-handler.cc: Likewise.
|
|
381 * brigfrontend/brig-basic-inst-handler.cc: Likewise.
|
|
382 * brigfrontend/brig-branch-inst-handler.cc: Likewise.
|
|
383 * brigfrontend/brig-cmp-inst-handler.cc: Likewise.
|
|
384 * brigfrontend/brig-code-entry-handler.cc: Likewise.
|
|
385 * brigfrontend/brig-code-entry-handler.h: Likewise.
|
|
386 * brigfrontend/brig-comment-handler.cc: Likewise.
|
|
387 * brigfrontend/brig-control-handler.cc: Likewise.
|
|
388 * brigfrontend/brig-copy-move-inst-handler.cc: Likewise.
|
|
389 * brigfrontend/brig-cvt-inst-handler.cc: Likewise.
|
|
390 * brigfrontend/brig-fbarrier-handler.cc: Likewise.
|
|
391 * brigfrontend/brig-function-handler.cc: Likewise.
|
|
392 * brigfrontend/brig-function.cc: Likewise.
|
|
393 * brigfrontend/brig-function.h: Likewise.
|
|
394 * brigfrontend/brig-inst-mod-handler.cc: Likewise.
|
|
395 * brigfrontend/brig-label-handler.cc: Likewise.
|
|
396 * brigfrontend/brig-lane-inst-handler.cc: Likewise.
|
|
397 * brigfrontend/brig-machine.c: Likewise.
|
|
398 * brigfrontend/brig-machine.h: Likewise.
|
|
399 * brigfrontend/brig-mem-inst-handler.cc: Likewise.
|
|
400 * brigfrontend/brig-module-handler.cc: Likewise.
|
|
401 * brigfrontend/brig-queue-inst-handler.cc: Likewise.
|
|
402 * brigfrontend/brig-seg-inst-handler.cc: Likewise.
|
|
403 * brigfrontend/brig-signal-inst-handler.cc: Likewise.
|
|
404 * brigfrontend/brig-to-generic.cc: Likewise.
|
|
405 * brigfrontend/brig-to-generic.h: Likewise.
|
|
406 * brigfrontend/brig-util.cc: Likewise.
|
|
407 * brigfrontend/brig-util.h: Likewise.
|
|
408 * brigfrontend/brig-variable-handler.cc: Likewise.
|
|
409 * brigfrontend/phsa.h: Likewise.
|