1. 13 Nov, 2019 11 commits
    • Fix vectorizable_conversion costs · 3f446c27
      This patch makes two tweaks to vectorizable_conversion.  The first
      is to use "modifier" to distinguish between promotion, demotion,
      and neither promotion nor demotion, rather than using a code for
      some cases and "modifier" for others.  The second is to take ncopies
      into account for the promotion and demotion costs; previously we gave
      multiple copies the same cost as a single copy.
      
      Later patches test this, but it seemed worth splitting out.
      
      2019-11-13  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* tree-vect-stmts.c (vect_model_promotion_demotion_cost): Take the
      	number of ncopies as an additional argument.
      	(vectorizable_conversion): Update call accordingly.  Use "modifier"
      	to check whether a conversion is between vectors with the same
      	numbers of units.
      
      From-SVN: r278121
      Richard Sandiford committed
    • [AArch64] Use aarch64_sve_int_mode in SVE ACLE code · 86194087
      This is a like-for-like change at the moment, but is a prerequisite
      for removing mode_for_int_vector.
      
      2019-11-13  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* config/aarch64/aarch64-sve-builtins-functions.h
      	(unary_count::expand): Use aarch64_sve_int_mode instead of
      	mode_for_int_vector.
      
      From-SVN: r278120
      Richard Sandiford committed
    • [C++] Fix interaction between aka changes and DR1558 (PR92206) · ae83b9de
      One of the changes in r277281 was to make the typedef variant
      handling in strip_typedefs pass the raw DECL_ORIGINAL_TYPE to the
      recursive call, instead of applying TYPE_MAIN_VARIANT first.
      This PR shows that that interacts badly with the implementation
      of DR1558, because we then refuse to strip aliases with dependent
      template parameters and trip:
      
        gcc_assert (!typedef_variant_p (result)
      	      || ((flags & STF_USER_VISIBLE)
      		  && !user_facing_original_type_p (result)));
      
      Keeping the current behaviour but suppressing the ICE leads to a
      duplicate error (the dg-bogus in the first test), so that didn't
      seem like a good fix.
      
      I assume keeping the alias should never actually be necessary for
      DECL_ORIGINAL_TYPEs, because it will already have been checked
      somewhere, even for implicit TYPE_DECLs.  This patch therefore
      passes a flag to say that we can safely strip aliases with
      dependent template parameters.
      
      2019-11-13  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/cp/
      	PR c++/92206
      	* cp-tree.h (STF_STRIP_DEPENDENT): New constant.
      	* tree.c (strip_typedefs): Add STF_STRIP_DEPENDENT to the flags
      	when calling strip_typedefs recursively on a DECL_ORIGINAL_TYPE.
      	Don't apply the fix for DR1558 in that case; allow aliases with
      	dependent template parameters to be stripped instead.
      
      gcc/testsuite/
      	PR c++/92206
      	* g++.dg/cpp0x/alias-decl-pr92206-1.C: New test.
      	* g++.dg/cpp0x/alias-decl-pr92206-2.C: Likewise.
      	* g++.dg/cpp0x/alias-decl-pr92206-3.C: Likewise.
      
      From-SVN: r278119
      Richard Sandiford committed
    • Update comment in opts.c. · 9b6e95d3
      2019-11-13  Martin Liska  <mliska@suse.cz>
      
      	* opts.c: Update comment about OPT_LEVELS_2_PLUS_SPEED_ONLY.
      
      From-SVN: r278118
      Martin Liska committed
    • Fix params.exp by parsing output of --help=params -Q. · 32b0081d
      2019-11-13  Martin Liska  <mliska@suse.cz>
      
      	* gcc.dg/params/params.exp: Restore test by parsing output
      	of --help=params -Q.
      
      From-SVN: r278117
      Martin Liska committed
    • Remove leftover call to finalize_options_struct. · 9c40fd46
      2019-11-13  Martin Liska  <mliska@suse.cz>
      
      	* tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers):
      	Remove call to finalize_options_struct.
      
      From-SVN: r278116
      Martin Liska committed
    • re PR target/92055 ([avr] Support 64-bit double) · af73373e
      	PR target/92055
      	* config/avr/t-avr (avr-mcus): Do not depend on
      	$(srcdir)/config/avr/t-multilib.
      
      From-SVN: r278115
      Georg-Johann Lay committed
    • Fortran] Use proper type for hidden is-present argument · b0896310
              gcc/fortran/
              * trans-expr.c (gfc_conv_procedure_call): Fold hidden
              is-present argument to the right type.
      
      From-SVN: r278114
      Tobias Burnus committed
    • re PR target/92473 (test pr92324-2.c fails on arm and aarch64) · efc40c1f
      2019-11-13  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/92473
      	* tree-vect-loop.c (vect_create_epilog_for_reduction): Perform
      	direct optab reduction in the correct type.
      
      From-SVN: r278113
      Richard Biener committed
    • Add option -fweb for pr47763.c · e08f64f0
      This case is testing 'web' on ignore naked clobber.
      -funroll-loops no longer implies -fweb for powerpc.
      So, add -fweb to enable 'web' for this case.
      
      gcc.testsuite/
      2019-11-13  Jiufu Guo  <guojiufu@linux.ibm.com>
      
      	PR target/92465
      	* gcc.dg/pr47763.c: Add option -fweb.
      
      From-SVN: r278112
      Jiufu Guo committed
    • Daily bump. · eb67187b
      From-SVN: r278111
      GCC Administrator committed
  2. 12 Nov, 2019 29 commits
    • rs6000: Use ULL on big hexadecimal literal · f8ae8963
      C++98 does not have long long int, and does not use (unsigned) long
      long int for hexadecimal literals.  So let's use an ULL suffix here,
      which is still not strict C++98, but which works with more compilers.
      
      
      	* config/rs6000/rs6000.md (rs6000_set_fpscr_drn): Use ULL on big
      	hexadecimal literal.
      
      From-SVN: r278107
      Segher Boessenkool committed
    • [C++ PATCH] Merge some using-decl handling · 5c44cef5
      https://gcc.gnu.org/ml/gcc-patches/2019-11/msg00971.html
      	gcc/cp/
      	* name-lookup.c (lookup_using_decl): New function, merged from ...
      	(do_class_using_decl): ... here.  Call it.  And ...
      	(finish_nonmember_using_decl): ... here.  Call it.
      
      	gcc/testsuite/
      	* g++.dg/cpp0x/using-enum-2.C: Adjust expected error text.
      	* g++.dg/cpp0x/using-enum-3.C: Likewise.
      	* g++.dg/lookup/using4.C: Likewise.
      	* g++.dg/lookup/using7.C: Likewise.
      	* g++.dg/template/using12.C: Likewise.
      	* g++.dg/template/using18.C: Likewise.
      	* g++.dg/template/using22.C: Likewise.
      
      From-SVN: r278106
      Nathan Sidwell committed
    • re PR fortran/81651 (Enhancement request: have f951 print out fully qualified module file name) · 3c72b04b
      2019-11-12  Harald Anlauf  <anlauf@gmx.de>
      
      	PR fortran/81651
      	* module.c (gzopen_included_file, gzopen_included_file_1)
      	(gzopen_intrinsic_module, bad_module, gfc_use_module): Use fully
      	qualified module path for error reporting.
      
      From-SVN: r278105
      Harald Anlauf committed
    • testsuite: Add testcases for PR92449 · fc5cf4e0
      
      	PR target/92449
      	* gcc.c-torture/compile/pr92449.c: New test.
      	* gcc.target/powerpc/pr92449-1.c: New test.
      
      From-SVN: r278104
      Segher Boessenkool committed
    • rs6000: Handle unordered for xscmpexp[dq]p without NaNs (PR92449) · 5fba7efc
      
      	* config/rs6000/vsx.md (xscmpexpdp_<code> for CMP_TEST): Handle
      	UNORDERED if !HONOR_NANS (DFmode).
      	(xscmpexpqp_<code>_<mode> for CMP_TEST and IEEE128): Handle UNORDERED
      	if !HONOR_NANS (<MODE>mode).
      
      From-SVN: r278103
      Segher Boessenkool committed
    • ipa-cp.c (ignore_edge_p): Also look for optimize flag. · e72763e2
      
      	* ipa-cp.c (ignore_edge_p): Also look for optimize flag.
      	(ipcp_verify_propagated_values): Likewise.
      	(propagate_constants_across_call): Likewise.
      	(propagate_constants_topo): Likewise.
      	(ipcp_propagate_stage): Likewise.
      
      From-SVN: r278102
      Jan Hubicka committed
    • PR fortran/92470 Fixes for CFI_address · fde7112d
              libgfortran/
              PR fortran/92470
              * runtime/ISO_Fortran_binding.c (CFI_address): Handle non-zero
              lower_bound; update error message.
              (CFI_allocate): Fix comment typo.
              (CFI_establish): Fix identation, fix typos, don't check values of 'dv'
              argument.
      
              gcc/testsuite/
              PR fortran/92470
              * gfortran.dg/ISO_Fortran_binding_17.c: New.
              * gfortran.dg/ISO_Fortran_binding_17.f90: New.
              * gfortran.dg/ISO_Fortran_binding_1.c (elemental_mult_c, allocate_c,
              section_c, select_part_c): Update for CFI_{address} changes;
              add asserts.
      
      From-SVN: r278101
      Tobias Burnus committed
    • re PR ipa/92471 ([ICE] lto1 segmentation fault: ipa-profile.c ipa_get_cs_argument_count (args=0x0)) · d200a49f
      	PR ipa/92471
      	* ipa-profile.c (check_argument_count): Break out from ...;
      	watch for missing summaries.
      	(ipa_profile): Here.
      
      From-SVN: r278100
      Jan Hubicka committed
    • PR tree-optimization/92412 - excessive errno aliasing assumption defeats optimization · 1cf83d35
      gcc/ChangeLog:
      
      	PR tree-optimization/92412
      	* targhooks.c (default_ref_may_alias_errno): Errono can only alias
      	extern variables.
      
      gcc/testsuite/ChangeLog:
      
      	PR tree-optimization/92412
      	* gcc.dg/strlenopt-91.c: New test.
      
      From-SVN: r278099
      Martin Sebor committed
    • PR middle-end/83688 - check if buffers may overlap when copying strings using sprintf · 937a86b4
      gcc/ChangeLog:
      
      	PR middle-end/83688
      	* gimple-ssa-sprintf.c (format_result::alias_info): New struct.
      	(directive::argno): New member.
      	(format_result::aliases, format_result::alias_count): New data members.
      	(format_result::append_alias): New member function.
      	(fmtresult::dst_offset): New data member.
      	(pass_sprintf_length::call_info::dst_origin): New data member.
      	(pass_sprintf_length::call_info::dst_field, dst_offset): Same.
      	(char_type_p, array_elt_at_offset, field_at_offset): New functions.
      	(get_origin_and_offset): Same.
      	(format_string): Call it.
      	(format_directive): Call append_alias and set directive argument
      	number.
      	(maybe_warn_overlap): New function.
      	(pass_sprintf_length::compute_format_length): Call it.
      	(pass_sprintf_length::handle_gimple_call): Initialize new members.
      	* gcc/tree-ssa-strlen.c (): Also enable when -Wrestrict is on.
      
      gcc/testsuite/ChangeLog:
      
      	PR tree-optimization/35503
      	* gcc.dg/tree-ssa/builtin-sprintf-warn-23.c: New test.
      
      From-SVN: r278098
      Martin Sebor committed
    • [PR c++/6936] Delete duplicate test · 966e31a1
      https://gcc.gnu.org/ml/gcc-patches/2019-11/msg00926.html
      	* g++.dg/lookup/pr6936.C: Delete, identical to using38.C
      
      From-SVN: r278096
      Nathan Sidwell committed
    • Free dominance info at the beginning of pass_jump_after_combine · e2d3e85c
      try_forward_edges does not update dominance info, and merge_blocks
      relies on it being up-to-date.  In PR92430 stale dominance info makes
      merge_blocks produce a loop in the dominator tree, which in turn makes
      delete_basic_block loop forever.
      
      Fix by freeing dominance info at the beginning of cleanup_cfg.
      
      gcc/ChangeLog:
      
      2019-11-12  Ilya Leoshkevich  <iii@linux.ibm.com>
      
      	PR rtl-optimization/92430
      	* cfgcleanup.c (pass_jump_after_combine::execute): Free
      	dominance info at the beginning.
      
      gcc/testsuite/ChangeLog:
      
      2019-11-12  Ilya Leoshkevich  <iii@linux.ibm.com>
      
      	PR rtl-optimization/92430
      	* gcc.dg/pr92430.c: New test (from Arseny Solokha).
      
      From-SVN: r278095
      Ilya Leoshkevich committed
    • re PR tree-optimization/92460 (ICE: verify_ssa failed (error: definition in… · 41098a37
      re PR tree-optimization/92460 (ICE: verify_ssa failed (error: definition in block 13 does not dominate use in block 22))
      
      2019-11-12  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/92460
      	* tree-vect-stmts.c (vectorizable_simd_clone_call): Unshare
      	expression before gimplifying.
      
      From-SVN: r278094
      Richard Biener committed
    • re PR tree-optimization/92461 (ICE: verify_ssa failed (error: excess use operand for statement)) · 830d1b18
      2019-11-12  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/92461
      	* tree-vect-loop.c (vect_create_epilog_for_reduction): Update
      	stmt after propagation.
      
      	* gcc.dg/torture/pr92461.c: New testcase.
      
      From-SVN: r278093
      Richard Biener committed
    • Use more SET_OPTION_IF_UNSET. · 6ed76044
      2019-11-12  Martin Liska  <mliska@suse.cz>
      
      	* config/i386/i386-options.c (ix86_recompute_optlev_based_flags):
      	Use SET_OPTION_IF_UNSET.
      	(ix86_option_override_internal): Likewise.
      	* opts.c (default_options_optimization): Likewise.
      	(finish_options): Likewise.
      	(enable_fdo_optimizations): Likewise.
      	(common_handle_option): Likewise.
      2019-11-12  Martin Liska  <mliska@suse.cz>
      
      	* c-opts.c (c_common_post_options):
      	Use SET_OPTION_IF_UNSET.
      2019-11-12  Martin Liska  <mliska@suse.cz>
      
      	* options.c (gfc_init_options):
      	Use SET_OPTION_IF_UNSET.
      2019-11-12  Martin Liska  <mliska@suse.cz>
      
      	* go-lang.c (go_langhook_post_options):
      	Use SET_OPTION_IF_UNSET.
      
      From-SVN: r278091
      Martin Liska committed
    • Remove option_default_params and option_validate_param hooks. · 8100e93b
      2019-11-12  Martin Liska  <mliska@suse.cz>
      
      	* common/common-target.def: Remove option_validate_param and
      	option_default_params.
      	* common/common-targhooks.c (default_option_validate_param):
      	Remove.
      	* common/common-targhooks.h (default_option_validate_param):
      	Remove.
      	* common/config/aarch64/aarch64-common.c (TARGET_OPTION_DEFAULT_PARAMS):
      	Remove usage of this.
      	(TARGET_OPTION_VALIDATE_PARAM): Likewise.
      	(aarch64_option_validate_param): Likewise.
      	(aarch64_option_default_params): Likewise
      	* common/config/bpf/bpf-common.c (bpf_option_default_params): Likewise.
      	(TARGET_OPTION_DEFAULT_PARAMS): Likewise.
      	* common/config/ia64/ia64-common.c (ia64_option_default_params): Likewise.
      	(TARGET_OPTION_DEFAULT_PARAMS): Likewise.
      	* common/config/powerpcspe/powerpcspe-common.c (rs6000_option_default_params): Likewise.
      	(TARGET_OPTION_DEFAULT_PARAMS): Likewise.
      	* common/config/rs6000/rs6000-common.c (rs6000_option_default_params): Likewise.
      	(TARGET_OPTION_DEFAULT_PARAMS): Likewise.
      	* common/config/sh/sh-common.c (sh_option_default_params): Likewise.
      	(TARGET_OPTION_DEFAULT_PARAMS): Likewise.
      	* config/aarch64/aarch64.c (aarch64_override_options_internal): Validate
      	guard_size here.
      	* doc/tm.texi: Remove option_default_params and option_validate_param.
      	* doc/tm.texi.in: Likewise.
      
      From-SVN: r278090
      Martin Liska committed
    • Fix test-suite fallout. · 75d66231
      2019-11-12  Martin Liska  <mliska@suse.cz>
      
      	* gcc.dg/completion-3.c: Append = to all expected
      	results and sort expected output.
      	* gcc.dg/pr83620.c: Update error message.
      	* gcc.dg/spellcheck-params-2.c: Likewise.
      	* gcc.dg/spellcheck-params.c: Likewise.
      	* gcc.misc-tests/help.exp: Update expected output.
      
      From-SVN: r278089
      Martin Liska committed
    • Remove set_default_param_value from documentation. · 11b5ca6e
      2019-11-12  Martin Liska  <mliska@suse.cz>
      
      	* common/common-target.def:
      	Do not mention set_default_param_value
      	and set_param_value.
      	* doc/tm.texi: Likewise.
      
      From-SVN: r278088
      Martin Liska committed
    • Remove last leftover usage of params* files. · 8cc5fcaf
      2019-11-12  Martin Liska  <mliska@suse.cz>
      
      	* common.opt: Remove param_values.
      	* config/i386/i386-options.c (ix86_valid_target_attribute_p):
      	Remove finalize_options_struct.
      	* gcc.c (driver::decode_argv): Do not call global_init_params
      	and finish_params.
      	(driver::finalize): Do not call params_c_finalize
      	and finalize_options_struct.
      	* opt-suggestions.c (option_proposer::get_completions): Remove
      	special casing of params.
      	(option_proposer::find_param_completions): Remove.
      	(test_completion_partial_match): Update expected output.
      	* opt-suggestions.h: Remove find_param_completions.
      	* opts-common.c (add_misspelling_candidates): Add
      	--param with a space.
      	* opts.c (handle_param): Remove.
      	(init_options_struct):. Remove init_options_struct and
      	similar calls.
      	(finalize_options_struct): Remove.
      	(common_handle_option): Use SET_OPTION_IF_UNSET.
      	* opts.h (finalize_options_struct): Remove.
      	* toplev.c (general_init): Do not call global_init_params.
      	(toplev::finalize): Do not call params_c_finalize and
      	finalize_options_struct.
      
      From-SVN: r278087
      Martin Liska committed
    • Remove gcc/params.* files. · 0c29cac4
      2019-11-12  Martin Liska  <mliska@suse.cz>
      
      	* Makefile.in: Remove PARAMS_H and params.list
      	and params.options.
      	* params-enum.h: Remove.
      	* params-list.h: Remove.
      	* params-options.h: Remove.
      	* params.c: Remove.
      	* params.def: Remove.
      	* params.h: Remove.
      	* asan.c: Do not include params.h.
      	* auto-profile.c: Likewise.
      	* bb-reorder.c: Likewise.
      	* builtins.c: Likewise.
      	* cfgcleanup.c: Likewise.
      	* cfgexpand.c: Likewise.
      	* cfgloopanal.c: Likewise.
      	* cgraph.c: Likewise.
      	* combine.c: Likewise.
      	* common/config/aarch64/aarch64-common.c: Likewise.
      	* common/config/gcn/gcn-common.c: Likewise.
      	* common/config/ia64/ia64-common.c: Likewise.
      	* common/config/powerpcspe/powerpcspe-common.c: Likewise.
      	* common/config/rs6000/rs6000-common.c: Likewise.
      	* common/config/sh/sh-common.c: Likewise.
      	* config/aarch64/aarch64.c: Likewise.
      	* config/alpha/alpha.c: Likewise.
      	* config/arm/arm.c: Likewise.
      	* config/avr/avr.c: Likewise.
      	* config/csky/csky.c: Likewise.
      	* config/i386/i386-builtins.c: Likewise.
      	* config/i386/i386-expand.c: Likewise.
      	* config/i386/i386-features.c: Likewise.
      	* config/i386/i386-options.c: Likewise.
      	* config/i386/i386.c: Likewise.
      	* config/ia64/ia64.c: Likewise.
      	* config/rs6000/rs6000-logue.c: Likewise.
      	* config/rs6000/rs6000.c: Likewise.
      	* config/s390/s390.c: Likewise.
      	* config/sparc/sparc.c: Likewise.
      	* config/visium/visium.c: Likewise.
      	* coverage.c: Likewise.
      	* cprop.c: Likewise.
      	* cse.c: Likewise.
      	* cselib.c: Likewise.
      	* dse.c: Likewise.
      	* emit-rtl.c: Likewise.
      	* explow.c: Likewise.
      	* final.c: Likewise.
      	* fold-const.c: Likewise.
      	* gcc.c: Likewise.
      	* gcse.c: Likewise.
      	* ggc-common.c: Likewise.
      	* ggc-page.c: Likewise.
      	* gimple-loop-interchange.cc: Likewise.
      	* gimple-loop-jam.c: Likewise.
      	* gimple-loop-versioning.cc: Likewise.
      	* gimple-ssa-split-paths.c: Likewise.
      	* gimple-ssa-sprintf.c: Likewise.
      	* gimple-ssa-store-merging.c: Likewise.
      	* gimple-ssa-strength-reduction.c: Likewise.
      	* gimple-ssa-warn-alloca.c: Likewise.
      	* gimple-ssa-warn-restrict.c: Likewise.
      	* graphite-isl-ast-to-gimple.c: Likewise.
      	* graphite-optimize-isl.c: Likewise.
      	* graphite-scop-detection.c: Likewise.
      	* graphite-sese-to-poly.c: Likewise.
      	* graphite.c: Likewise.
      	* haifa-sched.c: Likewise.
      	* hsa-gen.c: Likewise.
      	* ifcvt.c: Likewise.
      	* ipa-cp.c: Likewise.
      	* ipa-fnsummary.c: Likewise.
      	* ipa-inline-analysis.c: Likewise.
      	* ipa-inline.c: Likewise.
      	* ipa-polymorphic-call.c: Likewise.
      	* ipa-profile.c: Likewise.
      	* ipa-prop.c: Likewise.
      	* ipa-split.c: Likewise.
      	* ipa-sra.c: Likewise.
      	* ira-build.c: Likewise.
      	* ira-conflicts.c: Likewise.
      	* loop-doloop.c: Likewise.
      	* loop-invariant.c: Likewise.
      	* loop-unroll.c: Likewise.
      	* lra-assigns.c: Likewise.
      	* lra-constraints.c: Likewise.
      	* modulo-sched.c: Likewise.
      	* opt-suggestions.c: Likewise.
      	* opts.c: Likewise.
      	* postreload-gcse.c: Likewise.
      	* predict.c: Likewise.
      	* reload.c: Likewise.
      	* reorg.c: Likewise.
      	* resource.c: Likewise.
      	* sanopt.c: Likewise.
      	* sched-deps.c: Likewise.
      	* sched-ebb.c: Likewise.
      	* sched-rgn.c: Likewise.
      	* sel-sched-ir.c: Likewise.
      	* sel-sched.c: Likewise.
      	* shrink-wrap.c: Likewise.
      	* stmt.c: Likewise.
      	* targhooks.c: Likewise.
      	* toplev.c: Likewise.
      	* tracer.c: Likewise.
      	* trans-mem.c: Likewise.
      	* tree-chrec.c: Likewise.
      	* tree-data-ref.c: Likewise.
      	* tree-if-conv.c: Likewise.
      	* tree-inline.c: Likewise.
      	* tree-loop-distribution.c: Likewise.
      	* tree-parloops.c: Likewise.
      	* tree-predcom.c: Likewise.
      	* tree-profile.c: Likewise.
      	* tree-scalar-evolution.c: Likewise.
      	* tree-sra.c: Likewise.
      	* tree-ssa-ccp.c: Likewise.
      	* tree-ssa-dom.c: Likewise.
      	* tree-ssa-dse.c: Likewise.
      	* tree-ssa-ifcombine.c: Likewise.
      	* tree-ssa-loop-ch.c: Likewise.
      	* tree-ssa-loop-im.c: Likewise.
      	* tree-ssa-loop-ivcanon.c: Likewise.
      	* tree-ssa-loop-ivopts.c: Likewise.
      	* tree-ssa-loop-manip.c: Likewise.
      	* tree-ssa-loop-niter.c: Likewise.
      	* tree-ssa-loop-prefetch.c: Likewise.
      	* tree-ssa-loop-unswitch.c: Likewise.
      	* tree-ssa-math-opts.c: Likewise.
      	* tree-ssa-phiopt.c: Likewise.
      	* tree-ssa-pre.c: Likewise.
      	* tree-ssa-reassoc.c: Likewise.
      	* tree-ssa-sccvn.c: Likewise.
      	* tree-ssa-scopedtables.c: Likewise.
      	* tree-ssa-sink.c: Likewise.
      	* tree-ssa-strlen.c: Likewise.
      	* tree-ssa-structalias.c: Likewise.
      	* tree-ssa-tail-merge.c: Likewise.
      	* tree-ssa-threadbackward.c: Likewise.
      	* tree-ssa-threadedge.c: Likewise.
      	* tree-ssa-uninit.c: Likewise.
      	* tree-switch-conversion.c: Likewise.
      	* tree-vect-data-refs.c: Likewise.
      	* tree-vect-loop.c: Likewise.
      	* tree-vect-slp.c: Likewise.
      	* tree-vrp.c: Likewise.
      	* tree.c: Likewise.
      	* value-prof.c: Likewise.
      	* var-tracking.c: Likewise.
      2019-11-12  Martin Liska  <mliska@suse.cz>
      
      	* gimple-parser.c: Do not include params.h.
      2019-11-12  Martin Liska  <mliska@suse.cz>
      
      	* name-lookup.c: Do not include params.h.
      	* typeck.c: Likewise.
      2019-11-12  Martin Liska  <mliska@suse.cz>
      
      	* lto-common.c: Do not include params.h.
      	* lto-partition.c: Likewise.
      	* lto.c: Likewise.
      
      From-SVN: r278086
      Martin Liska committed
    • Apply mechanical replacement (generated patch). · 028d4092
      2019-11-12  Martin Liska  <mliska@suse.cz>
      
      	* asan.c (asan_sanitize_stack_p): Replace old parameter syntax
      	with the new one, include opts.h if needed.  Use SET_OPTION_IF_UNSET
      	macro.
      	(asan_sanitize_allocas_p): Likewise.
      	(asan_emit_stack_protection): Likewise.
      	(asan_protect_global): Likewise.
      	(instrument_derefs): Likewise.
      	(instrument_builtin_call): Likewise.
      	(asan_expand_mark_ifn): Likewise.
      	* auto-profile.c (auto_profile): Likewise.
      	* bb-reorder.c (copy_bb_p): Likewise.
      	(duplicate_computed_gotos): Likewise.
      	* builtins.c (inline_expand_builtin_string_cmp): Likewise.
      	* cfgcleanup.c (try_crossjump_to_edge): Likewise.
      	(try_crossjump_bb): Likewise.
      	* cfgexpand.c (defer_stack_allocation): Likewise.
      	(stack_protect_classify_type): Likewise.
      	(pass_expand::execute): Likewise.
      	* cfgloopanal.c (expected_loop_iterations_unbounded): Likewise.
      	(estimate_reg_pressure_cost): Likewise.
      	* cgraph.c (cgraph_edge::maybe_hot_p): Likewise.
      	* combine.c (combine_instructions): Likewise.
      	(record_value_for_reg): Likewise.
      	* common/config/aarch64/aarch64-common.c (aarch64_option_validate_param): Likewise.
      	(aarch64_option_default_params): Likewise.
      	* common/config/ia64/ia64-common.c (ia64_option_default_params): Likewise.
      	* common/config/powerpcspe/powerpcspe-common.c (rs6000_option_default_params): Likewise.
      	* common/config/rs6000/rs6000-common.c (rs6000_option_default_params): Likewise.
      	* common/config/sh/sh-common.c (sh_option_default_params): Likewise.
      	* config/aarch64/aarch64.c (aarch64_output_probe_stack_range): Likewise.
      	(aarch64_allocate_and_probe_stack_space): Likewise.
      	(aarch64_expand_epilogue): Likewise.
      	(aarch64_override_options_internal): Likewise.
      	* config/alpha/alpha.c (alpha_option_override): Likewise.
      	* config/arm/arm.c (arm_option_override): Likewise.
      	(arm_valid_target_attribute_p): Likewise.
      	* config/i386/i386-options.c (ix86_option_override_internal): Likewise.
      	* config/i386/i386.c (get_probe_interval): Likewise.
      	(ix86_adjust_stack_and_probe_stack_clash): Likewise.
      	(ix86_max_noce_ifcvt_seq_cost): Likewise.
      	* config/ia64/ia64.c (ia64_adjust_cost): Likewise.
      	* config/rs6000/rs6000-logue.c (get_stack_clash_protection_probe_interval): Likewise.
      	(get_stack_clash_protection_guard_size): Likewise.
      	* config/rs6000/rs6000.c (rs6000_option_override_internal): Likewise.
      	* config/s390/s390.c (allocate_stack_space): Likewise.
      	(s390_emit_prologue): Likewise.
      	(s390_option_override_internal): Likewise.
      	* config/sparc/sparc.c (sparc_option_override): Likewise.
      	* config/visium/visium.c (visium_option_override): Likewise.
      	* coverage.c (get_coverage_counts): Likewise.
      	(coverage_compute_profile_id): Likewise.
      	(coverage_begin_function): Likewise.
      	(coverage_end_function): Likewise.
      	* cse.c (cse_find_path): Likewise.
      	(cse_extended_basic_block): Likewise.
      	(cse_main): Likewise.
      	* cselib.c (cselib_invalidate_mem): Likewise.
      	* dse.c (dse_step1): Likewise.
      	* emit-rtl.c (set_new_first_and_last_insn): Likewise.
      	(get_max_insn_count): Likewise.
      	(make_debug_insn_raw): Likewise.
      	(init_emit): Likewise.
      	* explow.c (compute_stack_clash_protection_loop_data): Likewise.
      	* final.c (compute_alignments): Likewise.
      	* fold-const.c (fold_range_test): Likewise.
      	(fold_truth_andor): Likewise.
      	(tree_single_nonnegative_warnv_p): Likewise.
      	(integer_valued_real_single_p): Likewise.
      	* gcse.c (want_to_gcse_p): Likewise.
      	(prune_insertions_deletions): Likewise.
      	(hoist_code): Likewise.
      	(gcse_or_cprop_is_too_expensive): Likewise.
      	* ggc-common.c: Likewise.
      	* ggc-page.c (ggc_collect): Likewise.
      	* gimple-loop-interchange.cc (MAX_NUM_STMT): Likewise.
      	(MAX_DATAREFS): Likewise.
      	(OUTER_STRIDE_RATIO): Likewise.
      	* gimple-loop-jam.c (tree_loop_unroll_and_jam): Likewise.
      	* gimple-loop-versioning.cc (loop_versioning::max_insns_for_loop): Likewise.
      	* gimple-ssa-split-paths.c (is_feasible_trace): Likewise.
      	* gimple-ssa-store-merging.c (imm_store_chain_info::try_coalesce_bswap): Likewise.
      	(imm_store_chain_info::coalesce_immediate_stores): Likewise.
      	(imm_store_chain_info::output_merged_store): Likewise.
      	(pass_store_merging::process_store): Likewise.
      	* gimple-ssa-strength-reduction.c (find_basis_for_base_expr): Likewise.
      	* graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple): Likewise.
      	(scop_to_isl_ast): Likewise.
      	* graphite-optimize-isl.c (get_schedule_for_node_st): Likewise.
      	(optimize_isl): Likewise.
      	* graphite-scop-detection.c (build_scops): Likewise.
      	* haifa-sched.c (set_modulo_params): Likewise.
      	(rank_for_schedule): Likewise.
      	(model_add_to_worklist): Likewise.
      	(model_promote_insn): Likewise.
      	(model_choose_insn): Likewise.
      	(queue_to_ready): Likewise.
      	(autopref_multipass_dfa_lookahead_guard): Likewise.
      	(schedule_block): Likewise.
      	(sched_init): Likewise.
      	* hsa-gen.c (init_prologue): Likewise.
      	* ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Likewise.
      	(cond_move_process_if_block): Likewise.
      	* ipa-cp.c (ipcp_lattice::add_value): Likewise.
      	(merge_agg_lats_step): Likewise.
      	(devirtualization_time_bonus): Likewise.
      	(hint_time_bonus): Likewise.
      	(incorporate_penalties): Likewise.
      	(good_cloning_opportunity_p): Likewise.
      	(ipcp_propagate_stage): Likewise.
      	* ipa-fnsummary.c (decompose_param_expr): Likewise.
      	(set_switch_stmt_execution_predicate): Likewise.
      	(analyze_function_body): Likewise.
      	(compute_fn_summary): Likewise.
      	* ipa-inline-analysis.c (estimate_growth): Likewise.
      	* ipa-inline.c (caller_growth_limits): Likewise.
      	(inline_insns_single): Likewise.
      	(inline_insns_auto): Likewise.
      	(can_inline_edge_by_limits_p): Likewise.
      	(want_early_inline_function_p): Likewise.
      	(big_speedup_p): Likewise.
      	(want_inline_small_function_p): Likewise.
      	(want_inline_self_recursive_call_p): Likewise.
      	(edge_badness): Likewise.
      	(recursive_inlining): Likewise.
      	(compute_max_insns): Likewise.
      	(early_inliner): Likewise.
      	* ipa-polymorphic-call.c (csftc_abort_walking_p): Likewise.
      	* ipa-profile.c (ipa_profile): Likewise.
      	* ipa-prop.c (determine_known_aggregate_parts): Likewise.
      	(ipa_analyze_node): Likewise.
      	(ipcp_transform_function): Likewise.
      	* ipa-split.c (consider_split): Likewise.
      	* ipa-sra.c (allocate_access): Likewise.
      	(process_scan_results): Likewise.
      	(ipa_sra_summarize_function): Likewise.
      	(pull_accesses_from_callee): Likewise.
      	* ira-build.c (loop_compare_func): Likewise.
      	(mark_loops_for_removal): Likewise.
      	* ira-conflicts.c (build_conflict_bit_table): Likewise.
      	* loop-doloop.c (doloop_optimize): Likewise.
      	* loop-invariant.c (gain_for_invariant): Likewise.
      	(move_loop_invariants): Likewise.
      	* loop-unroll.c (decide_unroll_constant_iterations): Likewise.
      	(decide_unroll_runtime_iterations): Likewise.
      	(decide_unroll_stupid): Likewise.
      	(expand_var_during_unrolling): Likewise.
      	* lra-assigns.c (spill_for): Likewise.
      	* lra-constraints.c (EBB_PROBABILITY_CUTOFF): Likewise.
      	* modulo-sched.c (sms_schedule): Likewise.
      	(DFA_HISTORY): Likewise.
      	* opts.c (default_options_optimization): Likewise.
      	(finish_options): Likewise.
      	(common_handle_option): Likewise.
      	* postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
      	(if): Likewise.
      	* predict.c (get_hot_bb_threshold): Likewise.
      	(maybe_hot_count_p): Likewise.
      	(probably_never_executed): Likewise.
      	(predictable_edge_p): Likewise.
      	(predict_loops): Likewise.
      	(expr_expected_value_1): Likewise.
      	(tree_predict_by_opcode): Likewise.
      	(handle_missing_profiles): Likewise.
      	* reload.c (find_equiv_reg): Likewise.
      	* reorg.c (redundant_insn): Likewise.
      	* resource.c (mark_target_live_regs): Likewise.
      	(incr_ticks_for_insn): Likewise.
      	* sanopt.c (pass_sanopt::execute): Likewise.
      	* sched-deps.c (sched_analyze_1): Likewise.
      	(sched_analyze_2): Likewise.
      	(sched_analyze_insn): Likewise.
      	(deps_analyze_insn): Likewise.
      	* sched-ebb.c (schedule_ebbs): Likewise.
      	* sched-rgn.c (find_single_block_region): Likewise.
      	(too_large): Likewise.
      	(haifa_find_rgns): Likewise.
      	(extend_rgns): Likewise.
      	(new_ready): Likewise.
      	(schedule_region): Likewise.
      	(sched_rgn_init): Likewise.
      	* sel-sched-ir.c (make_region_from_loop): Likewise.
      	* sel-sched-ir.h (MAX_WS): Likewise.
      	* sel-sched.c (process_pipelined_exprs): Likewise.
      	(sel_setup_region_sched_flags): Likewise.
      	* shrink-wrap.c (try_shrink_wrapping): Likewise.
      	* targhooks.c (default_max_noce_ifcvt_seq_cost): Likewise.
      	* toplev.c (print_version): Likewise.
      	(process_options): Likewise.
      	* tracer.c (tail_duplicate): Likewise.
      	* trans-mem.c (tm_log_add): Likewise.
      	* tree-chrec.c (chrec_fold_plus_1): Likewise.
      	* tree-data-ref.c (split_constant_offset): Likewise.
      	(compute_all_dependences): Likewise.
      	* tree-if-conv.c (MAX_PHI_ARG_NUM): Likewise.
      	* tree-inline.c (remap_gimple_stmt): Likewise.
      	* tree-loop-distribution.c (MAX_DATAREFS_NUM): Likewise.
      	* tree-parloops.c (MIN_PER_THREAD): Likewise.
      	(create_parallel_loop): Likewise.
      	* tree-predcom.c (determine_unroll_factor): Likewise.
      	* tree-scalar-evolution.c (instantiate_scev_r): Likewise.
      	* tree-sra.c (analyze_all_variable_accesses): Likewise.
      	* tree-ssa-ccp.c (fold_builtin_alloca_with_align): Likewise.
      	* tree-ssa-dse.c (setup_live_bytes_from_ref): Likewise.
      	(dse_optimize_redundant_stores): Likewise.
      	(dse_classify_store): Likewise.
      	* tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
      	* tree-ssa-loop-ch.c (ch_base::copy_headers): Likewise.
      	* tree-ssa-loop-im.c (LIM_EXPENSIVE): Likewise.
      	* tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
      	(try_peel_loop): Likewise.
      	(tree_unroll_loops_completely): Likewise.
      	* tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
      	(CONSIDER_ALL_CANDIDATES_BOUND): Likewise.
      	(MAX_CONSIDERED_GROUPS): Likewise.
      	(ALWAYS_PRUNE_CAND_SET_BOUND): Likewise.
      	* tree-ssa-loop-manip.c (can_unroll_loop_p): Likewise.
      	* tree-ssa-loop-niter.c (MAX_ITERATIONS_TO_TRACK): Likewise.
      	* tree-ssa-loop-prefetch.c (PREFETCH_BLOCK): Likewise.
      	(L1_CACHE_SIZE_BYTES): Likewise.
      	(L2_CACHE_SIZE_BYTES): Likewise.
      	(should_issue_prefetch_p): Likewise.
      	(schedule_prefetches): Likewise.
      	(determine_unroll_factor): Likewise.
      	(volume_of_references): Likewise.
      	(add_subscript_strides): Likewise.
      	(self_reuse_distance): Likewise.
      	(mem_ref_count_reasonable_p): Likewise.
      	(insn_to_prefetch_ratio_too_small_p): Likewise.
      	(loop_prefetch_arrays): Likewise.
      	(tree_ssa_prefetch_arrays): Likewise.
      	* tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Likewise.
      	* tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise.
      	(convert_mult_to_fma): Likewise.
      	(math_opts_dom_walker::after_dom_children): Likewise.
      	* tree-ssa-phiopt.c (cond_if_else_store_replacement): Likewise.
      	(hoist_adjacent_loads): Likewise.
      	(gate_hoist_loads): Likewise.
      	* tree-ssa-pre.c (translate_vuse_through_block): Likewise.
      	(compute_partial_antic_aux): Likewise.
      	* tree-ssa-reassoc.c (get_reassociation_width): Likewise.
      	* tree-ssa-sccvn.c (vn_reference_lookup_pieces): Likewise.
      	(vn_reference_lookup): Likewise.
      	(do_rpo_vn): Likewise.
      	* tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr): Likewise.
      	* tree-ssa-sink.c (select_best_block): Likewise.
      	* tree-ssa-strlen.c (new_stridx): Likewise.
      	(new_addr_stridx): Likewise.
      	(get_range_strlen_dynamic): Likewise.
      	(class ssa_name_limit_t): Likewise.
      	* tree-ssa-structalias.c (push_fields_onto_fieldstack): Likewise.
      	(create_variable_info_for_1): Likewise.
      	(init_alias_vars): Likewise.
      	* tree-ssa-tail-merge.c (find_clusters_1): Likewise.
      	(tail_merge_optimize): Likewise.
      	* tree-ssa-threadbackward.c (thread_jumps::profitable_jump_thread_path): Likewise.
      	(thread_jumps::fsm_find_control_statement_thread_paths): Likewise.
      	(thread_jumps::find_jump_threads_backwards): Likewise.
      	* tree-ssa-threadedge.c (record_temporary_equivalences_from_stmts_at_dest): Likewise.
      	* tree-ssa-uninit.c (compute_control_dep_chain): Likewise.
      	* tree-switch-conversion.c (switch_conversion::check_range): Likewise.
      	(jump_table_cluster::can_be_handled): Likewise.
      	* tree-switch-conversion.h (jump_table_cluster::case_values_threshold): Likewise.
      	(SWITCH_CONVERSION_BRANCH_RATIO): Likewise.
      	(param_switch_conversion_branch_ratio): Likewise.
      	* tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Likewise.
      	(vect_enhance_data_refs_alignment): Likewise.
      	(vect_prune_runtime_alias_test_list): Likewise.
      	* tree-vect-loop.c (vect_analyze_loop_costing): Likewise.
      	(vect_get_datarefs_in_loop): Likewise.
      	(vect_analyze_loop): Likewise.
      	* tree-vect-slp.c (vect_slp_bb): Likewise.
      	* tree-vectorizer.h: Likewise.
      	* tree-vrp.c (find_switch_asserts): Likewise.
      	(vrp_prop::check_mem_ref): Likewise.
      	* tree.c (wide_int_to_tree_1): Likewise.
      	(cache_integer_cst): Likewise.
      	* var-tracking.c (EXPR_USE_DEPTH): Likewise.
      	(reverse_op): Likewise.
      	(vt_find_locations): Likewise.
      2019-11-12  Martin Liska  <mliska@suse.cz>
      
      	* gimple-parser.c (c_parser_parse_gimple_body): Replace old parameter syntax
      	with the new one, include opts.h if needed.  Use SET_OPTION_IF_UNSET
      	macro.
      2019-11-12  Martin Liska  <mliska@suse.cz>
      
      	* name-lookup.c (namespace_hints::namespace_hints): Replace old parameter syntax
      	with the new one, include opts.h if needed.  Use SET_OPTION_IF_UNSET
      	macro.
      	* typeck.c (comptypes): Likewise.
      2019-11-12  Martin Liska  <mliska@suse.cz>
      
      	* lto-partition.c (lto_balanced_map): Replace old parameter syntax
      	with the new one, include opts.h if needed.  Use SET_OPTION_IF_UNSET
      	macro.
      	* lto.c (do_whole_program_analysis): Likewise.
      
      From-SVN: r278085
      Martin Liska committed
    • Include new generated gcc/params.opt file. · 7e1792c9
      2019-11-12  Martin Liska  <mliska@suse.cz>
      
      	* Makefile.in: Include params.opt.
      	* flag-types.h (enum parloops_schedule_type): Add
      	parloops_schedule_type used in params.opt.
      	* params.opt: New file.
      
      From-SVN: r278084
      Martin Liska committed
    • Param to options conversion. · 76c26af9
      2019-11-12  Martin Liska  <mliska@suse.cz>
      
      	* common.opt: Remove --param and --param= options.
      	* opt-functions.awk: Mark CL_PARAMS for options
      	that have Param keyword.
      	* opts-common.c (decode_cmdline_options_to_array):
      	Replace --param key=value with --param=key=value.
      	* opts.c (print_filtered_help): Remove special
      	printing of params.
      	(print_specific_help): Update title for params.
      	(common_handle_option): Do not handle OPT__param.
      	opts.h (SET_OPTION_IF_UNSET): New macro.
      	* doc/options.texi: Document Param keyword.
      
      From-SVN: r278083
      Martin Liska committed
    • Add OpenACC 2.6 `serial' construct support · 62aee289
          The `serial' construct (cf. section 2.5.3 of the OpenACC 2.6 standard)
          is equivalent to a `parallel' construct with clauses `num_gangs(1)
          num_workers(1) vector_length(1)' implied.
          These clauses are therefore not supported with the `serial'
          construct. All the remaining clauses accepted with `parallel' are also
          accepted with `serial'.
      
          The `serial' construct is implemented like `parallel', except for
          hardcoding dimensions rather than taking them from the relevant
          clauses, in `expand_omp_target'.
      
          Separate codes are used to denote the `serial' construct throughout the
          middle end, even though the mapping of `serial' to an equivalent
          `parallel' construct could have been done in the individual language
          frontends. In particular, this allows to distinguish between compute
          constructs in warnings, error messages, dumps etc.
      
          2019-11-12  Maciej W. Rozycki  <macro@codesourcery.com>
                      Tobias Burnus  <tobias@codesourcery.com>
                      Frederik Harwath  <frederik@codesourcery.com>
                      Thomas Schwinge  <thomas@codesourcery.com>
      
          gcc/
          * gimple.h (gf_mask): Add GF_OMP_TARGET_KIND_OACC_SERIAL
          enumeration constant.
          (is_gimple_omp_oacc): Handle GF_OMP_TARGET_KIND_OACC_SERIAL.
          (is_gimple_omp_offloaded): Likewise.
          * gimplify.c (omp_region_type): Add ORT_ACC_SERIAL enumeration
          constant.  Adjust the value of ORT_NONE accordingly.
          (is_gimple_stmt): Handle OACC_SERIAL.
          (oacc_default_clause): Handle ORT_ACC_SERIAL.
          (gomp_needs_data_present): Likewise.
          (gimplify_adjust_omp_clauses): Likewise.
          (gimplify_omp_workshare): Handle OACC_SERIAL.
          (gimplify_expr): Likewise.
          * omp-expand.c (expand_omp_target):
          Handle GF_OMP_TARGET_KIND_OACC_SERIAL.
          (build_omp_regions_1, omp_make_gimple_edges): Likewise.
          * omp-low.c (is_oacc_parallel): Rename function to...
          (is_oacc_parallel_or_serial): ... this.
          Handle GF_OMP_TARGET_KIND_OACC_SERIAL.
          (scan_sharing_clauses): Adjust accordingly.
          (scan_omp_for): Likewise.
          (lower_oacc_head_mark): Likewise.
          (convert_from_firstprivate_int): Likewise.
          (lower_omp_target): Likewise.
          (check_omp_nesting_restrictions): Handle
          GF_OMP_TARGET_KIND_OACC_SERIAL.
          (lower_oacc_reductions): Likewise.
          (lower_omp_target): Likewise.
          * tree.def (OACC_SERIAL): New tree code.
          * tree-pretty-print.c (dump_generic_node): Handle OACC_SERIAL.
      
          * doc/generic.texi (OpenACC): Document OACC_SERIAL.
      
          gcc/c-family/
          * c-pragma.h (pragma_kind): Add PRAGMA_OACC_SERIAL enumeration
          constant.
          * c-pragma.c (oacc_pragmas): Add "serial" entry.
      
          gcc/c/
          * c-parser.c (OACC_SERIAL_CLAUSE_MASK): New macro.
          (c_parser_oacc_kernels_parallel): Rename function to...
          (c_parser_oacc_compute): ... this.  Handle PRAGMA_OACC_SERIAL.
          (c_parser_omp_construct): Update accordingly.
      
          gcc/cp/
          * constexpr.c (potential_constant_expression_1): Handle
          OACC_SERIAL.
          * parser.c (OACC_SERIAL_CLAUSE_MASK): New macro.
          (cp_parser_oacc_kernels_parallel): Rename function to...
          (cp_parser_oacc_compute): ... this.  Handle PRAGMA_OACC_SERIAL.
          (cp_parser_omp_construct): Update accordingly.
          (cp_parser_pragma): Handle PRAGMA_OACC_SERIAL.  Fix alphabetic
          order.
          * pt.c (tsubst_expr): Handle OACC_SERIAL.
      
          gcc/fortran/
          * gfortran.h (gfc_statement): Add ST_OACC_SERIAL_LOOP,
          ST_OACC_END_SERIAL_LOOP, ST_OACC_SERIAL and ST_OACC_END_SERIAL
          enumeration constants.
          (gfc_exec_op): Add EXEC_OACC_SERIAL_LOOP and EXEC_OACC_SERIAL
          enumeration constants.
          * match.h (gfc_match_oacc_serial): New prototype.
          (gfc_match_oacc_serial_loop): Likewise.
          * dump-parse-tree.c (show_omp_node, show_code_node): Handle
          EXEC_OACC_SERIAL_LOOP and EXEC_OACC_SERIAL.
          * match.c (match_exit_cycle): Handle EXEC_OACC_SERIAL_LOOP.
          * openmp.c (OACC_SERIAL_CLAUSES): New macro.
          (gfc_match_oacc_serial_loop): New function.
          (gfc_match_oacc_serial): Likewise.
          (oacc_is_loop): Handle EXEC_OACC_SERIAL_LOOP.
          (resolve_omp_clauses): Handle EXEC_OACC_SERIAL.
          (oacc_code_to_statement): Handle EXEC_OACC_SERIAL and
          EXEC_OACC_SERIAL_LOOP.
          (gfc_resolve_oacc_directive): Likewise.
          * parse.c (decode_oacc_directive) <'s'>: Add case for "serial"
          and "serial loop".
          (next_statement): Handle ST_OACC_SERIAL_LOOP and ST_OACC_SERIAL.
          (gfc_ascii_statement): Likewise.  Handle ST_OACC_END_SERIAL_LOOP
          and ST_OACC_END_SERIAL.
          (parse_oacc_structured_block): Handle ST_OACC_SERIAL.
          (parse_oacc_loop): Handle ST_OACC_SERIAL_LOOP and
          ST_OACC_END_SERIAL_LOOP.
          (parse_executable): Handle ST_OACC_SERIAL_LOOP and
          ST_OACC_SERIAL.
          (is_oacc): Handle EXEC_OACC_SERIAL_LOOP and EXEC_OACC_SERIAL.
          * resolve.c (gfc_resolve_blocks, gfc_resolve_code): Likewise.
          * st.c (gfc_free_statement): Likewise.
          * trans-openmp.c (gfc_trans_oacc_construct): Handle
          EXEC_OACC_SERIAL.
          (gfc_trans_oacc_combined_directive): Handle
          EXEC_OACC_SERIAL_LOOP.
          (gfc_trans_oacc_directive): Handle EXEC_OACC_SERIAL_LOOP and
          EXEC_OACC_SERIAL.
          * trans.c (trans_code): Likewise.
      
          gcc/testsuite/
          * c-c++-common/goacc/parallel-dims.c: New test.
          * gfortran.dg/goacc/parallel-dims.f90: New test.
      
          libgomp/
          * testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: New test.
          * testsuite/libgomp.oacc-fortran/parallel-dims-aux.c: New test.
          * testsuite/libgomp.oacc-fortran/parallel-dims.f89: New test.
          * testsuite/libgomp.oacc-fortran/parallel-dims-2.f90: New test.
      
      Reviewed-by: Thomas Schwinge <thomas@codesourcery.com>
      
      
      Co-Authored-By: Frederik Harwath <frederik@codesourcery.com>
      Co-Authored-By: Thomas Schwinge <thomas@codesourcery.com>
      Co-Authored-By: Tobias Burnus <tobias@codesourcery.com>
      
      From-SVN: r278082
      Maciej W. Rozycki committed
    • re PR target/92449 (ICE in extract_insn, at recog.c:2311) · 46618376
      	PR target/92449
      	* tree-complex.c (expand_complex_multiplication): If !HONOR_NANS,
      	don't emit UNORDERED_EXPR guarded libcall.  Formatting fixes.
      
      From-SVN: r278081
      Jakub Jelinek committed
    • re PR tree-optimization/92452 (ICE in vrp_prop::check_array_ref at tree-vrp.c:4153) · e4722b81
      	PR tree-optimization/92452
      	* tree-vrp.c (vrp_prop::check_array_ref): If TRUNC_DIV_EXPR folds
      	into NULL_TREE, set up_bound to NULL_TREE instead of computing
      	MINUS_EXPR on it.
      
      	* c-c++-common/pr92452.c: New test.
      
      From-SVN: r278080
      Jakub Jelinek committed
    • re PR tree-optimization/92347 (ICE in vect_get_vec_def_for_operand_1, at tree-vect-stmts.c:1537) · f0309937
      2019-11-11  Andre Vieira  <andre.simoesdiasvieira@arm.com>
      
              PR tree-optimization/92347
              * tree-vect-loop.c (vect_transform_loop): Don't overwrite epilogues
              safelen with 0.
      
              * gcc.dg/vect/pr92347.c: New test.
      
      From-SVN: r278079
      Andre Vieira committed
    • Implement P1946R0, Allow defaulting comparisons by value. · c9cd5c56
      	* method.c (early_check_defaulted_comparison): Accept by-value,
      	reject mixed by-value and by-reference parms.
      	* decl.c (grokdeclarator): Set funcdef_flag for defaulted friend.
      	* decl2.c (grokfield): Don't SET_DECL_FRIEND_CONTEXT.
      
      From-SVN: r278078
      Jason Merrill committed