+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