- 27 Oct, 2019 2 commits
-
-
gcc/ * config/i386/sse.md (*<sse>_vm<plusminus_insn><mode>3, <sse>_vm<multdiv_mnemonic><mode>3): Remove <iptr> since operand is already scalar mode. (iptr): Remove SF/DF. From-SVN: r277481
Hongtao Liu committed -
From-SVN: r277480
GCC Administrator committed
-
- 26 Oct, 2019 6 commits
-
-
* doc/xml/manual/codecvt.xml: Switch pubs.opengroup.org to https. * doc/xml/manual/locale.xml (LC_ALL): Ditto. * doc/xml/manual/messages.xml: Ditto. From-SVN: r277476
Gerald Pfeifer committed -
* config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update. From-SVN: r277475
John David Anglin committed -
When we have -fstack-limit-symbol with sysv we can end up with a non- existing instruction (you cannot add an immediate to register 0). Fix this by using register 11 instead. It might be used for something else already though, so save and restore its value around this. In optimizing compiles these extra moves are usually removed again: the restore by cprop_hardreg, and then the save by rtl_dce. PR target/91289 * config/rs6000/rs6000-logue.c (rs6000_emit_allocate_stack): Don't add an immediate to r0; use r11 instead. Save and restore r11 to r0 around this. From-SVN: r277472
Segher Boessenkool committed -
Changelog gcc/ * config/i386/sse.md (<sse>_vm<plusminus_insn><mode>3<mask_scalar_name><round_scalar_name>, <sse>_vm<multdiv_mnemonic><mode>3<mask_scalar_name><round_scalar_name>, <sse>_vmsqrt<mode>2<mask_scalar_name><round_scalar_name>, <sse>_vm<code><mode>3<mask_scalar_name><round_saeonly_scalar_name>, <sse>_vmmaskcmp<mode>3): Change predicates from vector_operand to nonimmediate_operand, constraints xBm to xm, since scalar operations don't need memory address alignment. (avx512f_vmcmp<mode>3<round_saeonly_name>, avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Replace round_saeonly_nimm_predicate with round_saeonly_nimm_scalar_predicate. (fmai_vmfmadd_<mode><round_name>, fmai_vmfmsub_<mode><round_name>, fmai_vmfnmadd_<mode><round_name>,fmai_vmfnmsub_<mode><round_name>, *fmai_fmadd_<mode>, *fmai_fmsub_<mode>, *fmai_fnmadd_<mode><round_name>, *fmai_fnmsub_<mode><round_name>, avx512f_vmfmadd_<mode>_mask3<round_name>, avx512f_vmfmadd_<mode>_maskz_1<round_name>, *avx512f_vmfmsub_<mode>_mask<round_name>, avx512f_vmfmsub_<mode>_mask3<round_name>, *avx512f_vmfmsub_<mode>_maskz_1<round_name>, *avx512f_vmfnmadd_<mode>_mask<round_name>, *avx512f_vmfnmadd_<mode>_mask3<round_name>, *avx512f_vmfnmadd_<mode>_maskz_1<round_name>, *avx512f_vmfnmsub_<mode>_mask<round_name>, *avx512f_vmfnmsub_<mode>_mask3<round_name>, *avx512f_vmfnmsub_<mode>_maskz_1<round_name>, cvtusi2<ssescalarmodesuffix>32<round_name>, cvtusi2<ssescalarmodesuffix>64<round_name>, ): Replace round_nimm_predicate with round_nimm_scalr_predicate. (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>, avx512f_sfixupimm<mode>_mask<round_saeonly_name>, avx512er_vmrcp28<mode><round_saeonly_name>, avx512er_vmrsqrt28<mode><round_saeonly_name>, ): Replace round_saeonly_nimm_predicate with round_saeonly_nimm_scalar_predicate. (avx512dq_vmfpclass<mode><mask_scalar_merge_name>): Replace vector_operand with nonimmediate_operand. * config/i386/subst.md (round_scalar_nimm_predicate, round_saeonly_scalar_nimm_predicate): Replace vector_operand with nonimmediate_operand. From-SVN: r277470
Hongtao Liu committed -
For instructions with xmm operand: op %xmmN,%xmmQ,%xmmQ ----> op %xmmN, %xmmN, %xmmQ for instruction with mem operand or gpr operand: op mem/gpr, %xmmQ, %xmmQ ---> using pass rpad ----> xorps %xmmN, %xmmN, %xxN op mem/gpr, %xmmN, %xmmQ Performance influence of SPEC2017 fprate which is tested on SKX ---- 503.bwaves_r -0.03% 507.cactuBSSN_r -0.22% 508.namd_r -0.02% 510.parest_r 0.37% 511.povray_r 0.74% 519.lbm_r 0.24% 521.wrf_r 2.35% 526.blender_r 0.71% 527.cam4_r 0.65% 538.imagick_r 0.95% 544.nab_r -0.37 549.fotonik3d_r 0.24% 554.roms_r 0.90% fprate geomean 0.50% ----- Changelog gcc/ * config/i386/i386.md (*rcpsf2_sse): Add avx_partial_xmm_update, prefer m constraint for TARGET_AVX. (*rsqrtsf2_sse): Ditto. (*sqrt<mode>2_sse): Ditto. (sse4_1_round<mode>2): separate constraint vm, add avx_partail_xmm_update, prefer m constraint for TARGET_AVX. * config/i386/sse.md (*sse_vmrcpv4sf2"): New define_insn used by pass rpad. (*<sse>_vmsqrt<mode>2<mask_scalar_name><round_scalar_name>*): Ditto. (*sse_vmrsqrtv4sf2): Ditto. (*avx512f_rndscale<mode><round_saeonly_name>): Ditto. (*sse4_1_round<ssescalarmodesuffix>): Ditto. (sse4_1_round<ssescalarmodesuffix>): Add m constraint and <iptr> pointer size modifier since vround support memory operand. gcc/testsuite * gcc.target/i386/pr87007-4.c: New test. * gcc.target/i386/pr87007-5.c: Ditto. From-SVN: r277469
Hongtao Liu committed -
From-SVN: r277468
GCC Administrator committed
-
- 25 Oct, 2019 18 commits
-
-
* g++.dg/cpp0x/noexcept55.C: New test. From-SVN: r277462
Marek Polacek committed -
All of these special member functions do exactly what the compiler would do anyway. By defining them as defaulted for C++11 and later we prevent move constructors and move assignment operators being defined (which is consistent with the previous semantics). Also move default init of the input_iterator_wrapper members from the derived constructor to the protected base constructor. * testsuite/util/testsuite_iterators.h (output_iterator_wrapper) (input_iterator_wrapper, forward_iterator_wrapper) bidirectional_iterator_wrapper, random_access_iterator_wrapper): Remove user-provided copy constructors and copy assignment operators so they are defined implicitly. (input_iterator_wrapper): Initialize members in default constructor. (forward_iterator_wrapper): Remove assignments to members of base. From-SVN: r277459
Jonathan Wakely committed -
The new constexpr destructor on std::allocator breaks compilation with Clang in C++2a mode. This only makes it constexpr if the compiler supports the P0784R7 features. * include/bits/allocator.h: Check __cpp_constexpr_dynamic_alloc before making the std::allocator destructor constexpr. * testsuite/20_util/allocator/requirements/constexpr.cc: New test. From-SVN: r277458
Jonathan Wakely committed -
PR target/85969 * config/avr/gen-avr-mmcu-specs.c (str_prefix_p): Remove unused static function. From-SVN: r277455
Georg-Johann Lay committed -
2019-10-25 Cesar Philippidis <cesar@codesourcery.com> Tobias Burnus <tobias@codesourcery.com> gcc/fortran/ * openmp.c (gfc_match_omp_map_clause): Add and pass allow_commons argument. (gfc_match_omp_clauses): Update calls to permit common blocks for OpenACC's copy/copyin/copyout, create/delete, host, pcopy/pcopy_in/pcopy_out, present_or_copy, present_or_copy_in, present_or_copy_out, present_or_create and self. gcc/ * gimplify.c (oacc_default_clause): Privatize fortran common blocks. (omp_notice_variable): Defer the expansion of DECL_VALUE_EXPR for common block decls. gcc/testsuite/ * gfortran.dg/goacc/common-block-1.f90: New test. * gfortran.dg/goacc/common-block-2.f90: New test. * gfortran.dg/goacc/common-block-3.f90: New test. libgomp/ * testsuite/libgomp.oacc-fortran/common-block-1.f90: New test. * testsuite/libgomp.oacc-fortran/common-block-2.f90: New test. * testsuite/libgomp.oacc-fortran/common-block-3.f90: New test. Reviewed-by: Thomas Schwinge <thomas@codesourcery.com> Co-Authored-By: Tobias Burnus <tobias@codesourcery.com> From-SVN: r277451
Cesar Philippidis committed -
* gcc.target/powerpc/pr70100.c: Add -mvsx. Allow AIX ABI function name. From-SVN: r277450
David Edelsohn committed -
This fixes a regression when using Clang. * include/bits/range_cmp.h: Check __cpp_lib_concepts before defining concepts. Fix comment. From-SVN: r277449
Jonathan Wakely committed -
2019-10-25 Richard Biener <rguenther@suse.de> PR tree-optimization/92222 * tree-vect-slp.c (_slp_oprnd_info::first_pattern): Remove. (_slp_oprnd_info::second_pattern): Likewise. (_slp_oprnd_info::any_pattern): New. (vect_create_oprnd_info): Adjust. (vect_get_and_check_slp_defs): Compute whether any stmt is in a pattern. (vect_build_slp_tree_2): Avoid building up a node from scalars if any of the operand defs, not just the first, is in a pattern. * gcc.dg/torture/pr92222.c: New testcase. From-SVN: r277448
Richard Biener committed -
tree-vect-slp.c (vect_get_and_check_slp_defs): Only fail swapping if we actually have to modify the IL on a shared stmt. 2019-10-25 Richard Biener <rguenther@suse.de> * tree-vect-slp.c (vect_get_and_check_slp_defs): Only fail swapping if we actually have to modify the IL on a shared stmt. (vect_build_slp_tree_2): Never fail swapping on shared stmts because we no longer modify the IL. From-SVN: r277446
Richard Biener committed -
Unwanted unrolling meant that we had more single-precision FADDAs than expected. 2019-10-25 Richard Sandiford <richard.sandiford@arm.com> gcc/testsuite/ * gcc.target/aarch64/sve/reduc_strict_3.c (double_reduc1): Prevent the loop from being unrolled. From-SVN: r277442
Richard Sandiford committed -
Recent target-independent patches mean that several SVE tests now produce the code that we'd originally wanted them to produce. Really nice to see :-) This patch therefore updates the expected baseline, so that hopefully we don't regress from this point in future. 2019-10-25 Richard Sandiford <richard.sandiford@arm.com> gcc/testsuite/ * gcc.target/aarch64/sve/loop_add_5.c: Remove XFAILs for tests that now pass. * gcc.target/aarch64/sve/reduc_1.c: Likewise. * gcc.target/aarch64/sve/reduc_2.c: Likewise. * gcc.target/aarch64/sve/reduc_5.c: Likewise. * gcc.target/aarch64/sve/reduc_8.c: Likewise. * gcc.target/aarch64/sve/slp_13.c: Likewise. * gcc.target/aarch64/sve/slp_5.c: Likewise. Update expected WHILELO counts. * gcc.target/aarch64/sve/slp_7.c: Likewise. From-SVN: r277441
Richard Sandiford committed -
2019-10-25 Martin Liska <mliska@suse.cz> * tree.c (dump_tree_statistics): Use sorted index 'j' and not 'i'. From-SVN: r277440
Martin Liska committed -
Now that vectorizable_operation vectorises most loop stmts involved in a reduction, it needs to be aware of reductions in fully-masked loops. The LOOP_VINFO_CAN_FULLY_MASK_P parts of vectorizable_reduction now only apply to cases that use vect_transform_reduction. This new way of doing things is definitely an improvement for SVE though, since it means we can lift the old restriction of not using fully-masked loops for reduction chains. 2019-10-25 Richard Sandiford <richard.sandiford@arm.com> gcc/ * tree-vect-loop.c (vectorizable_reduction): Restrict the LOOP_VINFO_CAN_FULLY_MASK_P handling to cases that will be handled by vect_transform_reduction. Allow fully-masked loops to be used with reduction chains. * tree-vect-stmts.c (vectorizable_operation): Handle reduction operations in fully-masked loops. (vectorizable_condition): Reject EXTRACT_LAST_REDUCTION operations in fully-masked loops. gcc/testsuite/ * gcc.dg/vect/pr65947-1.c: No longer expect doubled dump lines for FOLD_EXTRACT_LAST reductions. * gcc.dg/vect/pr65947-2.c: Likewise. * gcc.dg/vect/pr65947-3.c: Likewise. * gcc.dg/vect/pr65947-4.c: Likewise. * gcc.dg/vect/pr65947-5.c: Likewise. * gcc.dg/vect/pr65947-6.c: Likewise. * gcc.dg/vect/pr65947-9.c: Likewise. * gcc.dg/vect/pr65947-10.c: Likewise. * gcc.dg/vect/pr65947-12.c: Likewise. * gcc.dg/vect/pr65947-13.c: Likewise. * gcc.dg/vect/pr65947-14.c: Likewise. * gcc.dg/vect/pr80631-1.c: Likewise. * gcc.dg/vect/pr80631-2.c: Likewise. * gcc.dg/vect/vect-cond-reduc-3.c: Likewise. * gcc.dg/vect/vect-cond-reduc-4.c: Likewise. From-SVN: r277438
Richard Sandiford committed -
tree-vect-loop.c (vectorizable_reduction): Verify STMT_VINFO_REDUC_IDX on the to be vectorized stmts is set up correctly. 2019-10-25 Richard Biener <rguenther@suse.de> * tree-vect-loop.c (vectorizable_reduction): Verify STMT_VINFO_REDUC_IDX on the to be vectorized stmts is set up correctly. * tree-vect-patterns.c (vect_mark_pattern_stmts): Transfer STMT_VINFO_REDUC_IDX from the original stmts to the pattern stmts. From-SVN: r277437
Richard Biener committed -
* doc/xml/manual/policy_data_structures_biblio.xml: Switch pubs.opengroup.org to https. From-SVN: r277436
Gerald Pfeifer committed -
-
2019-09-09 Edward Smith-Rowland <3dw4rd@verizon.net> * doc/xml/manual/status_cxx2020.xml: Add rows and update status. From-SVN: r277434
Edward Smith-Rowland committed -
From-SVN: r277433
GCC Administrator committed
-
- 24 Oct, 2019 14 commits
-
-
* gimplify.h (omp_construct_selector_matches): Declare. * gimplify.c (struct gimplify_omp_ctx): Add code member. (gimplify_call_expr): Call omp_resolve_declare_variant and remap called function if needed for flag_openmp. (gimplify_scan_omp_clauses): Set ctx->code. (omp_construct_selector_matches): New function. * omp-general.h (omp_constructor_traits_to_codes, omp_context_selector_matches, omp_resolve_declare_variant): Declare. * omp-general.c (omp_constructor_traits_to_codes, omp_context_selector_matches, omp_resolve_declare_variant): New functions. c-family/ * c-common.h (c_omp_context_selector_matches): Remove. * c-omp.c (c_omp_context_selector_matches): Remove. * c-attribs.c (c_common_attribute_table): Add "omp declare target {host,nohost,block}" attributes. c/ * c-parser.c (c_finish_omp_declare_variant): Use omp_context_selector_matches instead of c_omp_context_selector_matches. * c-decl.c (c_decl_attributes): Add "omp declare target block" attribute in between declare target and end declare target pragmas. cp/ * decl2.c (cplus_decl_attributes): Add "omp declare target block" attribute in between declare target and end declare target pragmas. testsuite/ * c-c++-common/gomp/declare-variant-8.c: New test. From-SVN: r277427
Jakub Jelinek committed -
* config/arc/arc.c (hwloop_optimize): Add missing space in string literal. * config/rx/rx.c (rx_print_operand): Likewise. * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise. * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Likewise. * ipa-sra.c (create_parameter_descriptors, process_scan_results): Likewise. * genemit.c (emit_c_code): Likewise. * plugin.c (try_init_one_plugin): Likewise. Formatting fix. cp/ * call.c (convert_arg_to_ellipsis): Add missing space in string literal. From-SVN: r277426
Jakub Jelinek committed -
* symbols-summary.h (fast_function_summary<T *, V>::release, fast_call_summary<T *, V>::release): Free m_vector. From-SVN: r277425
Jan Hubicka committed -
* cgraphunit.c (symbol_table::process_new_functions): Call ipa_free_size_summary. * ipa-cp.c (ipcp_cloning_candidate_p): Update. (devirtualization_time_bonus): Update. (ipcp_propagate_stage): Update. * ipa-fnsummary.c (ipa_size_summaries): New. (ipa_fn_summary_alloc): Alloc size summary. (dump_ipa_call_summary): Update. (ipa_dump_fn_summary): Update. (analyze_function_body): Update. (compute_fn_summary): Likewise. (ipa_get_stack_frame_offset): New function. (inline_update_callee_summaries): Do not update frame offsets. (ipa_merge_fn_summary_after_inlining): Update frame offsets here; remove call and function summary. (ipa_update_overall_fn_summary): Update. (inline_read_section): Update. (ipa_fn_summary_write): Update. (ipa_free_fn_summary): Do not remove summaries. (ipa_free_size_summary): New. (release summary pass): Also run at WPA. * ipa-fnsummary.h (ipa_size_summary): Declare. (ipa_fn_summary): Remove size, self_size, stack_frame_offset, estimated_self_stack_size. (ipa_size_summary_t): New type. (ipa_size_summaries): Declare. (ipa_free_size_summary): Declare. (ipa_get_stack_frame_offset): Declare. * ipa-icf.c (sem_function::merge): Update. * ipa-inline-analysis.c (estimate_size_after_inlining): Update. (estimate_growth): Update. (growth_likely_positive): Update. (clone_inlined_nodes): Update. (inline_call): Update. * ipa-inline.c (caller_growth_limits): Update. (edge_badness): Update. (recursive_inlining): Update. (inline_small_functions): Update. (inline_to_all_callers_1): Update. * ipa-prop.h (ipa_edge_args_sum_t): Update comment. * lto-partition.c (add_symbol_to_partition_1): Update. (undo_parittion): Update. From-SVN: r277424
Jan Hubicka committed -
We already had those in fact, just under other names. Use the standard names so that the vectorizer can use it. * config/rs6000/altivec.md (altivec_vavgu<VI_char>): Rename to... (uavg<mode>3_ceil): ... This. (altivec_vavgs<VI_char>): Rename to... (avg<mode>3_ceil): ... This. * config/rs6000/rs6000-builtin.def (VAVGUB, VAVGSB, VAVGUH, VAVGSH, VAVGUW, VAVGSW): Adjust. From-SVN: r277421
Segher Boessenkool committed -
* decl.c (reshape_init_r): Add missing space. From-SVN: r277419
Marek Polacek committed -
https://gcc.gnu.org/ml/gcc-patches/2019-10/msg01761.html * pt.c (reduce_template_parm_level): Attach the new TPI to the new DECL. (convert_generic_types_to_packs): Pass the copied type to reduce_template_parm_level. From-SVN: r277416
Nathan Sidwell committed -
https://gcc.gnu.org/ml/gcc-patches/2019-10/msg01760.html * dumpfile.c (dump_begin): Reorder decls to use RAII. From-SVN: r277415
Nathan Sidwell committed -
The recent C++20 changes to remove the std::allocator<void> explicit specialization and the destructor in the std::allocator primary template change the result of some is_trivially_xxx type traits. To avoid those changes, this patch restores the explicit specialization and the destructor. In order to meet the C++20 requirements the std::allocator<void> explicit specialization must provide the same interface as the primary template (except for the unusable allocate and deallocate member functions) and the destructor in the primary template must be constexpr. * include/bits/allocator.h (allocator<void>): Restore the explicit specialization for C++20, but make its API consistent with the primary template. (allocator::~allocator()): Restore the destructor for C++20, but make it constexpr. * testsuite/20_util/allocator/rebind_c++20.cc: Check allocator<void>. * testsuite/20_util/allocator/requirements/typedefs_c++20.cc: Likewise. * testsuite/20_util/allocator/void.cc: Check that constructors and destructors are trivial. Check for converting constructor in C++20. * testsuite/ext/malloc_allocator/variadic_construct.cc: Simplify dejagnu target selector. * testsuite/ext/new_allocator/variadic_construct.cc: Likewise. From-SVN: r277410
Jonathan Wakely committed -
Power and IBM Z require a function prototype if a vector argument is passed. Complete the prototype of k to prevent errors from being triggered on these platforms gcc/testsuite/ChangeLog: 2019-10-24 Andreas Krebbel <krebbel@linux.ibm.com> * gcc.dg/ipa/ipa-sra-19.c: Remove dg-skip-if. Add argument type to prototype of k. From-SVN: r277409
Andreas Krebbel committed -
2019-10-24 Martin Liska <mliska@suse.cz> * symbol-summary.h (gt_pch_nx): Mark all functions with gcc_unreachable as we do not expect to be called. From-SVN: r277408
Martin Liska committed -
Also, reimplement and re-enable subsumption caching. gcc/cp/ * config-lang.in (gtfiles): Add logic.cc. * constraint.cc (atomic_constraints_identical_p): Add assertions. (hash_atomic_constraint): Likewise. (constraints_equivalent_p): New. (inchash::add_constraint): New. (iterative_hash_constraint): New. (decl_constraints): Moved from pt.c. (get_constraints): Likewise. (set_constraints): Likewise. (remove_constraints): Likewise. * cp-tree.h (CONSTR_P): New. (init_constraint_processing): Remove. (constraints_equivalent_p, iterative_hash_constraint): Declare. * decl.c (cxx_init_decl_processing): Don't initialize constraints. * logic.cc (subsumption_entry): Moved from pt.c. (subsumption_hasher): Likewise. (subsumption_cache): Likewise. (lookup_subsumption): Likewise. (save_subsumption): Likewise. (subsumes_constraints_nonnull): Use subsumption cache. * pt.c: Move aforementioned declarations out of this file. (init_constraint_processing): Remove. From-SVN: r277407
Andrew Sutton committed -
tree-vect-slp.c (vect_get_and_check_slp_defs): For reduction chains try harder with operand swapping and instead of putting a... 2019-10-24 Richard Biener <rguenther@suse.de> * tree-vect-slp.c (vect_get_and_check_slp_defs): For reduction chains try harder with operand swapping and instead of putting a shifted chain into the reduction operands put a repetition of the final reduction op there as if we'd reassociate the expression. * gcc.dg/vect/slp-reduc-10a.c: New testcase. * gcc.dg/vect/slp-reduc-10b.c: Likewise. * gcc.dg/vect/slp-reduc-10c.c: Likewise. * gcc.dg/vect/slp-reduc-10d.c: Likewise. * gcc.dg/vect/slp-reduc-10e.c: Likewise. From-SVN: r277406
Richard Biener committed -
There is no need to store and pass around the allocator object when it's an instance of std::allocator. Define a partial specialization of std::use_future_t and the corresponding completion token so that no allocator is stored. Overload the completion handler constructor to not expect an allocator to be stored. * include/experimental/executor (__use_future_ct, use_future_t): Define partial specializations for std::allocator. (__use_future_ch): Overload constructor for completion tokens using std::allocator. From-SVN: r277404
Jonathan Wakely committed
-