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