This project is mirrored from git://gcc.gnu.org/git/gcc.git. Pull mirroring failed .
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer.
Last successful update . This branch has diverged from upstream.
  1. 11 Jan, 2020 2 commits
  2. 10 Jan, 2020 38 commits
    • kcy's avatar
      [amdgcn] Remove dependency on stdint.h in libgcc · f46ec74e
      kcy authored
      2020-01-10  Kwok Cheung Yeung  <kcy@codesourcery.com>
      
      	libgcc/
      	* config/gcn/atomic.c: Remove include of stdint.h.
      	(__sync_val_compare_and_swap_##SIZE): Replace uintptr_t with
      	__UINTPTR_TYPE__.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280152 138bc75d-0d04-0410-961f-82ee72b054a4
      f46ec74e
    • tschwinge's avatar
      OpenACC 'acc_get_property' cleanup · f98381a8
      tschwinge authored
      	include/
      	* gomp-constants.h (enum gomp_device_property): Remove.
      	libgomp/
      	* libgomp-plugin.h (enum goacc_property): New.  Adjust all users
      	to use this instead of 'enum gomp_device_property'.
      	(GOMP_OFFLOAD_get_property): Rename to...
      	(GOMP_OFFLOAD_openacc_get_property): ... this.  Adjust all users.
      	* libgomp.h (struct gomp_device_descr): Move
      	'GOMP_OFFLOAD_openacc_get_property'...
      	(struct acc_dispatch_t): ... here.  Adjust all users.
      	* plugin/plugin-hsa.c (GOMP_OFFLOAD_get_property): Remove.
      	liboffloadmic/
      	* plugin/libgomp-plugin-intelmic.cpp (GOMP_OFFLOAD_get_property):
      	Remove.
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280150 138bc75d-0d04-0410-961f-82ee72b054a4
      f98381a8
    • tschwinge's avatar
      Further changes for the OpenACC 'if_present' clause on the 'host_data' construct · 36c73c7d
      tschwinge authored
      	gcc/
      	* tree.h (OMP_CLAUSE_USE_DEVICE_PTR_IF_PRESENT): New definition.
      	* tree-core.h: Document it.
      	* gimplify.c (gimplify_omp_workshare): Set it.
      	* omp-low.c (lower_omp_target): Use it.
      	* tree-pretty-print.c (dump_omp_clause): Print it.
      	gcc/testsuite/
      	* c-c++-common/goacc/host_data-1.c: Extend.
      	* gfortran.dg/goacc/host_data-tree.f95: Likewise.
      
      	gcc/
      	* omp-low.c (lower_omp_target) <OMP_CLAUSE_USE_DEVICE_PTR etc.>:
      	Assert that for OpenACC we always have 'GOMP_MAP_USE_DEVICE_PTR'.
      
      	libgomp/
      	* target.c (gomp_map_vars_internal)
      	<GOMP_MAP_USE_DEVICE_PTR_IF_PRESENT>: Clean up/elaborate code
      	paths.
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280149 138bc75d-0d04-0410-961f-82ee72b054a4
      36c73c7d
    • redi's avatar
      libstdc++: Improve comment about testsuite utilities · 2ef8cd27
      redi authored
      This fixes a typo and also explains why test_container is not a range
      when used with output_iterator_wrapper or input_iterator_wrapper.
      
      	* testsuite/util/testsuite_iterators.h: Improve comment.
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280146 138bc75d-0d04-0410-961f-82ee72b054a4
      2ef8cd27
    • dmalcolm's avatar
      Add diagnostic paths · ffd6c384
      dmalcolm authored
      This patch adds support for associating a "diagnostic_path" with a
      diagnostic: a sequence of events predicted by the compiler that leads to
      the problem occurring, with their locations in the user's source,
      text descriptions, and stack information (for handling interprocedural
      paths).
      
      For example, the following (hypothetical) error has a 3-event
      intraprocedural path:
      
      test.c: In function 'demo':
      test.c:29:5: error: passing NULL as argument 1 to 'PyList_Append' which
        requires a non-NULL parameter
         29 |     PyList_Append(list, item);
            |     ^~~~~~~~~~~~~~~~~~~~~~~~~
        'demo': events 1-3
           |
           |   25 |   list = PyList_New(0);
           |      |          ^~~~~~~~~~~~~
           |      |          |
           |      |          (1) when 'PyList_New' fails, returning NULL
           |   26 |
           |   27 |   for (i = 0; i < count; i++) {
           |      |   ~~~
           |      |   |
           |      |   (2) when 'i < count'
           |   28 |     item = PyLong_FromLong(random());
           |   29 |     PyList_Append(list,...
      ffd6c384
    • jakub's avatar
      PR tree-optimization/93210 · 4f8fe6cd
      jakub authored
      	* fold-const.h (native_encode_initializer,
      	can_native_interpret_type_p): Declare.
      	* fold-const.c (native_encode_string): Fix up handling with off != -1,
      	simplify.
      	(native_encode_initializer): New function, moved from dwarf2out.c.
      	Adjust to native_encode_expr compatible arguments, including dry-run
      	and partial extraction modes.  Don't handle STRING_CST.
      	(can_native_interpret_type_p): No longer static.
      	* gimple-fold.c (fold_ctor_reference): For native_encode_expr, verify
      	offset / BITS_PER_UNIT fits into int and don't call it if
      	can_native_interpret_type_p fails.  If suboff is NULL and for
      	CONSTRUCTOR fold_{,non}array_ctor_reference returns NULL, retry with
      	native_encode_initializer.
      	(fold_const_aggregate_ref_1): Formatting fix.
      	* dwarf2out.c (native_encode_initializer): Moved to fold-const.c.
      	(tree_add_const_value_attribute): Adjust caller.
      
      	* gcc.dg/pr93210.c: New test.
      	* g++.dg/opt/pr93210.C: New test.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280141 138bc75d-0d04-0410-961f-82ee72b054a4
      4f8fe6cd
    • jakub's avatar
      PR tree-optimization/90838 · c081cec2
      jakub authored
      	* tree-ssa-forwprop.c (simplify_count_trailing_zeroes): Use
      	SCALAR_INT_TYPE_MODE instead of TYPE_MODE as operand of
      	CTZ_DEFINED_VALUE_AT_ZERO.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280140 138bc75d-0d04-0410-961f-82ee72b054a4
      c081cec2
    • vmakarov's avatar
      2020-01-10 Vladimir Makarov <vmakarov@redhat.com> · c7e6f060
      vmakarov authored
      	PR inline-asm/93027
      	* gcc.target/i386/pr93027.c: Use the right PR number in the test.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280138 138bc75d-0d04-0410-961f-82ee72b054a4
      c7e6f060
    • jakub's avatar
      PR libgomp/93219 · b3c790d6
      jakub authored
      	* libgomp.h (gomp_print_string): Change return type from void to int.
      	* affinity-fmt.c (gomp_print_string): Likewise.  Return true if
      	not all characters have been written.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280137 138bc75d-0d04-0410-961f-82ee72b054a4
      b3c790d6
    • vmakarov's avatar
      Rename pr93207.c to pr93027.c. Fix PR number in change logs. · 4004ad97
      vmakarov authored
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280136 138bc75d-0d04-0410-961f-82ee72b054a4
      4004ad97
    • vmakarov's avatar
      2020-01-10 Vladimir Makarov <vmakarov@redhat.com> · aeebb140
      vmakarov authored
      	PR inline-asm/93207
      	* gcc.target/i386/pr93207.c: Run it only for x86-64.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280135 138bc75d-0d04-0410-961f-82ee72b054a4
      aeebb140
    • dmalcolm's avatar
      testsuite: add dg-enable-nn-line-numbers · a031f642
      dmalcolm authored
      This patch adds support for obscuring the line numbers printed in the
      left-hand margin when printing the source code, converting them to "NN",
      e.g from:
      
        7111 |   if (!(flags & 0x0001)) {
             |      ^
             |      |
             |      (1) following 'true' branch...
        7112 |
      
      to:
      
         NN  |   if (!(flags & 0x0001)) {
             |      ^
             |      |
             |      (1) following 'true' branch...
         NN  |
      
      This is useful in followup patches e.g. when testing how interprocedural
      paths are printed using multiline.exp, to avoid depending on precise line
      numbers.
      
      gcc/testsuite/ChangeLog:
      	* lib/gcc-dg.exp (cleanup-after-saved-dg-test): Reset global
      	nn_line_numbers_enabled.
      	* lib/multiline.exp (nn_line_numbers_enabled): New global.
      	(dg-enable-nn-line-numbers): New proc.
      	(maybe-handle-nn-line-numbers): New proc.
      	* lib/prune.exp (prune_gcc_output): Call maybe-handle-nn-line-numbers.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280134 138bc75d-0d04-0410-961f-82ee72b054a4
      a031f642
    • vmakarov's avatar
      2020-01-10 Vladimir Makarov <vmakarov@redhat.com> · b68fdac4
      vmakarov authored
      	PR inline-asm/93207
      	* lra-constraints.c (match_reload): Permit input operands have the
      	same mode as output while other input operands have a different
      	mode.
      
      2020-01-10  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR inline-asm/93207
      	* gcc.target/i386/pr93207.c: New test.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280133 138bc75d-0d04-0410-961f-82ee72b054a4
      b68fdac4
    • wilco's avatar
      PR90838: Support ctz idioms · c5e47793
      wilco authored
      Support common idioms for count trailing zeroes using an array lookup.
      The canonical form is array[((x & -x) * C) >> SHIFT] where C is a magic
      constant which when multiplied by a power of 2 creates a unique value
      in the top 5 or 6 bits.  This is then indexed into a table which maps it
      to the number of trailing zeroes.  When the table is valid, we emit a
      sequence using the target defined value for ctz (0):
      
      int ctz1 (unsigned x)
      {
        static const char table[32] =
          {
            0, 1, 28, 2, 29, 14, 24, 3, 30, 22, 20, 15, 25, 17, 4, 8,
            31, 27, 13, 23, 21, 19, 16, 7, 26, 12, 18, 6, 11, 5, 10, 9
          };
      
        return table[((unsigned)((x & -x) * 0x077CB531U)) >> 27];
      }
      
      Is optimized to:
      
      	rbit	w0, w0
      	clz	w0, w0
      	and	w0, w0, 31
      	ret
      
          gcc/
      	PR tree-optimization/90838
      	* tree-ssa-forwprop.c (check_ctz_array): Add new function.
      	(check_ctz_string): Likewise.
      	(optimize_count_trailing_zeroes): Likewise.
      	(simplify_count_trailing_zeroes): Likewise.
      	(pass_forwprop::execute): Try ctz simplification.
      	* match.pd: Add matching for ctz idioms.
      
          testsuite/
      	PR tree-optimization/90838
      	* testsuite/gcc.target/aarch64/pr90838.c: New test.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280132 138bc75d-0d04-0410-961f-82ee72b054a4
      c5e47793
    • stammark's avatar
      gcc/ChangeLog: · 9cc04384
      stammark authored
      2020-01-10  Stam Markianos-Wright  <stam.markianos-wright@arm.com>
      
      	* config/aarch64/aarch64.c (aarch64_invalid_conversion): New function
      	for target hook.
      	(aarch64_invalid_unary_op): New function for target hook.
      	(aarch64_invalid_binary_op): New function for target hook.
      
      gcc/testsuite/ChangeLog:
      
      2020-01-10  Stam Markianos-Wright  <stam.markianos-wright@arm.com>
      
      	* g++.target/aarch64/bfloat_cpp_typecheck.C: New test.
      	* gcc.target/aarch64/bfloat16_scalar_typecheck.c: New test.
      	* gcc.target/aarch64/bfloat16_vector_typecheck_1.c: New test.
      	* gcc.target/aarch64/bfloat16_vector_typecheck_2.c: New test.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280130 138bc75d-0d04-0410-961f-82ee72b054a4
      9cc04384
    • stammark's avatar
      2020-01-10 Stam Markianos-Wright <stam.markianos-wright@arm.com> · d4021836
      stammark authored
      	* config.gcc: Add arm_bf16.h.
      	* config/aarch64/aarch64-builtins.c
      	(aarch64_simd_builtin_std_type): Add BFmode.
      	(aarch64_init_simd_builtin_types): Define element types for vector
      	types.
      	(aarch64_init_bf16_types): New function.
      	(aarch64_general_init_builtins): Add arm_init_bf16_types function call.
      	* config/aarch64/aarch64-modes.def: Add BFmode and V4BF, V8BF vector
      	modes.
      	* config/aarch64/aarch64-simd-builtin-types.def: Add BF SIMD types.
      	* config/aarch64/aarch64-simd.md: Add BF vector types to NEON move
      	patterns.
      	* config/aarch64/aarch64.h (AARCH64_VALID_SIMD_DREG_MODE): Add V4BF.
      	(AARCH64_VALID_SIMD_QREG_MODE): Add V8BF.
      	* config/aarch64/aarch64.c
      	(aarch64_classify_vector_mode): Add support for BF types.
      	(aarch64_gimplify_va_arg_expr): Add support for BF types.
      	(aarch64_vq_mode): Add support for BF types.
      	(aarch64_simd_container_mode): Add support for BF types.
      	(aarch64_mangle_type): Add support for BF scalar type.
      	* config/aarch64/aarch64.md: Add BFmode to movhf pattern.
      	* config/aarch64/arm_bf16.h: New file.
      	* config/aarch64/arm_neon.h: Add arm_bf16.h and Bfloat vector types.
      	* config/aarch64/iterators.md: Add BF types to mode attributes.
      	(HFBF, GPF_TF_F16_MOV, VDMOV, VQMOV, VQMOV_NO2Em VALL_F16MOV): New.
      
      2020-01-10  Stam Markianos-Wright  <stam.markianos-wright@arm.com>
      
      	* g++.dg/abi/mangle-neon-aarch64.C: Add Bfloat SIMD types to test.
      	* g++.dg/ext/arm-bf16/bf16-mangle-aarch64-1.C: New test.
      	* gcc.target/aarch64/bfloat16_scalar_1.c: New test.
      	* gcc.target/aarch64/bfloat16_scalar_2.c: New test.
      	* gcc.target/aarch64/bfloat16_scalar_3.c: New test.
      	* gcc.target/aarch64/bfloat16_scalar_4.c: New test.
      	* gcc.target/aarch64/bfloat16_simd_1.c: New test.
      	* gcc.target/aarch64/bfloat16_simd_2.c: New test.
      	* gcc.target/aarch64/bfloat16_simd_3.c: New test.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280129 138bc75d-0d04-0410-961f-82ee72b054a4
      d4021836
    • jason's avatar
      Shorten right-shift again in C++. · dbc796b5
      jason authored
      Back in SVN r131862 richi removed this code to fix PR 34235, but didn't
      remove the parallel code from the C front-end because the bug had previously
      been fixed in r44080.  This patch copies the code from C again.
      
      	* typeck.c (cp_build_binary_op): Restore short_shift code.
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280128 138bc75d-0d04-0410-961f-82ee72b054a4
      dbc796b5
    • jason's avatar
      PR c++/93143 - incorrect tree sharing with constexpr. · dfbaa2fd
      jason authored
      We don't unshare CONSTRUCTORs as often during constexpr evaluation, so we
      need to unshare them here.
      
      	* constexpr.c (cxx_eval_outermost_constant_expr): Don't assume
      	CONSTRUCTORs are already unshared.
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280127 138bc75d-0d04-0410-961f-82ee72b054a4
      dfbaa2fd
    • jason's avatar
      PR c++/93173 - incorrect tree sharing. · 82daaf8e
      jason authored
      My patch for 93033 wasn't sufficient to handle all the possible sharing
      introduced by split_nonconstant_init, and it occurred to me that it would
      make sense to use the same unsharing technique as unshare_body, namely
      copy_if_shared.
      
      	PR c++/93033
      gcc/
      	* gimplify.c (copy_if_shared): No longer static.
      	* gimplify.h: Declare it.
      gcc/cp/
      	* cp-gimplify.c (cp_gimplify_init_expr, cp_gimplify_expr): Use
      	copy_if_shared after cp_genericize_tree.
      	* typeck2.c (split_nonconstant_init): Don't unshare here.
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280126 138bc75d-0d04-0410-961f-82ee72b054a4
      82daaf8e
    • rsandifo's avatar
      [AArch64] Make -msve-vector-bits=128 generate VL-specific code · c0451c50
      rsandifo authored
      related_vector_mode and compatible_vector_types_p make it possible
      to generate 128-bit SVE code while still maintaining the distinction
      between SVE vectors and Advanced SIMD vectors.  We can therefore generate
      VL-specific code for -msve-vector-bits=128 on little-endian targets.
      In theory we could do the same for big-endian targets, but it could
      have quite a high overhead; see the comment in the patch for details.
      
      2020-01-10  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* doc/invoke.texi (-msve-vector-bits=): Document that
      	-msve-vector-bits=128 now generates VL-specific code for
      	little-endian targets.
      	* config/aarch64/aarch64-sve-builtins.cc (register_builtin_types): Use
      	build_vector_type_for_mode to construct the data vector types.
      	* config/aarch64/aarch64.c (aarch64_convert_sve_vector_bits): Generate
      	VL-specific code for -msve-vector-bits=128 on little-endian targets.
      	(aarch64_simd_container_mode): Always prefer Advanced SIMD modes
      	for 128-bit vectors.
      
      gcc/testsuite/
      	* gcc.target/aarch64/sve/struct_vect_1.c (N): Protect with #ifndef.
      	* gcc.target/aarch64/sve/pcs/return_1_128.c: New test.
      	* gcc.target/aarch64/sve/pcs/return_4_128.c: Likewise.
      	* gcc.target/aarch64/sve/pcs/return_5_128.c: Likewise.
      	* gcc.target/aarch64/sve/pcs/return_6_128.c: Likewise.
      	* gcc.target/aarch64/sve/pcs/stack_clash_1_128.c: Likewise.
      	* gcc.target/aarch64/sve/pcs/stack_clash_2_128.c: Likewise.
      	* gcc.target/aarch64/sve/single_5.c: Likewise.
      	* gcc.target/aarch64/sve/struct_vect_25.c: Likewise.
      	* gcc.target/aarch64/sve/struct_vect_26.c: Likewise.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280125 138bc75d-0d04-0410-961f-82ee72b054a4
      c0451c50
    • msebor's avatar
      PR c/93132 - bogus 'attribute((access))' warning when size-index is specified · 3124236a
      msebor authored
      gcc/c-family/ChangeLog:
      
      	PR c/93132
      	* c-attribs.c (append_access_attrs): Validate against the translated
      	access string rather than the human-readable representation.
      
      gcc/testsuite/ChangeLog:
      
      	PR c/93132
      	* gcc.dg/attr-access-read-only-2.c: New test.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280124 138bc75d-0d04-0410-961f-82ee72b054a4
      3124236a
    • rsandifo's avatar
      [AArch64] Fix reversed vcond_mask invocation in aarch64_evpc_sel · 38017f43
      rsandifo authored
      aarch64_evpc_sel (new in GCC 10) got the true and false vectors
      the wrong way round, leading to execution failures with fixed-length
      128-bit SVE.
      
      Now that the ACLE types are in trunk, it's much easier to match
      the exact asm sequence for a permute.
      
      2020-01-10  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* config/aarch64/aarch64.c (aarch64_evpc_sel): Fix gen_vcond_mask
      	invocation.
      
      gcc/testsuite/
      	* gcc.target/aarch64/sve/sel_1.c: Use SVE types for the arguments and
      	return values.  Use check-function-bodies instead of scan-assembler.
      	* gcc.target/aarch64/sve/sel_2.c: Likewise
      	* gcc.target/aarch64/sve/sel_3.c: Likewise.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280121 138bc75d-0d04-0410-961f-82ee72b054a4
      38017f43
    • ian's avatar
      gotest: don't use local · a002fc2a
      ian authored
          
          It's not part of the POSIX shell standard.
          
          Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/214300
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280118 138bc75d-0d04-0410-961f-82ee72b054a4
      a002fc2a
    • redi's avatar
      libstdc++: Fix testcase for C++98 compatibility · eded2ad5
      redi authored
      	* testsuite/25_algorithms/equal/deque_iterators/1.cc: Don't use C++11
      	initialization syntax.
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280117 138bc75d-0d04-0410-961f-82ee72b054a4
      eded2ad5
    • redi's avatar
      libstdc++: Make istreambuf_iterator base class consistent (PR92285) · 8395f6c4
      redi authored
      Since LWG 445 was implemented for GCC 4.7, the std::iterator base class
      of std::istreambuf_iterator changes type depending on the -std mode
      used. This creates an ABI incompatibility between different -std modes.
      
      This change ensures the base class always has the same type. This makes
      layout for C++98 compatible with the current -std=gnu++14 default, but
      no longer compatible with C++98 code from previous releases. In practice
      this is unlikely to cause real problems, because it only affects the
      layout of types with two std::iterator base classes, one of which comes
      from std::istreambuf_iterator. Such types are expected to be vanishingly
      rare.
      
      	PR libstdc++/92285
      	* include/bits/streambuf_iterator.h (istreambuf_iterator): Make type
      	of base class independent of __cplusplus value.
      	[__cplusplus < 201103L] (istreambuf_iterator::reference): Override the
      	type defined in the base class
      	* testsuite/24_iterators/istreambuf_iterator/92285.cc: New test.
      	* testsuite/24_iterators/istreambuf_iterator/requirements/
      	base_classes.cc: Adjust expected base class for C++98.
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280116 138bc75d-0d04-0410-961f-82ee72b054a4
      8395f6c4
    • burnus's avatar
      OpenACC – support "if" + "if_present" clauses with "host_data" · 0551e5b1
      burnus authored
      2020-01-10  Gergö Barany  <gergo@codesourcery.com>
      	    Thomas Schwinge <thomas@codesourcery.com>
      	    Julian Brown  <julian@codesourcery.com>
      	    Tobias Burnus  <tobias@codesourcery.com>
      
              gcc/c/
              * c-parser.c (OACC_HOST_DATA_CLAUSE_MASK): Add PRAGMA_OACC_CLAUSE_IF
              and PRAGMA_OACC_CLAUSE_IF_PRESENT.
      
              gcc/cp/
              * parser.c (OACC_HOST_DATA_CLAUSE_MASK): Add PRAGMA_OACC_CLAUSE_IF
              and PRAGMA_OACC_CLAUSE_IF_PRESENT.
      
              gcc/fortran/
              * openmp.c (OACC_HOST_DATA_CLAUSES): Add PRAGMA_OACC_CLAUSE_IF
              and PRAGMA_OACC_CLAUSE_IF_PRESENT.
      
      	gcc/
      	* omp-low.c (lower_omp_target): Use GOMP_MAP_USE_DEVICE_PTR_IF_PRESENT
      	if PRAGMA_OACC_CLAUSE_IF_PRESENT exist.
      
      	gcc/testsuite/
      	* c-c++-common/goacc/host_data-1.c: Added tests of if and if_present
      	clauses on host_data.
      	* gfortran.dg/goacc/host_data-tree.f95: Likewise.
      
      	include/
      	* gomp-constants.h (enum gomp_map_kind): New enumeration constant
      	GOMP_MAP_USE_DEVICE_PTR_IF_PRESENT.
              
      	libgomp/
      	* oacc-parallel.c (GOACC_data_start): Handle
      	GOMP_MAP_USE_DEVICE_PTR_IF_PRESENT.
      	* target.c (gomp_map_vars_async): Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/host_data-7.c: New.
      	* testsuite/libgomp.oacc-fortran/host_data-5.F90: New.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280115 138bc75d-0d04-0410-961f-82ee72b054a4
      0551e5b1
    • rsandifo's avatar
      [AArch64] Tighten mode checks in aarch64_builtin_vectorized_function · 4c8c592c
      rsandifo authored
      aarch64_builtin_vectorized_function checked vectors based on the
      number of elements and the element mode.  This doesn't interact
      well with fixed-length 128-bit SVE, where SVE modes can have those
      same properties.  (And we can't just use the built-ins for SVE because
      the types use a different ABI.  SVE handles this kind of thing using
      optabs instead.)
      
      2020-01-10  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* config/aarch64/aarch64-builtins.c
      	(aarch64_builtin_vectorized_function): Check for specific vector modes,
      	rather than checking the number of elements and the element mode.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280114 138bc75d-0d04-0410-961f-82ee72b054a4
      4c8c592c
    • rsandifo's avatar
      Use get_related_vectype_for_scalar_type for reduction indices · e046a3db
      rsandifo authored
      The related_vector_mode series missed this case in
      vect_create_epilog_for_reduction, where we want to create the
      unsigned integer equivalent of another vector.  Without it we
      could mix SVE and Advanced SIMD vectors in the same operation.
      
      This showed up on existing tests when testing with fixed-length
      -msve-vector-bits=128.
      
      2020-01-10  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* tree-vect-loop.c (vect_create_epilog_for_reduction): Use
      	get_related_vectype_for_scalar_type rather than build_vector_type
      	to create the index type for a conditional reduction.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280112 138bc75d-0d04-0410-961f-82ee72b054a4
      e046a3db
    • rsandifo's avatar
      Fix gather/scatter check when updating a vector epilogue loop · 2e315cfe
      rsandifo authored
      update_epilogue_loop_vinfo applies SSA renmaing to the DR_REF of a
      gather or scatter, so that vect_check_gather_scatter continues to work.
      However, we sometimes also rely on vect_check_gather_scatter when
      using gathers and scatters to implement strided accesses.
      
      This showed up on existing tests when testing with fixed-length
      -msve-vector-bits=128.
      
      2020-01-10  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* tree-vect-loop.c (update_epilogue_loop_vinfo): Update DR_REF
      	for any type of gather or scatter, including strided accesses.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280111 138bc75d-0d04-0410-961f-82ee72b054a4
      2e315cfe
    • ian's avatar
      compiler: permit duplicate methods from embedded interfaces · 95a3175c
      ian authored
          
          This is a language change for Go 1.14.
          
          Updates golang/go#6977
          
          Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/214240
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280109 138bc75d-0d04-0410-961f-82ee72b054a4
      95a3175c
    • avieira's avatar
      [vect] Add missing comment · 87d0b3d7
      avieira authored
      gcc/ChangeLog:
      2020-01-10  Andre Vieira  <andre.simoesdiasvieira@arm.com>
      
      	* tree-vectorizer.h (get_dr_vinfo_offset): Add missing function
      	 comment.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280108 138bc75d-0d04-0410-961f-82ee72b054a4
      87d0b3d7
    • avieira's avatar
      [vect] Keep track of DR_OFFSET advance in dr_vec_info rather than data_reference · 1faff8a6
      avieira authored
      gcc/ChangeLog:
      2020-01-10  Andre Vieira  <andre.simoesdiasvieira@arm.com>
      
      	* tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Use
      	get_dr_vinfo_offset
      	* tree-vect-loop.c (update_epilogue_loop_vinfo):  Remove orig_drs_init
      	parameter and its use to reset DR_OFFSET's.
      	(vect_transform_loop): Remove orig_drs_init argument.
      	* tree-vect-loop-manip.c (vect_update_init_of_dr): Update the offset
      	member of dr_vec_info rather than the offset of the associated
      	data_reference's innermost_loop_behavior.
      	(vect_update_init_of_dr): Pass dr_vec_info instead of data_reference.
      	(vect_do_peeling): Remove orig_drs_init parameter and its construction.
      	* tree-vect-stmts.c (check_scan_store): Replace use of DR_OFFSET with
      	get_dr_vinfo_offset.
      	(vectorizable_store): Likewise.
      	(vectorizable_load): Likewise.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280107 138bc75d-0d04-0410-961f-82ee72b054a4
      1faff8a6
    • rguenth's avatar
      2020-01-10 Richard Biener <rguenther@suse.de> · 69b26e73
      rguenth authored
      	* gimple-ssa-store-merging
      	(pass_store_merging::terminate_all_aliasing_chains): Cache alias info.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280106 138bc75d-0d04-0410-961f-82ee72b054a4
      69b26e73
    • jamborm's avatar
      Fix ipa-clone-3.c on some targets · 756b2c5e
      jamborm authored
      2020-01-10  Martin Jambor  <mjambor@suse.cz>
      
      	* gcc.dg/ipa/ipa-clone-3.c: Replace struct initializer with
      	piecemeal initialization.
      
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280105 138bc75d-0d04-0410-961f-82ee72b054a4
      756b2c5e
    • rsandifo's avatar
      [AArch64] Require aarch64_sve256_hw for a 256-bit SVE test · a409e0d0
      rsandifo authored
      One of the SVE run tests was specific to 256-bit SVE but tried to
      run for all SVE lengths.
      
      2020-01-10  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/testsuite/
      	* gcc.target/aarch64/sve/index_1_run.c: Require aarch64_sve256_hw
      	rather than aarch64_sve_hw.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280104 138bc75d-0d04-0410-961f-82ee72b054a4
      a409e0d0
    • marxin's avatar
      Fix wrong parenthesis in inliner. · 2b383949
      marxin authored
      2020-01-10  Martin Liska  <mliska@suse.cz>
      
      	PR ipa/93217
      	* ipa-inline-analysis.c (offline_size): Make proper parenthesis
      	encapsulation that was there before r280040.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280103 138bc75d-0d04-0410-961f-82ee72b054a4
      2b383949
    • rguenth's avatar
      2020-01-10 Richard Biener <rguenther@suse.de> · acdcef18
      rguenth authored
      	PR middle-end/93199
      	* tree-eh.c (sink_clobbers): Move clobbers to out-of-IL
      	sequences to avoid walking them again for secondary opportunities.
      	(pass_lower_eh_dispatch::execute): Instead actually insert
      	them here.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280102 138bc75d-0d04-0410-961f-82ee72b054a4
      acdcef18
    • rguenth's avatar
      2020-01-10 Richard Biener <rguenther@suse.de> · aa46b577
      rguenth authored
      	PR middle-end/93199
      	* tree-eh.c (redirect_eh_edge_1): Avoid some work if possible.
      	(cleanup_all_empty_eh): Walk landing pads in reverse order to
      	avoid quadraticness.
      
      
      git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@280101 138bc75d-0d04-0410-961f-82ee72b054a4
      aa46b577