1. 17 Dec, 2018 7 commits
    • config.gcc (powerpc-ibm-aix6.*): Delete extra_headers. · 61c43d82
      * config.gcc (powerpc-ibm-aix6.*): Delete extra_headers.
      (powerpc-ibm-aix7.1.*): Same.
      (powerpc-ibm-aix[789].*): Same.
      
      From-SVN: r267203
      David Edelsohn committed
    • DWARF: Don't expand hash table when no insertion is needed · dc6b21cb
      dwarf2out_finish performs:
      
      1. save_macinfo_strings
      2. hash table traverse of index_string
      3. output_macinfo -> output_macinfo_op
      4. output_indirect_strings -> hash table traverse of output_index_string
      
      find_slot_with_hash has
      
       if (insert == INSERT && m_size * 3 <= m_n_elements * 4)
          expand ();
      
      which may expand hash table even if no insertion is neeed and change hash
      table traverse order.  When output_macinfo_op is called, all index strings
      have been added to hash table by save_macinfo_strings and we shouldn't
      expand index string hash table.  Otherwise find_slot_with_hash will expand
      hash table when hash table has the right size and hash table traverse of
      output_index_string will have a different traverse order from index_string.
      
      	PR debug/79342
      	* dwarf2out.c (find_AT_string_in_table): Add insert argument
      	defaulting to INSERT and replace INSERT.
      	(find_AT_string): Likewise.
      	(output_macinfo_op): Pass NO_INSERT to find_AT_string.
      
      From-SVN: r267202
      H.J. Lu committed
    • coverage.c (struct conts_entry): Add n_counts. · 0418f237
      
      	* coverage.c (struct conts_entry): Add n_counts.
      	(remap_counts_file): Record number of ocunts.
      	(get_coverage_counts): Verify that counts match.
      	* coverage.h (get_coverage_counts): Update prototype.
      	* profile.c (get_exec_counts. compute_value_histograms): Add
      	n_counts parametrs.
      
      From-SVN: r267200
      Jan Hubicka committed
    • re PR rtl-optimization/88253 (Inlining of function incorrectly deletes volatile… · d7c00826
      re PR rtl-optimization/88253 (Inlining of function incorrectly deletes volatile register access when using XOR in avr-gcc)
      
      Fix PR 88253
      
      gcc/ChangeLog:
      
      	PR rtl-optimization/88253
      	* combine.c (combine_simplify_rtx): Test for side-effects before
      	substituting by zero.
      
      gcc/testsuite/ChangeLog:
      
      	PR rtl-optimization/88253
      	* gcc.target/avr/pr88253.c: New test.
      
      From-SVN: r267198
      Senthil Kumar Selvaraj committed
    • Add a loop versioning pass · 13e08dc9
      This patch adds a pass that versions loops with variable index strides
      for the case in which the stride is 1.  E.g.:
      
          for (int i = 0; i < n; ++i)
            x[i * stride] = ...;
      
      becomes:
      
          if (stepx == 1)
            for (int i = 0; i < n; ++i)
              x[i] = ...;
          else
            for (int i = 0; i < n; ++i)
              x[i * stride] = ...;
      
      This is useful for both vector code and scalar code, and in some cases
      can enable further optimisations like loop interchange or pattern
      recognition.
      
      The pass gives a 7.6% improvement on Cortex-A72 for 554.roms_r at -O3
      and a 2.4% improvement for 465.tonto.  I haven't found any SPEC tests
      that regress.
      
      Sizewise, there's a 10% increase in .text for both 554.roms_r and
      465.tonto.  That's obviously a lot, but in tonto's case it's because
      the whole program is written using assumed-shape arrays and pointers,
      so a large number of functions really do benefit from versioning.
      roms likewise makes heavy use of assumed-shape arrays, and that
      improvement in performance IMO justifies the code growth.
      
      The next biggest .text increase is 4.5% for 548.exchange2_r.  I did see
      a small (0.4%) speed improvement there, but although both 3-iteration runs
      produced stable results, that might still be noise.  There was a slightly
      larger (non-noise) improvement for a 256-bit SVE model.
      
      481.wrf and 521.wrf_r .text grew by 2.8% and 2.5% respectively, but
      without any noticeable improvement in performance.  No other test grew
      by more than 2%.
      
      Although the main SPEC beneficiaries are all Fortran tests, the
      benchmarks we use for SVE also include some C and C++ tests that
      benefit.
      
      Using -frepack-arrays gives the same benefits in many Fortran cases.
      The problem is that using that option inappropriately can force a full
      array copy for arguments that the function only reads once, and so it
      isn't really something we can turn on by default.  The new pass is
      supposed to give most of the benefits of -frepack-arrays without
      the risk of unnecessary repacking.
      
      The patch therefore enables the pass by default at -O3.
      
      2018-12-17  Richard Sandiford  <richard.sandiford@arm.com>
      	    Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
      	    Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
      
      gcc/
      	* doc/invoke.texi (-fversion-loops-for-strides): Document
      	(loop-versioning-group-size, loop-versioning-max-inner-insns)
      	(loop-versioning-max-outer-insns): Document new --params.
      	* Makefile.in (OBJS): Add gimple-loop-versioning.o.
      	* common.opt (fversion-loops-for-strides): New option.
      	* opts.c (default_options_table): Enable fversion-loops-for-strides
      	at -O3.
      	* params.def (PARAM_LOOP_VERSIONING_GROUP_SIZE)
      	(PARAM_LOOP_VERSIONING_MAX_INNER_INSNS)
      	(PARAM_LOOP_VERSIONING_MAX_OUTER_INSNS): New parameters.
      	* passes.def: Add pass_loop_versioning.
      	* timevar.def (TV_LOOP_VERSIONING): New time variable.
      	* tree-ssa-propagate.h
      	(substitute_and_fold_engine::substitute_and_fold): Add an optional
      	block parameter.
      	* tree-ssa-propagate.c
      	(substitute_and_fold_engine::substitute_and_fold): Likewise.
      	When passed, only walk blocks dominated by that block.
      	* tree-vrp.h (range_includes_p): Declare.
      	(range_includes_zero_p): Turn into an inline wrapper around
      	range_includes_p.
      	* tree-vrp.c (range_includes_p): New function, generalizing...
      	(range_includes_zero_p): ...this.
      	* tree-pass.h (make_pass_loop_versioning): Declare.
      	* gimple-loop-versioning.cc: New file.
      
      gcc/testsuite/
      	* gcc.dg/loop-versioning-1.c: New test.
      	* gcc.dg/loop-versioning-10.c: Likewise.
      	* gcc.dg/loop-versioning-11.c: Likewise.
      	* gcc.dg/loop-versioning-2.c: Likewise.
      	* gcc.dg/loop-versioning-3.c: Likewise.
      	* gcc.dg/loop-versioning-4.c: Likewise.
      	* gcc.dg/loop-versioning-5.c: Likewise.
      	* gcc.dg/loop-versioning-6.c: Likewise.
      	* gcc.dg/loop-versioning-7.c: Likewise.
      	* gcc.dg/loop-versioning-8.c: Likewise.
      	* gcc.dg/loop-versioning-9.c: Likewise.
      	* gfortran.dg/loop_versioning_1.f90: Likewise.
      	* gfortran.dg/loop_versioning_2.f90: Likewise.
      	* gfortran.dg/loop_versioning_3.f90: Likewise.
      	* gfortran.dg/loop_versioning_4.f90: Likewise.
      	* gfortran.dg/loop_versioning_5.f90: Likewise.
      	* gfortran.dg/loop_versioning_6.f90: Likewise.
      	* gfortran.dg/loop_versioning_7.f90: Likewise.
      	* gfortran.dg/loop_versioning_8.f90: Likewise.
      
      From-SVN: r267197
      Richard Sandiford committed
    • re PR fortran/85314 (gcc/fortran/resolve.c:9222: unreachable code ?) · fb2974dc
      2018-12-16  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/85314
      	* resolve.c (resolve_transfer): Remove dead code.
      
      From-SVN: r267196
      Steven G. Kargl committed
    • Daily bump. · 25f51c73
      From-SVN: r267195
      GCC Administrator committed
  2. 16 Dec, 2018 9 commits
  3. 15 Dec, 2018 11 commits
    • re PR c++/88482 (ICE when wrongly declaring __cxa_allocate_exception) · 784417d1
      	PR c++/88482
      	* except.c (verify_library_fn): New function.
      	(declare_library_fn): Use it.  Initialize TM even if the non-TM
      	library function has been user declared.
      	(do_end_catch): Don't set TREE_NOTHROW on error_mark_node.
      	(expand_start_catch_block): Don't call initialize_handler_parm
      	for error_mark_node.
      	(build_throw): Use verify_library_fn.  Initialize TM even if the
      	non-TM library function has been user declared.  Don't crash if
      	any library fn is error_mark_node.
      
      	* g++.dg/eh/builtin5.C: New test.
      	* g++.dg/eh/builtin6.C: New test.
      	* g++.dg/eh/builtin7.C: New test.
      	* g++.dg/eh/builtin8.C: New test.
      	* g++.dg/eh/builtin9.C: New test.
      	* g++.dg/eh/builtin10.C: New test.
      	* g++.dg/eh/builtin11.C: New test.
      	* g++.dg/parse/crash55.C: Adjust expected diagnostics.
      
      	* eh_cpp.cc (__cxa_throw): Change DEST argument type from
      	void * to void (*) (void *).
      	(_ITM_cxa_throw): Likewise.
      	* libitm.h (_ITM_cxa_throw): Likewise.
      	* libitm.texi (_ITM_cxa_throw): Likewise.
      
      From-SVN: r267179
      Jakub Jelinek committed
    • re PR fortran/88138 (ICE in gfc_arith_concat, at fortran/arith.c:1007) · e310b381
      2019-12-15  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/88138
      	* decl.c (variable_decl): Check that a derived isn't being assigned
      	an incompatible entity in an initialization.
       
      2019-12-15  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/88138
      	* gfortran.dg/pr88138.f90: new test.
      
      From-SVN: r267177
      Steven G. Kargl committed
    • Small lambda instantiation tweak. · 54d04ce9
      While looking at something else I noticed that we were passing 0 to the
      "nonclass" parameter here; we might as well pass 1, since capture proxies
      are always at block scope.
      
      	* pt.c (tsubst_expr) [DECL_EXPR]: Ignore class-scope bindings when
      	looking up a capture proxy.
      
      From-SVN: r267176
      Jason Merrill committed
    • cgraph.h (cgraph_node): Add predicate prevailing_p. · f714ecf5
      
      	* cgraph.h (cgraph_node): Add predicate prevailing_p.
      	(cgraph_edge): Add predicate possible_call_in_translation_unit_p.
      	* ipa-prop.c (ipa_write_jump_function): Optimize streaming of ADDR_EXPR.
      	(ipa_read_jump_function): Add prevails parameter; optimize streaming.
      	(ipa_read_edge_info): Break out from ...
      	(ipa_read_node_info): ... here; optimize streaming.
      	* cgraph.c (cgraph_edge::possibly_call_in_translation_unit_p): New
      	predicate.
      
      From-SVN: r267175
      Jan Hubicka committed
    • ipa-utils.c (ipa_merge_profiles): Do no merging when source function has zero count. · 6263c29d
      
      	* ipa-utils.c (ipa_merge_profiles): Do no merging when source function
      	has zero count.
      
      From-SVN: r267174
      Jan Hubicka committed
    • re PR tree-optimization/88464 (AVX-512 vectorization of masked scatter failing… · 305f1fb7
      re PR tree-optimization/88464 (AVX-512 vectorization of masked scatter failing with "not suitable for scatter store")
      
      	PR tree-optimization/88464
      	PR target/88498
      	* tree-vect-stmts.c (vect_build_gather_load_calls): For NARROWING
      	and mask with integral masktype, don't try to permute mask vectors,
      	instead emit VEC_UNPACK_{LO,HI}_EXPR.  Fix up NOP_EXPR operand.
      	(vectorizable_store): Handle masked scatters with decl and integral
      	mask type.
      	(permute_vec_elements): Allow scalar_dest to be NULL.
      	* config/i386/i386.c (ix86_get_builtin)
      	<case IX86_BUILTIN_GATHER3ALTDIV16SF>: Use lowpart_subreg for masks.
      	<case IX86_BUILTIN_GATHER3ALTDIV8SF>: Don't assume mask and src have
      	to be the same.
      
      	* gcc.target/i386/avx512f-pr88462-1.c: Rename to ...
      	* gcc.target/i386/avx512f-pr88464-1.c: ... this.  Fix up PR number.
      	Expect 4 vectorized loops instead of 3.
      	(f4): New function.
      	* gcc.target/i386/avx512f-pr88462-2.c: Rename to ...
      	* gcc.target/i386/avx512f-pr88464-2.c: ... this.  Fix up PR number
      	and #include.
      	(avx512f_test): Prepare arguments for f4 and check the results.
      	* gcc.target/i386/avx512f-pr88464-3.c: New test.
      	* gcc.target/i386/avx512f-pr88464-4.c: New test.
      
      From-SVN: r267170
      Jakub Jelinek committed
    • re PR tree-optimization/88464 (AVX-512 vectorization of masked scatter failing… · b1985ca0
      re PR tree-optimization/88464 (AVX-512 vectorization of masked scatter failing with "not suitable for scatter store")
      
      	PR tree-optimization/88464
      	PR target/88498
      	* tree-vect-stmts.c (vect_build_gather_load_calls): For NARROWING
      	and mask with integral masktype, don't try to permute mask vectors,
      	instead emit VEC_UNPACK_{LO,HI}_EXPR.  Fix up NOP_EXPR operand.
      	(vectorizable_store): Handle masked scatters with decl and integral
      	mask type.
      	(permute_vec_elements): Allow scalar_dest to be NULL.
      	* config/i386/i386.c (ix86_get_builtin)
      	<case IX86_BUILTIN_GATHER3ALTDIV16SF>: Use lowpart_subreg for masks.
      	<case IX86_BUILTIN_GATHER3ALTDIV8SF>: Don't assume mask and src have
      	to be the same.
      
      	* gcc.target/i386/avx512f-pr88462-1.c: Rename to ...
      	* gcc.target/i386/avx512f-pr88464-1.c: ... this.  Fix up PR number.
      	Expect 4 vectorized loops instead of 3.
      	(f4): New function.
      	* gcc.target/i386/avx512f-pr88462-2.c: Rename to ...
      	* gcc.target/i386/avx512f-pr88464-2.c: ... this.  Fix up PR number
      	and #include.
      	(avx512f_test): Prepare arguments for f4 and check the results.
      	* gcc.target/i386/avx512f-pr88464-3.c: New test.
      	* gcc.target/i386/avx512f-pr88464-4.c: New test.
      
      From-SVN: r267169
      Jakub Jelinek committed
    • ipa.c (cgraph_build_static_cdtor_1): Add OPTIMIZATION and TARGET parameters. · ee34ebba
      
      	* ipa.c (cgraph_build_static_cdtor_1): Add OPTIMIZATION and TARGET
      	parameters.
      	(cgraph_build_static_cdtor): Update.
      	(build_cdtor): Use OPTIMIZATION and TARGET of the first real cdtor
      	callsed.
      
      From-SVN: r267168
      Jan Hubicka committed
    • re PR c++/84644 (internal compiler error: in warn_misplaced_attr_for_class_type, at cp/decl.c:4718) · 1039d00c
      /cp
      2018-12-15  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/84644
      	* decl.c (check_tag_decl): A decltype with no declarator
      	doesn't declare anything.
      
      /testsuite
      2018-12-15  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/84644
      	* g++.dg/cpp0x/decltype68.C: New.
      	* g++.dg/cpp0x/decltype-33838.C: Adjust.
      	* g++.dg/template/spec32.C: Likewise.
      	* g++.dg/template/ttp22.C: Likewise.
      
      From-SVN: r267165
      Paolo Carlini committed
    • [RS6000] Use gen_hard_reg_clobber in rs6000.c · 590f447b
      I noticed when looking at PR88311 that rs6000_call_sysv should be
      using gen_hard_reg_clobber (as the sysv call insns did prior to
      introducing rs6000_call_sysv).  This patch fixes that minor
      regression, and other like places in rs6000.c.
      
      	* config/rs6000/rs6000.c (generate_set_vrsave, rs6000_emit_savres_rtx),
      	(rs6000_emit_prologue, rs6000_call_aix, rs6000_call_sysv),
      	(rs6000_call_darwin_1): Use gen_hard_reg_clobber.
      
      From-SVN: r267164
      Alan Modra committed
    • Daily bump. · 0e29ebb8
      From-SVN: r267163
      GCC Administrator committed
  4. 14 Dec, 2018 13 commits
    • re PR target/88489 (FAIL: gcc.target/i386/avx512f-vfixupimmss-2.c execution test) · 07179718
      	PR target/88489
      	* config/i386/sse.md (UNSPEC_SFIXUPIMM): New unspec enumerator.
      	(avx512f_sfixupimm<mode><mask_name><round_saeonly_name>): Use it
      	instead of UNSPEC_FIXUPIMM.
      
      	* gcc.target/i386/avx512vl-vfixupimmsd-2.c: New test.
      	* gcc.target/i386/avx512vl-vfixupimmss-2.c: New test.
      
      From-SVN: r267160
      Jakub Jelinek committed
    • re PR rtl-optimization/88478 (valgrind error in cselib_record_sets) · bbc8d04f
      	PR rtl-optimization/88478
      	* cselib.c (cselib_record_sets): Move sets[i].src_elt tests
      	after REG_P (dest) test.
      
      	* g++.dg/opt/pr88478.C: New test.
      
      From-SVN: r267159
      Jakub Jelinek committed
    • PR tree-optimization/88372 - alloc_size attribute is ignored on function pointers · 302db8ba
      gcc/ChangeLog:
      
      	PR tree-optimization/88372
      	* calls.c (maybe_warn_alloc_args_overflow): Handle function pointers.
      	* tree-object-size.c (alloc_object_size): Same.  Simplify.
      	* doc/extend.texi (Object Size Checking): Update.
      	(Other Builtins): Add __builtin_object_size.
      	(Common Type Attributes): Add alloc_size.
      	(Common Variable Attributes): Ditto.
      
      gcc/testsuite/ChangeLog:
      
      	PR tree-optimization/88372
      	* gcc.dg/Walloc-size-larger-than-18.c: New test.
      	* gcc.dg/builtin-object-size-19.c: Same.
      
      From-SVN: r267158
      Martin Sebor committed
    • PR tree-optimization/87096 - Optimised snprintf is not POSIX conformant · 3e6837c2
      gcc/ChangeLog:
      
      	PR rtl-optimization/87096
      	* gimple-ssa-sprintf.c (sprintf_dom_walker::handle_gimple_call): Avoid
      	folding calls whose bound may exceed INT_MAX.  Diagnose bound ranges
      	that exceed the limit.
      
      gcc/testsuite/ChangeLog:
      
      	PR tree-optimization/87096
      	* gcc.dg/tree-ssa/builtin-snprintf-4.c: New test.
      
      From-SVN: r267157
      Martin Sebor committed
    • PR 79738 - Documentation for __attribute__((const)) slightly misleading · 92863013
      gcc/ChangeLog:
      	* doc/extend.texi (attribute const, pure): Clarify.
      
      From-SVN: r267156
      Martin Sebor committed
    • [PR c++/87814] undefer deferred noexcept on tsubst if request · 3fd156b1
      tsubst_expr and tsubst_copy_and_build are not expected to handle
      DEFERRED_NOEXCEPT exprs, but if tsubst_exception_specification takes a
      DEFERRED_NOEXCEPT expr with !defer_ok, it just passes the expr on for
      tsubst_copy_and_build to barf.
      
      This patch arranges for tsubst_exception_specification to combine the
      incoming args with those already stored in a DEFERRED_NOEXCEPT, and
      then substitute them into the pattern, when retaining a deferred
      noexcept is unacceptable.
      
      
      for  gcc/cp/ChangeLog
      
      	PR c++/87814
      	* pt.c (tsubst_exception_specification): Handle
      	DEFERRED_NOEXCEPT with !defer_ok.
      
      for  gcc/testsuite/ChangeLog
      
      	PR c++/87814
      	* g++.dg/cpp1z/pr87814.C: New.
      
      From-SVN: r267155
      Alexandre Oliva committed
    • x86; Add -mmanual-endbr and cf_check function attribute · 06553c89
      Currently GCC inserts ENDBR instruction at entries of all non-static
      functions, unless LTO compilation is used.  Marking all functions,
      which are not called indirectly with nocf_check attribute, is not
      ideal since 99% of functions in a program may be of this kind.
      
      This patch adds -mmanual-endbr and cf_check function attribute.  They
      can be used together with -fcf-protection such that ENDBR instruction
      is inserted only at entries of functions with cf_check attribute.  It
      can limit number of ENDBR instructions to reduce program size.
      
      gcc/
      
      	* config/i386/i386.c (rest_of_insert_endbranch): Insert ENDBR
      	at the function entry only when -mmanual-endbr isn't used or
      	there is cf_check function attribute.
      	(ix86_attribute_table): Add cf_check.
      	* config/i386/i386.opt: Add -mmanual-endbr.
      	* doc/extend.texi: Document cf_check attribute.
      	* doc/invoke.texi: Document -mmanual-endbr.
      
      gcc/testsuite/
      
      	* gcc.target/i386/cf_check-1.c: New test.
      	* gcc.target/i386/cf_check-2.c: Likewise.
      	* gcc.target/i386/cf_check-3.c: Likewise.
      	* gcc.target/i386/cf_check-4.c: Likewise.
      	* gcc.target/i386/cf_check-5.c: Likewise.
      
      From-SVN: r267154
      H.J. Lu committed
    • Missing changes from "Adjust copy/copyin/copyout/create for OpenACC 2.5" · c759830b
      Most of that patch's changes were already committed as part of r261813 "Update
      OpenACC data clause semantics to the 2.5 behavior", but not all of them.
      
      	libgomp/
      	* oacc-mem.c (acc_present_or_create): Remove definition and change
      	to alias of acc_create.
      	(acc_present_or_copyin): Remove definition and change to alias of
      	acc_copyin.
      	* oacc-parallel.c (GOACC_enter_exit_data): Call acc_create instead
      	of acc_present_or_create.
      	* testsuite/libgomp.oacc-c-c++-common/data-already-1.c: Remove.
      	* testsuite/libgomp.oacc-c-c++-common/data-already-2.c: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/data-already-3.c: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/data-already-4.c: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/data-already-5.c: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/data-already-6.c: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/data-already-7.c: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/data-already-8.c: Likewise.
      	* testsuite/libgomp.oacc-fortran/data-already-1.f: Likewise.
      	* testsuite/libgomp.oacc-fortran/data-already-2.f: Likewise.
      	* testsuite/libgomp.oacc-fortran/data-already-3.f: Likewise.
      	* testsuite/libgomp.oacc-fortran/data-already-4.f: Likewise.
      	* testsuite/libgomp.oacc-fortran/data-already-5.f: Likewise.
      	* testsuite/libgomp.oacc-fortran/data-already-6.f: Likewise.
      	* testsuite/libgomp.oacc-fortran/data-already-7.f: Likewise.
      	* testsuite/libgomp.oacc-fortran/data-already-8.f: Likewise.
      
      Co-Authored-By: Chung-Lin Tang <cltang@codesourcery.com>
      
      From-SVN: r267153
      Thomas Schwinge committed
    • [PR88495] An OpenACC async queue is always synchronized with itself · f847198e
      An OpenACC async queue is always synchronized with itself, so invocations like
      "#pragma acc wait(0) async(0)", or "acc_wait_async (0, 0)" don't make a lot of
      sense, but are still valid.
      
      	libgomp/
      	PR libgomp/88495
      	* plugin/plugin-nvptx.c (nvptx_wait_async): Don't refuse
      	"identical parameters".
      	* testsuite/libgomp.oacc-c-c++-common/asyncwait-nop-1.c: Update.
      	* testsuite/libgomp.oacc-c-c++-common/lib-80.c: Remove.
      
      From-SVN: r267152
      Thomas Schwinge committed
    • [PR88484] OpenACC wait directive without wait argument but with async clause · c8ab8aab
      We don't correctly handle "#pragma acc wait async (a)" for "a >= 0", handling
      as a no-op whereas it should enqueue the appropriate wait operations on
      "async (a)".
      
      	libgomp/
      	PR libgomp/88484
      	* oacc-parallel.c (GOACC_wait): Correct handling for "async >= 0".
      	* testsuite/libgomp.oacc-c-c++-common/asyncwait-nop-1.c: New file.
      
      From-SVN: r267151
      Thomas Schwinge committed
    • [PR88407] [OpenACC] Correctly handle unseen async-arguments · 1404af62
      ... which turn the operation into a no-op.
      
      	libgomp/
      	PR libgomp/88407
      	* plugin/plugin-nvptx.c (nvptx_async_test, nvptx_wait)
      	(nvptx_wait_async): Unseen async-argument is a no-op.
      	* testsuite/libgomp.oacc-c-c++-common/async_queue-1.c: Update.
      	* testsuite/libgomp.oacc-c-c++-common/data-2-lib.c: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/data-2.c: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/lib-79.c: Likewise.
      	* testsuite/libgomp.oacc-fortran/lib-12.f90: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/lib-71.c: Merge into...
      	* testsuite/libgomp.oacc-c-c++-common/lib-69.c: ... this.  Update.
      	* testsuite/libgomp.oacc-c-c++-common/lib-77.c: Merge into...
      	* testsuite/libgomp.oacc-c-c++-common/lib-74.c: ... this.  Update
      
      From-SVN: r267150
      Thomas Schwinge committed
    • Revise libgomp.oacc-c-c++-common/data-2-lib.c, libgomp.oacc-c-c++-common/data-2.c · 7de562ee
      These are meant to be functionally equivalent (but no longer are), just using
      different means.  Also, use the OpenACC "*_async" functions recently added.
      
      	libgomp/
      	* testsuite/libgomp.oacc-c-c++-common/data-2-lib.c: Revise.
      	* testsuite/libgomp.oacc-c-c++-common/data-2.c: Likewise.
      
      From-SVN: r267149
      Thomas Schwinge committed
    • Correctly describe OpenACC async/wait dependencies · 17469af7
      	libgomp/
      	* testsuite/libgomp.oacc-c-c++-common/data-2-lib.c: Adjust.
      	* testsuite/libgomp.oacc-c-c++-common/data-2.c: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/data-3.c: Likewise.
      
      Reviewed-by: Thomas Schwinge <thomas@codesourcery.com>
      
      From-SVN: r267148
      Chung-Lin Tang committed