]> git.ipfire.org Git - thirdparty/gcc.git/blobdiff - gcc/brig/ChangeLog
Update copyright years.
[thirdparty/gcc.git] / gcc / brig / ChangeLog
index 1b1a1eb523ff373739f9ce807fdbb553a79d68f7..a45f22557775dbb85c8885a35e74c94b41db75ef 100644 (file)
@@ -1,3 +1,327 @@
+2020-01-01  Jakub Jelinek  <jakub@redhat.com>
+
+       Update copyright years.
+
+2019-10-04  Joseph Myers  <joseph@codesourcery.com>
+
+       * brig-lang.c (flag_isoc2x): New variable.
+
+2019-08-23  Jakub Jelinek  <jakub@redhat.com>
+
+       PR middle-end/91283
+       * brig-lang.c (brig_langhook_post_options): Set flag_excess_precision
+       instead of flag_excess_precision_cmdline.
+
+2019-06-25  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
+
+       * brig-lang.c (brig_build_c_type_nodes): Accept "__intN__"
+       format of "__intN" types for SIZE_TYPE.
+
+2019-05-16  Martin Sebor  <msebor@redhat.com>
+
+       * brigfrontend/brig-control-handler.cc
+       (brig_directive_control_handler::operator): Remove trailing newline
+       from a diagnostic.
+       * brigfrontend/brig-module-handler.cc
+       (brig_directive_module_handler::operator): Remove a duplicated space
+       from a diagnostic.
+
+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-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>
+
+       * 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.
+       * brigfrontend/brig-basic-inst-handler.cc: See above.
+       * brigfrontend/brig-branch-inst-handler.cc: See above.
+       * brigfrontend/brig-cmp-inst-handler.cc: See above.
+       * brigfrontend/brig-code-entry-handler.cc: See above.
+       * brigfrontend/brig-code-entry-handler.h: See above.
+       * brigfrontend/brig-control-handler.cc: See above.
+       * brigfrontend/brig-cvt-inst-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-label-handler.cc: See above.
+       * brigfrontend/brig-lane-inst-handler.cc: See above.
+       * brigfrontend/brig-mem-inst-handler.cc: See above.
+       * brigfrontend/phsa.h: See above.
+       * lang.opt: See above.
+
+2018-05-04  Pekka Jääskeläinen  <pekka.jaaskelainen@parmance.com>
+
+       * 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-lang.c: Do not allow optimizations based on known C
+       builtins.
+
+2018-05-04  Pekka Jääskeläinen  <pekka.jaaskelainen@parmance.com>
+
+       * brig-lang.c: Allow controlling strict aliasing from
+       cmd line.
+
+2018-05-04  Pekka Jääskeläinen  <pekka.jaaskelainen@parmance.com>
+
+       * 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-lang.c: Add support for whole program
+       optimizations by marking the kernels externally visible.
+       * brigfrontend/brig-branch-inst-handler.cc: See above.
+       * brigfrontend/brig-function-handler.cc: See above.
+       * brigfrontend/brig-function.cc: See above.
+       * brigfrontend/brig-to-generic.cc: See above.
+       * brigfrontend/brig-to-generic.h: See above.
+       * 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.
+       * 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