diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 04757bae27d..d888dc5798d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,207 @@ +2021-08-04 David Malcolm + + PR analyzer/101570 + * Makefile.in (ANALYZER_OBJS): Add analyzer/region-model-asm.o. + +2021-08-04 H.J. Lu + + PR target/101742 + * config/i386/i386.h (STORE_MAX_PIECES): Allow 16/32/64 bytes + only if TARGET_INTER_UNIT_MOVES_TO_VEC is true. + +2021-08-04 H.J. Lu + + PR target/101772 + * config/i386/i386-expand.c (ix86_expand_vector_move): Call + ix86_gen_scratch_sse_rtx to get a scratch SSE register to copy + data with SSE register from one memory location to another. + +2021-08-04 Andreas Krebbel + + * config/s390/s390.c (expand_perm_with_vpdi): New function. + (vectorize_vec_perm_const_1): Call expand_perm_with_vpdi. + * config/s390/vector.md (*vpdi1, @vpdi1): Enable a + parameterized expander. + (*vpdi4, @vpdi4): Likewise. + +2021-08-04 Andreas Krebbel + + * config/s390/s390.c (MAX_VECT_LEN): Define macro. + (struct expand_vec_perm_d): Define struct. + (expand_perm_with_merge): New function. + (vectorize_vec_perm_const_1): New function. + (s390_vectorize_vec_perm_const): New function. + (TARGET_VECTORIZE_VEC_PERM_CONST): Define target macro. + +2021-08-04 Andreas Krebbel + + * config/s390/vector.md (V_HW_64): Remove mode iterator. + (*vec_load_pair): Use V_HW_2 instead of V_HW_64. + * config/s390/vx-builtins.md + (vec_scatter_element_SI): Use V_HW_2 instead of + V_HW_64. + +2021-08-04 Andreas Krebbel + + * config/s390/s390.md (UNSPEC_VEC_PERMI): Remove constant + definition. + * config/s390/vector.md (*vpdi1, *vpdi4): New pattern + definitions. + * config/s390/vx-builtins.md (*vec_permi): Emit generic rtx + instead of an unspec. + +2021-08-04 Andreas Krebbel + + * config/s390/s390-modes.def: Add more vector modes to support + concatenation of two vectors. + * config/s390/s390-protos.h (s390_expand_merge_perm_const): Add + prototype. + (s390_expand_merge): Likewise. + * config/s390/s390.c (s390_expand_merge_perm_const): New function. + (s390_expand_merge): New function. + * config/s390/s390.md (UNSPEC_VEC_MERGEH, UNSPEC_VEC_MERGEL): + Remove constant definitions. + * config/s390/vector.md (V_HW_2): Add mode iterators. + (VI_HW_4, V_HW_4): Rename VI_HW_4 to V_HW_4. + (vec_2x_nelts, vec_2x_wide): New mode attributes. + (*vmrhb, *vmrlb, *vmrhh, *vmrlh, *vmrhf, *vmrlf, *vmrhg, *vmrlg): + New pattern definitions. + (vec_widen_umult_lo_, vec_widen_umult_hi_) + (vec_widen_smult_lo_, vec_widen_smult_hi_) + (vec_unpacks_lo_v4sf, vec_unpacks_hi_v4sf, vec_unpacks_lo_v2df) + (vec_unpacks_hi_v2df): Adjust expanders to emit non-unspec RTX for + vec merge. + * config/s390/vx-builtins.md (V_HW_4): Remove mode iterator. Now + in vector.md. + (vec_mergeh, vec_mergel): Use s390_expand_merge to + emit vec merge pattern. + +2021-08-04 Jonathan Wright + + * config/aarch64/aarch64.c (aarch64_strip_extend_vec_half): + Define. + (aarch64_rtx_mult_cost): Traverse RTL tree to prevent cost of + vec_select high-half from being added into Neon multiply + cost. + * rtlanal.c (vec_series_highpart_p): Define. + * rtlanal.h (vec_series_highpart_p): Declare. + +2021-08-04 Jonathan Wright + + * config/aarch64/aarch64.c (aarch64_strip_duplicate_vec_elt): + Define. + (aarch64_rtx_mult_cost): Traverse RTL tree to prevent + vec_select cost from being added into Neon multiply cost. + +2021-08-04 Richard Sandiford + + * tree-vect-loop.c (vect_better_loop_vinfo_p): Detect cases in + which old_loop_vinfo is an epilogue loop that handles a constant + number of iterations. + +2021-08-04 Richard Sandiford + + * tree-vect-loop.c (vect_analyze_loop): Print a dump message + when a reanalyzed loop fails to be cheaper than the current + main loop. + +2021-08-04 Richard Sandiford + + * config/aarch64/aarch64.c: Fix a typo. + +2021-08-04 Vincent Lefèvre + + PR gcov-profile/101773 + * gcov-io.c (gcov_close): Check return code of a fclose. + +2021-08-04 Bernd Edlinger + + PR ada/101575 + * dwarf2out.c (dwarf2out_assembly_start): Emit a dummy + .file statement when needed. + +2021-08-04 Richard Biener + + * tree-vect-data-refs.c (vect_check_gather_scatter): + Include widening conversions only when the result is + still handed by native gather or the current offset + size not already matches the data size. + Also succeed analysis in case there's no native support, + noted by a IFN_LAST ifn and a NULL decl. + (vect_analyze_data_refs): Always consider gathers. + * tree-vect-patterns.c (vect_recog_gather_scatter_pattern): + Test for no IFN gather rather than decl gather. + * tree-vect-stmts.c (vect_model_load_cost): Pass in the + gather-scatter info and cost emulated gathers accordingly. + (vect_truncate_gather_scatter_offset): Properly test for + no IFN gather. + (vect_use_strided_gather_scatters_p): Likewise. + (get_load_store_type): Handle emulated gathers and its + restrictions. + (vectorizable_load): Likewise. Emulate them by extracting + scalar offsets, doing scalar loads and a vector construct. + +2021-08-04 H.J. Lu + + PR target/101742 + * expr.c (op_by_pieces_d::op_by_pieces_d): Add a max_pieces + argument to set m_max_size. + (move_by_pieces_d): Pass MOVE_MAX_PIECES to op_by_pieces_d. + (store_by_pieces_d): Pass STORE_MAX_PIECES to op_by_pieces_d. + (compare_by_pieces_d): Pass COMPARE_MAX_PIECES to op_by_pieces_d. + +2021-08-04 Roger Sayle + Marc Glisse + + * match.pd (bit_ior, bit_xor): Canonicalize (X*C1)|(X*C2) and + (X*C1)^(X*C2) as X*(C1+C2), and related variants, using + tree_nonzero_bits to ensure that operands are bit-wise disjoint. + +2021-08-04 Richard Biener + + * tree-ssa-forwprop.c (pass_forwprop::execute): Split + out code to decompose vector loads ... + (optimize_vector_load): ... here. Generalize it to + handle intermediate widening and TARGET_MEM_REF loads + and apply it to loads with a supported vector mode as well. + +2021-08-04 Richard Biener + + PR tree-optimization/101756 + * tree-vect-slp.c (vectorizable_bb_reduc_epilogue): Make sure + the result of the reduction epilogue is compatible to the original + scalar result. + +2021-08-04 liuhongt + + PR target/101743 + * config/i386/i386.md (peephole2): Refine predicate from + register_operand to general_reg_operand. + +2021-08-04 Aldy Hernandez + + * gimple-range-path.h (path_range_query::dump): Mark override. + +2021-08-04 Richard Biener + + PR tree-optimization/101769 + * tree-tailcall.c (eliminate_tail_call): Add the created loop + for the first recursion and return it via the new output parameter. + (optimize_tail_call): Pass through new output param. + (tree_optimize_tail_calls_1): After creating all latches, + add the created loop to the loop tree. Do not mark loops for fixup. + +2021-08-04 Martin Liska + + * doc/invoke.texi: Document threader-mode param. + +2021-08-04 liuhongt + + * config/i386/sse.md (cond_fma): New expander. + (cond_fms): Ditto. + (cond_fnma): Ditto. + (cond_fnms): Ditto. + 2021-08-03 Segher Boessenkool * config/rs6000/vsx.md (*vsx_le_perm_store_): Use && instead of &. diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP index 856144c7aa2..6168f4600b0 100644 --- a/gcc/DATESTAMP +++ b/gcc/DATESTAMP @@ -1 +1 @@ -20210804 +20210805 diff --git a/gcc/analyzer/ChangeLog b/gcc/analyzer/ChangeLog index 4579796ed00..43e3c634711 100644 --- a/gcc/analyzer/ChangeLog +++ b/gcc/analyzer/ChangeLog @@ -1,3 +1,39 @@ +2021-08-04 David Malcolm + + PR analyzer/101570 + * analyzer.cc (maybe_reconstruct_from_def_stmt): Add GIMPLE_ASM + case. + * analyzer.h (class asm_output_svalue): New forward decl. + (class reachable_regions): New forward decl. + * complexity.cc (complexity::from_vec_svalue): New. + * complexity.h (complexity::from_vec_svalue): New decl. + * engine.cc (feasibility_state::maybe_update_for_edge): Handle + asm stmts by calling on_asm_stmt. + * region-model-asm.cc: New file. + * region-model-manager.cc + (region_model_manager::maybe_fold_asm_output_svalue): New. + (region_model_manager::get_or_create_asm_output_svalue): New. + (region_model_manager::log_stats): Log m_asm_output_values_map. + * region-model.cc (region_model::on_stmt_pre): Handle GIMPLE_ASM. + * region-model.h (visitor::visit_asm_output_svalue): New. + (region_model_manager::get_or_create_asm_output_svalue): New decl. + (region_model_manager::maybe_fold_asm_output_svalue): New decl. + (region_model_manager::asm_output_values_map_t): New typedef. + (region_model_manager::m_asm_output_values_map): New field. + (region_model::on_asm_stmt): New. + * store.cc (binding_cluster::on_asm): New. + * store.h (binding_cluster::on_asm): New decl. + * svalue.cc (svalue::cmp_ptr): Handle SK_ASM_OUTPUT. + (asm_output_svalue::dump_to_pp): New. + (asm_output_svalue::dump_input): New. + (asm_output_svalue::input_idx_to_asm_idx): New. + (asm_output_svalue::accept): New. + * svalue.h (enum svalue_kind): Add SK_ASM_OUTPUT. + (svalue::dyn_cast_asm_output_svalue): New. + (class asm_output_svalue): New. + (is_a_helper ::test): New. + (struct default_hash_traits): New. + 2021-08-03 Jakub Jelinek PR analyzer/101721 diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 5468792778d..5b3e191e5d9 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2021-08-04 Jakub Jelinek + + PR c++/101759 + * parser.c (cp_parser_default_argument): Temporarily override + parser->omp_declare_simd and parser->oacc_routine to NULL. + 2021-08-02 Patrick Palka PR c++/100828 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 097a5b52365..04b011beabd 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,123 @@ +2021-08-04 David Malcolm + + PR analyzer/101570 + * gcc.dg/analyzer/asm-x86-1.c: New test. + * gcc.dg/analyzer/asm-x86-lp64-1.c: New test. + * gcc.dg/analyzer/asm-x86-lp64-2.c: New test. + * gcc.dg/analyzer/pr101570.c: New test. + * gcc.dg/analyzer/torture/asm-x86-linux-array_index_mask_nospec.c: + New test. + * gcc.dg/analyzer/torture/asm-x86-linux-cpuid-paravirt-1.c: New + test. + * gcc.dg/analyzer/torture/asm-x86-linux-cpuid-paravirt-2.c: New + test. + * gcc.dg/analyzer/torture/asm-x86-linux-cpuid.c: New test. + * gcc.dg/analyzer/torture/asm-x86-linux-rdmsr-paravirt.c: New + test. + * gcc.dg/analyzer/torture/asm-x86-linux-rdmsr.c: New test. + * gcc.dg/analyzer/torture/asm-x86-linux-wfx_get_ps_timeout-full.c: + New test. + * gcc.dg/analyzer/torture/asm-x86-linux-wfx_get_ps_timeout-reduced.c: + New test. + +2021-08-04 H.J. Lu + + PR target/101742 + * gcc.target/i386/pr101742a.c: New test. + * gcc.target/i386/pr101742b.c: Likewise. + +2021-08-04 H.J. Lu + + PR target/101772 + * gcc.target/i386/eh_return-2.c: New test. + +2021-08-04 Andreas Krebbel + + * gcc.target/s390/vector/perm-vpdi.c: New test. + +2021-08-04 Andreas Krebbel + + * gcc.target/s390/vector/perm-merge.c: New test. + * gcc.target/s390/vector/vec-types.h: New test. + +2021-08-04 Andreas Krebbel + + * gcc.target/s390/zvector/vec-permi.c: Removed. + * gcc.target/s390/zvector/vec_permi.c: New test. + +2021-08-04 Andreas Krebbel + + * gcc.target/s390/vector/long-double-asm-in-out-hard-fp-reg.c: + Instead of vpdi with 0 and 5 vmrlg and vmrhg are used now. + * gcc.target/s390/vector/long-double-asm-inout-hard-fp-reg.c: Likewise. + * gcc.target/s390/zvector/vec-types.h: New test. + * gcc.target/s390/zvector/vec_merge.c: New test. + +2021-08-04 Jonathan Wright + + * gcc.target/aarch64/vmul_high_cost.c: New test. + +2021-08-04 Jonathan Wright + + * gcc.target/aarch64/vmul_element_cost.c: New test. + +2021-08-04 Richard Sandiford + + * gcc.target/aarch64/sve/cost_model_12.c: New test. + +2021-08-04 Tamar Christina + + PR tree-optimization/101750 + * g++.dg/vect/pr99149.cc: Name class. + +2021-08-04 Richard Biener + + * gcc.target/i386/vect-gather-1.c: New testcase. + * gfortran.dg/vect/vect-8.f90: Adjust. + +2021-08-04 Roger Sayle + Marc Glisse + + * gcc.dg/fold-ior-4.c: New test. + +2021-08-04 Richard Biener + + PR tree-optimization/101756 + * gcc.dg/vect/bb-slp-pr101756.c: New testcase. + +2021-08-04 Jakub Jelinek + + PR c++/101759 + * g++.dg/gomp/pr101759.C: New test. + * g++.dg/goacc/pr101759.C: New test. + +2021-08-04 Jakub Jelinek + + * gcc.c-torture/execute/ieee/pr29302-1.x: Undo doubly applied patch. + +2021-08-04 Richard Biener + + PR tree-optimization/101769 + * g++.dg/tree-ssa/pr101769.C: New testcase. + +2021-08-04 liuhongt + + * gcc.target/i386/cond_op_addsubmul_d-2.c: Add + dg-require-effective-target for avx512. + * gcc.target/i386/cond_op_addsubmul_q-2.c: Ditto. + * gcc.target/i386/cond_op_addsubmul_w-2.c: Ditto. + * gcc.target/i386/cond_op_addsubmuldiv_double-2.c: Ditto. + * gcc.target/i386/cond_op_addsubmuldiv_float-2.c: Ditto. + * gcc.target/i386/cond_op_fma_double-2.c: Ditto. + * gcc.target/i386/cond_op_fma_float-2.c: Ditto. + +2021-08-04 liuhongt + + * gcc.target/i386/cond_op_fma_double-1.c: New test. + * gcc.target/i386/cond_op_fma_double-2.c: New test. + * gcc.target/i386/cond_op_fma_float-1.c: New test. + * gcc.target/i386/cond_op_fma_float-2.c: New test. + 2021-08-03 Eugene Rozenfeld * lib/profopt.exp: Pass gdwarf-4 when compiling test to profile; pass -gcov_version=2. diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog index 01bac7a5804..6845f39d368 100644 --- a/libgcc/ChangeLog +++ b/libgcc/ChangeLog @@ -1,3 +1,7 @@ +2021-08-04 Jakub Jelinek + + * config/t-slibgcc-fuchsia: Undo doubly applied patch. + 2021-07-15 Alan Modra * config/rs6000/morestack.S (R2_SAVE): Define. diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index b21bb6c5e59..b6b3a0efbe3 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,130 @@ +2021-08-04 Jonathan Wakely + + * include/bits/forward_list.h: Add [[nodiscard]] to functions + with no side-effects. + * include/bits/stl_bvector.h: Likewise. + * include/bits/stl_deque.h: Likewise. + * include/bits/stl_list.h: Likewise. + * include/bits/stl_queue.h: Likewise. + * include/bits/stl_stack.h: Likewise. + * include/bits/stl_vector.h: Likewise. + * include/debug/deque: Likewise. + * include/debug/forward_list: Likewise. + * include/debug/list: Likewise. + * include/debug/safe_iterator.h: Likewise. + * include/debug/vector: Likewise. + * include/std/array: Likewise. + * testsuite/23_containers/array/creation/3_neg.cc: Use + -Wno-unused-result. + * testsuite/23_containers/array/debug/back1_neg.cc: Cast result + to void. + * testsuite/23_containers/array/debug/back2_neg.cc: Likewise. + * testsuite/23_containers/array/debug/front1_neg.cc: Likewise. + * testsuite/23_containers/array/debug/front2_neg.cc: Likewise. + * testsuite/23_containers/array/debug/square_brackets_operator1_neg.cc: + Likewise. + * testsuite/23_containers/array/debug/square_brackets_operator2_neg.cc: + Likewise. + * testsuite/23_containers/array/tuple_interface/get_neg.cc: + Adjust dg-error line numbers. + * testsuite/23_containers/deque/cons/clear_allocator.cc: Cast + result to void. + * testsuite/23_containers/deque/debug/invalidation/4.cc: + Likewise. + * testsuite/23_containers/deque/types/1.cc: Use + -Wno-unused-result. + * testsuite/23_containers/list/types/1.cc: Cast result to void. + * testsuite/23_containers/priority_queue/members/7161.cc: + Likewise. + * testsuite/23_containers/queue/members/7157.cc: Likewise. + * testsuite/23_containers/vector/59829.cc: Likewise. + * testsuite/23_containers/vector/ext_pointer/types/1.cc: + Likewise. + * testsuite/23_containers/vector/ext_pointer/types/2.cc: + Likewise. + * testsuite/23_containers/vector/types/1.cc: Use + -Wno-unused-result. + +2021-08-04 Jonathan Wakely + + * include/bits/iterator_concepts.h (iter_move): Add + [[nodiscard]]. + * include/bits/range_access.h (begin, end, cbegin, cend) + (rbegin, rend, crbegin, crend, size, data, ssize): Likewise. + * include/bits/ranges_base.h (ranges::begin, ranges::end) + (ranges::cbegin, ranges::cend, ranges::rbegin, ranges::rend) + (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize) + (ranges::empty, ranges::data, ranges::cdata): Likewise. + * include/bits/stl_iterator.h (reverse_iterator, __normal_iterator) + (back_insert_iterator, front_insert_iterator, insert_iterator) + (move_iterator, move_sentinel, common_iterator) + (counted_iterator): Likewise. + * include/bits/stl_iterator_base_funcs.h (distance, next, prev): + Likewise. + * include/bits/stream_iterator.h (istream_iterator) + (ostream_iterartor): Likewise. + * include/bits/streambuf_iterator.h (istreambuf_iterator) + (ostreambuf_iterator): Likewise. + * include/std/ranges (views::single, views::iota, views::all) + (views::filter, views::transform, views::take, views::take_while) + (views::drop, views::drop_while, views::join, views::lazy_split) + (views::split, views::counted, views::common, views::reverse) + (views::elements): Likewise. + * testsuite/20_util/rel_ops.cc: Use -Wno-unused-result. + * testsuite/24_iterators/move_iterator/greedy_ops.cc: Likewise. + * testsuite/24_iterators/normal_iterator/greedy_ops.cc: + Likewise. + * testsuite/24_iterators/reverse_iterator/2.cc: Likewise. + * testsuite/24_iterators/reverse_iterator/greedy_ops.cc: + Likewise. + * testsuite/21_strings/basic_string/range_access/char/1.cc: + Cast result to void. + * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc: + Likewise. + * testsuite/21_strings/basic_string_view/range_access/char/1.cc: + Likewise. + * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc: + Likewise. + * testsuite/23_containers/array/range_access.cc: Likewise. + * testsuite/23_containers/deque/range_access.cc: Likewise. + * testsuite/23_containers/forward_list/range_access.cc: + Likewise. + * testsuite/23_containers/list/range_access.cc: Likewise. + * testsuite/23_containers/map/range_access.cc: Likewise. + * testsuite/23_containers/multimap/range_access.cc: Likewise. + * testsuite/23_containers/multiset/range_access.cc: Likewise. + * testsuite/23_containers/set/range_access.cc: Likewise. + * testsuite/23_containers/unordered_map/range_access.cc: + Likewise. + * testsuite/23_containers/unordered_multimap/range_access.cc: + Likewise. + * testsuite/23_containers/unordered_multiset/range_access.cc: + Likewise. + * testsuite/23_containers/unordered_set/range_access.cc: + Likewise. + * testsuite/23_containers/vector/range_access.cc: Likewise. + * testsuite/24_iterators/customization_points/iter_move.cc: + Likewise. + * testsuite/24_iterators/istream_iterator/sentinel.cc: + Likewise. + * testsuite/24_iterators/istreambuf_iterator/sentinel.cc: + Likewise. + * testsuite/24_iterators/move_iterator/dr2061.cc: Likewise. + * testsuite/24_iterators/operations/prev_neg.cc: Likewise. + * testsuite/24_iterators/ostreambuf_iterator/2.cc: Likewise. + * testsuite/24_iterators/range_access/range_access.cc: + Likewise. + * testsuite/24_iterators/range_operations/100768.cc: Likewise. + * testsuite/26_numerics/valarray/range_access2.cc: Likewise. + * testsuite/28_regex/range_access.cc: Likewise. + * testsuite/experimental/string_view/range_access/char/1.cc: + Likewise. + * testsuite/experimental/string_view/range_access/wchar_t/1.cc: + Likewise. + * testsuite/ext/vstring/range_access.cc: Likewise. + * testsuite/std/ranges/adaptors/take.cc: Likewise. + * testsuite/std/ranges/p2259.cc: Likewise. + 2021-08-03 Jonathan Wakely * include/bits/random.tcc (linear_congruential_engine): Do not