+2020-09-11 Michael Meissner <meissner@linux.ibm.com>
+
+ * config/rs6000/rs6000.c (rs6000_maybe_emit_maxc_minc): Rename
+ from rs6000_emit_p9_fp_minmax. Change return type to bool. Add
+ comments to document NaN/signed zero behavior.
+ (rs6000_maybe_emit_fp_cmove): Rename from rs6000_emit_p9_fp_cmove.
+ (have_compare_and_set_mask): New helper function.
+ (rs6000_emit_cmove): Update calls to new names and the new helper
+ function.
+
+2020-09-11 Nathan Sidwell <nathan@acm.org>
+
+ * config/i386/sse.md (mov<mode>): Fix operand indices.
+
+2020-09-11 Martin Sebor <msebor@redhat.com>
+
+ PR middle-end/96903
+ * builtins.c (compute_objsize): Remove incorrect offset adjustment.
+ (compute_objsize): Adjust offset range here instead.
+
+2020-09-11 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/97020
+ * tree-vect-slp.c (vect_slp_analyze_operations): Apply
+ SLP costs when doing loop vectorization.
+
+2020-09-11 Tom de Vries <tdevries@suse.de>
+
+ PR target/96964
+ * config/nvptx/nvptx.md (define_expand "atomic_test_and_set"): New
+ expansion.
+
+2020-09-11 Andrew Stubbs <ams@codesourcery.com>
+
+ * config/gcn/gcn.c (gcn_hard_regno_mode_ok): Align TImode registers.
+ * config/gcn/gcn.md: Assert that TImode registers do not early clobber.
+
+2020-09-11 Richard Biener <rguenther@suse.de>
+
+ * tree-vectorizer.h (_slp_instance::location): New method.
+ (vect_schedule_slp): Adjust prototype.
+ * tree-vectorizer.c (vec_info::remove_stmt): Adjust
+ the BB region begin if we removed the stmt it points to.
+ * tree-vect-loop.c (vect_transform_loop): Adjust.
+ * tree-vect-slp.c (_slp_instance::location): Implement.
+ (vect_analyze_slp_instance): For BB vectorization set
+ vect_location to that of the instance.
+ (vect_slp_analyze_operations): Likewise.
+ (vect_bb_vectorization_profitable_p): Remove wrapper.
+ (vect_slp_analyze_bb_1): Remove cost check here.
+ (vect_slp_region): Cost check and code generate subgraphs separately,
+ report optimized locations and missed optimizations due to
+ profitability for each of them.
+ (vect_schedule_slp): Get the vector of SLP graph entries to
+ vectorize as argument.
+
+2020-09-11 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/97013
+ * tree-vect-slp.c (vect_slp_analyze_bb_1): Remove duplicate dumping.
+
+2020-09-11 Richard Biener <rguenther@suse.de>
+
+ * tree-vect-slp.c (vect_build_slp_tree_1): Check vector
+ types for all lanes are compatible.
+ (vect_analyze_slp_instance): Appropriately check for stores.
+ (vect_schedule_slp): Likewise.
+
+2020-09-11 Tom de Vries <tdevries@suse.de>
+
+ * config/nvptx/nvptx.c (nvptx_assemble_value): Fix undefined
+ behaviour.
+
+2020-09-11 Tom de Vries <tdevries@suse.de>
+
+ * config/nvptx/nvptx.c (nvptx_assemble_value): Handle negative
+ __int128.
+
+2020-09-11 Aaron Sawdey <acsawdey@linux.ibm.com>
+
+ * config/rs6000/rs6000.c (rs6000_option_override_internal):
+ Change default.
+
2020-09-10 Michael Meissner <meissner@linux.ibm.com>
* config/rs6000/rs6000-protos.h (rs6000_emit_cmove): Change return
+2020-09-11 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/utils.c (type_has_variable_size): New function.
+ (create_field_decl): In the packed case, also force byte alignment
+ when the type of the field has variable size.
+
+2020-09-11 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/misc.c (get_array_bit_stride): Return TYPE_ADA_SIZE
+ for record and union types.
+
+2020-09-11 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/misc.c (gnat_get_fixed_point_type): Bail out only
+ when the GNAT encodings are specifically used.
+
+2020-09-11 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Only
+ create extra subtypes for discriminants if the RM size of the base
+ type of the index type is lower than that of the index type.
+
2020-09-10 Eric Botcazou <ebotcazou@adacore.com>
* gcc-interface/decl.c (set_rm_size): Do not take into account the
+2020-09-11 David Malcolm <dmalcolm@redhat.com>
+
+ PR analyzer/96798
+ * region-model-impl-calls.cc (region_model::impl_call_memcpy):
+ New.
+ (region_model::impl_call_strcpy): New.
+ * region-model.cc (region_model::on_call_pre): Flag unhandled
+ builtins that are non-pure as having unknown side-effects.
+ Implement BUILT_IN_MEMCPY, BUILT_IN_MEMCPY_CHK, BUILT_IN_STRCPY,
+ BUILT_IN_STRCPY_CHK, BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED,
+ BUILT_IN_PUTC, BUILT_IN_PUTC_UNLOCKED, BUILT_IN_FPUTC,
+ BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS, BUILT_IN_FPUTS_UNLOCKED,
+ BUILT_IN_FWRITE, BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_PRINTF,
+ BUILT_IN_PRINTF_UNLOCKED, BUILT_IN_PUTCHAR,
+ BUILT_IN_PUTCHAR_UNLOCKED, BUILT_IN_PUTS, BUILT_IN_PUTS_UNLOCKED,
+ BUILT_IN_VFPRINTF, BUILT_IN_VPRINTF.
+ * region-model.h (region_model::impl_call_memcpy): New decl.
+ (region_model::impl_call_strcpy): New decl.
+
2020-09-09 David Malcolm <dmalcolm@redhat.com>
PR analyzer/94355
+2020-09-11 Nathan Sidwell <nathan@acm.org>
+
+ * decl.c (grokfndecl): Don't attach to local extern.
+
+2020-09-11 Nathan Sidwell <nathan@acm.org>
+
+ * parser.c (cp_parser_objc_method_definition_list): Reimplement
+ loop, make sure we pop scope.
+
+2020-09-11 Marek Polacek <polacek@redhat.com>
+
+ * cp-tree.h (LOOKUP_CONSTINIT): Remove.
+ (LOOKUP_REWRITTEN): Adjust.
+ * decl.c (duplicate_decls): Set DECL_DECLARED_CONSTINIT_P.
+ (check_initializer): Use DECL_DECLARED_CONSTINIT_P instead of
+ LOOKUP_CONSTINIT.
+ (cp_finish_decl): Don't set DECL_DECLARED_CONSTINIT_P. Use
+ DECL_DECLARED_CONSTINIT_P instead of LOOKUP_CONSTINIT.
+ (grokdeclarator): Set DECL_DECLARED_CONSTINIT_P.
+ * decl2.c (grokfield): Don't handle LOOKUP_CONSTINIT.
+ * parser.c (cp_parser_decomposition_declaration): Remove
+ LOOKUP_CONSTINIT handling.
+ (cp_parser_init_declarator): Likewise.
+ * pt.c (tsubst_expr): Likewise.
+ (instantiate_decl): Likewise.
+ * typeck2.c (store_init_value): Use DECL_DECLARED_CONSTINIT_P instead
+ of LOOKUP_CONSTINIT.
+
2020-09-10 Nathan Sidwell <nathan@acm.org>
* cp-tree.h (TINFO_VAR_DECLARED_CONSTINIT): Replace with ...
+2020-09-11 Andrea Corallo <andrea.corallo@arm.com>
+
+ * docs/topics/compatibility.rst (LIBGCCJIT_ABI_14): New ABI tag.
+ * docs/topics/expressions.rst (gcc_jit_global_set_initializer):
+ Document new entry point in section 'Global variables'.
+ * jit-playback.c (global_new_decl, global_finalize_lvalue): New
+ method.
+ (playback::context::new_global): Make use of global_new_decl,
+ global_finalize_lvalue.
+ (load_blob_in_ctor): New template function in use by the
+ following.
+ (playback::context::new_global_initialized): New method.
+ * jit-playback.h (class context): Decl 'new_global_initialized',
+ 'global_new_decl', 'global_finalize_lvalue'.
+ (lvalue::set_initializer): Add implementation.
+ * jit-recording.c (recording::memento_of_get_pointer::get_size)
+ (recording::memento_of_get_type::get_size): Add implementation.
+ (recording::global::write_initializer_reproducer): New function in
+ use by 'recording::global::write_reproducer'.
+ (recording::global::replay_into)
+ (recording::global::write_to_dump)
+ (recording::global::write_reproducer): Handle
+ initialized case.
+ * jit-recording.h (class type): Decl 'get_size' and
+ 'num_elements'.
+ * libgccjit++.h (class lvalue): Declare new 'set_initializer'
+ method.
+ (class lvalue): Decl 'is_global' and 'set_initializer'.
+ (class global) Decl 'write_initializer_reproducer'. Add
+ 'm_initializer', 'm_initializer_num_bytes' fields. Implement
+ 'set_initializer'. Add a destructor to free 'm_initializer'.
+ * libgccjit.c (gcc_jit_global_set_initializer): New function.
+ * libgccjit.h (gcc_jit_global_set_initializer): New function
+ declaration.
+ * libgccjit.map (LIBGCCJIT_ABI_14): New ABI tag.
+
2020-08-28 Martin Sebor <msebor@redhat.com>
* jit-recording.c (recording::switch_::make_debug_string): Add argument
+2020-09-11 Nathan Sidwell <nathan@acm.org>
+
+ * g++.dg/concepts/local-extern.C: New file.
+
+2020-09-11 Will Schmidt <will_schmidt@vnet.ibm.com>
+
+ * gcc.target/powerpc/pr96139-a.c: Specify -mvsx option and update the
+ dg-require stanza to match.
+ * gcc.target/powerpc/pr96139-b.c: Same.
+ * gcc.target/powerpc/pr96139-c.c: Specify -maltivec option and update
+ the dg-require stanza to match.
+
+2020-09-11 Sunil K Pandey <skpgkp2@gmail.com>
+
+ PR target/97018
+ * gcc.target/i386/l_fma_double_1.c: Add option -mno-avx512f.
+ * gcc.target/i386/l_fma_double_2.c: Likewise.
+ * gcc.target/i386/l_fma_double_3.c: Likewise.
+ * gcc.target/i386/l_fma_double_4.c: Likewise.
+ * gcc.target/i386/l_fma_double_5.c: Likewise.
+ * gcc.target/i386/l_fma_double_6.c: Likewise.
+ * gcc.target/i386/l_fma_float_1.c: Likewise.
+ * gcc.target/i386/l_fma_float_2.c: Likewise.
+ * gcc.target/i386/l_fma_float_3.c: Likewise.
+ * gcc.target/i386/l_fma_float_4.c: Likewise.
+ * gcc.target/i386/l_fma_float_5.c: Likewise.
+ * gcc.target/i386/l_fma_float_6.c: Likewise.
+
+2020-09-11 Martin Sebor <msebor@redhat.com>
+
+ PR middle-end/96903
+ * gcc.dg/Wstringop-overflow-42.c:: Add comment.
+ * gcc.dg/Wstringop-overflow-43.c: New test.
+
+2020-09-11 Nathan Sidwell <nathan@acm.org>
+
+ * obj-c++.dg/syntax-error-9.mm: Adjust expected errors.
+
+2020-09-11 Andrew Stubbs <ams@codesourcery.com>
+
+ * gcc.dg/gimplefe-44.c: Require exceptions.
+
+2020-09-11 Andrea Corallo <andrea.corallo@arm.com>
+
+ * jit.dg/all-non-failing-tests.h: Add test-blob.c.
+ * jit.dg/test-global-set-initializer.c: New testcase.
+
+2020-09-11 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/pack27.adb: New test.
+ * gnat.dg/pack27_pkg.ads: New helper.
+
+2020-09-11 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gnat.dg/specs/discr7.ads: New test.
+
+2020-09-11 Tom de Vries <tdevries@suse.de>
+
+ * gcc.target/nvptx/int128.c: New test.
+
+2020-09-11 David Malcolm <dmalcolm@redhat.com>
+
+ PR analyzer/96798
+ * gcc.dg/analyzer/memcpy-1.c: New test.
+ * gcc.dg/analyzer/strcpy-1.c: New test.
+
2020-09-10 Alex Coplan <alex.coplan@arm.com>
* gcc.target/aarch64/acle/armv8-r.c: New test.
+2020-09-11 Tom de Vries <tdevries@suse.de>
+
+ PR target/96898
+ * configure.tgt: Add nvptx.
+ * libatomic_i.h (MASK_8, INVERT_MASK_8): New macro definition.
+ * config/nvptx/host-config.h: New file.
+ * config/nvptx/lock.c: New file.
+
2020-09-07 Tom de Vries <tdevries@suse.de>
* testsuite/libatomic.c/atomic-generic.c: Include string.h.
+2020-09-11 Thomas Rodgers <trodgers@redhat.com>
+
+ * include/std/memory: Move #include <bits/align.h> inside C++11
+ conditional includes.
+
+2020-09-11 Thomas Rodgers <trodgers@redhat.com>
+
+ * include/Makefile.am (bits_headers): Add new header.
+ * include/Makefile.in: Regenerate.
+ * include/bits/align.h: New file.
+ * include/std/memory (align): Move definition to bits/align.h.
+ (assume_aligned): Likewise.
+
+2020-09-11 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/chrono [C++17] (chrono::__detail::ceil): Add
+ using declaration to make chrono::ceil available for internal
+ use with a consistent name.
+ (chrono::__detail::__ceil_impl): New function template.
+ (chrono::__detail::ceil): Use __ceil_impl to compare and
+ increment the value. Remove SFINAE constraint.
+
+2020-09-11 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/regex_error.h (__throw_regex_error): Fix
+ parameter declaration and use reserved attribute names.
+
+2020-09-11 Mike Crowe <mac@mcrowe.com>
+
+ * include/std/condition_variable (condition_variable::wait_until):
+ Convert delta to steady_clock duration before adding to current
+ steady_clock time to avoid rounding errors described in PR68519.
+ (condition_variable::wait_for): Simplify calculation of absolute
+ time by using chrono::__detail::ceil in both overloads.
+ * testsuite/30_threads/condition_variable/members/68519.cc:
+ (test_wait_for): Renamed from test01. Replace unassigned val
+ variable with constant false. Reduce scope of mx and cv
+ variables to just test_wait_for function.
+ (test_wait_until): Add new test case.
+
+2020-09-11 Mike Crowe <mac@mcrowe.com>
+
+ PR libstdc++/91486
+ * include/bits/atomic_futex.h
+ (__atomic_futex_unsigned::_M_load_when_equal_for)
+ (__atomic_futex_unsigned::_M_load_when_equal_until): Use
+ __detail::ceil to convert delta to the reference clock
+ duration type to avoid resolution problems.
+ * include/std/chrono (__detail::ceil): Move implementation
+ of std::chrono::ceil into private namespace so that it's
+ available to pre-C++17 code.
+ * testsuite/30_threads/async/async.cc (test_pr91486):
+ Test __atomic_futex_unsigned::_M_load_when_equal_for.
+
+2020-09-11 Mike Crowe <mac@mcrowe.com>
+
+ * include/bits/atomic_futex.h
+ (__atomic_futex_unsigned::_M_load_when_equal_until): Add
+ loop on generic _Clock to check the timeout against _Clock
+ again after _M_load_when_equal_until returns indicating a
+ timeout.
+ * testsuite/30_threads/async/async.cc: Invent slow_clock
+ that runs at an eleventh of steady_clock's speed. Use it
+ to test the user-supplied-clock variant of
+ __atomic_futex_unsigned::_M_load_when_equal_until works
+ generally with test03 and loops correctly when the timeout
+ time hasn't been reached in test04.
+
+2020-09-11 Mike Crowe <mac@mcrowe.com>
+
+ * include/bits/atomic_futex.h (__atomic_futex_unsigned): Change
+ __clock_t typedef to use steady_clock so that unknown clocks are
+ synced to it rather than system_clock. Change existing __clock_t
+ overloads of _M_load_and_text_until_impl and
+ _M_load_when_equal_until to use system_clock explicitly. Remove
+ comment about DR 887 since these changes address that problem as
+ best as we currently able.
+
+2020-09-11 Mike Crowe <mac@mcrowe.com>
+
+ * config/abi/pre/gnu.ver: Update for addition of
+ __atomic_futex_unsigned_base::_M_futex_wait_until_steady.
+ * include/bits/atomic_futex.h (__atomic_futex_unsigned_base):
+ Add comments to clarify that _M_futex_wait_until and
+ _M_load_and_test_until use CLOCK_REALTIME.
+ (__atomic_futex_unsigned_base::_M_futex_wait_until_steady)
+ (__atomic_futex_unsigned_base::_M_load_and_text_until_steady):
+ New member functions that use CLOCK_MONOTONIC.
+ (__atomic_futex_unsigned_base::_M_load_and_test_until_impl)
+ (__atomic_futex_unsigned_base::_M_load_when_equal_until): Add
+ overloads that accept a steady_clock time_point and use the
+ new member functions.
+ * src/c++11/futex.cc: Include headers required for
+ clock_gettime.
+ (futex_clock_monotonic_flag): New constant to tell futex to
+ use CLOCK_MONOTONIC to match existing futex_clock_realtime_flag.
+ (futex_clock_monotonic_unavailable): New global to store the
+ result of trying to use CLOCK_MONOTONIC.
+ (__atomic_futex_unsigned_base::_M_futex_wait_until_steady): Add
+ new variant of _M_futex_wait_until that uses CLOCK_MONOTONIC to
+ support waiting using steady_clock.
+
+2020-09-11 Mike Crowe <mac@mcrowe.com>
+
+ * src/c++11/futex.cc: Add new constants for required futex
+ flags. Add futex_clock_realtime_unavailable flag to store
+ result of trying to use FUTEX_CLOCK_REALTIME.
+ (__atomic_futex_unsigned_base::_M_futex_wait_until): Try to
+ use FUTEX_WAIT_BITSET with FUTEX_CLOCK_REALTIME and only
+ fall back to using gettimeofday and FUTEX_WAIT if that's not
+ supported.
+
+2020-09-11 Mike Crowe <mac@mcrowe.com>
+
+ * testsuite/30_threads/async/async.cc (test02): Test steady_clock
+ with std::future::wait_until.
+ (test03): Add new test templated on clock type waiting for future
+ associated with async to resolve.
+ (main): Call test03 to test both system_clock and steady_clock.
+
+2020-09-11 Torbjörn SVENSSON <torbjorn.svensson@st.com>
+ Christophe Lyon <christophe.lyon@linaro.org>
+
+ * libsupc++/eh_call.cc: Avoid warning with -fno-exceptions.
+
+2020-09-11 Torbjörn SVENSSON <torbjorn.svensson@st.com>
+ Christophe Lyon <christophe.lyon@linaro.org>
+
+ * libsupc++/eh_call.cc: Avoid warning with -fno-exceptions.
+
+2020-09-11 Christophe Lyon <christophe.lyon@linaro.org>
+
+ * include/bits/regex_error.h: Avoid warning with -fno-exceptions.
+
2020-09-10 Jonathan Wakely <jwakely@redhat.com>
* include/bits/locale_conv.h (__do_str_codecvt, __str_codecvt_in_all):