| 2019-08-12 Release Manager |
| |
| * GCC 9.2.0 released. |
| |
| 2019-05-03 Release Manager |
| |
| * GCC 9.1.0 released. |
| |
| 2019-01-01 Jakub Jelinek <jakub@redhat.com> |
| |
| Update copyright years. |
| |
| 2018-10-17 David Malcolm <dmalcolm@redhat.com> |
| |
| * Make-lang.in (selftest-brig): New. |
| |
| 2018-07-20 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/82063 |
| * brig/brig-lang.c (brig_langhook_handle_option): Change function |
| argument to HOST_WIDE_INT. |
| |
| 2018-07-04 Martin Jambor <mjambor@suse.cz> |
| |
| PR hsa/86371 |
| * Make-lang.in (BRIGINCLUDES): Remove erroneous include path in $HOME. |
| |
| 2018-06-28 Martin Liska <mliska@suse.cz> |
| |
| * brigspec.c: Add missing header file inclusion. |
| |
| 2018-06-08 David Malcolm <dmalcolm@redhat.com> |
| |
| * brigfrontend/brig-to-generic.cc |
| (brig_to_generic::write_globals): Use TDF_NONE rather than 0. |
| (dump_function): Likewise. |
| |
| 2018-05-18 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * brigfrontend/brig-function.cc |
| (brig_function::get_builtin_for_hsa_opcode): Use BUILT_IN_FMA |
| for BRIG_OPCODE_FMA. |
| (brig_function::get_tree_code_for_hsa_opcode): Treat BUILT_IN_FMA |
| as a call. |
| |
| 2018-05-04 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com> |
| |
| * brig/brigfrontend/brig-basic-inst-handler.cc: Fix handling of NOPs. |
| |
| 2018-05-04 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com> |
| |
| Add flag -fassume-phsa that is on by default. If -fno-assume-phsa |
| is given, these optimizations are disabled. With this flag, gccbrig |
| can generate GENERIC that assumes we are targeting a phsa-runtime |
| based implementation, which allows us to expose the work-item context |
| accesses to retrieve WI IDs etc. which helps optimizers. |
| First optimization that takes advantage of this is to get rid of |
| the setworkitemid calls whenever we have non-inlined calls that |
| use IDs internally. Other optimizations added in this commit: |
| - expand absoluteid to similar level of simplicity as workitemid. |
| At the moment absoluteid is the best indexing ID to end up with |
| WG vectorization. |
| - propagate ID variables closer to their uses. This is mainly |
| to avoid known useless casts, which confuse at least scalar |
| evolution analysis. |
| - use signed long long for storing IDs. Unsigned integers have |
| defined wraparound semantics, which confuse at least scalar |
| evolution analysis, leading to unvectorizable WI loops. |
| - also refactor some BRIG function generation helpers to brig_function. |
| - no point in having the wi-loop as a for-loop. It's really |
| a do...while and SCEV can analyze it just fine still. |
| - add consts to ptrs etc. in BRIG builtin defs. |
| Improves optimization opportunities. |
| - add qualifiers to generated function parameters. |
| Const and restrict on the hidden local/private pointers, |
| the arg buffer and the context pointer help some optimizations. |
| * brig/brigfrontend/brig-basic-inst-handler.cc: See above. |
| * brig/brigfrontend/brig-branch-inst-handler.cc: See above. |
| * brig/brigfrontend/brig-cmp-inst-handler.cc: See above. |
| * brig/brigfrontend/brig-code-entry-handler.cc: See above. |
| * brig/brigfrontend/brig-code-entry-handler.h: See above. |
| * brig/brigfrontend/brig-control-handler.cc: See above. |
| * brig/brigfrontend/brig-cvt-inst-handler.cc: See above. |
| * brig/brigfrontend/brig-function-handler.cc: See above. |
| * brig/brigfrontend/brig-function.cc: See above. |
| * brig/brigfrontend/brig-function.h: See above. |
| * brig/brigfrontend/brig-label-handler.cc: See above. |
| * brig/brigfrontend/brig-lane-inst-handler.cc: See above. |
| * brig/brigfrontend/brig-mem-inst-handler.cc: See above. |
| * brig/brigfrontend/phsa.h: See above. |
| * brig/lang.opt: See above. |
| |
| 2018-05-04 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com> |
| |
| * brig/brigfrontend/brig-function-handler.cc: Skip multiple forward |
| declarations of the same function. |
| |
| 2018-05-04 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com> |
| |
| * brig/brig-lang.c: Do not allow optimizations based on known C |
| builtins. |
| |
| 2018-05-04 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com> |
| |
| * brig/brig-lang.c: Allow controlling strict aliasing from |
| cmd line. |
| |
| 2018-05-04 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com> |
| |
| * brig/brigfrontend/brig-code-entry-handler.cc: The modulo in |
| ID computation should not be needed. |
| |
| 2018-05-04 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com> |
| |
| * brig/brig-lang.c: Add support for whole program |
| optimizations by marking the kernels externally visible. |
| * brig/brigfrontend/brig-branch-inst-handler.cc: See above. |
| * brig/brigfrontend/brig-function-handler.cc: See above. |
| * brig/brigfrontend/brig-function.cc: See above. |
| * brig/brigfrontend/brig-to-generic.cc: See above. |
| * brig/brigfrontend/brig-to-generic.h: See above. |
| * brig/brigfrontend/brig-variable-handler.h: See above. |
| |
| 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * brigfrontend/brig-to-generic.cc (get_unsigned_int_type): Handle |
| polynomial TYPE_VECTOR_SUBPARTS. |
| * brigfrontend/brig-util.h (gccbrig_type_vector_subparts): Likewise. |
| |
| 2018-01-03 Jakub Jelinek <jakub@redhat.com> |
| |
| Update copyright years. |
| |
| 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * brigfrontend/brig-util.h (gccbrig_type_vector_subparts): New |
| function. |
| * brigfrontend/brig-basic-inst-handler.cc |
| (brig_basic_inst_handler::build_shuffle): Use it instead of |
| TYPE_VECTOR_SUBPARTS. |
| (brig_basic_inst_handler::build_unpack): Likewise. |
| (brig_basic_inst_handler::build_pack): Likewise. |
| (brig_basic_inst_handler::build_unpack_lo_or_hi): Likewise. |
| (brig_basic_inst_handler::operator ()): Likewise. |
| (brig_basic_inst_handler::build_lower_element_broadcast): Likewise. |
| * brigfrontend/brig-code-entry-handler.cc |
| (brig_code_entry_handler::get_tree_cst_for_hsa_operand): Likewise. |
| (brig_code_entry_handler::get_comparison_result_type): Likewise. |
| (brig_code_entry_handler::expand_or_call_builtin): Likewise. |
| |
| 2017-12-15 Jakub Jelinek <jakub@redhat.com> |
| |
| * brig-lang.c (brig_attribute_table): Swap affects_type_identity |
| and handler fields, adjust comments. |
| |
| 2017-12-08 Jakub Jelinek <jakub@redhat.com> |
| |
| * brig-lang.c (brig_attribute_table): Fix up comment. |
| |
| 2017-11-28 Jakub Jelinek <jakub@redhat.com> |
| |
| * brigfrontend/brig-branch-inst-handler.cc |
| (brig_branch_inst_handler::operator): Build SWITCH_EXPR using build2 |
| instead of build3. |
| |
| 2017-11-17 Henry Linjamäki <henry.linjamaki@parmance.com> |
| |
| * brigfrontend/brig-util.cc: Fix sprintf format string type mismatch |
| on 32b machines. |
| |
| 2017-11-16 Henry Linjamäki <henry.linjamaki@parmance.com> |
| |
| Change internal representation of HSA registers. Instead |
| representing HSA's untyped registers as unsigned int the gccbrig |
| analyzes brig code and builds the register variables as a type |
| used in tree expressions at most. This gives better chance to |
| optimize CONVERT_VIEW_EXPRs away. |
| * brigfrontend/brig-code-entry-handler.cc: Add analysis method for |
| register type usage. Handle any-typed register variables. |
| * brigfrontend/brig-code-entry-handler.h: New declarations for the |
| above. |
| * brigfrontend/brig-copy-move-inst-handler.cc: Handle any-typed |
| register variables. |
| * brigfrontend/brig-cvt-inst-handler.cc: Likewise. |
| * brigfrontend/brig-function.cc: Build register variables as a |
| type based on results of analysis phase. |
| * brigfrontend/brig-function.h: Move HSA register count defines to |
| brig-utils.h. |
| * brigfrontend/brig-to-generic.cc: New analysis handler. Analyze |
| HSA register usage. |
| * brigfrontend/brig-to-generic.h: New declarations. |
| * brigfrontend/brig-util.cc: New utility functions. |
| * brigfrontend/brig-util.h: New declarations for the above. |
| |
| 2017-11-16 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com> |
| |
| * gccbrig.texi: Added some documentation. |
| |
| 2017-10-31 Henry Linjamäki <henry.linjamaki@parmance.com> |
| |
| * brig-lang.c (brig_langhook_type_for_mode): Fix PR 82771. |
| |
| 2017-10-23 Richard Sandiford <richard.sandiford@linaro.org> |
| |
| * brig-lang.c (brig_langhook_type_for_mode): Use scalar_int_mode |
| and scalar_float_mode. |
| |
| 2017-10-09 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com> |
| |
| * brigfrontend/brig-to-generic.cc: Support BRIG_KIND_NONE |
| directives. These directives are legal everywhere. They |
| can be used to patch away BRIG entries at the binary level. |
| Also add extra error detection for zeroed regions: make sure |
| the byteCount field is never zero. |
| * brig/brigfrontend/phsa.h: Added a new error prefix for |
| errors which are due to corrupted BRIG modules. |
| |
| 2017-10-09 Henry Linjamäki <henry.linjamaki@parmance.com> |
| |
| * brigfrontend/brig-branch-inst-handler.cc: The call code |
| still failed a few test cases. Now all PRM cases pass again. |
| |
| 2017-10-03 Henry Linjamäki <henry.linjamaki@parmance.com> |
| |
| * brigfrontend/brig-branch-inst-handler.cc: Fix (more) crash with |
| calls with more than 4 args. It missed a reference which is required |
| because vector expansion can move the object to another location. |
| |
| 2017-09-29 Henry Linjamäki <henry.linjamaki@parmance.com> |
| |
| * brigfrontend/brig-branch-inst-handler.cc: Fix crash with |
| calls with more than 4 args. Also fix a misexecution issue |
| with kernels that have both unexpanded ID functions and |
| calls to subfunctions. |
| |
| 2017-09-28 Henry Linjamäki <henry.linjamaki@parmance.com> |
| |
| * brig-lang.c: Added function attributes and their handlers. |
| Make BRIGFE 3-level optimize by default. |
| |
| 2017-09-27 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com> |
| |
| * brig-lang.c: Improved support for function and module scope |
| group segment variables. PRM specs defines function and module |
| scope group segment variables as an experimental feature. However, |
| PRM test suite uses and hcc relies on them. In addition, hcc |
| assumes certain group variable layout in its dynamic group segment |
| allocation code. We cannot have global group memory offsets if we |
| want to both have kernel-specific group segment size and multiple |
| kernels calling the same functions that use function scope group memory |
| variables. Now group segment is handled by separate book keeping of |
| module scope and function (kernel) offsets. Each function has a "frame" |
| in the group segment offset to which is given as an argument. |
| * brigfrontend/brig-branch-inst-handler.cc: See above. |
| * brigfrontend/brig-code-entry-handler.cc: See above. |
| * brigfrontend/brig-fbarrier-handler.cc: See above. |
| * brigfrontend/brig-function-handler.cc: See above. |
| * brigfrontend/brig-function.cc: See above. |
| * brigfrontend/brig-function.h: See above. |
| * brigfrontend/brig-to-generic.cc: See above. |
| * brigfrontend/brig-to-generic.h: See above. |
| * brigfrontend/brig-util.cc: See above. |
| * brigfrontend/brig-util.h: See above. |
| * brigfrontend/brig-variable-handler.cc: See above. |
| |
| 2017-09-25 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com> |
| |
| * brigfrontend/brig-to-generic.cc: Ensure per WI copies of |
| private variables are aligned too. |
| |
| 2017-09-17 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * Make-lang.in (GO_TEXI_FILES): Rename to... |
| (BRIG_TEXI_FILES): ... this. |
| (doc/gccbrig.info, doc/gccbrig.dvi, doc/gccbrig.pdf, brig.info) |
| (brig.srcinfo, brig.man, brig.srcman, brig.install-man) |
| ($(DESTDIR)$(man1dir)/$(GCCBRIG_INSTALL_NAME)$(man1ext)): |
| Uncomment/enable targets. |
| (gccbrig.pod): New target. |
| * gccbrig.texi: New file. |
| |
| 2017-08-04 Henry Linjamäki <henry.linjamaki@parmance.com> |
| |
| Fix PR 81713 |
| * brigfrontend/brig-basic-inst-handler.cc: replace build_int_cst with |
| bitsize_int in building BIT_FIELD_REF. |
| * brigfrontend/brig-code-entry-handler.cc: likewise. |
| |
| 2017-07-05 Richard Sandiford <richard.sandiford@linaro.org> |
| Alan Hayward <alan.hayward@arm.com> |
| David Sherwood <david.sherwood@arm.com> |
| |
| * brig-c.h (brig_type_for_mode): Remove "enum" before "machine_mode". |
| * brig-lang.c (brig_langhook_type_for_mode): Likewise. |
| |
| 2017-07-04 Jakub Jelinek <jakub@redhat.com> |
| |
| * brigfrontend/brig-function.cc: Include profile-count.h. |
| * brigfrontend/brig-to-generic.cc: Likewise. |
| |
| 2017-05-18 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * brigfrontend/brig-to-generic.h (class brig_to_generic): Use |
| "dump_flags_t" for "m_dump_flags" member. |
| |
| 2017-05-13 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com> |
| |
| * brigfrontend/brig-code-entry-handler.cc |
| (brig_code_entry_handler::build_address_operand): Fix |
| an assertion when doing an 'lda' of a private array |
| offset. |
| |
| 2017-05-03 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com> |
| |
| * brigfrontend/brig-code-entry-handler.cc |
| (brig_code_entry_handler::build_address_operand): Fix a bug |
| with reg+offset addressing on 32b segments. In large mode, |
| the offset is treated as 32bits unless it's global, readonly or |
| kernarg address space. |
| |
| 2016-02-01 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com> |
| |
| * brigfrontend/brig-code-entry-handler.cc: fix address |
| expressions which refer only to offset 0, but nothing else. |
| * brigfrontend/brig-lane-inst-handler.cc: fix |
| activelanepermute_b64 HSAIL instruction. |
| * brigfrontend/brig-to-generic.cc: remove useless c_str() |
| call. Add missing va_end (). Fix PR79250. |
| |
| 2017-01-30 Jakub Jelinek <jakub@redhat.com> |
| |
| * brigfrontend/brig-code-entry-handler.cc |
| (brig_code_entry_handler::get_tree_cst_for_hsa_operand): For %lu |
| cast size_t arguments to unsigned long. |
| |
| 2017-01-27 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com> |
| |
| * config-lang.in: Removed stale target-libbrig reference. |
| |
| 2017-01-26 Jakub Jelinek <jakub@redhat.com> |
| |
| Update copyright years. |
| |
| 2017-01-24 Pekka Jääskeläinen <pekka@parmance.com> |
| Martin Jambor <mjambor@suse.cz> |
| |
| * Make-lang.in: New file. |
| * brig-builtins.h: Likewise. |
| * brig-c.h: Likewise. |
| * brig-lang.c: Likewise. |
| * brigspec.c: Likewise. |
| * config-lang.in: Likewise. |
| * lang-specs.h: Likewise. |
| * lang.opt: Likewise. |
| * brigfrontend/brig-arg-block-handler.cc: Likewise. |
| * brigfrontend/brig-atomic-inst-handler.cc: Likewise. |
| * brigfrontend/brig-basic-inst-handler.cc: Likewise. |
| * brigfrontend/brig-branch-inst-handler.cc: Likewise. |
| * brigfrontend/brig-cmp-inst-handler.cc: Likewise. |
| * brigfrontend/brig-code-entry-handler.cc: Likewise. |
| * brigfrontend/brig-code-entry-handler.h: Likewise. |
| * brigfrontend/brig-comment-handler.cc: Likewise. |
| * brigfrontend/brig-control-handler.cc: Likewise. |
| * brigfrontend/brig-copy-move-inst-handler.cc: Likewise. |
| * brigfrontend/brig-cvt-inst-handler.cc: Likewise. |
| * brigfrontend/brig-fbarrier-handler.cc: Likewise. |
| * brigfrontend/brig-function-handler.cc: Likewise. |
| * brigfrontend/brig-function.cc: Likewise. |
| * brigfrontend/brig-function.h: Likewise. |
| * brigfrontend/brig-inst-mod-handler.cc: Likewise. |
| * brigfrontend/brig-label-handler.cc: Likewise. |
| * brigfrontend/brig-lane-inst-handler.cc: Likewise. |
| * brigfrontend/brig-machine.c: Likewise. |
| * brigfrontend/brig-machine.h: Likewise. |
| * brigfrontend/brig-mem-inst-handler.cc: Likewise. |
| * brigfrontend/brig-module-handler.cc: Likewise. |
| * brigfrontend/brig-queue-inst-handler.cc: Likewise. |
| * brigfrontend/brig-seg-inst-handler.cc: Likewise. |
| * brigfrontend/brig-signal-inst-handler.cc: Likewise. |
| * brigfrontend/brig-to-generic.cc: Likewise. |
| * brigfrontend/brig-to-generic.h: Likewise. |
| * brigfrontend/brig-util.cc: Likewise. |
| * brigfrontend/brig-util.h: Likewise. |
| * brigfrontend/brig-variable-handler.cc: Likewise. |
| * brigfrontend/phsa.h: Likewise. |