]> git.ipfire.org Git - thirdparty/gcc.git/log
thirdparty/gcc.git
6 years ago[PR87054] adjust testcase for 32-bit x86
aoliva [Mon, 24 Sep 2018 11:03:34 +0000 (11:03 +0000)] 
[PR87054] adjust testcase for 32-bit x86

The test assumed __int128 to be available whenever __SSE__ was
defined, but this assumption doesn't hold on 32-bit x86.  Fixed.

for  gcc/testsuite/ChangeLog

PR middle-end/87054
* gcc.dg/pr87054.c: Adjust for no __int128 on x86.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264526 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago PR ada/87396
ebotcazou [Mon, 24 Sep 2018 10:29:07 +0000 (10:29 +0000)] 
PR ada/87396
* fe.h (Get_Attribute_Definition_Clause): Use 'unsigned char' instead
of 'char' as the type of the second parameter.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264525 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago2018-09-24 Richard Biener <rguenther@suse.de>
rguenth [Mon, 24 Sep 2018 07:08:24 +0000 (07:08 +0000)] 
2018-09-24  Richard Biener  <rguenther@suse.de>

PR tree-optimization/63155
* tree-ssa-propagate.c (add_ssa_edge): Avoid adding PHIs to
the worklist when the edge of the respective argument isn't
executable.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264523 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoDaily bump.
gccadmin [Mon, 24 Sep 2018 00:16:34 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264522 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago2018-09-23 Thomas Koenig <tkoenig@gcc.gnu.org>
tkoenig [Sun, 23 Sep 2018 20:17:25 +0000 (20:17 +0000)] 
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264518 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago * config/i386/i386.h (enum reg_class): Rename MASK_REGS to
uros [Sun, 23 Sep 2018 15:37:30 +0000 (15:37 +0000)] 
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264516 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago * doc/xml/manual/using_exceptions.xml: Move boost.orgs link to
gerald [Sun, 23 Sep 2018 14:57:25 +0000 (14:57 +0000)] 
* doc/xml/manual/using_exceptions.xml: Move boost.orgs link to
https.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264515 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago * doc/service.texi (Service): Switch the fsf.org link to https.
gerald [Sun, 23 Sep 2018 14:41:54 +0000 (14:41 +0000)] 
* doc/service.texi (Service): Switch the fsf.org link to https.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264514 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoDo array index calculations in gfc_array_index_type
jb [Sun, 23 Sep 2018 11:03:38 +0000 (11:03 +0000)] 
Do array index calculations in gfc_array_index_type

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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264513 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago2018-09-23 Thomas Koenig <tkoenig@gcc.gnu.org>
tkoenig [Sun, 23 Sep 2018 10:52:27 +0000 (10:52 +0000)] 
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264512 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoDaily bump.
gccadmin [Sun, 23 Sep 2018 00:16:19 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264510 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago2018-09-22 Thomas Koenig <tkoenig@gcc.gnu.org>
tkoenig [Sat, 22 Sep 2018 18:44:01 +0000 (18:44 +0000)] 
2018-09-22  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/41453
* trans.h (gfc_conv_expr_reference): Add optional argument
add_clobber to prototype.
(gfc_conv_procedure_call):  Set add_clobber argument to
gfc_conv_procedure_reference to true for scalar, INTENT(OUT),
non-pointer, non-allocatable, non-dummy variables whose type
is neither BT_CHARACTER, BT_DERIVED or BT_CLASS, but only if
the procedure is not elemental.
* trans-expr.c (gfc_conv_procedure_reference): Add clobber
statement before call if add_clobber is set.

2018-09-22  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/41453
* gfortran.dg/intent_optimize_2.f90: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264506 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago2018-09-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
jvdelisle [Sat, 22 Sep 2018 17:49:19 +0000 (17:49 +0000)] 
2018-09-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR fortran/87318
* gfortran.dg/dtio_1.f90: Update test to valid code.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264505 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago PR target/86798
jasonwucj [Sat, 22 Sep 2018 12:30:50 +0000 (12:30 +0000)] 
PR target/86798
* config/nds32/nds32.c (TARGET_HAVE_SPECULATION_SAFE_VALUE):
Define to speculation_safe_value_not_needed.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264503 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago2018-09-22 Paul Thomas <pault@gcc.gnu.org>
pault [Sat, 22 Sep 2018 10:21:25 +0000 (10:21 +0000)] 
2018-09-22  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/85603
* trans-array.c (gfc_alloc_allocatable_for_assignment): Test
the charlen backend_decl before using the VAR_P macro.

2018-09-22  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/85603
* gfortran.dg/deferred_character_23.f90 : New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264502 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoDaily bump.
gccadmin [Sat, 22 Sep 2018 00:16:49 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264500 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago2018-09-21 François Dumont <fdumont@gcc.gnu.org>
fdumont [Fri, 21 Sep 2018 20:39:07 +0000 (20:39 +0000)] 
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264494 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago * gimple-ssa-evrp.c (evrp_dom_walker::cleanup): Call
law [Fri, 21 Sep 2018 20:00:23 +0000 (20:00 +0000)] 
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264491 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoDocument that attribute noreturn inhibits tail call optimization
fw [Fri, 21 Sep 2018 19:49:36 +0000 (19:49 +0000)] 
Document that attribute noreturn inhibits tail call optimization

PR middle-end/81035
* doc/extend.texi (Common Function Attributes): Mention that
noreturn suppresses tail call optimization.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264490 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago PR c++/87372 - __func__ constexpr evaluation.
mpolacek [Fri, 21 Sep 2018 18:45:59 +0000 (18:45 +0000)] 
PR c++/87372 - __func__ constexpr evaluation.
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264489 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoUse vectored writes when reporting errors and warnings.
jb [Fri, 21 Sep 2018 18:12:59 +0000 (18:12 +0000)] 
Use vectored writes when reporting errors and warnings.

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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264487 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago2018-09-21 Paul Thomas <pault@gcc.gnu.org>
pault [Fri, 21 Sep 2018 17:33:29 +0000 (17:33 +0000)] 
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264486 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago2018-09-21 Paul Thomas <pault@gcc.gnu.org>
pault [Fri, 21 Sep 2018 17:26:23 +0000 (17:26 +0000)] 
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264485 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago * constexpr.c (cxx_eval_outermost_constant_expr): Update comment.
jason [Fri, 21 Sep 2018 17:22:20 +0000 (17:22 +0000)] 
* constexpr.c (cxx_eval_outermost_constant_expr): Update comment.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264484 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoUn-split hypot<long double> tests
redi [Fri, 21 Sep 2018 15:36:53 +0000 (15:36 +0000)] 
Un-split hypot<long double> tests

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).

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264483 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agodumpfile.c: fix stray dump_loc output (PR tree-optimization/87309)
dmalcolm [Fri, 21 Sep 2018 14:17:07 +0000 (14:17 +0000)] 
dumpfile.c: fix stray dump_loc output (PR tree-optimization/87309)

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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264481 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoconfig.gcc: factorize and comment inclusion of vxworks-dummy.h
hainque [Fri, 21 Sep 2018 13:12:36 +0000 (13:12 +0000)] 
config.gcc: factorize and comment inclusion of vxworks-dummy.h

2018-09-21  Olivier Hainque  <hainque@adacore.com>

* gcc/config.gcc: Factorize and comment inclusion of
vxworks-dummy.h.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264480 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoLeverage cacheTextUpdate for __clear_cache on VxWorks
hainque [Fri, 21 Sep 2018 13:09:51 +0000 (13:09 +0000)] 
Leverage cacheTextUpdate for __clear_cache on VxWorks

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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264479 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoCleanup handling of libgcc and libc_internal for VxWorks
hainque [Fri, 21 Sep 2018 13:05:19 +0000 (13:05 +0000)] 
Cleanup handling of libgcc and libc_internal for VxWorks

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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264477 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoLeverage STARTFILE_PREFIX_SPEC for VxWorks7
hainque [Fri, 21 Sep 2018 13:03:25 +0000 (13:03 +0000)] 
Leverage STARTFILE_PREFIX_SPEC for VxWorks7

2018-09-21  Olivier Hainque  <hainque@adacore.com>

* config/vxworks.h (STARTFILE_PREFIX_SPEC): Define.
(VXWORKS_LIBS_DIR_RTP): Remove definition and use.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264476 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoAccount for TARGET_VXWORKS64 in default SIZE/PTRDIFF_TYPE for vxworks
hainque [Fri, 21 Sep 2018 13:01:31 +0000 (13:01 +0000)] 
Account for TARGET_VXWORKS64 in default SIZE/PTRDIFF_TYPE for vxworks

2018-09-21  Olivier Hainque  <hainque@adacore.com>

* config/vxworks.h (SIZE_TYPE): Account for TARGET_VXWORKS64.
(PTRDIFF_TYPE): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264475 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoIntroduce TARGET_VXWORKS64 for VxWorks 64bit ports
hainque [Fri, 21 Sep 2018 12:43:46 +0000 (12:43 +0000)] 
Introduce TARGET_VXWORKS64 for VxWorks 64bit ports

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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264474 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoFix whitespace vs tab in entry
hainque [Fri, 21 Sep 2018 12:39:51 +0000 (12:39 +0000)] 
Fix whitespace vs tab in entry

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264473 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoMove default #define TARGET_VXWORKS7 to vxworks-dummy.h
hainque [Fri, 21 Sep 2018 12:38:57 +0000 (12:38 +0000)] 
Move default #define TARGET_VXWORKS7 to vxworks-dummy.h

2018-09-21  Olivier Hainque  <hainque@adacore.com>

* config/vxworks.h (TARGET_VXWORKS7): Move default definition ...
* config/vxworks-dummy.h: here.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264472 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoPrepend vxworks-dummy.h to tm_file for powerpc*
hainque [Fri, 21 Sep 2018 12:35:55 +0000 (12:35 +0000)] 
Prepend vxworks-dummy.h to tm_file for powerpc*

2018-09-20  Olivier Hainque  <hainque@adacore.com>

* config.gcc (powerpc*-*-*): Prepend vxworks-dummy.h to tm_file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264471 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago[aarch64] Add HiSilicon tsv110 CPU support
ktkachov [Fri, 21 Sep 2018 12:25:12 +0000 (12:25 +0000)] 
[aarch64] Add HiSilicon tsv110 CPU support

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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264470 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoFix co-array allocation
ams [Fri, 21 Sep 2018 11:25:54 +0000 (11:25 +0000)] 
Fix co-array allocation

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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264468 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoPropagate address spaces to builtins.
ams [Fri, 21 Sep 2018 11:25:39 +0000 (11:25 +0000)] 
Propagate address spaces to builtins.

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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264467 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago * c-ada-spec.c: Include diagnostic.h.
ebotcazou [Fri, 21 Sep 2018 10:11:37 +0000 (10:11 +0000)] 
* c-ada-spec.c: Include diagnostic.h.
(dump_ada_declaration) <RECORD_TYPE>: Issue a warning on packed layout.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264466 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Return false
ebotcazou [Fri, 21 Sep 2018 10:01:16 +0000 (10:01 +0000)] 
* config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Return false
if the call takes a static chain.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264463 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoRemove arc profile histogram in non-LTO mode.
marxin [Fri, 21 Sep 2018 08:41:17 +0000 (08:41 +0000)] 
Remove arc profile histogram in non-LTO mode.

2018-09-21  Martin Liska  <mliska@suse.cz>

* auto-profile.c (autofdo_source_profile::read): Do not
set sum_all.
(read_profile): Do not add working sets.
(read_autofdo_file): Remove sum_all.
(afdo_callsite_hot_enough_for_early_inline): Remove const
qualifier.
* coverage.c (struct counts_entry): Remove gcov_summary.
(read_counts_file): Read new GCOV_TAG_OBJECT_SUMMARY,
do not support GCOV_TAG_PROGRAM_SUMMARY.
(get_coverage_counts): Remove summary and expected
arguments.
* coverage.h (get_coverage_counts): Likewise.
* doc/gcov-dump.texi: Remove -w option.
* gcov-dump.c (dump_working_sets): Remove.
(main): Do not support '-w' option.
(print_usage): Likewise.
(tag_summary): Likewise.
* gcov-io.c (gcov_write_summary): Do not dump
histogram.
(gcov_read_summary): Likewise.
(gcov_histo_index): Remove.
(gcov_histogram_merge): Likewise.
(compute_working_sets): Likewise.
* gcov-io.h (GCOV_TAG_OBJECT_SUMMARY): Mark
it not obsolete.
(GCOV_TAG_PROGRAM_SUMMARY): Mark it obsolete.
(GCOV_TAG_SUMMARY_LENGTH): Adjust.
(GCOV_HISTOGRAM_SIZE): Remove.
(GCOV_HISTOGRAM_BITVECTOR_SIZE): Likewise.
(struct gcov_summary): Simplify rapidly just
to runs and sum_max fields.
(gcov_histo_index): Remove.
(NUM_GCOV_WORKING_SETS): Likewise.
(compute_working_sets): Likewise.
* gcov-tool.c (print_overlap_usage_message): Remove
trailing empty line.
* gcov.c (read_count_file): Read GCOV_TAG_OBJECT_SUMMARY.
(output_lines): Remove program related line.
* ipa-profile.c (ipa_profile): Do not consider GCOV histogram.
* lto-cgraph.c (output_profile_summary): Do not stream GCOV
histogram.
(input_profile_summary): Do not read it.
(merge_profile_summaries): And do not merge it.
(input_symtab): Do not call removed function.
* modulo-sched.c (sms_schedule): Do not print sum_max.
* params.def (HOT_BB_COUNT_FRACTION): Reincarnate param that was
removed when histogram method was invented.
(HOT_BB_COUNT_WS_PERMILLE): Mention that it's used only in LTO
mode.
* postreload-gcse.c (eliminate_partially_redundant_load): Fix
GCOV coding style.
* predict.c (get_hot_bb_threshold): Use HOT_BB_COUNT_FRACTION
and dump selected value.
* profile.c (add_working_set): Remove.
(get_working_sets): Likewise.
(find_working_set): Likewise.
(get_exec_counts): Do not work with working sets.
(read_profile_edge_counts): Do not inform as sum_max is removed.
(compute_branch_probabilities): Likewise.
(compute_value_histograms): Remove argument for call of
get_coverage_counts.
* profile.h: Do not make gcov_summary const.
2018-09-21  Martin Liska  <mliska@suse.cz>

* libgcov-driver.c (crc32_unsigned): Remove.
(gcov_histogram_insert): Likewise.
(gcov_compute_histogram): Likewise.
(compute_summary): Simplify rapidly.
(merge_one_data): Do not handle PROGRAM_SUMMARY tag.
(merge_summary): Rapidly simplify.
(dump_one_gcov): Ignore gcov_summary.
(gcov_do_dump): Do not handle program summary, it's not
used.
* libgcov-util.c (tag_summary): Remove.
(read_gcda_finalize): Fix coding style.
(read_gcda_file): Initialize curr_object_summary.
(compute_summary): Remove.
(calculate_overlap): Remove settings of run_max.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264462 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago[NDS32] Sync glibc and kernel structure, all use _rt_sigframe.
jasonwucj [Fri, 21 Sep 2018 08:39:35 +0000 (08:39 +0000)] 
[NDS32] Sync glibc and kernel structure, all use _rt_sigframe.

libgcc/
* config/nds32/linux-unwind.h (struct _rt_sigframe): Use struct
ucontext_t type instead.
(nds32_fallback_frame_state): Remove struct _sigframe statement.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264461 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago[NDS32] Add t-nds32-glibc file.
jasonwucj [Fri, 21 Sep 2018 08:11:40 +0000 (08:11 +0000)] 
[NDS32] Add t-nds32-glibc file.

libgcc/
* config/nds32/t-nds32-glibc: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264460 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago[NDS32] Turn off default option -mtlsdesc-trampoline.
jasonwucj [Fri, 21 Sep 2018 07:35:49 +0000 (07:35 +0000)] 
[NDS32] Turn off default option -mtlsdesc-trampoline.

gcc/
* config.gcc (nds32*-*-*): Set TARGET_DEFAULT_TLSDESC_TRAMPOLINE=0.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264459 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago PR tree-optimization/86990
ebotcazou [Fri, 21 Sep 2018 07:28:42 +0000 (07:28 +0000)] 
PR tree-optimization/86990
* gimple-ssa-store-merging.c (imm_store_chain_info:coalesce_immediate):
Check that the entire merged store group is made of constants only for
overlapping stores.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264458 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoDaily bump.
gccadmin [Fri, 21 Sep 2018 00:17:01 +0000 (00:17 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264456 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago PR c++/87109 - wrong ctor with maybe-rvalue semantics.
mpolacek [Thu, 20 Sep 2018 23:20:19 +0000 (23:20 +0000)] 
PR c++/87109 - wrong ctor with maybe-rvalue semantics.
* call.c (build_user_type_conversion_1): Refine the maybe-rvalue
check to only return if we're converting the return value to a base
class.

* g++.dg/cpp0x/ref-qual19.C: Adjust the expected results.
* g++.dg/cpp0x/ref-qual20.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264452 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoFix and document -r option
jsm28 [Thu, 20 Sep 2018 19:38:24 +0000 (19:38 +0000)] 
Fix and document -r option

The option has existed and been working for years,
make sure it implies the right extra options, and list
it in the documentation.

2018-09-20  Allan Sandfeld Jensen  <allan.jensen@qt.io>

gcc/
* gcc.c (LINK_COMMAND_SPEC): Handle -r like -nostdlib.
(VTABLE_VERIFICATION_SPEC): Likewise.
(SANITIZER_EARLY_SPEC): Likewise.
(SANITIZER_SPEC): Likewise.
* config/darwin.h (LINK_COMMAND_SPEC): Likewise.
* doc/invoke.texi (Link Options): Document -r.

gcc/cp/
* g++spec.c (lang_specific_driver): Handle -r like -nostdlib.

gcc/fortran/
* gfortranspec.c (lang_specific_driver): Handle -r like -nostdlib.

gcc/go/
* gospec.c (lang_specific_driver): Handle -r like -nostdlib.

gcc/testsuite/
* g++.dg/ipa/pr64059.C: Removed now redundant -nostdlib.
* g++.dg/lto/20081109-1_0.C: Likewise.
* g++.dg/lto/20090302_0.C: Likewise.
* g++.dg/lto/pr45621_0.C: Likewise.
* g++.dg/lto/pr60567_0.C: Likewise.
* g++.dg/lto/pr62026.C: Likewise.
* gcc.dg/lto/pr45736_0.c: Likewise.
* gcc.dg/lto/pr52634_0.c: Likewise.
* gfortran.dg/lto/20091016-1_0.f90: Likewise.
* gfortran.dg/lto/pr79108_0.f90: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264451 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago[PR87054] fix unaligned access
aoliva [Thu, 20 Sep 2018 19:34:44 +0000 (19:34 +0000)] 
[PR87054] fix unaligned access

Building an ADDR_EXPR uses the canonical type to build the pointer
type, but then, as we dereference it, we lose track of lax alignment
known to apply to the dereferenced object.  This might not be a
problem in general, but it is when the compiler implicitly introduces
address taking and dereferencing, as it does for asm statements, and
as it may do in some loop optimizations.

From: Richard Biener <rguenther@suse.de>
for  gcc/ChangeLog

PR middle-end/87054
* gimplify.c (gimplify_expr): Retain alignment of
addressable lvalue in dereference.

From: Alexandre Oliva <oliva@adacore.com>
for  gcc/testsuite/ChangeLog

PR middle-end/87054
* gcc.dg/pr87054.c: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264450 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago[PR87013] check for .loc is_stmt support in the assembler
aoliva [Thu, 20 Sep 2018 19:34:30 +0000 (19:34 +0000)] 
[PR87013] check for .loc is_stmt support in the assembler

Back when we had the logic to output is_stmt but never exercised it,
it didn't matter that we didn't test for assembler support for it.
But there are still assemblers out there that do not support it, so
now that we enable the formerly latent is_stmt logic, we'd better make
sure the assembler can deal with it.

for  gcc/ChangeLog

PR bootstrap/87013
* configure.ac: Check for .loc is_stmt support.
* configure, config.in: Rebuilt.
* dwarf2out.c (dwarf2out_source_line): Skip is_stmt
if not supported.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264449 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago2018-09-20 Janus Weil <janus@gcc.gnu.org>
janus [Thu, 20 Sep 2018 19:33:05 +0000 (19:33 +0000)] 
2018-09-20  Janus Weil  <janus@gcc.gnu.org>

* gfortran.h (gfc_str_startswith): New macro.
* decl.c (variable_decl, gfc_match_end): Use it.
* iresolve.c (is_trig_resolved): Ditto.
* module.c (load_omp_udrs, read_module): Ditto.
* options.c (gfc_handle_runtime_check_option): Ditto.
* primary.c (match_arg_list_function): Ditto.
* trans-decl.c (gfc_get_symbol_decl): Ditto.
* trans-expr.c (gfc_conv_procedure_call): Ditto.
* interface.c (dtio_op): Replace strncmp by strcmp.
* resolve.c (resolve_actual_arglist, resolve_function): Ditto.
* trans-expr.c (conv_arglist_function): Ditto.
* trans-intrinsic.c (gfc_conv_ieee_arithmetic_function): Replace macro
STARTS_WITH by gfc_str_startswith.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264448 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agors6000: Remove -misel={yes,no}
segher [Thu, 20 Sep 2018 19:04:42 +0000 (19:04 +0000)] 
rs6000: Remove -misel={yes,no}

These options have been deprecated for many years, supplanted by -misel
and -mno-isel.  This patch finally removes them.

* config/rs6000/rs6000.opt (misel=no, misel=yes): Delete.
* doc/invoke.texi (RS/6000 and PowerPC Options): Delete -misel=yes and
-misel=no.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264447 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago[OpenACC] handle missing OMP_LIST_ clauses in fortran's parse tree debugger
cesar [Thu, 20 Sep 2018 18:42:57 +0000 (18:42 +0000)] 
[OpenACC] handle missing OMP_LIST_ clauses in fortran's parse tree debugger

gcc/fortran/
* dump-parse-tree.c (show_omp_clauses): Add missing omp list_types
and reorder the switch cases to match the enum in gfortran.h.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264446 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agors6000: Delete VECTOR_OTHER
segher [Thu, 20 Sep 2018 17:21:54 +0000 (17:21 +0000)] 
rs6000: Delete VECTOR_OTHER

It's never used.

* config/rs6000/rs6000-opts.h (enum rs6000_vector): Delete
VECTOR_OTHER.
* config/rs6000/rs6000.c (rs6000_debug_vector_unit): Delete
case VECTOR_OTHER.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264444 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago2018-09-20 Christophe Lyon <christophe.lyon@linaro.org>
clyon [Thu, 20 Sep 2018 17:09:31 +0000 (17:09 +0000)] 
2018-09-20  Christophe Lyon  <christophe.lyon@linaro.org>

* testsuite/26_numerics/headers/cmath/hypot-long-double.cc: Skip
on arm*.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264443 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago PR c++/87075 - ICE with constexpr array initialization.
jason [Thu, 20 Sep 2018 17:09:19 +0000 (17:09 +0000)] 
PR c++/87075 - ICE with constexpr array initialization.

My patch of 2016-08-26 to avoid calling a trivial default constructor
introduced TARGET_EXPRs initialized with void_node to express trivial
initialization.  But when this shows up in a VEC_INIT_EXPR, we weren't
prepared to handle it.  Fixed by handling it explicitly in
cxx_eval_vec_init_1.

* constexpr.c (cxx_eval_vec_init_1): Handle trivial initialization.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264442 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago * doc/invoke.texi: Add -Wno-init-list-lifetime to C++ Language Options.
mpolacek [Thu, 20 Sep 2018 13:52:25 +0000 (13:52 +0000)] 
* doc/invoke.texi: Add -Wno-init-list-lifetime to C++ Language Options.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264441 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoFix PEELING_FOR_NITERS calculation (PR 87288)
rsandifo [Thu, 20 Sep 2018 12:58:23 +0000 (12:58 +0000)] 
Fix PEELING_FOR_NITERS calculation (PR 87288)

PEELING_FOR_GAPS now means "peel one iteration for the epilogue",
in much the same way that PEELING_FOR_ALIGNMENT > 0 means
"peel that number of iterations for the prologue".  We weren't
taking this into account when deciding whether we needed to peel
further scalar iterations beyond the iterations for "gaps" and
"alignment".

Only the first test failed before the patch.  The other two
are just for completeness.

2018-09-20  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
PR tree-optimization/87288
* tree-vect-loop.c (vect_analyze_loop_2): Take PEELING_FOR_GAPS
into account when determining PEELING_FOR_NITERS.

gcc/testsuite/
PR tree-optimization/87288
* gcc.dg/vect/pr87288-1.c: New test.
* gcc.dg/vect/pr87288-2.c: Likewise,
* gcc.dg/vect/pr87288-3.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264440 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoAdd missing alignment checks in epilogue loop vectorisation (PR 86877)
rsandifo [Thu, 20 Sep 2018 12:58:16 +0000 (12:58 +0000)] 
Add missing alignment checks in epilogue loop vectorisation (PR 86877)

Epilogue loop vectorisation skips vect_enhance_data_refs_alignment
since it doesn't make sense to version or peel the epilogue loop
(that will already have happened for the main loop).  But this means
that it also fails to check whether the accesses are suitably aligned
for the new vector subarch.

We don't seem to carry alignment information from the (potentially
peeled or versioned) main loop to the epilogue loop, which would be
good to fix at some point.  I think we want this patch regardless,
since there's no guarantee that the alignment requirements are the
same for every subarch.

2018-09-20  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
PR tree-optimization/86877
* tree-vect-loop.c (vect_analyze_loop_2): Call
vect_verify_datarefs_alignment.

gcc/testsuite/
PR tree-optimization/86877
* gfortran.dg/vect/vect-8-epilogue.F90: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264439 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago Add -Wclass-conversion.
mpolacek [Thu, 20 Sep 2018 01:56:58 +0000 (01:56 +0000)] 
Add -Wclass-conversion.
* c.opt (Wclass-conversion): New.

* decl.c (grok_op_properties): Change a warning from -Wconversion to
-Wclass-conversion.  Make it print the types.

* doc/invoke.texi: Document -Wclass-conversion.

* g++.dg/conversion/op4.C: Add dg-warning.
* g++.dg/warn/Wclass-conversion1.C: New test.
* g++.dg/warn/Wclass-conversion2.C: New test.
* g++.dg/warn/Wconversion5.C: Remove file.
* g++.dg/warn/conversion-function-1.C: Use -Wno-class-converison.
* g++.old-deja/g++.bugs/900215_01.C: Adjust dg-warning.
* g++.old-deja/g++.jason/conversion5.C: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264438 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago * config/pa/pa.c (pa_adjust_priority): Delete.
danglin [Thu, 20 Sep 2018 01:46:28 +0000 (01:46 +0000)] 
* config/pa/pa.c (pa_adjust_priority): Delete.
(TARGET_SCHED_ADJUST_PRIORITY): Delete define.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264437 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago * config/pa/pa.md (atomic_storeqi): Restore deleted expander.
danglin [Thu, 20 Sep 2018 01:04:34 +0000 (01:04 +0000)] 
* config/pa/pa.md (atomic_storeqi): Restore deleted expander.
(atomic_storehi): Likewise.
(atomic_storesi): Likewise.
(atomic_loaddi): Restore compare and swap exchange loop code.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264433 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoDaily bump.
gccadmin [Thu, 20 Sep 2018 00:16:38 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264432 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago/cp
paolo [Wed, 19 Sep 2018 19:35:19 +0000 (19:35 +0000)] 
/cp
2018-09-19  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/87324
* parser.c (cp_parser_initializer_list): Assign error_mark_node
to the index upon error.

/testsuite
2018-09-19  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/87324
* g++.dg/cpp0x/desig5.C: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264428 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago2018-09-19 Paul Thomas <pault@gcc.gnu.org>
pault [Wed, 19 Sep 2018 17:44:36 +0000 (17:44 +0000)] 
2018-09-19  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/84109
* trans-expr.c (gfc_trans_assignment_1): The rse.pre for the
assignment of deferred character intrinsic elemental function
results to a realocatable lhs must not be added to the exterior
block if they are array valued but must go to the loop body.

2018-09-19  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/84109
* gfortran.dg/elemental_function_3.f90 : New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264427 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agocombine: Use correct mode in new comparison (PR86902)
segher [Wed, 19 Sep 2018 17:38:11 +0000 (17:38 +0000)] 
combine: Use correct mode in new comparison (PR86902)

This code in try_combine uses the wrong mode.  This fails (with RTL
checking) in trunk, but not in any released branches.

PR rtl-optimization/86902
* combine.c (try_combine): When changing the CC mode used, don't change
an unrelated mode in other_insn to that new CC mode.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264426 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago PR c++/87357 - missing -Wconversion warning
mpolacek [Wed, 19 Sep 2018 16:59:51 +0000 (16:59 +0000)] 
PR c++/87357 - missing -Wconversion warning
* decl.c (grok_op_properties): Remove diagnostic parts mentioning
a conversion to a reference to void.  Use
same_type_ignoring_top_level_qualifiers_p rather than comparing types
directly.

* g++.dg/warn/Wconversion5.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264425 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agodump_printf: use %T and %G throughout
dmalcolm [Wed, 19 Sep 2018 16:18:06 +0000 (16:18 +0000)] 
dump_printf: use %T and %G throughout

As promised at Cauldron, this patch uses %T and %G with dump_printf and
dump_printf_loc calls to eliminate calls to

  dump_generic_expr (MSG_*, arg, TDF_SLIM)  (via %T)

and

  dump_gimple_stmt (MSG_*, TDF_SLIM, stmt, 0)  (via %G)

throughout the middle-end, simplifying numerous dump callsites.

A few calls to these functions didn't match the above pattern; I didn't
touch these.  I wasn't able to use %E anywhere.

gcc/ChangeLog:
* tree-data-ref.c (runtime_alias_check_p): Use formatted printing
with %T in place of calls to dump_generic_expr.
(prune_runtime_alias_test_list): Likewise.
(create_runtime_alias_checks): Likewise.
* tree-vect-data-refs.c (vect_check_nonzero_value): Likewise.
(vect_analyze_data_ref_dependence): Likewise.
(vect_slp_analyze_data_ref_dependence): Likewise.
(vect_record_base_alignment): Likewise.  Use %G in place of call
to dump_gimple_stmt.
(vect_compute_data_ref_alignment): Likewise.
(verify_data_ref_alignment): Likewise.
(vect_find_same_alignment_drs): Likewise.
(vect_analyze_group_access_1): Likewise.
(vect_analyze_data_ref_accesses): Likewise.
(dependence_distance_ge_vf): Likewise.
(dump_lower_bound): Likewise.
(vect_prune_runtime_alias_test_list): Likewise.
(vect_find_stmt_data_reference): Likewise.
(vect_analyze_data_refs): Likewise.
(vect_create_addr_base_for_vector_ref): Likewise.
(vect_create_data_ref_ptr): Likewise.
* tree-vect-loop-manip.c (vect_set_loop_condition): Likewise.
(vect_can_advance_ivs_p): Likewise.
(vect_update_ivs_after_vectorizer): Likewise.
(vect_gen_prolog_loop_niters): Likewise.
(vect_prepare_for_masked_peels): Likewise.
* tree-vect-loop.c (vect_determine_vf_for_stmt): Likewise.
(vect_determine_vectorization_factor): Likewise.
(vect_is_simple_iv_evolution): Likewise.
(vect_analyze_scalar_cycles_1): Likewise.
(vect_analyze_loop_operations): Likewise.
(report_vect_op): Likewise.
(vect_is_slp_reduction): Likewise.
(check_reduction_path): Likewise.
(vect_is_simple_reduction): Likewise.
(vect_create_epilog_for_reduction): Likewise.
(vect_finalize_reduction:): Likewise.
(vectorizable_induction): Likewise.
(vect_transform_loop_stmt): Likewise.
(vect_transform_loop): Likewise.
(optimize_mask_stores): Likewise.
* tree-vect-patterns.c (vect_pattern_detected): Likewise.
(vect_split_statement): Likewise.
(vect_recog_over_widening_pattern): Likewise.
(vect_recog_average_pattern): Likewise.
(vect_determine_min_output_precision_1): Likewise.
(vect_determine_precisions_from_range): Likewise.
(vect_determine_precisions_from_users): Likewise.
(vect_mark_pattern_stmts): Likewise.
(vect_pattern_recog_1): Likewise.
* tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
(vect_record_max_nunits): Likewise.
(vect_build_slp_tree_1): Likewise.
(vect_build_slp_tree_2): Likewise.
(vect_print_slp_tree): Likewise.
(vect_analyze_slp_instance): Likewise.
(vect_detect_hybrid_slp_stmts): Likewise.
(vect_detect_hybrid_slp_1): Likewise.
(vect_slp_analyze_operations): Likewise.
(vect_slp_analyze_bb_1): Likewise.
(vect_transform_slp_perm_load): Likewise.
(vect_schedule_slp_instance): Likewise.
* tree-vect-stmts.c (vect_mark_relevant): Likewise.
(vect_mark_stmts_to_be_vectorized): Likewise.
(vect_init_vector_1): Likewise.
(vect_get_vec_def_for_operand): Likewise.
(vect_finish_stmt_generation_1): Likewise.
(vect_check_load_store_mask): Likewise.
(vectorizable_call): Likewise.
(vectorizable_conversion): Likewise.
(vectorizable_operation): Likewise.
(vectorizable_load): Likewise.
(vect_analyze_stmt): Likewise.
(vect_is_simple_use): Likewise.
(vect_get_vector_types_for_stmt): Likewise.
(vect_get_mask_type_for_stmt): Likewise.
* tree-vectorizer.c (increase_alignment): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264424 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoRemove constant vec_select restriction.
ams [Wed, 19 Sep 2018 13:25:42 +0000 (13:25 +0000)] 
Remove constant vec_select restriction.

The vec_select operator is documented to require a const_int for the lane
selector operand, but GCN has an instruction that can select the lane at
runtime, so it seems reasonable to remove this restriction.

This patch simply replaces assertions that the operand is constant with early
exits from the optimizers.  I think it's reasonable that vec_select with a
non-constant operand cannot be optimized, yet.

Also included is the necessary documentation tweak.

2018-09-19  Andrew Stubbs  <ams@codesourcery.com>

gcc/
* doc/rtl.texi: Adjust vec_select description.
* simplify-rtx.c (simplify_binary_operation_1): Allow VEC_SELECT to use
non-constant selectors.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264423 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoDon't use __glibcxx_assert to check class invariants
redi [Wed, 19 Sep 2018 11:20:51 +0000 (11:20 +0000)] 
Don't use __glibcxx_assert to check class invariants

Assertions should be used to check preconditions that users must meet,
not to check whether the implementation is correct.

* include/bits/regex_automaton.tcc (_StateSeq<_TraitsT>::_M_clone()):
Remove __glibcxx_assert statements and use map::find instead of
map::operator[].

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264422 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago[AARCH64] Use STLUR for atomic_store
matmal01 [Wed, 19 Sep 2018 10:24:59 +0000 (10:24 +0000)] 
[AARCH64] Use STLUR for atomic_store

Use the STLUR instruction introduced in Armv8.4-a.
This instruction has the store-release semantic like STLR but can take a
9-bit unscaled signed immediate offset.

Example test case:
```
void
foo ()
{
    int32_t *atomic_vals = calloc (4, sizeof (int32_t));
    atomic_store_explicit (atomic_vals + 1, 2, memory_order_release);
}
```

Before patch generates
```
foo:
stp x29, x30, [sp, -16]!
mov x1, 4
mov x0, x1
mov x29, sp
bl calloc
mov w1, 2
add x0, x0, 4
stlr w1, [x0]
ldp x29, x30, [sp], 16
ret
```

After patch generates
```
foo:
stp x29, x30, [sp, -16]!
mov x1, 4
mov x0, x1
mov x29, sp
bl calloc
mov w1, 2
stlur w1, [x0, 4]
ldp x29, x30, [sp], 16
ret
```

We introduce a new feature flag to indicate the presence of this instruction.
The feature flag is called AARCH64_ISA_RCPC8_4 and is included when targeting
armv8.4 architecture.

We also introduce an "arch" attribute to be checked called "rcpc8_4" after this
feature flag.

gcc/

2018-09-19  Matthew Malcomson  <matthew.malcomson@arm.com>

* config/aarch64/aarch64-protos.h
(aarch64_offset_9bit_signed_unscaled_p): New declaration.
* config/aarch64/aarch64.md (arches): New "rcpc8_4" attribute value.
(arch_enabled): Add check for "rcpc8_4" attribute value of "arch".
* config/aarch64/aarch64.h (AARCH64_FL_RCPC8_4): New bitfield.
(AARCH64_FL_FOR_ARCH8_4): Include AARCH64_FL_RCPC8_4.
(AARCH64_FL_PROFILE): Move index so flags are ordered.
(AARCH64_ISA_RCPC8_4): New flag.
* config/aarch64/aarch64.c (offset_9bit_signed_unscaled_p): Renamed
to aarch64_offset_9bit_signed_unscaled_p.
* config/aarch64/atomics.md (atomic_store<mode>): Allow offset
and use stlur.
* config/aarch64/constraints.md (Ust): New constraint.
* config/aarch64/predicates.md.
(aarch64_9bit_offset_memory_operand): New predicate.
(aarch64_rcpc_memory_operand): New predicate.

gcc/testsuite/

2018-09-19  Matthew Malcomson  <matthew.malcomson@arm.com>

* gcc.target/aarch64/atomic-store.c: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264421 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago PR rtl-optimization/87361
ebotcazou [Wed, 19 Sep 2018 10:12:04 +0000 (10:12 +0000)] 
PR rtl-optimization/87361
* rtlanal.c (nonzero_bits1): Revert accidental change.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264420 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago2018-09-19 Richard Biener <rguenther@suse.de>
rguenth [Wed, 19 Sep 2018 07:10:42 +0000 (07:10 +0000)] 
2018-09-19  Richard Biener  <rguenther@suse.de>

PR tree-optimization/87349
PR tree-optimization/87342
* tree-ssa-sccvn.c (do_rpo_vn): Iterate max_rpo computation.

* gcc.dg/torture/pr87349-1.c: New testcase.
* gcc.dg/torture/pr87349-2.c: Likewise.
* gcc.dg/torture/pr87342.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264419 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago * libgnuintl.h (_INTL_MAY_RETURN_STRING_ARG, gettext, dgettext,
law [Wed, 19 Sep 2018 04:08:49 +0000 (04:08 +0000)] 
* libgnuintl.h (_INTL_MAY_RETURN_STRING_ARG, gettext, dgettext,
dcgettext, ngettext, dngettext, dcngettext): Backport changes
from upstream gettext.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264418 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoDaily bump.
gccadmin [Wed, 19 Sep 2018 00:16:46 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264417 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago2018-09-18 François Dumont <fdumont@gcc.gnu.org>
fdumont [Tue, 18 Sep 2018 20:36:16 +0000 (20:36 +0000)] 
2018-09-18  François Dumont  <fdumont@gcc.gnu.org>

PR libstdc++/87135
* src/c++11/hashtable_c++0x.cc:
(_Prime_rehash_policy::_M_next_bkt): Return a prime no smaller than
requested size, but not necessarily greater.
(_Prime_rehash_policy::_M_need_rehash): Rehash only if target size is
strictly greater than next resize threshold.
* testsuite/23_containers/unordered_map/modifiers/reserve.cc: Adapt test
to validate that there is no rehash as long as number of insertion is
lower or equal to the reserved number of elements.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264413 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago2018-09-18 Thomas Koenig <tkoenig@gcc.gnu.org>
tkoenig [Tue, 18 Sep 2018 20:18:09 +0000 (20:18 +0000)] 
2018-09-18  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/29550
* gfortran.h (gfc_expr): Add external_blas flag.
* frontend-passes.c (matrix_case): Add case A2TB2T.
(optimize_namespace): Handle flag_external_blas by
calling call_external_blas.
(get_array_inq_function): Add argument okind. If
it is nonzero, use it as the kind of argument
to be used.
(inline_limit_check): Remove m_case argument, add
limit argument instead.  Remove assert about m_case.
Set the limit for inlining from the limit argument.
(matmul_lhs_realloc): Handle case A2TB2T.
(inline_matmul_assign): Handle inline limit for other cases with
two rank-two matrices.  Remove no-op calls to inline_limit_check.
(call_external_blas): New function.
* trans-intrinsic.c (gfc_conv_intrinsic_funcall): Do not add
argument to external BLAS if external_blas is already set.

2018-09-18  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/29550
* gfortran.dg/inline_matmul_13.f90: Adjust count for
_gfortran_matmul.
* gfortran.dg/inline_matmul_16.f90: Likewise.
* gfortran.dg/promotion_2.f90: Add -fblas-matmul-limit=1.  Scan
for dgemm instead of dgemm_.  Add call to random_number to make
standard conforming.
* gfortran.dg/matmul_blas_1.f90: New test.
* gfortran.dg/matmul_bounds_14.f: New test.
* gfortran.dg/matmul_bounds_15.f: New test.
* gfortran.dg/matmul_bounds_16.f: New test.
* gfortran.dg/blas_gemm_routines.f: New test / additional file for
preceding tests.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264412 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago2018-09-18 Thomas Koenig <tkoenig@gcc.gnu.org>
tkoenig [Tue, 18 Sep 2018 19:59:46 +0000 (19:59 +0000)] 
2018-09-18  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/29550
* gfortran.h (gfc_expr): Add external_blas flag.
* frontend-passes.c (matrix_case): Add case A2TB2T.
(optimize_namespace): Handle flag_external_blas by
calling call_external_blas.
(get_array_inq_function): Add argument okind. If
it is nonzero, use it as the kind of argument
to be used.
(inline_limit_check): Remove m_case argument, add
limit argument instead.  Remove assert about m_case.
Set the limit for inlining from the limit argument.
(matmul_lhs_realloc): Handle case A2TB2T.
(inline_matmul_assign): Handle inline limit for other cases with
two rank-two matrices.  Remove no-op calls to inline_limit_check.
(call_external_blas): New function.
* trans-intrinsic.c (gfc_conv_intrinsic_funcall): Do not add
argument to external BLAS if external_blas is already set.

2018-09-18  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/29550
* gfortran.dg/inline_matmul_13.f90: Adjust count for
_gfortran_matmul.
* gfortran.dg/inline_matmul_16.f90: Likewise.
* gfortran.dg/promotion_2.f90: Add -fblas-matmul-limit=1.  Scan
for dgemm instead of dgemm_.  Add call to random_number to make
standard conforming.
* gfortran.dg/matmul_blas_1.f90: New test.
* gfortran.dg/matmul_bounds_14.f: New test.
* gfortran.dg/matmul_bounds_15.f: New test.
* gfortran.dg/matmul_bounds_16.f: New test.
* gfortran.dg/blas_gemm_routines.f: New test / additional file for
preceding tests.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264411 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago2018-09-18 Paul Thomas <pault@gcc.gnu.org>
pault [Tue, 18 Sep 2018 19:35:53 +0000 (19:35 +0000)] 
2018-09-18  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/87239
* trans-expr.c (gfc_trans_assignment_1): The rse.pre for the
assignment of deferred character elemental function results to
a realocatable lhs must not be added to the exterior block but
must go to the loop body.

2018-09-18  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/87239
* gfortran.dg/elemental_function_2.f90 : New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264409 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago P1064R0 - Allowing Virtual Function Calls in Constant Expressions
mpolacek [Tue, 18 Sep 2018 19:16:28 +0000 (19:16 +0000)] 
P1064R0 - Allowing Virtual Function Calls in Constant Expressions
* call.c (build_over_call): No longer check if we're outside a template
function.
* class.c (build_vtbl_initializer): Build vtable's constructor with
indexes.
* constexpr.c (cxx_eval_constant_expression): Don't ignore _vptr's
initializer.  Handle OBJ_TYPE_REF.
(potential_constant_expression_1): Handle OBJ_TYPE_REF.
* decl.c (maybe_commonize_var): Bail out for any DECL_ARTIFICIAL.
(initialize_artificial_var): Mark the variable as constexpr.
(grokdeclarator): Change error to pedwarn.  Only warn when
pedantic and not C++2a.

* gimple-fold.c (gimple_get_virt_method_for_vtable): Adjust assert.

* g++.dg/cpp0x/constexpr-virtual5.C: Adjust dg-error.
* g++.dg/cpp2a/constexpr-virtual1.C: New test.
* g++.dg/cpp2a/constexpr-virtual2.C: New test.
* g++.dg/cpp2a/constexpr-virtual3.C: New test.
* g++.dg/cpp2a/constexpr-virtual4.C: New test.
* g++.dg/cpp2a/constexpr-virtual5.C: New test.
* g++.dg/cpp2a/constexpr-virtual6.C: New test.
* g++.dg/cpp2a/constexpr-virtual7.C: New test.
* g++.dg/cpp2a/constexpr-virtual8.C: New test.
* g++.dg/cpp2a/constexpr-virtual9.C: New test.
* g++.dg/diagnostic/virtual-constexpr.C: Skip for C++2a.  Use
-pedantic-errors.  Adjust dg-error.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264408 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago2018-09-18 Paul Thomas <pault@gcc.gnu.org>
pault [Tue, 18 Sep 2018 17:58:20 +0000 (17:58 +0000)] 
2018-09-18  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/87336
* trans-array.c (gfc_get_array_span): Try to get the element
length of incomplete types. Return NULL_TREE otherwise.
(gfc_conv_expr_descriptor): Only set the 'span' field if the
above does not return NULL_TREE. Set 'span' field if possible
for all new descriptors.

2018-09-18  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/87336
* gfortran.dg/pointer_array_10.f90 : New test.
* gfortran.dg/assign_10.f90 : Increase 'parm' count to 20.
* gfortran.dg/transpose_optimization_2.f90 : Increase 'parm'
count to 72.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264405 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agors6000: Remove old "Cygnus sibcall" comment
segher [Tue, 18 Sep 2018 17:37:40 +0000 (17:37 +0000)] 
rs6000: Remove old "Cygnus sibcall" comment

This comment is quite cryptic and very out-of-date by now.  Committing.

* config/rs6000/rs6000.md: Remove old "Cygnus sibcall" comment.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264403 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago/cp
paolo [Tue, 18 Sep 2018 16:35:27 +0000 (16:35 +0000)] 
/cp
2018-09-18  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/85065
* cp-tree.h (NON_ERROR): New.
* pt.c (auto_hash::hash): Use it.
(do_auto_deduction): Likewise.

/testsuite
2018-09-18  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/85065
* g++.dg/concepts/pr85065.C: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264402 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoHandle CLOBBER in reg_overlap_mentioned_p (PR86882)
segher [Tue, 18 Sep 2018 16:19:56 +0000 (16:19 +0000)] 
Handle CLOBBER in reg_overlap_mentioned_p (PR86882)

Combine will put CLOBBER (with a non-void mode) anywhere in a pattern
to poison it.  reg_overlap_mentioned_p did not handle this.  This patch
fixes that.

PR rtl-optimization/86882
* rtlanal.c (reg_overlap_mentioned_p): Handle CLOBBER.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264400 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoFix location of invocable check for unique_ptr deleter
redi [Tue, 18 Sep 2018 16:05:36 +0000 (16:05 +0000)] 
Fix location of invocable check for unique_ptr deleter

The deleter only needs to be invocable when the unique_ptr destructor
and reset member function are instantiated. In other contexts it might
not be possible to pass unique_ptr<T, D>::pointer to the deleter, if
that requires a derived-to-base conversion from T* and T is incomplete.

* include/bits/unique_ptr.h (__uniq_ptr_impl): Remove static assertion
checking invocable condition.
(unique_ptr::~unique_ptr, unique_ptr::reset): Restore static assertion
here, where types must be complete. Pass pointer to deleter as an
rvalue.
* testsuite/20_util/unique_ptr/requirements/incomplete.cc: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264399 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago * config/i386/i386.md (*<code>extend<mode>xf2): Macroize insn from
uros [Tue, 18 Sep 2018 15:51:54 +0000 (15:51 +0000)] 
* config/i386/i386.md (*<code>extend<mode>xf2): Macroize insn from
*<code>extendsfxf2 and *<code>extenddfxf2 using MODEF mode iterator.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264398 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago[nvptx] Remove use of CUDA unified memory in libgomp
cesar [Tue, 18 Sep 2018 15:41:54 +0000 (15:41 +0000)] 
[nvptx] Remove use of CUDA unified memory in libgomp

libgomp/
* plugin/plugin-nvptx.c (struct cuda_map): New.
(struct ptx_stream): Replace d, h, h_begin, h_end, h_next, h_prev,
h_tail with (cuda_map *) map.
(cuda_map_create): New function.
(cuda_map_destroy): New function.
(map_init): Update to use a linked list of cuda_map objects.
(map_fini): Likewise.
(map_pop): Likewise.
(map_push): Likewise.  Return CUdeviceptr instead of void.
(init_streams_for_device): Remove stales references to ptx_stream
members.
(select_stream_for_async): Likewise.
(nvptx_exec): Update call to map_init.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264397 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoPR other/87353 fix formatting and grammar in manual
redi [Tue, 18 Sep 2018 14:19:55 +0000 (14:19 +0000)] 
PR other/87353 fix formatting and grammar in manual

The changes to invoke.texi in r242433 left some unwanted spaces that
texi2pod.pl interprets as verbatim formatting. There are also some
grammatical errors due to the removal of references to GCJ, where the
G++ driver is referred to in the plural.

PR other/87353
* doc/invoke.texi (Link Options): Fix formatting and grammar.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264395 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoFix dg-do target
nathan [Tue, 18 Sep 2018 14:14:57 +0000 (14:14 +0000)] 
Fix dg-do target

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264394 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoAdd PR marker to previous commit
ktkachov [Tue, 18 Sep 2018 14:09:54 +0000 (14:09 +0000)] 
Add PR marker to previous commit

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264393 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoFix gcc.dg/warn-abs-1.c for arm and aarch64-none-elf
ktkachov [Tue, 18 Sep 2018 13:54:36 +0000 (13:54 +0000)] 
Fix gcc.dg/warn-abs-1.c for arm and aarch64-none-elf

This new test has some difficulties on the fabsl function.
On arm this is because we don't support the _Float128 type which the test uses.
This is handled in the patch by requiring a float128 target selector.

On aarch64-none-elf, a Newlib target, it fails because fabsl is not available.
long double support is known to be incomplete in newlib, and the fabsl function is not available
for targets where long double is larger than a double.
Therefore this patch skips the test on such targets.

* gcc.dg/warn-abs-1.c: Require float128 target.
Skip if large_long_double newlib target.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264392 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago[PATCH c++/86881] -Wshadow-local-compatible ICE
nathan [Tue, 18 Sep 2018 13:52:30 +0000 (13:52 +0000)] 
[PATCH c++/86881] -Wshadow-local-compatible ICE

https://gcc.gnu.org/ml/gcc-patches/2018-09/msg00984.html
PR c++/86881
cp/
* name-lookup.c (check_local_shadow): Ignore auto types.

testsuite/
* g++.dg/warn/pr86881.C: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264391 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago[AArch64][committed] Fix gcc.target/aarch64/spellcheck_1.c and spellcheck_4.c
ktkachov [Tue, 18 Sep 2018 13:32:12 +0000 (13:32 +0000)] 
[AArch64][committed] Fix gcc.target/aarch64/spellcheck_1.c and spellcheck_4.c

These two tests started failing after commit r264335 that adjusted the cutoff point at which the diagnostic suggestions machinery decides a suggestion is meaningful.
For these tests it means we no longer suggest anything as an alternative to "armv8-a-typo" as an "arch=" pargma value. We do still list the valid options, we just don't prefer one particular value over the others.

When I first wrote this test it wasn't with a particular architecture suggestion in mind, but rather to test that the suggestion machinery is being sanely invoked.
So this patch changes the dg-message check to treat the "did you mean...?" hunk as optional (in case the heuristics in the suggestions machinery change again).

With this patch the two tests PASS again on aarch64.

    * gcc.target/aarch64/spellcheck_1.c:
    Make architecture suggestion optional.
    * gcc.target/aarch64/spellcheck_4.c:
    Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264390 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago[AArch64][testsuite][committed] Fix gcc.target/aarch64/combine_bfxil.c for -mabi...
ktkachov [Tue, 18 Sep 2018 13:28:50 +0000 (13:28 +0000)] 
[AArch64][testsuite][committed] Fix gcc.target/aarch64/combine_bfxil.c for -mabi=ilp32

As described in https://gcc.gnu.org/ml/gcc-patches/2018-09/msg00963.html this test generates UXTW instructions with -mabi=ilp32
because the foo* functions take pointers and store results into them. In ILP32 the callee clears the top bits with a UXTW.
This trips the scan-assembler-not UXTW test that checks that the zero_extend form of the BFXIL pattern is used, which it is.

This patch avoids this problem by not passing pointers to the results, but instead using global variables for which the foo* functions
will synthesise the address using ADRP, avoiding the UXTW instructions.

With this patch the test PASSes fully with -mabi=ilp32 and still PASSes on LP64.

* gcc.target/aarch64/combine_bfxil.c: Avoid passing pointers to
functions.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264389 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago2018-09-18 Richard Biener <rguenther@suse.de>
rguenth [Tue, 18 Sep 2018 13:26:05 +0000 (13:26 +0000)] 
2018-09-18  Richard Biener  <rguenther@suse.de>

PR middle-end/63155
* tree-ssa-coalesce.c (tree_int_map_hasher): Remove.
(compute_samebase_partition_bases): Likewise.
(coalesce_ssa_name): Always use compute_optimized_partition_bases.
(gimple_can_coalesce_p): Simplify.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264388 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoUse v2 map syntax in libgcc-unwind.map if Solaris ld supports it
ro [Tue, 18 Sep 2018 07:04:15 +0000 (07:04 +0000)] 
Use v2 map syntax in libgcc-unwind.map if Solaris ld supports it

* configure.ac (solaris_ld_v2_maps): New test.
* configure: Regenerate.
* Makefile.in (solaris_ld_v2_maps): New variable.
* config/t-slibgcc-sld (libgcc-unwind.map): Emit v2 mapfile syntax
if supported.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264382 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago Handle a library implementation of ffs calling __builtin_ffs.
hp [Tue, 18 Sep 2018 02:42:15 +0000 (02:42 +0000)] 
Handle a library implementation of ffs calling __builtin_ffs.
* config/mmix/mmix.c (TARGET_INIT_LIBFUNCS): Override with...
(mmix_init_libfuncs): New function: make __builtin_ffs expand
to __ffsdi2.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264381 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoDaily bump.
gccadmin [Tue, 18 Sep 2018 00:16:45 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264380 138bc75d-0d04-0410-961f-82ee72b054a4

6 years agoAdd range_idx param to range_label::get_text
dmalcolm [Mon, 17 Sep 2018 23:32:12 +0000 (23:32 +0000)] 
Add range_idx param to range_label::get_text

This patch updates the pure virtual function range_label::get_text
(and its implementations) so that the index of the range is passed
in, allowing for one label instance to be shared by multiple ranges.

gcc/c-family/ChangeLog:
* c-format.c (range_label_for_format_type_mismatch::get_text):
Update for new param.

gcc/c/ChangeLog:
* c-objc-common.c (range_label_for_type_mismatch::get_text):
Update for new param.
* c-typeck.c (maybe_range_label_for_tree_type_mismatch::get_text):
Likewise.

gcc/cp/ChangeLog:
* error.c (range_label_for_type_mismatch::get_text): Update for
new param.

gcc/ChangeLog:
* diagnostic-show-locus.c (class layout_range): Add field
"m_original_idx".
(layout_range::layout_range): Add "original_idx" param and use it
to initialize new field.
(make_range): Use 0 for original_idx.
(layout::layout): Pass in index to calls to
maybe_add_location_range.
(layout::maybe_add_location_range): Add param "original_idx" and
pass it on to layout_range.
(layout::print_any_labels): Pass on range->m_original_idx to
get_text call.
(gcc_rich_location::add_location_if_nearby): Use 0 for
original_idx.
* gcc-rich-location.h (text_range_label::get_text): Update for new
param.
(range_label_for_type_mismatch::get_text): Likewise.

libcpp/ChangeLog:
* include/line-map.h (range_label::get_text): Add param
"range_idx".

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264376 138bc75d-0d04-0410-961f-82ee72b054a4

6 years ago * config/i386/i386.c (ix86_emit_i387_log1p): Emit fldln2 earlier.
uros [Mon, 17 Sep 2018 20:33:04 +0000 (20:33 +0000)] 
* config/i386/i386.c (ix86_emit_i387_log1p): Emit fldln2 earlier.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@264373 138bc75d-0d04-0410-961f-82ee72b054a4