1. 24 Sep, 2018 4 commits
  2. 23 Sep, 2018 7 commits
    • re PR fortran/87397 (Clobbering intent(out) variables caused regression in OpenCoarrays testsuite) · 5986c254
      2018-09-23  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/87397
      	* gfc_conv_procedure_call: Do not add clobber on INTENT(OUT)
      	for variables having the dimension attribute.
      
      2018-09-23  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/87395
      	* gfortran.dg/intent_out_11.f90: New test.
      
      From-SVN: r264518
      Thomas Koenig committed
    • i386.h (enum reg_class): Rename MASK_REGS to ALL_MASK_REGS and MASK_EVEX_REGS to MASK_REGS. · d18cbbf6
      	* config/i386/i386.h (enum reg_class): Rename MASK_REGS to
      	ALL_MASK_REGS and MASK_EVEX_REGS to MASK_REGS.
      	(MASK_CLASS_P): Update for rename.
      	(MAYBE_MASK_CLASS_P): Ditto.
      	(REG_CLASS_NAMES): Update.
      	(REG_CLASS_CONTENT): Update.
      	* config/i386/i386.c (regclass_map): Update for MASK_REG
      	and ALL_MASK_REGS rename.
      	* config/i386/constraints.md (Yk): Update for rename.
      	(k): Ditto.
      
      	* config/i386/i386.h (enum reg_class): Remove
      	EVEX_SSE_REGS and MOD4_SSE_REGS.
      	(REG_CLASS_NAMES): Update.
      	(REG_CLASS_CONTENT): Update.
      	* config/i386/i386.c (regclass_map): Declare AVX-512 SSE
      	registers as ALL_SSE_REGS.
      	(ix86_additional_allocno_class_p): Remove.
      	(TARGET_ADDITIONAL_ALLOCNO_CLASS_P): Remove.
      	(ix86_register_priority): Lower priority of EVEX SSE registers.
      	Use IN_RANGE macro where appropriate.
      	(ix86_hard_regno_mode_ok): Merge AVX-5124FMAPS and
      	AVX-5124VNNIW checks.
      	(ix86_modes_tieable_p): Tie 512-bit SSE modes.
      	* config/i386/sse.md (avx5124fmaddps_4fmaddps)
      	(avx5124fmaddps_4fmaddps_mask, avx5124fmaddps_4fmaddps_maskz)
      	(avx5124fmaddps_4fmaddss, avx5124fmaddps_4fmaddss_mask)
      	(avx5124fmaddps_4fmaddss_maskz, avx5124fmaddps_4fnmaddps)
      	(avx5124fmaddps_4fnmaddps_mask, avx5124fmaddps_4fnmaddps_maskz)
      	(avx5124fmaddps_4fnmaddss, avx5124fmaddps_4fnmaddss_mask)
      	(avx5124fmaddps_4fnmaddss_maskz, avx5124vnniw_vp4dpwssd)
      	(avx5124vnniw_vp4dpwssd_mask, avx5124vnniw_vp4dpwssd_maskz)
      	(avx5124vnniw_vp4dpwssds, avx5124vnniw_vp4dpwssds_mask)
      	(avx5124vnniw_vp4dpwssds_maskz): Use "v" instead of "Yh" constraint.
      	* config/i386/constraints.md (Yh): Remove.
      
      	* config/i386/i386.c (regclass_map): Declare integer REX registers
              as GENERAL_REGS.
      
      From-SVN: r264516
      Uros Bizjak committed
    • using_exceptions.xml: Move boost.orgs link to https. · 839837b0
      	* doc/xml/manual/using_exceptions.xml: Move boost.orgs link to
      	https.
      
      From-SVN: r264515
      Gerald Pfeifer committed
    • Do array index calculations in gfc_array_index_type · 0f97b81b
      It was recently noticed that for a few of the coarray intrinsics array
      index calculations were done in integer_type_node instead of
      gfc_array_index_type.  This patch fixes this.
      
      Regtested on x86_64-pc-linux-gnu.
      
      gcc/fortran/ChangeLog:
      
      2018-09-23  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	* trans-expr.c (gfc_caf_get_image_index): Do array index
      	calculations in gfc_array_index_type.
      	* trans-intrinsic.c (conv_intrinsic_event_query): Likewise.
      	* trans-stmt.c (gfc_trans_lock_unlock): Likewise.
      	(gfc_trans_event_post_wait): Likewise.
      
      gcc/testsuite/ChangeLog:
      
      2018-09-23  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	* gfortran.dg/coarray_lib_alloc_4.f90: Fix scan patterns.
      	* gfortran.dg/coarray_lock_7.f90: Likewise.
      
      From-SVN: r264513
      Janne Blomqvist committed
    • re PR fortran/87395 (ICE in in lookup_field_for_decl with whizard) · ee7fb058
      2018-09-23  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/87395
      	* gfc_conv_procedure_call: Reformat comments slightly. Do not add
      	clobber on INTENT(OUT) for saved variables.
      
      2018-09-23  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/87395
      	* gfortran.dg/intent_out_10.f90: New test.
      
      From-SVN: r264512
      Thomas Koenig committed
    • Daily bump. · 5cdf09b0
      From-SVN: r264510
      GCC Administrator committed
  3. 22 Sep, 2018 5 commits
  4. 21 Sep, 2018 24 commits
    • re PR libstdc++/87135 ([C++17] unordered containers violate iterator validity requirements) · 9b297949
      2018-09-21  François Dumont  <fdumont@gcc.gnu.org>
      
      	PR libstdc++/87135
      	* src/c++11/hashtable_c++0x.cc (_Prime_rehash_policy::_M_next_bkt):
      	Use __builtin_floor to compute _M_next_resize.
      	* testsuite/23_containers/unordered_set/hash_policy/71181.cc: Adapt.
      	* testsuite/23_containers/unordered_set/hash_policy/prime_rehash.cc:
      	Adapt.
      
      From-SVN: r264494
      François Dumont committed
    • gimple-ssa-evrp.c (evrp_dom_walker::cleanup): Call vr_values::cleanup_edges_and_switches. · 35b66f30
      	* gimple-ssa-evrp.c (evrp_dom_walker::cleanup): Call
      	vr_values::cleanup_edges_and_switches.
      	* tree-vrp.c (to_remove_edges, to_update_switch_stmts): Moved into
      	vr_values class.
      	(identify_jump_threads): Remove EDGE_IGNORE handling.
      	(execute_vrp): Move handling of to_remove_edges and
      	to_update_switch_stmts into vr_values class member functions.
      	* tree-vrp.h (switch_update, to_remove_edges): Remove declarations.
      	(to_update_switch_stmts): Likewise.
      	* vr-values.c: Include cfghooks.h.
      	(vr_values::vr_values): Initialize to_remove_edges and
      	to_update_switch_stmts.
      	(vr_values::~vr_values): Verify to_remove_edges and
      	to_update_switch_stmts are empty.
      	(vr_values::simplify_switch_using_ranges): Set EDGE_IGNORE as needed.
      	(vr_values::cleanup_edges_and_switches): New member function.
      	* vr-values.h (vr_values): Add cleanup_edges_and_switches member
      	function.  Add new data members.
      
      	* gcc.dg/tree-ssa/vrp113.c: Disable EVRP.
      	* gcc.dg/tree-ssa/vrp120.c: New test.
      
      From-SVN: r264491
      Jeff Law committed
    • Document that attribute noreturn inhibits tail call optimization · 2e3f6531
      	PR middle-end/81035
      	* doc/extend.texi (Common Function Attributes): Mention that
      	noreturn suppresses tail call optimization.
      
      From-SVN: r264490
      Florian Weimer committed
    • PR c++/87372 - __func__ constexpr evaluation. · 38295573
      	* constexpr.c (maybe_constant_init_1): Pass false for strict down to
      	cxx_eval_outermost_constant_expr.
      
      	* g++.dg/cpp1y/func_constexpr2.C: New test.
      
      From-SVN: r264489
      Marek Polacek committed
    • Use vectored writes when reporting errors and warnings. · edaaef60
      When producing error and warning messages, libgfortran writes a
      message by using many system calls.  By using vectored writes (the
      POSIX writev function) when available and feasible to use without
      major surgery, we reduce the chance that output gets intermingled with
      other output to stderr.
      
      In practice, this is done by introducing a new function estr_writev in
      addition to the existing estr_write.  In order to use this, the old
      st_vprintf is removed, replaced by direct calls of vsnprintf, allowing
      more message batching.
      
      Regtested on x86_64-pc-linux-gnu.
      
      libgfortran/ChangeLog:
      
      2018-09-21  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	* config.h.in: Regenerated.
      	* configure: Regenerated.
      	* configure.ac: Check for writev and sys/uio.h.
      	* libgfortran.h: Include sys/uio.h.
      	(st_vprintf): Remove prototype.
      	(struct iovec): Define if not available.
      	(estr_writev): New prototype.
      	* runtime/backtrace.c (error_callback): Use estr_writev.
      	* runtime/error.c (ST_VPRINTF_SIZE): Remove.
      	(estr_writev): New function.
      	(st_vprintf): Remove.
      	(gf_vsnprintf): New function.
      	(ST_ERRBUF_SIZE): New macro.
      	(st_printf): Use vsnprintf.
      	(os_error): Use estr_writev.
      	(runtime_error): Use vsnprintf and estr_writev.
      	(runtime_error_at): Likewise.
      	(runtime_warning_at): Likewise.
      	(internal_error): Use estr_writev.
      	(generate_error_common): Likewise.
      	(generate_warning): Likewise.
      	(notify_std): Likewise.
      	* runtime/pause.c (pause_string): Likewise.
      	* runtime/stop.c (report_exception): Likewise.
      	(stop_string): Likewise.
      	(error_stop_string): Likewise.
      
      From-SVN: r264487
      Janne Blomqvist committed
    • re PR fortran/77325 (ICE in gimplify_var_or_parm_decl, at gimplify.c:1933) · 5b4dd015
      2018-09-21  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/77325
      	* trans-array.c (gfc_alloc_allocatable_for_assignment): If the
      	rhs has a charlen expression, convert that and use it.
      	* trans-expr.c (gfc_trans_assignment_1): The rse.pre for the
      	assignment of deferred character array vars to a realocatable
      	lhs should not be added to the exterior block since vector
      	indices, for example, generate temporaries indexed within the
      	loop.
      
      2018-09-21  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/77325
      	* gfortran.dg/deferred_character_22.f90 : New test.
      
      From-SVN: r264486
      Paul Thomas committed
    • re PR fortran/87359 (pointer being freed was not allocated) · fd876246
      2018-09-21  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/87359
      	* trans-stmt.c (gfc_trans_allocate): Don't deallocate alloc
      	components if must_finalize is set for expr3.
      
      2018-09-21  Paul Thomas  <pault@gcc.gnu.org>
      
      	PR fortran/87359
      	* gfortran.dg/finalize_33.f90 : New test.
      
      From-SVN: r264485
      Paul Thomas committed
    • Un-split hypot<long double> tests · ac51f07a
      Remove the hypot-long-double.cc file that used dg-xfail-run-if and
      simply use the lower tolerance for double if long double is not larger
      than double.
      
      	* testsuite/26_numerics/headers/cmath/hypot-long-double.cc: Remove.
      	* testsuite/26_numerics/headers/cmath/hypot.cc: Restore test for
      	long double unconditionally, but use lower tolerance when
      	sizeof(long double) == sizeof(double).
      
      From-SVN: r264483
      Jonathan Wakely committed
    • dumpfile.c: fix stray dump_loc output (PR tree-optimization/87309) · c8d1534e
      In r262891 I reimplemented this call:
        dump_printf_loc (MSG_NOTE, loc, "=== %s ===\n", name);
      in dump_begin_scope to use direct calls to dump_loc:
        if (dump_file)
          {
            dump_loc (MSG_NOTE, dump_file, loc.get_location_t ());
            fprintf (dump_file, "=== %s ===\n", name);
          }
      
        if (alt_dump_file)
         {
           dump_loc (MSG_NOTE, alt_dump_file, loc.get_location_t ());
           fprintf (alt_dump_file, "=== %s ===\n", name);
         }
      
      However ::dump_loc doesn't filter with pflags and alt_flags.
      
      This lead to stray output of the form:
        test.cpp:1:6: note: test.cpp:1:11: note:
      when using -fopt-info with "optimized" or "missed".
      
      This patch adds this missing filtering, eliminating the stray partial
      note output.
      
      gcc/ChangeLog:
      	PR tree-optimization/87309
      	* dumpfile.c (dump_context::begin_scope): Filter the dump_loc
      	calls with pflags and alt_flags.
      	(selftest::test_capture_of_dump_calls): Add test of interaction of
      	MSG_OPTIMIZED_LOCATIONS with AUTO_DUMP_SCOPE.
      
      gcc/testsuite/ChangeLog:
      	PR tree-optimization/87309
      	* gcc.dg/pr87309.c: New test.
      
      From-SVN: r264481
      David Malcolm committed
    • config.gcc: factorize and comment inclusion of vxworks-dummy.h · 52e18cdf
      2018-09-21  Olivier Hainque  <hainque@adacore.com>
      
      	* gcc/config.gcc: Factorize and comment inclusion of
      	vxworks-dummy.h.
      
      From-SVN: r264480
      Olivier Hainque committed
    • Leverage cacheTextUpdate for __clear_cache on VxWorks · 5244089f
      2018-09-21  Alexandre Oliva  <oliva@adacore.com>
      
      libgcc/
      	* config/vxcache.c: New file.  Provide __clear_cache, based on
      	the cacheTextUpdate VxWorks service.
      	* config/t-vxworks (LIB2ADD): Add vxcache.c.
      	(LIB2FUNCS_EXCLUDE): Add _clear_cache.
      	* config/t-vxwoks7: Likewise.
      gcc/
      	* config/vxworks.h (CLEAR_INSN_CACHE): #define to 1.
      
      From-SVN: r264479
      Olivier Hainque committed
    • Cleanup handling of libgcc and libc_internal for VxWorks · 8d0ef282
      2018-09-21  Olivier Hainque  <hainque@adacore.com>
      
      	* config/vxworks.h (VXWORKS_LIBGCC_SPEC): Remove -lc_internal.
      	Merge block comment with the one ahead of VXWORKS_LIBS_RTP. Then:
      	(VXWORKS_LIBS_RTP): Minor reordering.
      
      From-SVN: r264477
      Olivier Hainque committed
    • Leverage STARTFILE_PREFIX_SPEC for VxWorks7 · f509691b
      2018-09-21  Olivier Hainque  <hainque@adacore.com>
      
      	* config/vxworks.h (STARTFILE_PREFIX_SPEC): Define.
      	(VXWORKS_LIBS_DIR_RTP): Remove definition and use.
      
      From-SVN: r264476
      Olivier Hainque committed
    • Account for TARGET_VXWORKS64 in default SIZE/PTRDIFF_TYPE for vxworks · aa56e87e
      2018-09-21  Olivier Hainque  <hainque@adacore.com>
      
      	* config/vxworks.h (SIZE_TYPE): Account for TARGET_VXWORKS64.
      	(PTRDIFF_TYPE): Likewise.
      
      From-SVN: r264475
      Olivier Hainque committed
    • Introduce TARGET_VXWORKS64 for VxWorks 64bit ports · caa62834
      2018-09-21  Olivier Hainque  <hainque@adacore.com>
      
      	* config.gcc: Enforce def of TARGET_VXWORKS64 to 1 from
      	triplet, similar to support for VxWorks7.
      	* config/vxworks-dummy.h: Provide a default definition
      	of TARGET_VXWORKS64 to 0.
      
      From-SVN: r264474
      Olivier Hainque committed
    • Fix whitespace vs tab in entry · 43a0fd7d
      From-SVN: r264473
      Olivier Hainque committed
    • Move default #define TARGET_VXWORKS7 to vxworks-dummy.h · 05e73c1c
      2018-09-21  Olivier Hainque  <hainque@adacore.com>
      
      	* config/vxworks.h (TARGET_VXWORKS7): Move default definition ...
      	* config/vxworks-dummy.h: here.
      
      From-SVN: r264472
      Olivier Hainque committed
    • Prepend vxworks-dummy.h to tm_file for powerpc* · 5d03c108
      2018-09-20  Olivier Hainque  <hainque@adacore.com>
      
      	* config.gcc (powerpc*-*-*): Prepend vxworks-dummy.h to tm_file.
      
      From-SVN: r264471
      Olivier Hainque committed
    • [aarch64] Add HiSilicon tsv110 CPU support · 910f72e7
      This patch adds HiSilicon's an mcpu: tsv110, which supports v8_4A.
      It has been tested on aarch64 and no regressions from this patch.
      
      2018-09-21  Shaokun Zhang  <zhangshaokun@hisilicon.com>
                  Bo Zhou  <zbo.zhou@hisilicon.com>
      
      	* config/aarch64/aarch64-cores.def (tsv110): New CPU.
      	* config/aarch64/aarch64-tune.md: Regenerated.
      	* doc/invoke.texi (AArch64 Options/-mtune): Add "tsv110".
      	* config/aarch64/aarch64.c (tsv110_tunings): New tuning table.
      	* config/aarch64/aarch64-cost-tables.h: Add "tsv110" extra costs.
      
      Co-Authored-By: Bo Zhou <zbo.zhou@hisilicon.com>
      
      From-SVN: r264470
      Shaokun Zhang committed
    • Fix co-array allocation · cbd29d0e
      The Fortran front-end has a bug in which it uses "int" values for "size_t"
      parameters.  I don't know why this isn't problem for all 64-bit architectures,
      but GCN ends up with the data in the wrong argument register and/or stack slot,
      and bad things happen.
      
      This patch corrects the issue by setting the correct type.
      
      2018-09-21  Andrew Stubbs  <ams@codesourcery.com>
                  Kwok Cheung Yeung  <kcy@codesourcery.com>
      
      	gcc/fortran/
      	* trans-expr.c (gfc_trans_structure_assign): Ensure that the first
      	argument of a call to _gfortran_caf_register is of size_type_node.
      	* trans-intrinsic.c (conv_intrinsic_event_query): Convert computed
      	index to a size_type_node type.
      	* trans-stmt.c (gfc_trans_event_post_wait): Likewise.
      
      Co-Authored-By: Kwok Cheung Yeung <kcy@codesourcery.com>
      
      From-SVN: r264468
      Andrew Stubbs committed
    • Propagate address spaces to builtins. · b6895597
      At present, pointers passed to builtin functions, including atomic operators,
      are stripped of their address space properties.  This doesn't seem to be
      deliberate, it just omits to copy them.
      
      Not only that, but it forces pointer sizes to Pmode, which isn't appropriate
      for all address spaces.
      
      This patch attempts to correct both issues.  It works for GCN atomics and
      GCN OpenACC gang-private variables.
      
      2018-09-21  Andrew Stubbs  <ams@codesourcery.com>
      	    Julian Brown  <julian@codesourcery.com>
      
      	gcc/
      	* builtins.c (get_builtin_sync_mem): Handle address spaces.
      
      Co-Authored-By: Julian Brown <julian@codesourcery.com>
      
      From-SVN: r264467
      Andrew Stubbs committed
    • c-ada-spec.c: Include diagnostic.h. · 518196cb
      	* c-ada-spec.c: Include diagnostic.h.
      	(dump_ada_declaration) <RECORD_TYPE>: Issue a warning on packed layout.
      
      From-SVN: r264466
      Eric Botcazou committed
    • rs6000.c (rs6000_function_ok_for_sibcall): Return false if the call takes a static chain. · d5d94b80
      	* config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Return false
      	if the call takes a static chain.
      
      From-SVN: r264463
      Eric Botcazou committed