1. 21 Nov, 2019 12 commits
  2. 20 Nov, 2019 28 commits
    • Add test for PR c++/92443. · 3697264c
      	* g++.dg/cpp0x/constexpr-92443.C: New test.
      
      From-SVN: r278534
      Marek Polacek committed
    • Restore stmt def types after scheduling two-operation SLP · 0f6e9b29
      2019-11-20  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* tree-vect-slp.c (vect_schedule_slp_instance): Restore stmt
      	def types for two-operation SLP.
      
      From-SVN: r278533
      Richard Sandiford committed
    • Restrict bb-slp-40.c to targets with VnQI addition (PR 92366) · 28cebdb1
      bb-slp-40.c fails on SPARC targets without VIS4 because it
      requires addition on vectors of bytes.  There doesn't seem to be
      an existing target selector for this, so I added vect_char_add.
      (Wasn't sure whether to use vect_char_add, for consistency
      with vect_no_int_add/vect_int_mult etc., or vect_add_char for
      consistency with vect_shift_char etc.)
      
      I took the target list from vect_int and removed targets that didn't
      seem to support the operation (namely sparc*, since we don't seem to
      have any test for VIS4, niagara7 or m8, and alpha*-*-*.)
      
      2019-11-20  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	PR testsuite/92366
      	* doc/sourcebuild.texi (vect_char_add): Document.
      
      gcc/testsuite/
      	PR testsuite/92366
      	* lib/target-supports.exp (check_effective_target_vect_char_add):
      	New proc.
      	* gcc.dg/vect/bb-slp-40.c: Require vect_char_add instead of vect_int.
      
      From-SVN: r278532
      Richard Sandiford committed
    • Adjust expected output for bb-slp-21.c (PR 92527) · be12e7c7
      After r278246, we can try building the out[] store value from scalars
      if the target has no multiplication support.  That's not necessarily
      a good thing, but like most of vect/, this test is run with the cost
      model disabled.
      
      2019-11-20  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/testsuite/
      	PR testsuite/92527
      	* gcc.dg/vect/bb-slp-21.c: Expect both SLP groups to be vectorized,
      	regardless of whether the target supports multiplication.
      
      From-SVN: r278531
      Richard Sandiford committed
    • typeck2.c (build_x_arrow): Early return if decay_conversion returns error_mark_node. · df265344
      /gcc
      2019-11-20  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* typeck2.c (build_x_arrow): Early return if decay_conversion
      	returns error_mark_node.
      
      /testsuite
      2019-11-20  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* g++.dg/parse/error43.C: Adjust expected error.
      
      From-SVN: r278530
      Paolo Carlini committed
    • drop attempt to reuse cgraph callees for -fcallgraph-info · c013852d
      The information in cgraph callees is released long before we get to
      the point in which -fcallgraph-info edges are dumped, or even
      expanded.  It doesn't make sense to retain it longer: the edges
      created for -fcallgraph-info are much smaller, and they don't even
      coexist, so not even peak use grows.
      
      
      for  gcc/ChangeLog
      
      	* function.h (CALLEE_FROM_CGRAPH_P): Remove.
      	* function.c (record_final_call): Record even calls that might
      	have been in the cgraph.
      	* toplev.c (dump_final_node_vcg): Skip iteration over cgraph
      	callees.
      
      From-SVN: r278529
      Alexandre Oliva committed
    • Switch gcc ftp URL's to https · aeebd94c
      The FTP protocol is getting long in the tooth, and we should emphasize
      HTTPS where that is available. This patch changes various gcc.gnu.org
      URL's to instead use HTTPS.
      
      For instance, kernel.org shut down FTP access in 2017, with the
      explanation:
      
      - The protocol is inefficient and requires adding awkward kludges to
        firewalls and load-balancing daemons
      - FTP servers have no support for caching or accelerators, which has
        significant performance impacts
      - Most software implementations have stagnated and see infrequent
        updates
      
      ChangeLog:
      
      2019-11-20  Janne Blomqvist  <jb@gcc.gnu.org>
      
              * configure.ac: Use https for gcc.gnu.org.
              * configure: Regenerated.
      
      gcc/ChangeLog:
      
      2019-11-20  Janne Blomqvist  <jb@gcc.gnu.org>
      
              * configure.ac: Use https for gcc.gnu.org.
              * configure: Regenerated.
              * doc/install.texi: Use https for gcc.gnu.org.
              * doc/sourcebuild.texi: Likewise.
      
      gcc/testsuite/ChangeLog:
      
      2019-11-20  Janne Blomqvist  <jb@gcc.gnu.org>
      
              * README: Use https for gcc.gnu.org.
      
      libstdc++-v3/ChangeLog:
      
      2019-11-20  Janne Blomqvist  <jb@gcc.gnu.org>
      
              * doc/html/api.html: Use https for gcc.gnu.org.
              * doc/xml/api.xml: Likewise.
      
      maintainer-scripts/ChangeLog:
      
      2019-11-20  Janne Blomqvist  <jb@gcc.gnu.org>
      
              * gcc_release: Use https for gcc.gnu.org.
      
      From-SVN: r278526
      Janne Blomqvist committed
    • PR 92463 MPFR modernization: Revert r269139 · acb156cc
      Commit r269139 fixed an accidental dependency on MPFR 3.0. As we now
      require at least MPFR 3.1.0+ we can revert it and instead use the
      simpler MPFR 3.0+ code.
      
      ChangeLog entry of the original commit was:
      
      2019-02-23  David Malcolm  <dmalcolm@redhat.com>
                  Jakub Jelinek  <jakub@redhat.com>
      
              PR middle-end/88074
              * simplify.c (norm2_do_sqrt, gfc_simplify_norm2): Use
              mpfr_number_p && !mpfr_zero_p instead of mpfr_regular_p.
              (norm2_add_squared): Likewise.  Use mp_exp_t rather than mpfr_exp_t.
      
      ChangeLog for this commit:
      
      2019-11-20  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	PR fortran/92463
      	Revert r269139
      	* simplify.c (norm2_do_sqrt, gfc_simplify_norm2): Use
      	mpfr_regular_p instead of mpfr_number_p && !mpfr_zero_p.
      	(norm2_add_squared): Likewise.  Use mpfr_exp_t rather than
      	mp_exp_t.
      
      From-SVN: r278525
      Janne Blomqvist committed
    • PR 92463 MPFR modernization in GFortran · c9d4cc5d
      Now that we require a minimum of MPFR 3.1.0+ to build GCC, we can do
      some modernization of the MPFR usage in the GFortran frontend.
      
      This patch replaces
      
      1) GMP_RND* with MPFR_RND*
      
      2) mp_exp_t with mpfr_exp_t
      
      3) mp_prec_t with mpfr_prec_t
      
      4) mp_rnd_t with mpfr_rnd_t
      
      gcc/fortran/ChangeLog:
      
      2019-11-20  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	PR fortran/92463
      	* arith.c (gfc_mpfr_to_mpz): Change mp_exp_t to mpfr_exp_t.
      	(gfc_check_real_range): Likewise.
      	* gfortran.h (GFC_RND_MODE): Change GMP_RNDN to MPFR_RNDN.
      	* module.c (mio_gmp_real): Change mp_exp_t to mpfr_exp_t.
      	* simplify.c (degrees_f): Change mp_rnd_t to mpfr_rnd_t.
      	(radians_f): Likewise.
      	(fullprec_erfc_scaled): Change mp_prec_t to mpfr_prec_t.
      	(asympt_erfc_scaled): Likewise.
      	(gfc_simplify_nearest): Change mp_exp_t to mpfr_exp_t, and
      	GMP_RND* to MPFR_RND*.
      
      From-SVN: r278523
      Janne Blomqvist committed
    • [AArch64] Fix vrbit_1.c test failure · 64eb1c82
      The vrbit_1 test which was missing a flag to disable code sharing.
      Committed as obvious.
      
          testsuite/
      	* gcc.target/aarch64/simd/vrbit_1.c: Add -fno-ipa-icf.
      
      From-SVN: r278519
      Wilco Dijkstra committed
    • AMD GCN symbol output with null cfun · 9200b53a
      	gcc/
      	* config/gcn/gcn.c (gcn_asm_output_symbol_ref): Handle null cfun.
      
      Reviewed-by: Andrew Stubbs <ams@codesourcery.com>
      
      From-SVN: r278518
      Julian Brown committed
    • AMD GCN libgomp plugin queue-full condition locking fix · d88b27da
      	libgomp/
      	* plugin/plugin-gcn.c (wait_for_queue_nonfull): Don't lock/unlock
      	aq->mutex here.
      	(queue_push_launch): Lock aq->mutex before calling
      	wait_for_queue_nonfull.
      	(queue_push_callback): Likewise.
      	(queue_push_asyncwait): Likewise.
      	(queue_push_placeholder): Likewise.
      
      Reviewed-by: Andrew Stubbs <ams@codesourcery.com>
      
      From-SVN: r278517
      Julian Brown committed
    • Fix host-to-device copies from rodata for AMD GCN · 8d2f4ddf
      	libgomp/
      	* plugin/plugin-gcn.c (hsa_memory_copy_wrapper): New.
      	(copy_data, GOMP_OFFLOAD_host2dev): Use above function.
      	(GOMP_OFFLOAD_dev2host, GOMP_OFFLOAD_dev2dev): Check hsa_memory_copy
      	return code.
      
      Reviewed-by: Andrew Stubbs <ams@codesourcery.com>
      
      From-SVN: r278516
      Julian Brown committed
    • jit: fix ICE with GCC_JIT_BOOL_OPTION_SELFCHECK_GC since r278084 (PR jit/92483) · 56e04525
      Since r278084 (part of the params refactoring), most of libgccjit's
      test suite has been ICEing.
      
      The root cause is that jit-playback.c injects params to its fake_args
      here:
      
        /* Aggressively garbage-collect, to shake out bugs: */
        if (get_bool_option (GCC_JIT_BOOL_OPTION_SELFCHECK_GC))
          {
            ADD_ARG ("--param");
            ADD_ARG ("ggc-min-expand=0");
            ADD_ARG ("--param");
            ADD_ARG ("ggc-min-heapsize=0");
          }
      
      (building a vec of char * where the char * are allocated using xstrdup)
      
      and r278084 added this logic to decode_cmdline_options_to_array:
      
      964	      /* Interpret "--param" "key=name" as "--param=key=name".  */
      965	      const char *needle = "--param";
      966	      if (i + 1 < argc && strcmp (opt, needle) == 0)
      967		{
      968		  const char *replacement
      969		    = opts_concat (needle, "=", argv[i + 1], NULL);
      970		  argv[++i] = replacement;
      971		}
      
      Note that at line 970 it manipulates the argv in-place, inserting a
      new option allocated with opts_concat, which uses opts_obstack
      (itself initialized from toplev::main).
      
      jit-playback.c cleans up its fake arguments using "free", at which
      point we have a free of the middle of an obstack and an ICE.
      
      This patch fixes the issue by using the new syntax for the params.
      
      Fixes all 60 FAILs in jit.sum, restoring the number of PASS results
      from 2033 to 10469.
      
      gcc/jit/ChangeLog:
      	PR jit/92483
      	* jit-playback.c (gcc::jit::playback::context::make_fake_args):
      	Update GCC_JIT_BOOL_OPTION_SELFCHECK_GC for new --param syntax.
      
      From-SVN: r278515
      David Malcolm committed
    • OpenACC "present" subarrays: runtime API return value and unmapping fixes · e307b05f
      	PR libgomp/92511
      
      	libgomp/
      	* oacc-mem.c (present_create_copy): Fix device pointer return value in
      	case of "present" subarray.  Use tgt->tgt_start instead of tgt->to_free
      	in non-present/create case.
      	(delete_copyout): Change error condition to fail only on copies outside
      	of mapped block.  Adjust error message accordingly.
      	* testsuite/libgomp.oacc-c-c++-common/copyin-devptr-1.c: New test.
      	* testsuite/libgomp.oacc-c-c++-common/copyin-devptr-2.c: New test.
      	* testsuite/libgomp.oacc-c-c++-common/lib-20.c: Adjust expected error
      	message.
      	* testsuite/libgomp.oacc-c-c++-common/lib-23.c: Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/lib-22.c: Allow test to pass now.
      	* testsuite/libgomp.oacc-c-c++-common/lib-30.c: Likewise.
      
      Reviewed-by: Thomas Schwinge <thomas@codesourcery.com>
      
      From-SVN: r278514
      Julian Brown committed
    • Implement inline call summaries. · 070e3489
      	* ipa-fnsummary.c (ipa_fn_summary::account_size_time): Add CALL
      	parameter and update call_size_time_table.
      	(ipa_fn_summary::max_size_time_table_size): New constant.
      	(estimate_calls_size_and_time_1): Break out from ...
      	(estimate_calls_size_and_time): ... here; implement summary production.
      	(summarize_calls_size_and_time): New function.
      	(ipa_call_context::estimate_size_and_time): Bypass
      	estimate_calls_size_and_time for leaf functions.
      	(ipa_update_overall_fn_summary): Likewise.
      	* ipa-fnsummary.h (call_size_time_table): New.
      	(ipa_fn_summary::account_size_time): Update prototype.
      
      From-SVN: r278513
      Jan Hubicka committed
    • Document -Wc11-c2x-compat. · 73248b1d
      My patch that added initial C2X support and associated command-line
      options missed documenting -Wc11-c2x-compat although the other options
      were properly documented.  This patch adds the missing documentation.
      
      Tested with "make info" and "make pdf".
      
      	* doc/invoke.texi (-Wc11-c2x-compat): Document.
      
      From-SVN: r278510
      Joseph Myers committed
    • PR85678: Change default to -fno-common · 6271dd98
      GCC currently defaults to -fcommon.  As discussed in the PR, this is an ancient
      C feature which is not conforming with the latest C standards.  On many targets
      this means global variable accesses have a codesize and performance penalty.
      This applies to C code only, C++ code is not affected by -fcommon.  It is about
      time to change the default.
      
          gcc/
      	PR85678
      	* common.opt (fcommon): Change init to 1.
      	* invoke.texi (-fcommon): Update documentation.
      
          testsuite/
      	* g++.dg/lto/odr-6_1.c: Add -fcommon.
      	* gcc.dg/alias-15.c: Likewise.
      	* gcc.dg/fdata-sections-1.c: Likewise.	
      	* gcc.dg/ipa/pr77653.c: Likewise.
      	* gcc.dg/lto/20090729_0.c: Likewise.
      	* gcc.dg/lto/20111207-1_0.c: Likewise.
      	* gcc.dg/lto/c-compatible-types-1_0.c: Likewise.
      	* gcc.dg/lto/pr55525_0.c: Likewise.
      	* gcc.dg/lto/pr88077_0.c: Use long to avoid alignment warning.
      	* gcc.dg/lto/pr88077_1.c: Add -fcommon.
      	* gcc.target/aarch64/sve/peel_ind_1.c: Allow ANCHOR0.
      	* gcc.target/aarch64/sve/peel_ind_2.c: Likewise.
      	* gcc.target/aarch64/sve/peel_ind_3.c: Likewise.
      	* gcc.target/i386/volatile-bitfields-2.c: Allow movl or movq.
      
      From-SVN: r278509
      Wilco Dijkstra committed
    • libgomp/test: Add flags to find libatomic in build-tree testing · 83115e9e
      Add flags to find libatomic in build-tree testing, fixing a catastrophic
      libgomp testsuite failure with `riscv*-*-linux*' targets, which imply
      `-latomic' with the `-pthread' GCC option, implied in turn by the
      `-fopenacc' and `-fopenmp' options, removing failures like:
      
      .../bin/riscv64-linux-gnu-ld: cannot find -latomic
      collect2: error: ld returned 1 exit status
      compiler exited with status 1
      FAIL: libgomp.c/../libgomp.c-c++-common/atomic-18.c (test for excess errors)
      Excess errors:
      .../bin/riscv64-linux-gnu-ld: cannot find -latomic
      
      UNRESOLVED: libgomp.c/../libgomp.c-c++-common/atomic-18.c compilation failed to produce executable
      
      and bringing overall test results for the `riscv64-linux-gnu' target
      (here with the `x86_64-linux-gnu' host and RISC-V QEMU in the Linux user
      emulation mode as the target board) from:
      
      		=== libgomp Summary ===
      
      # of expected passes		90
      # of unexpected failures	3267
      # of expected failures		2
      # of unresolved testcases	3247
      # of unsupported tests		548
      
      to:
      
      		=== libgomp Summary ===
      
      # of expected passes		6834
      # of unexpected failures	4
      # of expected failures		4
      # of unsupported tests		518
      
      	libgomp/
      	* testsuite/lib/libgomp.exp (libgomp_init): Add flags to find
      	libatomic in build-tree testing.
      
      From-SVN: r278505
      Maciej W. Rozycki committed
    • Workaround bogus warning in fibonacci_heap<K,V>::consolidate. · 8e361de1
      	* fibonacci_heap.h (fibonacci_heap<K,V>::consolidate): Turn auto_vec
      	to ordinary array.
      
      From-SVN: r278504
      Jan Hubicka committed
    • Add pool_allocator for fibonaci heaps. · 516fd7ce
      	* fibonacci_heap.h (fibonacci_heap<K,V>::fibonacci_heap):
      	Add allocator parameter.
      	(fibonacci_heap<K,V>::~fibonacci_heap): Optimize destruction.
      	(fibonacci_heap<K,V>::m_allocator): New.
      	(fibonacci_heap<K,V>::m_own_allocator): New.
      	(fibonacci_heap<K,V>::insert): Use allocator.
      	(fibonacci_heap<K,V>::extract_min): Likewise.
      	(fibonacci_heap<K,V>::union_with): Assert that both heaps share
      	allocator.
      	(fibonacci_heap<K,V>::consolidate): Allocate constant sized vector
      	on stack.
      	* fibonacci_heap.c: Include alloc-pool
      	(test_empty_heap): Initialize allocator.
      	(test_union): Likewise.
      	* bb-reorder.c: Include alloc-pool.h.
      	* tracer.c: Inlclude alloc-pool.h.
      
      From-SVN: r278501
      Jan Hubicka committed
    • Update comment in libsanitizer/*/libtool-version files. · f6fbdc38
      2019-11-20  Martin Liska  <mliska@suse.cz>
      
      	* libtool-version: Remove.
      	* lsan/libtool-version: Upate comment to not mention libmudflap.
      	* tsan/libtool-version: Likewise.
      	* ubsan/libtool-version: Likewise.
      
      From-SVN: r278500
      Martin Liska committed
    • lto-streamer-out.c (DFS::sccstack): Turn into auto-vec. · 17b95f0e
      	* lto-streamer-out.c (DFS::sccstack): Turn into auto-vec.
      	Preallocate for 32 entries.
      	(DFS::worklist): Likewise.
      	(DFS::DFS): Do not initialize sccstack and worklist.
      	(DFS::~DFS): Do not release sccstack.
      
      From-SVN: r278498
      Jan Hubicka committed
    • rs6000: Fix UNORDERED without NaNs, for DFP (PR92573) · bcb4b4b4
      This is the analogue of r278103, but for DFP.
      
      
      	PR target/92573
      	* config/rs6000/dfp.md (dfptstsfi_<code>_<mode> for DFP_TEST and DDTD):
      	Handle UNORDERED if !HONOR_NANS.
      
      From-SVN: r278497
      Segher Boessenkool committed
    • Optimize updating of badness after applying inline · 041cb615
              * ipa-inline.c (wrapper_heuristics_may_apply): Break out from ...
      	(edge_badness): ... here.
      	(inline_small_functions): Use monotonicity of badness calculation
      	to avoid redundant updates.
      
      From-SVN: r278496
      Jan Hubicka committed
    • tree-vect-slp.c (vect_analyze_slp_instance): Dump constructors we are actually analyzing. · 140ee00a
      2019-11-20  Richard Biener  <rguenther@suse.de>
      
      	* tree-vect-slp.c (vect_analyze_slp_instance): Dump
      	constructors we are actually analyzing.
      	(vect_slp_check_for_constructors): Do not vectorize uniform
      	constuctors, do not dump here.
      
      	* gcc.dg/vect/bb-slp-42.c: Adjust.
      	* gcc.dg/vect/bb-slp-40.c: Likewise.
      
      From-SVN: r278495
      Richard Biener committed
    • re PR tree-optimization/92537 (ICE in vect_slp_analyze_node_operations, at tree-vect-slp.c:2775) · 2439d584
      2019-11-20  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/92537
      	* tree-vect-slp.c (vect_analyze_slp_instance): Move CTOR
      	vectorization validity check...
      	(vect_slp_analyze_operations): ... here.
      
      	* gfortran.dg/pr92537.f90: New testcase.
      
      From-SVN: r278494
      Richard Biener committed
    • [testsuite][arm] Fix asm-flag-[45].c tests · 8d8ae265
      In asm-flag-4.c, we need to use dg-message instead of dg-error because
      we have to match "sorry, unimplemented:" rather than "error:".  In
      asm-flag-5.c, fix the dg-error syntax.
      
      2019-11-20  Christophe Lyon  <christophe.lyon@linaro.org>
      
      	* gcc.target/arm/asm-flag-4.c: Replace dg-error with dg-message.
      	* gcc.target/arm/asm-flag-5.c: Add quotes around dg-error
      	messages.
      
      From-SVN: r278487
      Christophe Lyon committed