1. 01 Aug, 2019 4 commits
  2. 31 Jul, 2019 26 commits
    • decl2.c (delete_sanity): Improve diagnostic locations, use cp_expr_loc_or_loc in four places. · 6b58e2b5
      /cp
      2019-07-31  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* decl2.c (delete_sanity): Improve diagnostic locations, use
      	cp_expr_loc_or_loc in four places.
      
      /testsuite
      2019-07-31  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* g++.dg/diagnostic/delete1.C: New.
      
      From-SVN: r273952
      Paolo Carlini committed
    • RISC-V: Raise error on unexpected ISA string at end. · 285cf766
      	2019-07-31  Maxim Blinov  <maxim.blinov@embecosm.com>
      	gcc/
      	* common/config/riscv/riscv-common.c: Check -march string ends
      	with null.
      	gcc/testsuite/
      	* gcc.target/riscv/attribute-10.c: New test.
      
      From-SVN: r273951
      Maxim Blinov committed
    • Qualify call to prevent ADL · 3090082c
      	* include/std/memory (make_obj_using_allocator): Qualify call to
      	uses_allocator_construction_args.
      
      From-SVN: r273945
      Jonathan Wakely committed
    • PR c++/90538 - multiple expansions of capture packs · 10acaf4d
      Previously, with init-capture the type of the closure field was a
      DECLTYPE_TYPE of the initializer.  But since each time we tsubst a lambda we
      get a different lambda, that meant that if the initializer is a lambda, we'd
      end up with different closure types in the field and initializer after
      substitution (PR 87322).  We dealt with this by remembering the lambda
      instantiation within each pack expansion element, using
      local_specialization_stack to separate the elements.  But that broke this
      testcase, because it lost lambda capture proxies that also use
      local_specializations.
      
      So, this patch removes the local_specializations changes from that patch and
      fixes 87322 differently, by giving init-capture fields 'auto' type and doing
      deduction later.  There's a bit of a kludge to get the right number of
      fields by pretending that 'auto...' uses the parameter packs from the
      initializer, but it does the trick.
      
      	* cp-tree.h (DECLTYPE_FOR_INIT_CAPTURE): Remove.
      	* lambda.c (add_capture): Copy parameter packs from init.
      	(lambda_capture_field_type): Always use auto for init-capture.
      	* pt.c (uses_parameter_packs): Return tree.
      	(tsubst) [DECLTYPE_TYPE]: Remove init-capture handling.
      	(gen_elem_of_pack_expansion_instantiation): Don't push
      	local_specialization_stack.
      	(prepend_one_capture): New.
      	(tsubst_lambda_expr): Use it.  Don't touch local_specializations.
      	(do_auto_deduction): Avoid redundant error.
      
      From-SVN: r273944
      Jason Merrill committed
    • Fix copy_node of TEMPLATE_INFO. · fc79fc49
      build_clone uses copy_node to duplicate the TEMPLATE_INFO for a clone, but
      this clears TREE_CHAIN, which was TI_ARGS in a TEMPLATE_INFO.
      
      	* cp-tree.h (struct tree_template_info): Use tree_base instead of
      	tree_common.  Add tmpl and args fields.
      	(TI_TEMPLATE, TI_ARGS): Adjust.
      
      From-SVN: r273943
      Jason Merrill committed
    • ipa-devirt: make qsort helpers static · b6de3028
      	* ipa-devirt.c (type_warning_cmp): Make static.
      	(decl_warning_cmp): Ditto.
      
      From-SVN: r273942
      Alexander Monakov committed
    • re PR target/91050 (-mdejagnu-cpu=<cpu> does not affect the -m<cpu> assembler option) · 98ae96d2
      	PR target/91050
      	* config/rs6000/rs6000.opt (mdejagnu-cpu=): Delete option.
      	* config/rs6000/rs6000.c (rs6000_option_override_internal): Remove
      	use of deleted rs6000_dejagnu_cpu_index variable.
      	* config/rs6000/rs6000.h (DRIVER_SELF_SPECS): Define.
      	(SUBTARGET_DRIVER_SELF_SPECS): Likewise.
      	* config/darwin.h (DRIVER_SELF_SPECS): Rename from this ...
      	(SUBTARGET_DRIVER_SELF_SPECS): ...to this.
      	* config/i386/i386.h (DRIVER_SELF_SPECS): Define.
      	(SUBTARGET_DRIVER_SELF_SPECS): Likewise.
      
      From-SVN: r273941
      Peter Bergner committed
    • Implement "P0631R4 Math Constants" for C++20 · 960b9ae0
      The values of the constants are taken from Glibc where the equivalent
      constant exists, or by rounding the actual constant to the same number
      of digits as the Glibc constants have.
      
      	P0631R4 Math Constants
      	* include/Makefile.am: Add new header.
      	* include/Makefile.in: Regenerate.
      	* include/precompiled/stdc++.h: Include new header.
      	* include/std/numbers: New header.
      	* include/std/version (__cpp_lib_math_constants): Define.
      	* testsuite/26_numerics/numbers/1.cc: New test.
      	* testsuite/26_numerics/numbers/2.cc: New test.
      	* testsuite/26_numerics/numbers/3.cc: New test.
      	* testsuite/26_numerics/numbers/nonfloat_neg.cc: New test.
      
      From-SVN: r273940
      Jonathan Wakely committed
    • Add Doxygen comments to <bit> header · 27e6c1f4
      	* include/std/bit: Add Doxygen comments.
      
      From-SVN: r273938
      Jonathan Wakely committed
    • PR libstdc++/91308 fix constraints on unique_ptr assignment · 949fdadb
      	PR libstdc++/91308
      	* include/bits/unique_ptr.h (unique_ptr::__safe_conversion_up): Remove
      	constraints on deleter that should only apply to the constructor.
      	(unique_ptr<T[], D>::__safe_conversion_up): Likewise.
      	(unique_ptr<T[], D>::unique_ptr(unique_ptr<U, D>&&)): Restore
      	constraints on deleter here.
      	* testsuite/20_util/unique_ptr/assign/91308.cc: New test.
      
      From-SVN: r273937
      Jonathan Wakely committed
    • re PR tree-optimization/91280 (ICE in get_constraint_for_component_ref, at… · 208149b7
      re PR tree-optimization/91280 (ICE in get_constraint_for_component_ref, at tree-ssa-structalias.c:3259 since r260354)
      
      2019-07-31  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/91280
      	* tree-ssa-structalias.c (get_constraint_for_component_ref):
      	Decompose MEM_REF manually for offset handling.
      
      	* g++.dg/torture/pr91280.C: New testcase.
      
      From-SVN: r273936
      Richard Biener committed
    • re PR c/91192 (non-deterministic ICE on invalid) · a28351e7
      	PR c/91192
      	* c-parser.c (c_parser_sizeof_expression): Call set_c_expr_source_range
      	even if finish is UNKNOWN_LOCATION, just use start as finish in that
      	case.
      
      From-SVN: r273935
      Jakub Jelinek committed
    • re PR tree-optimization/91293 (Wrong code with -O3 -mavx2) · 2153fa7b
      2019-07-31  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/91293
      	* tree-vect-slp.c (vect_build_slp_tree_2): Do not swap operands
      	of reduction stmts.
      
      	* gcc.dg/vect/pr91293-1.c: New testcase.
      	* gcc.dg/vect/pr91293-2.c: Likewise.
      	* gcc.dg/vect/pr91293-3.c: Likewise.
      
      From-SVN: r273934
      Richard Biener committed
    • config.gcc (hppa*-*-netbsd*): New target. · 428642b1
      gcc/ChangeLog:
      	* config.gcc (hppa*-*-netbsd*): New target.
      	* config/pa/pa-netbsd.h: New file.
      	* config/pa/pa32-netbsd.h: New file.
      
      libgcc/ChangeLog:
      	* config.host (hppa*-*-netbsd*): New case.
      	* config/pa/t-netbsd: New file.
      
      
      Co-Authored-By: Matthew Green <mrg@eterna.com.au>
      Co-Authored-By: Maya Rashish <coypu@sdf.org>
      Co-Authored-By: Nick Hudson <nick@nthcliff.demon.co.uk>
      
      From-SVN: r273933
      Matt Thomas committed
    • re PR tree-optimization/91201 (SIMD not generated for horizontal sum of bytes in array) · 538e4cdc
      	PR tree-optimization/91201
      	* config/i386/mmx.md (reduc_plus_scal_v8qi): New expander.
      
      	* gcc.target/i386/sse2-pr91201-2.c: New test.
      
      From-SVN: r273932
      Jakub Jelinek committed
    • Remove amdgcn expcnt waits. · 930c5599
      2019-07-31  Andrew Stubbs  <ams@codesourcery.com>
      
      	gcc/
      	* config/gcn/gcn-valu.md
      	(scatter<mode>_insn_1offset<exec_scatter>): Remove s_waitcnt.
      	(scatter<mode>_insn_1offset_ds<exec_scatter>): Likewise.
      	(scatter<mode>_insn_2offsets<exec_scatter>): Likewise.
      	* config/gcn/gcn.c (gcn_md_reorg): Add delayeduse and reads to
      	struct ilist. Add nops for delayeduse insns.
      	* config/gcn/gcn.md (delayeduse): New attribute.
      	(*movbi): Remove s_waitcnt from stores.
      	(*mov<mode>_insn): Likewise.
      	(*movti_insn): Likewise. Add delayeduse attribute.
      	(sync_compare_and_swap<mode>_insn): Add delayeduse attribute.
      	(atomic_store<mode>): Remove or adjust s_waitcnt.
      
      From-SVN: r273931
      Andrew Stubbs committed
    • vr-values.h (vr_values::swap_vr_value): New. · f86c2e71
      2019-07-31  Richard Biener  <rguenther@suse.de>
      
      	* vr-values.h (vr_values::swap_vr_value): New.
      	(vr_values::free_value_range): likewise.
      	* vr-values.c (vr_values::swap_vr_value): Implement.
      	* gimple-ssa-evrp-analyze.h (evrp_range_analyzer::pop_value_range):
      	Do not return a range or take a var.
      	(evrp_range_analyzer::stack): Change back to recording a non-const
      	value_range *.
      	* gimple-ssa-evrp-analyze.c
      	(evrp_range_analyzer::record_ranges_from_stmt): Free unused
      	value-range.
      	(evrp_range_analyzer::pop_to_marker): Adjust.
      	(evrp_range_analyzer::push_value_range): Use new swap_vr_value.
      	(evrp_range_analyzer::pop_value_range): Likewise.  Free the
      	no longer needed value-range.
      
      From-SVN: r273930
      Richard Biener committed
    • Mark necessary 2nd and later args for delete op. · f39b0639
      2019-07-31  Martin Liska  <mliska@suse.cz>
      
      	* tree-ssa-dce.c (propagate_necessity): Delete operator can
      	have size and (or) alignment as 2nd and later arguments.
      	Mark all of them as necessary.
      
      From-SVN: r273929
      Martin Liska committed
    • re PR tree-optimization/91178 (Infinite recursion in split_constant_offset in slp after r260289) · 0fbdb0c0
      2019-07-31  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/91178
      	* tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
      	Use tail-recursion.
      
      	* gcc.dg/torture/pr91178-2.c: New testcase.
      
      From-SVN: r273928
      Richard Biener committed
    • re PR tree-optimization/91201 (SIMD not generated for horizontal sum of bytes in array) · 1104467f
      	PR tree-optimization/91201
      	* config/i386/sse.md (reduc_plus_scal_v16qi): New expander.
      	(REDUC_PLUS_MODE): Add V32QImode for TARGET_AVX and V64QImode for
      	TARGET_AVX512F.
      	(reduc_plus_scal_<mode>): Improve formatting by introducing
      	a temporary.
      
      	* gcc.target/i386/sse2-pr91201.c: New test.
      	* gcc.target/i386/avx2-pr91201.c: New test.
      	* gcc.target/i386/avx512bw-pr91201.c: New test.
      
      From-SVN: r273927
      Jakub Jelinek committed
    • [GCC, AArch64] Enable Transactional Memory Extension · 89626179
      This patch enables the new Transactional Memory Extension announced recently
      as part of Arm's new architecture technologies.
      We introduce a new optional extension "tme" to enable this. The following
      instructions are part of the extension:
         * tstart <Xt>
         * ttest <Xt>
         * tcommit
         * tcancel #<imm>
      We have also added ACLE intrinsics for the instructions.
      
      *** gcc/ChangeLog ***
      
      2019-07-31  Sudakshina Das  <sudi.das@arm.com>
      
      	* config/aarch64/aarch64-builtins.c (enum aarch64_builtins): Add
      	AARCH64_TME_BUILTIN_TSTART, AARCH64_TME_BUILTIN_TCOMMIT,
      	AARCH64_TME_BUILTIN_TTEST and AARCH64_TME_BUILTIN_TCANCEL.
      	(aarch64_init_tme_builtins): New.
      	(aarch64_init_builtins): Call aarch64_init_tme_builtins.
      	(aarch64_expand_builtin_tme): New.
      	(aarch64_expand_builtin): Handle TME builtins.
      	* config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
      	__ARM_FEATURE_TME when enabled.
      	* config/aarch64/aarch64-option-extensions.def: Add "tme".
      	* config/aarch64/aarch64.h (AARCH64_FL_TME, AARCH64_ISA_TME): New.
      	(TARGET_TME): New.
      	* config/aarch64/aarch64.md (define_c_enum "unspec"): Add UNSPEC_TTEST.
      	(define_c_enum "unspecv"): Add UNSPECV_TSTART, UNSPECV_TCOMMIT and
      	UNSPECV_TCANCEL.
      	(tstart, ttest, tcommit, tcancel): New instructions.
      	* config/aarch64/arm_acle.h (__tstart, __tcommit): New.
      	(__tcancel, __ttest): New.
      	(_TMFAILURE_REASON, _TMFAILURE_RTRY, _TMFAILURE_CNCL): New macro.
      	(_TMFAILURE_MEM, _TMFAILURE_IMP, _TMFAILURE_ERR): Likewise.
      	(_TMFAILURE_SIZE, _TMFAILURE_NEST, _TMFAILURE_DBG): Likewise.
      	(_TMFAILURE_INT, _TMFAILURE_TRIVIAL): Likewise.
      	* config/arm/types.md: Add new tme type attr.
      	* doc/invoke.texi: Document "tme".
      
      *** gcc/testsuite/ChangeLog ***
      
      2019-07-31  Sudakshina Das  <sudi.das@arm.com>
      
      	* gcc.target/aarch64/acle/tme.c: New test.
      	* gcc.target/aarch64/pragma_cpp_predefs_2.c: New test.
      
      From-SVN: r273926
      Sudakshina Das committed
    • [Arm][CMSE]Add warn_unused_return attribute to cmse functions · f0efd925
      At present it is possible to call the CMSE functions for checking
      addresses (such as cmse_check_address_range) and  forget to check/use
      the return value. This patch makes the interfaces more robust against
      programmer error by marking these functions with the warn_unused_result
      attribute. With this set, any use of these functions that does not use
      the result will produce a warning.
      
      This produces a warning on default warn levels when the result of the
      cmse functions is not used.
      
      For the following function:
      void foo()
      {
           int *data;
           cmse_check_address_range((int*)data, 0, 0);
      }
      The following warning is emitted:
      warning: ignoring return value of 'cmse_check_address_range' declared
      with attribute 'warn_unused_result' [-Wunused-result]
           6 |  cmse_check_address_range((int*)data, 0, 0);
              |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      
      gcc/ChangeLog:
      
      2019-07-31  Joel Hutton  <Joel.Hutton@arm.com>
      
               * config/arm/arm_cmse.h (cmse_nonsecure_caller): Add
      warn_unused_result attribute.
               (cmse_check_address_range): Add warn_unused_result attribute.
      
      libgcc/ChangeLog:
      
      2019-07-31  Joel Hutton  <Joel.Hutton@arm.com>
      
               * config/arm/cmse.c (cmse_check_address_range): Add
      warn_unused_result attribute.
      
      2019-07-31  Joel Hutton  <Joel.Hutton@arm.com>
      
               * gcc.target/arm/cmse/cmse-17.c: New test.
      
      From-SVN: r273924
      Joel Hutton committed
    • re PR tree-optimization/91257 (Compile-time and memory-hog hog) · ce52e0ff
      2019-07-31  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/91257
      	* tree-vrp.c (union_ranges): Unify equality and less tests
      	by using compare_values.  Re-order cheap tests first.
      
      From-SVN: r273923
      Richard Biener committed
    • re PR middle-end/91301 (ICE in omp_add_variable on random access iterator… · c3ac76aa
      re PR middle-end/91301 (ICE in omp_add_variable on random access iterator distribute parallel for private (iterator))
      
      	PR middle-end/91301
      	* gimplify.c (gimplify_omp_for): If for class iterator on
      	distribute parallel for there is no data sharing clause
      	on inner_for_stmt, look for private clause on combined
      	parallel too and if found, move it to inner_for_stmt.
      
      	* testsuite/libgomp.c++/for-27.C: New test.
      
      From-SVN: r273922
      Jakub Jelinek committed
    • Make lra use per-alternative earlyclobber info · a25f3e8e
      lra_insn_reg and lra_operand_data have both a bitmask of earlyclobber
      alternatives and an overall boolean.  The danger is that we then test
      the overall boolean when really we should be testing for a particular
      alternative.  This patch gets rid of the boolean and tests the mask
      against zero when we really do need to test "any alternative might
      be earlyclobber".  (I think the only instance of that is the
      LRA_UNKNOWN_ALT handling in lra-lives.c:reg_early_clobber_p.)
      
      This is needed (and tested) by an upcoming SVE patch.
      
      2019-07-31  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* lra-int.h (lra_operand_data): Remove early_clobber field.
      	(lra_insn_reg): Likewise.
      	* lra.c (debug_operand_data): Update accordingly.
      	(setup_operand_alternative): Likewise.
      	(new_insn_reg): Likewise.  Remove early_clobber parameter.
      	(collect_non_operand_hard_regs): Update call accordingly.
      	Don't assign to lra_insn_reg::early_clobber.
      	(add_regs_to_insn_regno_info): Remove early_clobber parameter
      	and update calls to new_insn_reg.
      	(lra_update_insn_regno_info): Update calls accordingly.
      	* lra-constraints.c (update_and_check_small_class_inputs): Take the
      	alternative number as a parameter and test whether the operand
      	is earlyclobbered in that particular alternative.
      	(process_alt_operands): Update call accordingly.  Use per-alternative
      	checks for earyclobber here too.
      	* lra-lives.c (reg_early_clobber_p): Check early_clobber_alts
      	against zero for IRA_UNKNOWN_ALT.
      
      From-SVN: r273921
      Richard Sandiford committed
    • Daily bump. · 68c86af2
      From-SVN: r273920
      GCC Administrator committed
  3. 30 Jul, 2019 10 commits