1. 09 Dec, 2019 27 commits
    • Fix column information for omp_clauses in Fortran code · 9b4c16f2
      The location of all OpenMP/OpenACC clauses on any given line in Fortran code
      always points to the first clause on that line. Hence, the column information
      is wrong for all clauses but the first one.
      
      Use the correct location for each clause instead.
      
      2019-12-09  Frederik Harwath  <frederik@codesourcery.com>
      
      /gcc/fortran/
      	* trans-openmp.c (gfc_trans_omp_reduction_list): Pass correct location for each
      	clause to build_omp_clause.
      
      From-SVN: r279132
      Frederik Harwath committed
    • Fix more unrecognised GCN instructions · 28dd61b7
      2019-12-09  Andrew Stubbs  <ams@codesourcery.com>
      
      	gcc/
      	* config/gcn/gcn-valu.md (gather<mode>_insn_1offset<exec>): Change
      	%s to %o in asm output.
      	(gather<mode>_insn_2offsets<exec>): Likewise.
      
      From-SVN: r279131
      Andrew Stubbs committed
    • Remove gcc/ prefix · fc548411
      From-SVN: r279130
      Eric Botcazou committed
    • Fix libdecnumber handling of non-canonical BID significands (PR middle-end/91226). · 0fad54f0
      As reported in bug 91226, the libdecnumber code used on the host to
      interpret DFP values in the BID encoding fails, for _Decimal64 and
      _Decimal128, to check for the case where a significand is too large
      and so specified in IEEE 754 to be a non-canonical encoding of the
      zero significand.  This patch adds the required handling of that case,
      together with tests both using -O2 (testing this host code) and -O0
      (testing libgcc code, which already worked before the patch); the
      tests also cover _Decimal32, which already had the required check.
      
      In the _Decimal128 case, where the code previously completely ignored
      the case where the first four bits of the combination field are 1100,
      1101 or 1110, the logic for determining the correct quantum exponent
      in that case is also newly added by this patch, so tests are added for
      that as well (again, libgcc already handled it correctly when the
      conversion was done at runtime rather than at compile time).
      
      Bootstrapped with no regressions for x86_64-pc-linux-gnu.
      
      	PR middle-end/91226
      libdecnumber:
      	* bid/bid2dpd_dpd2bid.c (_bid_to_dpd64): Handle non-canonical
      	significands.
      	(_bid_to_dpd128): Likewise.  Check for case where combination
      	field starts 1100, 1101 or 1110.
      
      gcc/testsuite:
      	* gcc.dg/dfp/bid-non-canonical-d128-1.c,
      	gcc.dg/dfp/bid-non-canonical-d128-2.c,
      	gcc.dg/dfp/bid-non-canonical-d128-3.c,
      	gcc.dg/dfp/bid-non-canonical-d128-4.c,
      	gcc.dg/dfp/bid-non-canonical-d32-1.c,
      	gcc.dg/dfp/bid-non-canonical-d32-2.c,
      	gcc.dg/dfp/bid-non-canonical-d64-1.c,
      	gcc.dg/dfp/bid-non-canonical-d64-2.c: New tests.
      
      From-SVN: r279129
      Joseph Myers committed
    • arm: fix v[78]-r multilibs when configured with --with-multlib-list=aprofile · 8d106dd5
      When gcc for Arm is configured with --with-multilib-list=aprofile a
      misplaced endif directive in the makefile was causing the arm->thumb
      mapping for multilibs to be omitted from the reuse rules.  This
      resulted in the default multilib being picked rather than the thumb2
      opimized version.
      
      	* config/arm/t-multilib: Use arm->thumb multilib reuse rules
      	on a-profile.
      
      From-SVN: r279128
      Richard Earnshaw committed
    • rs6000: Name set<mode>_cc, and delete some old mfcr patterns · 35041ed9
      This names the so far unnamed basic mfcr pattern "set<mode>_cc", and
      it deletes all the others (only the ashift one ever was generated, and
      even that one only once during a whole bootstrap+regtest, and that one
      is questionable -- we don't cost that pattern correctly).
      
      
      	* config/rs6000/rs6000.md (unnamed mfcr define_insn): Name this
      	set<mode>_cc.
      	(unnamed define_insn_and_split): Delete.
      	(unnamed define_insn): Delete.
      	(unnamed define_insn): Delete.
      	(unnamed define_split): Delete.
      
      From-SVN: r279127
      Segher Boessenkool committed
    • [mid-end] [obvious] Cast to avoid -Wsign-compare warning from r279124 · e6130412
      
      The previous revision adds a comparison that triggers a warning.
      Here we simply cast the unsigned integer to a signed one before the
      comparison.
      
      gcc/ChangeLog:
      
      2019-12-09  Matthew Malcomson  <matthew.malcomson@arm.com>
      
      	* regstat.c (regstat_bb_compute_calls_crossed): Add a cast to
      	avoid a warning.
      
      From-SVN: r279126
      Matthew Malcomson committed
    • libgcc: Fix misuse of USE_EH_FRAME_REGISTRY in crtstuff.c · 21a098f4
      2019-12-09  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
      
      	* crtstuff.c (__do_global_dtors_aux): Check if USE_EH_FRAME_REGISTRY is
      	defined instead of its value.
      
      From-SVN: r279125
      Jozef Lawrynowicz committed
    • [mid-end] Add notes to dataflow insn info when re-emitting (PR92410) · fdc5359f
      In scheduling passes, notes are removed with `remove_notes` before the
      scheduling is done, and added back in with `reemit_notes` once the
      scheduling has been decided.
      
      This process leaves the notes in the RTL chain with different insn uid's
      than were there before.  Having different UID's (larger than the
      previous ones) means that DF_INSN_INFO_GET(insn) will access outside of
      the allocated array.
      
      This has been seen in the `regstat_bb_compute_calls_crossed` function.
      This patch adds an assert to the `regstat_bb_compute_calls_crossed`
      function so that bad accesses here are caught instead of going
      unnoticed, and then avoids the problem.
      
      We avoid the problem by ensuring that new notes added by `reemit_notes` have an
      insn record given to them.  This is done by adding a call to
      `df_insn_create_insn_record` on each note added in `reemit_notes`.
      `df_insn_create_insn_record` leaves this new record zeroed out, which appears
      to be fine for notes (e.g. `df_bb_refs_record` already does not set
      anything except the luid for notes, and notes have no dataflow information to
      record).
      
      We add the testcase that Martin found here
      https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92410#c2 .
      This testcase fails with the "regstat.c" change, and then succeeds with the
      "haifa-sched.c" change.
      
      There is a similar problem with labels, that the `gcc_assert` catches
      when running regression tests in gcc.dg/fold-eqandshift-1.c and
      gcc.c-torture/compile/pr32482.c.
      This is due to the `cfg_layout_finalize` call in `bb-reorder.c` emitting
      new labels, and these labels not having a dataflow df_insn_info member.
      
      We solve this by manually calling `df_recompute_luids` on each basic
      block once this pass has finished.
      
      Testing done:
        Ran regression tests on aarch64-none-linux-gnu cross compiler.
        Bootstrapped and ran tests on aarch64-none-linux-gnu native.
      
      gcc/ChangeLog:
      
      2019-12-09  Matthew Malcomson  <matthew.malcomson@arm.com>
      
      	PR middle-end/92410
      	* bb-reorder.c (pass_reorder_blocks::execute): Recompute
      	dataflow luids once basic blocks have been reordered.
      	* haifa-sched.c (reemit_notes): Create df insn record for each
      	new note.
      	* regstat.c (regstat_bb_compute_calls_crossed): Assert every
      	insn has an insn record before trying to use it.
      
      gcc/testsuite/ChangeLog:
      
      2019-12-09  Matthew Malcomson  <matthew.malcomson@arm.com>
      
      	PR middle-end/92410
      	* gcc.dg/torture/pr92410.c: New test.
      
      From-SVN: r279124
      Matthew Malcomson committed
    • libgcc: Dont define __do_global_dtors_aux if it will be empty · ad8b7783
      2019-12-09  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
      
      	* crtstuff.c (__do_global_dtors_aux): Wrap in #if so it's only defined
      	if it will have contents.
      
      From-SVN: r279123
      Jozef Lawrynowicz committed
    • [PR92511] More testing for OpenACC "present" subarrays · 41f36f22
      In particular, "subset subarrays".
      
      	libgomp/
      	PR libgomp/92511
      	* testsuite/libgomp.oacc-c-c++-common/copyin-devptr-1.c: Remove
      	this file...
      	* testsuite/libgomp.oacc-c-c++-common/copyin-devptr-2.c: ..., and
      	this file...
      	* testsuite/libgomp.oacc-c-c++-common/lib-22.c: ..., and this
      	file...
      	* testsuite/libgomp.oacc-c-c++-common/lib-30.c: ..., and this
      	file...
      	* testsuite/libgomp.oacc-c-c++-common/subset-subarray-mappings-1-r-p.c:
      	... with their content moved into, and extended in this new file.
      	* testsuite/libgomp.oacc-c-c++-common/subset-subarray-mappings-1-d-a.c:
      	New file.
      	* testsuite/libgomp.oacc-c-c++-common/subset-subarray-mappings-1-d-p.c:
      	Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/subset-subarray-mappings-1-r-a.c:
      	Likewise.
      	* testsuite/libgomp.oacc-c-c++-common/subset-subarray-mappings-2.c:
      	Likewise.
      
      From-SVN: r279122
      Thomas Schwinge committed
    • Add 'libgomp.oacc-c-c++-common/map-data-1.c' · 6effebe1
      	libgomp/
      	* testsuite/libgomp.oacc-c-c++-common/map-data-1.c: New file.
      
      From-SVN: r279121
      Thomas Schwinge committed
    • [PR92854] Add 'libgomp.oacc-c-c++-common/pr92854-1.c' · 7d020473
      ... to document the status quo.
      
      	libgomp/
      	PR libgomp/92854
      	* testsuite/libgomp.oacc-c-c++-common/pr92854-1.c: New file.
      
      From-SVN: r279120
      Thomas Schwinge committed
    • Add 'libgomp.oacc-c-c++-common/host_data-6.c' · 1e1fb715
      	libgomp/
      	* testsuite/libgomp.oacc-c-c++-common/host_data-6.c: New file.
      
      From-SVN: r279119
      Thomas Schwinge committed
    • In 'libgomp/target.c:gomp_exit_data', remove open-coded 'gomp_remove_var' · b5859e40
      	libgomp/
      	* target.c (gomp_exit_data): Use 'gomp_remove_var'.
      
      From-SVN: r279118
      Thomas Schwinge committed
    • libgomp/testsuite/*fortran – make 'stop' values unique · 11586ed9
              * testsuite/libgomp.fortran/use_device_addr-3.f90: Make 'stop' codes
              unique.
              * testsuite/libgomp.fortran/use_device_addr-4.f90: Ditto.
              * testsuite/libgomp.fortran/use_device_ptr-optional-2.f90: Ditto.
              * testsuite/libgomp.oacc-fortran/declare-5.f90: Ditto.
              * testsuite/libgomp.oacc-fortran/optional-data-copyin-by-value.f90:
              Ditto.
              * testsuite/libgomp.oacc-fortran/optional-firstprivate.f90: Ditto.
              * testsuite/libgomp.oacc-fortran/optional-update-host.f90: Ditto.
      
      From-SVN: r279117
      Tobias Burnus committed
    • Use OPTION_MASK_ISA2_$target_[SET,UNSET, ] to indicate those for · 8cf86e14
      x_ix86_isa_flags2.
      
      2019-12-09  Hongtao Liu  <hongtao.liu@intel.com>
      
          * gcc/common/config/i386/i386-common.c
          (OPTION_MASK_ISA_AVX5124FMAPS_SET): Rename to
          OPTION_MASK_ISA2_AVX5124FMAPS_SET.
          (OPTION_MASK_ISA_AVX5124VNNIW_SET, OPTION_MASK_ISA_AVX512BF16_SET,
          OPTION_MASK_ISA_AVX512VP2INTERSECT_SET,
          OPTION_MASK_ISA_PCONFIG_SET, OPTION_MASK_ISA_WBNOINVD_SET,
          OPTION_MASK_ISA_SGX_SET, OPTION_MASK_ISA_CX16_SET,
          OPTION_MASK_ISA_MOVBE_SET, OPTION_MASK_ISA_PTWRITE_SET,
          OPTION_MASK_ISA_MWAITX_SET, OPTION_MASK_ISA_CLZERO_SET,
          OPTION_MASK_ISA_RDPID_SET, OPTION_MASK_ISA_VAES_SET,
          OPTION_MASK_ISA_MOVDIR64B_SET, OPTION_MASK_ISA_WAITPKG_SET,
          OPTION_MASK_ISA_CLDEMOTE_SET, OPTION_MASK_ISA_ENQCMD_SET,
          OPTION_MASK_ISA_AVX5124FMAPS_UNSET,
          OPTION_MASK_ISA_AVX5124VNNIW_UNSET,
          OPTION_MASK_ISA_AVX512BF16_UNSET,
          OPTION_MASK_ISA_AVX512VP2INTERSECT_UNSET,
          OPTION_MASK_ISA_PCONFIG_UNSET, OPTION_MASK_ISA_WBNOINVD_UNSET,
          OPTION_MASK_ISA_SGX_UNSET, OPTION_MASK_ISA_CX16_UNSET,
          OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_PTWRITE_UNSET,
          OPTION_MASK_ISA_MWAITX_UNSET, OPTION_MASK_ISA_CLZERO_UNSET,
          OPTION_MASK_ISA_RDPID_UNSET, OPTION_MASK_ISA_VAES_UNSET,
          OPTION_MASK_ISA_MOVDIR64B_UNSET, OPTION_MASK_ISA_WAITPKG_UNSET,
          OPTION_MASK_ISA_CLDEMOTE_UNSET, OPTION_MASK_ISA_ENQCMD_UNSET,
          OPTION_MASK_ISA_AVX5124FMAPS, OPTION_MASK_ISA_AVX5124VNNIW,
          OPTION_MASK_ISA_AVX512BF16, OPTION_MASK_ISA_AVX512VP2INTERSECT,
          OPTION_MASK_ISA_PCONFIG, OPTION_MASK_ISA_WBNOINVD,
          OPTION_MASK_ISA_SGX, OPTION_MASK_ISA_CX16, OPTION_MASK_ISA_MOVBE,
          OPTION_MASK_ISA_PTWRITE, OPTION_MASK_ISA_MWAITX,
          OPTION_MASK_ISA_CLZERO, OPTION_MASK_ISA_RDPID,
          OPTION_MASK_ISA_VAES, OPTION_MASK_ISA_MOVDIR64B,
          OPTION_MASK_ISA_WAITPKG, OPTION_MASK_ISA_CLDEMOTE,
          OPTION_MASK_ISA_ENQCMD): Ditto.
          * gcc/config/i386/i386-builtin.def
          (OPTION_MASK_ISA_AVX5124FMAPS, OPTION_MASK_ISA_AVX5124VNNIW,
          OPTION_MASK_ISA_AVX512BF16, OPTION_MASK_ISA_AVX512VP2INTERSECT,
          OPTION_MASK_ISA_WBNOINVD, OPTION_MASK_ISA_PTWRITE,
          OPTION_MASK_ISA_RDPID, OPTION_MASK_ISA_VAES,
          OPTION_MASK_ISA_MOVDIR64B, OPTION_MASK_ISA_ENQCMD): Ditto.
          * gcc/config/i386/i386-builtins.c (OPTION_MASK_ISA_MWAITX,
          OPTION_MASK_ISA_CLZERO, OPTION_MASK_ISA_WAITPKG,
          OPTION_MASK_ISA_CLDEMOTE, OPTION_MASK_ISA_WBNOINVD): Ditto.
          * gcc/config/i386/i386-c.c
          (OPTION_MASK_ISA_AVX5124FMAPS, OPTION_MASK_ISA_AVX5124VNNIW,
          OPTION_MASK_ISA_AVX512BF16, OPTION_MASK_ISA_AVX512VP2INTERSECT,
          OPTION_MASK_ISA_PCONFIG, OPTION_MASK_ISA_WBNOINVD,
          OPTION_MASK_ISA_SGX, OPTION_MASK_ISA_CX16, OPTION_MASK_ISA_MOVBE,
          OPTION_MASK_ISA_PTWRITE, OPTION_MASK_ISA_MWAITX,
          OPTION_MASK_ISA_CLZERO, OPTION_MASK_ISA_RDPID,
          OPTION_MASK_ISA_VAES, OPTION_MASK_ISA_MOVDIR64B,
          OPTION_MASK_ISA_WAITPKG, OPTION_MASK_ISA_CLDEMOTE,
          OPTION_MASK_ISA_ENQCMD): Ditto.
          * gcc/config/i386/i386-option.c: Ditto
          * gcc/config/i386/i386.opt: Ditto..
          * gcc/config/i386/i386.h: (TARGET_ISA_AVX5124FMAPS,
          TARGET_ISA_AVX5124VNNIW,  TARGET_ISA_AVX512BF16,
          TARGET_ISA_AVX512VP2INTERSECT, TARGET_ISA_PCONFIG,
          TARGET_ISA_WBNOINVD, TARGET_ISA_SGX, TARGET_ISA_CX16,
          TARGET_ISA_MOVBE, TARGET_ISA_PTWRITE, TARGET_ISA_MWAITX,
          TARGET_ISA_CLZERO, TARGET_ISA_RDPID, TARGET_ISA_VAES,
          TARGET_ISA_MOVDIR64B, TARGET_ISA_WAITPKG, TARGET_ISA_CLDEMOTE)
          TARGET_ISA_ENQCMD): Ditto.
      
      From-SVN: r279116
      Hongtao Liu committed
    • [GCC, Vect] Fix costing for vector shifts · e3126e5f
      While looking at the vectorization for following example, we realized that
      even though vectorizable_shift function was distinguishing vector shifted
      by vector from vector shifted by scalar, while modelling the cost it would
      always add the cost of building a vector constant despite not needing it for
      vector shifted by scalar.
      
      This patch fixes this by using scalar_shift_arg to determine whether we need
      to build a vector for the second operand or not. This causes the test case
      below to now vectorize.
      
      gcc/ChangeLog:
      
      2019-12-09  Sudakshina Das  <sudi.das@arm.com>
      	    Richard Sandiford  <richard.sandiford@arm.com>
      
      	* tree-vect-stmt.c (vectorizable_shift): Condition ndts for
      	vect_model_simple_cost call on scalar_shift_arg.
      
      gcc/testsuite/ChangeLog:
      
      2019-12-09  Sudakshina Das  <sudi.das@arm.com>
      
      	* gcc.dg/vect/vect-shift-5.c: New test.
      
      Co-Authored-By: Richard Sandiford <richard.sandiford@arm.com>
      
      From-SVN: r279114
      Sudakshina Das committed
    • re PR tree-optimization/92834 (misssed SLP vectorization in LightPixel) · 49647b7b
      	PR tree-optimization/92834
      	* match.pd (A - ((A - B) & -(C cmp D)) -> (C cmp D) ? B : A,
      	A + ((B - A) & -(C cmp D)) -> (C cmp D) ? B : A): New simplifications.
      
      	* gcc.dg/tree-ssa/pr92834.c: New test.
      
      From-SVN: r279113
      Jakub Jelinek committed
    • re PR tree-optimization/89007 ([SVE] Implement generic vector average expansion) · 8e03b21e
      2019-12-09  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
      
      	PR tree-optimization/89007
      	* tree-vect-patterns.c (vect_recog_average_pattern): If there is no
      	target support available, generate code to distribute rshift over plus
      	and add a carry.
      
      testsuite/
      	* gcc.target/aarch64/sve/pr89007-1.c: New test.
      	* gcc.target/aarch64/sve/pr89007-2.c: Likewise.
      
      From-SVN: r279112
      Prathamesh Kulkarni committed
    • libstdc++: Improve testing for path::operator+=(const string&) · 1d214c3f
      	* testsuite/27_io/filesystem/path/concat/strings.cc: Test more cases.
      
      From-SVN: r279111
      Jonathan Wakely committed
    • libstdc++: fix buffer overflow in path::operator+= (PR92853) · 023a3fb4
      When concatenating a path ending in a root-directory onto another path,
      we added an empty filename to the end of the path twice, but only
      reserved space for one. That meant the second write went past the end of
      the allocated buffer.
      
      	PR libstdc++/92853
      	* src/c++17/fs_path.cc (filesystem::path::operator+=(const path&)):
      	Do not process a trailing directory separator twice.
      	* testsuite/27_io/filesystem/path/concat/92853.cc: New test.
      	* testsuite/27_io/filesystem/path/concat/path.cc: Test more cases.
      
      From-SVN: r279110
      Jonathan Wakely committed
    • Come up with constructors of symtab_node, cgraph_node and varpool_node. · a65d584d
      2019-12-09  Martin Liska  <mliska@suse.cz>
      
      	PR ipa/92737
      	* cgraph.c (symbol_table_test::symbol_table_test): Fix
      	coding style.
      	* cgraph.h (symtab_node::symtab_node): New constructor.
      	(cgraph_node::cgraph_node): Likewise.
      	(varpool_node::varpool_node): Likewise.
      	(symbol_table::allocate_cgraph_symbol): Use newly
      	created constructor.
      	(symbol_table::allocate_cgraph_symbol): Remove.
      	* cgraphunit.c (symtab_terminator): Likewise.
      	* varpool.c (varpool_node::create_empty): Use newly
      	created constructor.
      
      From-SVN: r279109
      Martin Liska committed
    • libstdc++: Add C++20 P1032 constexpr to _GLIBCXX_DEBUG array · 43839590
      	* testsuite/23_containers/array/tuple_interface/get_debug_neg.cc:
      	Fix static_assert line number.
      	* testsuite/23_containers/array/tuple_interface/
      	tuple_element_debug_neg.cc: Likewise.
      
      From-SVN: r279108
      François Dumont committed
    • Enable mask movement for VCOND_EXPR under avx512f for · 8b905e9b
      128/256-bit vector when integer mask is available.
      
      Changelog
      gcc/
      	PR target/92686
      	* config/i386/sse.md
      	(*<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>,
      	*<avx512>_cmp<mode>3<mask_scalar_merge_name>,
      	*<avx512>_ucmp<mode>3<mask_scalar_merge_name>,
      	*<avx512>_ucmp<mode>3<mask_scalar_merge_name>): New.
      	* config/i386/i386.c (ix86_print_operand): New operand substitution.
      	* config/i386/i386-expand.c (ix86_valid_mask_cmp_mode):
      	New function.
      	(ix86_expand_sse_cmp): Relax condition for integer mask from
      	512-bit vector to all 128/256/512-bit vector. Delete code gen
      	for avx512f compare patterns since we have generic pattern now.
      	(ix86_expand_sse_movcc): Adjust condition and codegen for
      	maskcmp.
      	(ix86_expand_int_sse_cmp): Don't canonicalize the comparison
      	when corresponding vector compare is available.
      
      gcc/testsuite/
      	* gcc.target/i386/pr92686.inc: New file.
      	* gcc.target/i386/avx512bw-pr92686-vpcmp-1.c: New test.
      	* gcc.target/i386/avx512bw-pr92686-vpcmp-intelasm-1.c: Ditto.
      	* gcc.target/i386/avx512bw-pr92686-vpcmp-2.c: Ditto.
      	* gcc.target/i386/avx512vl-pr92686-vpcmp-1.c: Ditto.
      	* gcc.target/i386/avx512vl-pr92686-vpcmp-intelasm-1.c: Ditto.
      	* gcc.target/i386/avx512vl-pr92686-vpcmp-2.c: Ditto.
      	* gcc.target/i386/avx512bw-pr92686-movcc-1.c: Ditto.
      	* gcc.target/i386/avx512bw-pr92686-movcc-2.c: Ditto.
      	* gcc.target/i386/avx512vl-pr92686-movcc-1.c: Ditto.
      	* gcc.target/i386/avx512vl-pr92686-movcc-2.c: Ditto.
      	* gcc.target/i386/avx512vl-pr88547-1.c: Adjust testcase.
      	* gcc.target/i386/pr88547-1.c: Ditto.
      
      From-SVN: r279107
      Hongtao Liu committed
    • re PR go/92861 (Passes relative time to sem_timedwait on GNU/Hurd) · 9135a6ff
      	PR go/92861
          runtime: use absolute time for sem_timedwait
          
          Patch by Samuel Thibault.
          
          Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/210457
      
      From-SVN: r279106
      Ian Lance Taylor committed
    • Daily bump. · 77cc6ae6
      From-SVN: r279104
      GCC Administrator committed
  2. 08 Dec, 2019 13 commits
    • cvt.c (maybe_warn_nodiscard): Add workaround for GCC 3.4-4.4 - cast msg to… · 5544dbeb
      cvt.c (maybe_warn_nodiscard): Add workaround for GCC 3.4-4.4 - cast msg to (const char *) in conditional...
      
      	* cvt.c (maybe_warn_nodiscard): Add workaround for GCC 3.4-4.4 - cast
      	msg to (const char *) in conditional expressions.  Formatting fixes.
      
      From-SVN: r279101
      Jakub Jelinek committed
    • New bswap testcase. · a0d169d1
      
      2019-12-08  Andrew Pinski  <apinski@marvell.com>
      
              * gcc.c-torture/execute/bswap-3.c: New test.
      
      From-SVN: r279100
      Andrew Pinski committed
    • Revert commit r279023. · 58ccb8ec
      2019-12-08  Sandra Loosemore  <sandra@codesourcery.com>
      
      	Revert commit r279023.
      
      	2019-12-05  Sandra Loosemore  <sandra@codesourcery.com>
      
      	gcc/
      	* config/nios2/linux.h (LINK_EH_SPEC): Define.
      
      	gcc/testsuite/
      	* g++.target/nios2/hello-pie.C: New.
      	* g++.target/nios2/nios2.exp: New.
      
      From-SVN: r279094
      Sandra Loosemore committed
    • Fix overflows in -fprofile-reorder-functions · 6d8fd122
      This patch fixes three sissues with -fprofile-reorder-functions:
      1) First is that tp_first_run is stored as 32bit integer while it can easily
         overflow (and does so during Firefox profiling).
      2) Second problem is that flag_profile_functions can
         not be tested w/o function context.
         The changes to expand_all_functions makes it to work on mixed units by
         first outputting all functions w/o -fprofile-reorder-function (or with no
         profile info) and then outputting in first_run order
      3) LTO partitioner was mixing up order by tp_first_run and by order.
         for no_reorder we definitly want to order via first, while for everything
         else we want to roder by second.
      
      I have also merged duplicated comparators since they are bit fragile into
      tp_first_run_node_cmp.
      
      I originaly started to look into this because of undefined symbols with
      Firefox PGO builds.  These symbols went away with fixing these bug but I am not
      quite sure how. it is possible that there is another problem in lto_blanced_map
      but even after reading the noreorder code few times carefuly I did not find it.
      Other explanation would be that our new qsort with broken comparator due to
      overflow can actualy remove some entries in the array, but that sounds bit
      crazy.
      
      Bootstrapped/regested x86_64-linux.
      
      	* cgraph.c (cgraph_node::dump): Make tp_first_run 64bit.
      	* cgraph.h (cgrpah_node): Likewise.
      	(tp_first_run_node_cmp): Deeclare.
      	* cgraphunit.c (node_cmp): Rename to ...
      	(tp_first_run_node_cmp): ... this; export; watch for 64bit overflows;
      	clear tp_first_run for no_reorder and !flag_profile_reorder_functions.
      	(expand_all_functions): Collect tp_first_run and normal functions to
      	two vectors so the other functions remain sorted. Do not check for
      	flag_profile_reorder_functions it is function local flag.
      	* profile.c (compute_value_histograms): Update tp_first_run printing.
      
      	* lto-partition.c (node_cmp): Turn into simple order comparsions.
      	(varpool_node_cmp): Remove.
      	(add_sorted_nodes): Use node_cmp.
      	(lto_balanced_map): Use tp_first_run_node_cmp.
      
      From-SVN: r279093
      Jan Hubicka committed
    • opts.c (common_handle_option): Do not clear ipa_reference for -fprofile-use. · a8d9d664
      	* opts.c (common_handle_option): Do not clear ipa_reference for
      	-fprofile-use.
      
      From-SVN: r279092
      Jan Hubicka committed
    • Fix tp_first_run update in split_function. · f514d019
      The value 0 in tp_first_run is special meaing that profile is unknown.  We
      should not set it to 1.
      
      	* ipa-split.c (split_function): Preserve 0 tp_first_run.
      
      From-SVN: r279091
      Jan Hubicka committed
    • Silence overactive sanity check with -fpartial-profile-training · a63574d7
      do_estimate_edge_time tests that cached and real values matches. This test
      is not working precisely for global profiles because of roundoff issues when
      profile of clones is subtracted from profile of offline body.  This is checked
      by presence of ipa counter. This breaks with partial profile training because
      we turn IPA profiles to local when they drop to 0.
      
      	* ipa-inline-analysis.c (do_estimate_edge_time): Silence overactive
      	sanity check.
      
      From-SVN: r279090
      Jan Hubicka committed
    • re PR tree-optimization/92860 (Global flags affected by -O settings are… · ad74bc8c
      re PR tree-optimization/92860 (Global flags affected by -O settings are clobbered by optimize attribute)
      
      	PR tree-optimization/92860
      	* common.opt (fprofile-reorder-functions, ftoplevel-reorder): Add
      	Optimization flag.
      
      From-SVN: r279089
      Jan Hubicka committed
    • Error on Associate with a program. · c212316b
      2018-12-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
          PR fortran/92780
          * resolve.c (resolve_assoc_var): Issue error if the associating
          entity is a program.
      
      2018-12-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
          PR fortran/92780
          * gfortran.dg/associate_50.f90: New test.
      
      From-SVN: r279088
      Thomas Koenig committed
    • re PR fortran/92764 (ICE in gfc_procedure_use) · f477062c
      2018-12-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
          PR fortran/92764
          * interface.c (gfc_procedure_use): Check for existence of derived
          component before using (twice).
      
      2018-12-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
          PR fortran/92764
          * gfortran.dg/interface_44.f90: New test.
      
      From-SVN: r279087
      Thomas Koenig committed
    • re PR fortran/92755 (ICE in gfc_dep_resolver, at fortran/dependency.c:2123) · c9942e5f
      2019-12-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/92755
      	* dependency.c (gfc_dep_resolver):  Move skipping of _data ref
      	into the loop.
      
      2019-12-08  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/92755
      	* gfortran.dg/dependency_57.f90: New test.
      
      From-SVN: r279086
      Thomas Koenig committed
    • Fix ia32 testsuite failures from C2x attributes on types · 9f5836a6
      	* g++.dg/cpp0x/gen-attrs-36.C: Update expected diagnostics.
      	* g++.dg/cpp0x/gen-attrs-37.C: Likewise.
      	* g++.dg/cpp0x/gen-attrs-8.C: Likewise.
      
      From-SVN: r279085
      Rainer Orth committed
    • Daily bump. · 241224b6
      From-SVN: r279084
      GCC Administrator committed