+2020-11-19 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/91029
+ * range-op.cc (operator_trunc_mod::op1_range): Don't require signed
+ types, nor require that op2 >= 0. Implement (a % b) >= x && x > 0
+ implies a >= x and (a % b) <= x && x < 0 implies a <= x.
+ (operator_trunc_mod::op2_range): New method.
+
+2020-11-19 Andrew MacLeod <amacleod@redhat.com>
+
+ PR tree-optimization/93781
+ * range-op.cc (get_shift_range): Rename from
+ undefined_shift_range_check and now return valid shift ranges.
+ (operator_lshift::fold_range): Use result from get_shift_range.
+ (operator_rshift::fold_range): Ditto.
+
+2020-11-19 Jan Hubicka <jh@suse.cz>
+
+ * fold-const.c (operand_compare::operand_equal_p): Fix thinko in
+ COMPONENT_REF handling and guard types_same_for_odr by
+ virtual_method_call_p.
+ (operand_compare::hash_operand): Likewise.
+
+2020-11-19 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/97860
+ * tree.c (array_type_nelts): For complete arrays with zero min
+ and NULL max and zero size return -1.
+
+2020-11-19 Nathan Sidwell <nathan@acm.org>
+
+ * configure.ac: Add tests for fstatat, sighandler_t, O_CLOEXEC,
+ unix-domain and ipv6 sockets.
+ * config.in: Rebuilt.
+ * configure: Rebuilt.
+
+2020-11-19 Dimitar Dimitrov <dimitar@dinux.eu>
+
+ * config/pru/alu-zext.md: Add lmbd patterns for zero_extend
+ variants.
+ * config/pru/pru.c (enum pru_builtin): Add HALT and LMBD.
+ (pru_init_builtins): Ditto.
+ (pru_builtin_decl): Ditto.
+ (pru_expand_builtin): Ditto.
+ * config/pru/pru.h (CLZ_DEFINED_VALUE_AT_ZERO): Define PRU
+ value for CLZ with zero value parameter.
+ * config/pru/pru.md: Add halt, lmbd and clz patterns.
+ * doc/extend.texi: Document PRU builtins.
+
+2020-11-19 Richard Sandiford <richard.sandiford@arm.com>
+
+ * doc/invoke.texi (-fvect-cost-model): Add a very-cheap model.
+ * common.opt (fvect-cost-model=): Add very-cheap as a possible option.
+ (fsimd-cost-model=): Likewise.
+ (vect_cost_model): Add very-cheap.
+ * flag-types.h (vect_cost_model): Add VECT_COST_MODEL_VERY_CHEAP.
+ Put the values in order of increasing aggressiveness.
+ * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Use
+ range checks when comparing against VECT_COST_MODEL_CHEAP.
+ (vect_prune_runtime_alias_test_list): Do not allow any alias
+ checks for the very-cheap cost model.
+ * tree-vect-loop.c (vect_analyze_loop_costing): Do not allow
+ any peeling for the very-cheap cost model. Also require one
+ iteration of the vector loop to pay for itself.
+
+2020-11-19 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * config/aarch64/aarch64.c (neoversen1_tunings): Use new
+ cortexa76_extra_costs.
+ (neoversev1_tunings): Likewise.
+ (neoversen2_tunines): Likewise.
+ * config/arm/aarch-cost-tables.h (cortexa76_extra_costs):
+ add new costs.
+
+2020-11-19 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * config/aarch64/aarch64.c (aarch64_expand_cpymem): Cleanup code and
+ comments, tweak expansion decisions and improve tail expansion.
+
+2020-11-19 Richard Biener <rguenther@suse.de>
+
+ * fold-const.c (operand_compare::hash_operand): Fix typo.
+
+2020-11-19 Richard Biener <rguenther@suse.de>
+
+ * tree-ssa-reassoc.c (get_rank): Refactor to consistently
+ use the cache and dump ranks assigned.
+
+2020-11-19 Jan Hubicka <jh@suse.cz>
+
+ * fold-const.c (operand_compare::operand_equal_p): More OBJ_TYPE_REF
+ matching to correct place; drop OEP_ADDRESS_OF for TOKEN, OBJECT and
+ class.
+ (operand_compare::hash_operand): Hash ODR type for OBJ_TYPE_REF.
+
+2020-11-19 Joel Hutton <joel.hutton@arm.com>
+
+ * config/aarch64/aarch64-simd.md: Add vec_widen_lshift_hi/lo<mode>
+ patterns.
+ * tree-vect-stmts.c (vectorizable_conversion): Fix for widen_lshift
+ case.
+
+2020-11-19 Joel Hutton <joel.hutton@arm.com>
+
+ * doc/generic.texi: Document new widen_plus/minus_lo/hi tree codes.
+ * doc/md.texi: Document new widenening add/subtract hi/lo optabs.
+ * expr.c (expand_expr_real_2): Add widen_add, widen_subtract cases.
+ * optabs-tree.c (optab_for_tree_code): Add case for widening optabs.
+ * optabs.def (OPTAB_D): Define vectorized widen add, subtracts.
+ * tree-cfg.c (verify_gimple_assign_binary): Add case for widening adds,
+ subtracts.
+ * tree-inline.c (estimate_operator_cost): Add case for widening adds,
+ subtracts.
+ * tree-vect-generic.c (expand_vector_operations_1): Add case for
+ widening adds, subtracts
+ * tree-vect-patterns.c (vect_recog_widen_add_pattern): New recog
+ pattern.
+ (vect_recog_widen_sub_pattern): New recog pattern.
+ (vect_recog_average_pattern): Update widened add code.
+ (vect_recog_average_pattern): Update widened add code.
+ * tree-vect-stmts.c (vectorizable_conversion): Add case for widened add,
+ subtract.
+ (supportable_widening_operation): Add case for widened add, subtract.
+ * tree.def
+ (WIDEN_PLUS_EXPR): New tree code.
+ (WIDEN_MINUS_EXPR): New tree code.
+ (VEC_WIDEN_ADD_HI_EXPR): New tree code.
+ (VEC_WIDEN_PLUS_LO_EXPR): New tree code.
+ (VEC_WIDEN_MINUS_HI_EXPR): New tree code.
+ (VEC_WIDEN_MINUS_LO_EXPR): New tree code.
+
+2020-11-19 Joel Hutton <joel.hutton@arm.com>
+
+ * config/aarch64/aarch64-simd.md: New patterns
+ vec_widen_saddl_lo/hi_<mode>.
+
+2020-11-19 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/97901
+ * tree-ssa-propagate.c (clean_up_loop_closed_phi): Compute
+ dominators and use replace_uses_by.
+
+2020-11-19 Eric Botcazou <ebotcazou@adacore.com>
+
+ * dwarf2out.h (struct fixed_point_type_info) <scale_factor>: Turn
+ numerator and denominator into a tree.
+ * dwarf2out.c (base_type_die): In the case of a fixed-point type
+ with arbitrary scale factor, call add_scalar_info on numerator and
+ denominator to emit the appropriate attributes.
+
+2020-11-19 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/97897
+ * tree-complex.c (complex_propagate::visit_stmt): Make sure
+ abnormally used SSA names are VARYING.
+ (complex_propagate::visit_phi): Likewise.
+ * tree-ssa.c (verify_phi_args): Verify PHI arguments on abnormal
+ edges are SSA names.
+
+2020-11-19 Uroš Bizjak <ubizjak@gmail.com>
+
+ * config/i386/i386.md (*<absneg:code><mode>2_i387_1):
+ Disable for TARGET_SSE_MATH modes.
+
+2020-11-19 Jeff Law <law@redhat.com>
+
+ * config/h8300/constraints.md (R constraint): Add argument to call
+ to h8300_shift_needs_scratch_p.
+ (S and T constraints): Similary.
+ * config/h8300/h8300-protos.h: Update h8300_shift_needs_scratch_p
+ prototype.
+ * config/h8300/h8300.c (expand_a_shift): Emit a different pattern
+ if the shift does not require a scratch register.
+ (h8300_shift_needs_scratch_p): Refine to be more accurate.
+ * config/h8300/shiftrotate.md (shiftqi_noscratch): New pattern.
+ (shifthi_noscratch, shiftsi_noscratch): Similarly.
+
2020-11-18 Roger Sayle <roger@nextmovesoftware.com>
PR middle-end/85811
+2020-11-19 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR ada/97805
+ * adaint.c: Include climits in C++ and limits.h otherwise.
+
+2020-11-19 Eric Botcazou <ebotcazou@adacore.com>
+
+ * exp_dbug.adb (Is_Handled_Scale_Factor): Delete.
+ (Get_Encoded_Name): Do not call it.
+ * gcc-interface/decl.c (gnat_to_gnu_entity) <Fixed_Point_Type>:
+ Tidy up and always use a meaningful description for arbitrary
+ scale factors.
+ * gcc-interface/misc.c (gnat_get_fixed_point_type_info): Remove
+ obsolete block and adjust the description of the scale factor.
+
2020-11-18 Jakub Jelinek <jakub@redhat.com>
* gcc-interface/Make-lang.in (ada.serial): New goal.
+2020-11-19 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/97860
+ * c-decl.c (get_parm_array_spec): Bail out of nelts is
+ error_operand_p.
+
2020-11-18 Jakub Jelinek <jakub@redhat.com>
* Make-lang.in (c.serial): New goal.
+2020-11-19 Nathan Sidwell <nathan@acm.org>
+
+ * cp-tree.h (struct spec_entry): Moved from pt.c.
+ (walk_specializations, match_mergeable_specialization)
+ (get_mergeable_specialization_flags)
+ (add_mergeable_specialization): Declare.
+ * pt.c (struct spec_entry): Moved to cp-tree.h.
+ (walk_specializations, match_mergeable_specialization)
+ (get_mergeable_specialization_flags)
+ (add_mergeable_specialization): New.
+
+2020-11-19 Nathan Sidwell <nathan@acm.org>
+
+ * cp-tree.h (struct constexpr_fundef): Moved from constexpr.c.
+ (maybe_save_constexpr_fundef): Declare.
+ (register_constexpr_fundef): Take constexpr_fundef object, return
+ void.
+ * decl.c (mabe_save_function_definition): Delete, functionality
+ moved to maybe_save_constexpr_fundef.
+ (emit_coro_helper, finish_function): Adjust.
+ * constexpr.c (struct constexpr_fundef): Moved to cp-tree.h.
+ (constexpr_fundef_hasher::equal): Constify.
+ (constexpr_fundef_hasher::hash): Constify.
+ (retrieve_constexpr_fundef): Make non-static.
+ (maybe_save_constexpr_fundef): Break out checking and duplication
+ from ...
+ (register_constexpr_fundef): ... here. Just register the constexpr.
+
+2020-11-19 Marek Polacek <polacek@redhat.com>
+
+ PR c++/97523
+ * init.c (build_new): When value-initializing an array new,
+ leave the INIT as an empty vector.
+
+2020-11-19 Marek Polacek <polacek@redhat.com>
+
+ PR c++/97895
+ * pt.c (do_auto_deduction): Don't crash when the constructor has
+ zero elements.
+
+2020-11-19 Nathan Sidwell <nathan@acm.org>
+
+ PR c++/97905
+ * decl.c (duplicate_decls): Relax new assert.
+
2020-11-18 Iain Sandoe <iain@sandoe.co.uk>
* parser.c (cp_parser_objc_valid_prefix_attributes): Check
+2020-11-19 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/91029
+ * gcc.dg/tree-ssa/pr91029-1.c: New test.
+ * gcc.dg/tree-ssa/pr91029-2.c: New test.
+
+2020-11-19 Andrew MacLeod <amacleod@redhat.com>
+
+ * gcc.dg/tree-ssa/pr93781-1.c: New.
+ * gcc.dg/tree-ssa/pr93781-2.c: New.
+ * gcc.dg/tree-ssa/pr93781-3.c: New.
+
+2020-11-19 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/97860
+ * gcc.dg/pr97860.c: New test.
+
+2020-11-19 Marek Polacek <polacek@redhat.com>
+
+ PR c++/97523
+ * g++.dg/expr/anew5.C: New test.
+ * g++.dg/expr/anew6.C: New test.
+
+2020-11-19 Marek Polacek <polacek@redhat.com>
+
+ PR c++/97895
+ * g++.dg/cpp0x/auto54.C: New test.
+
+2020-11-19 Nathan Sidwell <nathan@acm.org>
+
+ PR c++/97905
+ * g++.dg/lookup/pr97905.C: New.
+
+2020-11-19 Dimitar Dimitrov <dimitar@dinux.eu>
+
+ * gcc.target/pru/halt.c: New test.
+ * gcc.target/pru/lmbd.c: New test.
+
+2020-11-19 Richard Sandiford <richard.sandiford@arm.com>
+
+ * gcc.dg/vect/vect-cost-model-1.c: New test.
+ * gcc.dg/vect/vect-cost-model-2.c: Likewise.
+ * gcc.dg/vect/vect-cost-model-3.c: Likewise.
+ * gcc.dg/vect/vect-cost-model-4.c: Likewise.
+ * gcc.dg/vect/vect-cost-model-5.c: Likewise.
+ * gcc.dg/vect/vect-cost-model-6.c: Likewise.
+
+2020-11-19 Richard Biener <rguenther@suse.de>
+
+ * gcc.dg/pr97897.c: Add dg-options.
+
+2020-11-19 Joel Hutton <joel.hutton@arm.com>
+
+ * gcc.target/aarch64/vect-widen-lshift.c: New test.
+
+2020-11-19 Joel Hutton <joel.hutton@arm.com>
+
+ * gcc.target/aarch64/vect-widen-add.c: New test.
+ * gcc.target/aarch64/vect-widen-sub.c: New test.
+
+2020-11-19 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/97901
+ * gcc.dg/torture/pr97901.c: New testcase.
+
+2020-11-19 Richard Biener <rguenther@suse.de>
+
+ PR tree-optimization/97897
+ * gcc.dg/pr97897.c: New testcase.
+
+2020-11-19 Uroš Bizjak <ubizjak@gmail.com>
+
+ * gcc.target/i386/pr97887.c: New test.
+
2020-11-18 Roger Sayle <roger@nextmovesoftware.com>
PR middle-end/85811
+2020-11-19 Nathan Sidwell <nathan@acm.org>
+
+ * include/cpplib.h (enum cpp_main_search): New.
+ (struct cpp_options): Add main_search field.
+ (cpp_main_loc): Declare.
+ (cpp_retrofit_as_include): Declare.
+ * internal.h (struct cpp_reader): Add main_loc field.
+ (_cpp_in_main_source_file): Not main if main is a header.
+ * init.c (cpp_read_main_file): Use main_search option to locate
+ main file. Set main_loc
+ * files.c (cpp_retrofit_as_include): New.
+
+2020-11-19 Nathan Sidwell <nathan@acm.org>
+
+ * internal.h (cpp_in_system_header): Rename to ...
+ (_cpp_in_system_header): ... here.
+ (cpp_in_primary_file): Rename to ...
+ (_cpp_in_main_source_file): ... here. Compare main_file equality
+ and check main_search value.
+ * lex.c (maybe_va_opt_error, _cpp_lex_direct): Adjust for rename.
+ * macro.c (_cpp_builtin_macro_text): Likewise.
+ (replace_args): Likewise.
+ * directives.c (do_include_next): Likewise.
+ (do_pragma_once, do_pragma_system_header): Likewise.
+ * files.c (struct _cpp_file): Delete main_file field.
+ (pch_open): Check pfile->main_file equality.
+ (make_cpp_file): Drop cpp_reader parm, don't set main_file.
+ (_cpp_find_file): Adjust.
+ (_cpp_stack_file): Check pfile->main_file equality.
+ (struct report_missing_guard_data): Add cpp_reader field.
+ (report_missing_guard): Check pfile->main_file equality.
+ (_cpp_report_missing_guards): Adjust.
+
2020-11-18 Nathan Sidwell <nathan@acm.org>
* include/cpplib.h (struct cpp_options): Add module_directives
+2020-11-19 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/95989
+ * config/os/gnu-linux/os_defines.h (_GLIBCXX_NATIVE_THREAD_ID):
+ Define new macro to get reliable thread ID.
+ * include/bits/std_thread.h: (this_thread::get_id): Use new
+ macro if it's defined.
+ * testsuite/30_threads/jthread/95989.cc: New test.
+ * testsuite/30_threads/this_thread/95989.cc: New test.
+
+2020-11-19 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/30_threads/async/async.cc: Include <thread>.
+ * testsuite/30_threads/future/members/93456.cc: Likewise.
+
+2020-11-19 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/92546
+ * include/Makefile.am: Add new <bits/std_thread.h> header.
+ * include/Makefile.in: Regenerate.
+ * include/std/future: Include new header instead of <thread>.
+ * include/std/stop_token: Include new header instead of
+ <bits/gthr.h>.
+ (stop_token::_S_yield()): Use this_thread::yield().
+ (_Stop_state_t::_M_requester): Change type to std::thread::id.
+ (_Stop_state_t::_M_request_stop()): Use this_thread::get_id().
+ (_Stop_state_t::_M_remove_callback(_Stop_cb*)): Likewise.
+ Use __is_single_threaded() to decide whether to synchronize.
+ * include/std/thread (thread, operator==, this_thread::get_id)
+ (this_thread::yield): Move to new header.
+ (operator<=>, operator!=, operator<, operator<=, operator>)
+ (operator>=, hash<thread::id>, operator<<): Define even when
+ gthreads not available.
+ * src/c++11/thread.cc: Include <memory>.
+ * include/bits/std_thread.h: New file.
+ (thread, operator==, this_thread::get_id, this_thread::yield):
+ Define even when gthreads not available.
+ [!_GLIBCXX_HAS_GTHREADS] (thread::join, thread::detach)
+ (thread::hardware_concurrency): Define inline.
+
+2020-11-19 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/93421
+ PR libstdc++/93456
+ * src/c++11/futex.cc (syscall_time_t): New typedef for
+ the type of the syscall_timespec::tv_sec member.
+ (relative_timespec, _M_futex_wait_until)
+ (_M_futex_wait_until_steady): Use syscall_time_t in overflow
+ checks, not time_t.
+
2020-11-18 Patrick Palka <ppalka@redhat.com>
* include/std/ranges (join_view::_Iterator::_M_satisfy): Uglify