Wilco Dijkstra [Fri, 6 Oct 2017 11:54:51 +0000 (11:54 +0000)]
PR82396 workaround
r253236 broke AArch64 bootstrap. This is a temporary workaround that
disables qsort checking in the scheduler to enable continued development
and testing on AArch64. This will be removed once the autopref scheduling
code has been fixed.
gcc/
PR rtl-optimization/82396
* haifa-sched.c (ready_sort_real): Disable qsort checking.
From-SVN: r253487
Sebastian Pop [Fri, 6 Oct 2017 11:26:33 +0000 (11:26 +0000)]
graphite-dependences.c (scop_get_reads): Move code to...
2017-10-06 Sebastian Pop <sebpop@gmail.com>
* graphite-dependences.c (scop_get_reads): Move code to...
(scop_get_must_writes): Move code to...
(scop_get_may_writes): Move code to...
(scop_get_reads_and_writes): ... here.
(scop_get_dependences): Call scop_get_reads_and_writes.
From-SVN: r253486
Paolo Carlini [Fri, 6 Oct 2017 10:06:14 +0000 (10:06 +0000)]
re PR c++/60153 (internal compiler error: in dependent_type_p, at cp/pt.c:21951)
2017-10-06 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/60153
* g++.dg/cpp0x/variadic-crash3.C: New.
From-SVN: r253484
Jakub Jelinek [Fri, 6 Oct 2017 09:39:07 +0000 (11:39 +0200)]
re PR tree-optimization/82434 (-fstore-merging does not work reliably.)
PR tree-optimization/82434
* fold-const.h (can_native_encode_type_p,
can_native_encode_string_p): Remove.
* fold-const.c (native_encode_int): Formatting fixes. If ptr is NULL,
don't encode anything, just return what would be otherwise returned.
(native_encode_fixed, native_encode_complex, native_encode_vector):
Likewise.
(native_encode_string): Likewise. Inline by hand
can_native_encode_string_p.
(can_native_encode_type_p): Remove.
(can_native_encode_string_p): Remove.
* tree-vect-stmts.c (vectorizable_store): Instead of testing just
STRING_CSTs using can_native_encode_string_p, test all
CONSTANT_CLASS_P values using native_encode_expr with NULL ptr.
* gimple-ssa-store-merging.c (encode_tree_to_bitpos): Remove last
argument from native_encode_expr.
(rhs_valid_for_store_merging_p): Use native_encode_expr with NULL ptr.
(pass_store_merging::execute): Don't unnecessarily look for 3 stmts,
but just 2.
* gcc.dg/store_merging_9.c: New test.
From-SVN: r253483
Richard Biener [Fri, 6 Oct 2017 09:27:09 +0000 (09:27 +0000)]
re PR tree-optimization/82397 (qsort comparator non-negative on sorted output: 1 in vect_analyze_data_ref_accesses)
2017-10-06 Richard Biener <rguenther@suse.de>
PR tree-optimization/82397
* tree-vect-data-refs.c (dr_group_sort_cmp): Do not use
operand_equal_p but rely on data_ref_compare_tree for detecting
equalities.
(vect_analyze_data_ref_accesses): Use data_ref_compare_tree
to match up with dr_group_sort_cmp.
* gfortran.dg/pr82397.f: New testcase.
From-SVN: r253482
Andreas Krebbel [Fri, 6 Oct 2017 09:19:46 +0000 (09:19 +0000)]
PR82322: S/390: Fix vec_ceil and friends
vec_ceil and friends are expanded by vecintrin.h to __builtin_s390_vfi
which is an overloaded builtin being replaced by either
__builtin_s390_vfisb or __builtin_s390_vfidb depending on its argument
types.
The problem in this PR was that the overloaded builtin definition of
__builtin_s390_vfi was missing in s390-builtins.def.
gcc/ChangeLog:
2017-10-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
PR target/82322
* config/s390/s390-builtins.def (s390_vfi): Define new overloaded
builtin.
* config/s390/s390-builtin-types.def: Regenerate.
gcc/testsuite/ChangeLog:
2017-10-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
PR target/82322
* gcc.target/s390/zvector/pr82322.c: New test.
From-SVN: r253481
Andreas Krebbel [Fri, 6 Oct 2017 09:18:37 +0000 (09:18 +0000)]
PR82317: S/390: Fix vec_min/vec_max builtins for IBM z13.
With IBM z14 a hardware instruction for floating point min and max has
been added while for IBM z13 we emulated min/max for vector double with
compare and select. This testcase makes sure that we fall back to the
emulated variant when compiling for z13.
gcc/ChangeLog:
2017-10-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
PR target/82317
* config/s390/s390-builtin-types.def: Regenerate.
* config/s390/s390-builtins.def (s390_vfmaxdb_4, s390_vfmindb_4):
Change flag from B_VXE to B_VX.
(s390_vec_min_dbl): Remove B_VXE flag.
gcc/testsuite/ChangeLog:
2017-10-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
PR target/82317
* gcc.target/s390/zvector/pr82317.c: New test.
From-SVN: r253480
Richard Biener [Fri, 6 Oct 2017 08:23:56 +0000 (08:23 +0000)]
re PR tree-optimization/82422 ([graphite] ICE in set_codegen_error, at graphite-isl-ast-to-gimple.c:248)
2017-10-06 Richard Biener <rguenther@suse.de>
PR tree-optimization/82422
* gcc.dg/graphite/pr82422.c: New testcase.
From-SVN: r253479
Richard Biener [Fri, 6 Oct 2017 08:20:58 +0000 (08:20 +0000)]
re PR tree-optimization/82421 ([graphite] ICE: tree check: expected ssa_name, have integer_cst in get_rename, at graphite-isl-ast-to-gimple.c:1127)
2017-10-06 Richard Biener <rguenther@suse.de>
PR tree-optimization/82421
* gcc.dg/graphite/pr82421.c: New testcase.
From-SVN: r253478
Jakub Jelinek [Fri, 6 Oct 2017 07:11:25 +0000 (09:11 +0200)]
re PR c/82437 (false-positive -Wtautological-compare warning with -std=gnu89)
PR c/82437
* c-warn.c (warn_tautological_bitwise_comparison): Instead of
using to_widest use wide_int with the larger of the two precisions.
* c-c++-common/Wtautological-compare-6.c: New test.
From-SVN: r253476
Richard Biener [Fri, 6 Oct 2017 07:06:17 +0000 (07:06 +0000)]
graphite-isl-ast-to-gimple.c: Include ssa.h and tree-ssa.h.
2017-10-06 Richard Biener <rguenther@suse.de>
* graphite-isl-ast-to-gimple.c: Include ssa.h and tree-ssa.h.
(translate_isl_ast_to_gimple::translate_pending_phi_nodes,
translate_isl_ast_to_gimple::is_valid_rename,
translate_isl_ast_to_gimple::get_rename,
translate_isl_ast_to_gimple::get_def_bb_for_const,
translate_isl_ast_to_gimple::get_new_name,
translate_isl_ast_to_gimple::collect_all_ssa_names,
translate_isl_ast_to_gimple::copy_loop_phi_args,
translate_isl_ast_to_gimple::collect_all_ssa_names,
translate_isl_ast_to_gimple::copy_loop_phi_args,
translate_isl_ast_to_gimple::copy_loop_phi_nodes,
translate_isl_ast_to_gimple::add_close_phis_to_merge_points,
translate_isl_ast_to_gimple::add_close_phis_to_outer_loops,
translate_isl_ast_to_gimple::copy_loop_close_phi_args,
translate_isl_ast_to_gimple::copy_loop_close_phi_nodes,
translate_isl_ast_to_gimple::copy_cond_phi_args,
translate_isl_ast_to_gimple::copy_cond_phi_nodes,
translate_isl_ast_to_gimple::edge_for_new_close_phis,
translate_isl_ast_to_gimple::add_phi_arg_for_new_expr,
translate_isl_ast_to_gimple::rename_uses,
translate_isl_ast_to_gimple::rename_all_uses): Remove.
(translate_isl_ast_to_gimple::get_rename_from_scev): Simplify.
(set_rename_for_each_def): Likewise.
(graphite_copy_stmts_from_block): Handle debug stmt resetting
here. Handle rewriting SCEV analyzable uses here.
(copy_bb_and_scalar_dependences): Generate code for PHI
copy-in/outs.
(graphite_regenerate_ast_isl): Adjust.
* graphite-scop-detection.c (trivially_empty_bb_p): Move to sese.[ch].
(add_write, add_read): New functions.
(build_cross_bb_scalars_def): Use it and simplify.
(build_cross_bb_scalars_use): Likewise.
(graphite_find_cross_bb_scalar_vars): Inline into...
(try_generate_gimple_bb): ...here. Add dependences for PHIs,
simulating out-of-SSA. Compute liveout and add dependencies.
(build_scops): Force an empty entry block.
* sese.h (sese_info_t::liveout, sese_info_t::debug_liveout): New
members.
(sese_build_liveouts): Declare.
(sese_trivially_empty_bb_p): Likewise.
* sese.c (sese_build_liveouts_bb): Properly handle PHIs,
compute liveout and debug_liveout.
(sese_bad_liveouts_use): Remove.
(sese_reset_debug_liveouts_bb): Likewise.
(sese_reset_debug_liveouts): Rewrite in terms of debug_liveout.
(sese_build_liveouts): Build liveout and debug_liveout and store
it in region.
(new_sese_info): Adjust.
(free_sese_info): Likewise.
(sese_insert_phis_for_liveouts): Reset debug stmts from here,
do not build liveout here.
(move_sese_in_condition): Adjust region entry.
(scev_analyzable_p): Match up with chrec_apply requirements.
(sese_trivially_empty_bb_p): New.
* tree-into-ssa.c (get_reaching_def): Properly support generating
default-defs for incremental rewrite of anonymous names.
* gcc.dg/graphite/id-15.c: No longer expect a code generation error.
* gcc.dg/graphite/id-16.c: Likewise.
* gcc.dg/graphite/pr46168.c: Likewise.
* gcc.dg/graphite/pr68756.c: Likewise.
* gcc.dg/graphite/pr69728.c: Likewise.
* gcc.dg/graphite/pr71575-2.c: Likewise.
* gcc.dg/graphite/pr77362.c: Likewise.
* gcc.dg/graphite/pr81373.c: Likewise.
* gcc.dg/graphite/run-id-pr67700-1.c: Likewise.
* gfortran.dg/graphite/interchange-1.f: Likewise.
* gfortran.dg/graphite/pr42334-1.f: Likewise.
* gfortran.dg/graphite/pr42393-1.f90: Likewise.
* gfortran.dg/graphite/pr42393.f90: Likewise.
* gfortran.dg/graphite/pr47019.f: Likewise.
* gfortran.dg/graphite/id-17.f: Likewise.
* gfortran.dg/graphite/id-19.f: Likewise.
* gfortran.dg/graphite/run-id-2.f90: Likewise.
* gfortran.dg/graphite/pr42326-1.f90: Likewise.
* gfortran.dg/graphite/pr42326.f90: Likewise.
* gfortran.dg/graphite/pr68550-2.f90: Likewise.
* gfortran.dg/graphite/pr29581.f90: Likewise. No longer expect
a code generation error.
* gfortran.dg/graphite/run-id-3.f90: Likewise.
* gfortran.dg/graphite/pr29832.f90: Likewise.
From-SVN: r253475
Richard Biener [Fri, 6 Oct 2017 07:03:51 +0000 (07:03 +0000)]
graphite-sese-to-poly.c (extract_affine): For casts increasing precision do not perform modulo reduction.
2017-10-06 Richard Biener <rguenther@suse.de>
* graphite-sese-to-poly.c (extract_affine): For casts increasing
precision do not perform modulo reduction.
From-SVN: r253474
Richard Biener [Fri, 6 Oct 2017 07:03:23 +0000 (07:03 +0000)]
re PR tree-optimization/82436 (465.tonto ICE in vect_get_slp_vect_defs, at tree-vect-slp.c:3410)
2017-10-06 Richard Biener <rguenther@suse.de>
PR tree-optimization/82436
* tree-vect-slp.c (vect_supported_load_permutation_p): More
conservatively choose the vectorization factor when checking
whether we can perform the required load permutation.
(vect_transform_slp_perm_load): Assert when we may not fail.
* gcc.dg/vect/pr82436.c: New testcase.
From-SVN: r253473
GCC Administrator [Fri, 6 Oct 2017 00:16:24 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r253472
Ian Lance Taylor [Thu, 5 Oct 2017 23:25:51 +0000 (23:25 +0000)]
compiler: drop special handling of unexported func/var assembler names
For example, for the package math/big, we used to generate unexported
names as `big.trim` and exported names as `math_big.NewInt`. After
this change we will use `math_big` consistently.
Reviewed-on: https://go-review.googlesource.com/68651
From-SVN: r253468
Segher Boessenkool [Thu, 5 Oct 2017 21:55:50 +0000 (23:55 +0200)]
rs6000: Fix an error message in sysv4.h
While looking at PR82411, I got the error message
error: '-msdata=-mcall' and 'eabi-linux' are incompatible
which caused some head-scratching.
* config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Correct error
message for incompatible -msdata=* and -mcall-* options.
From-SVN: r253467
Jason Merrill [Thu, 5 Oct 2017 21:26:50 +0000 (17:26 -0400)]
* call.c (convert_arg_to_ellipsis): Use the result of force_rvalue.
From-SVN: r253465
Jonathan Wakely [Thu, 5 Oct 2017 20:26:08 +0000 (21:26 +0100)]
Fix new testsuite failure on newlib targets
* testsuite/20_util/to_chars/1.cc: Add dg-require-string-conversions.
From-SVN: r253463
Bernd Edlinger [Thu, 5 Oct 2017 20:08:27 +0000 (20:08 +0000)]
c-pretty-print.c (pp_c_parameter_type_list): Print ...
2017-10-05 Bernd Edlinger <bernd.edlinger@hotmail.de>
* c-pretty-print.c (pp_c_parameter_type_list): Print ... for variadic
functions.
testsuite:
2017-10-05 Bernd Edlinger <bernd.edlinger@hotmail.de>
* gcc.dg/Wincompatible-pointer-types-1.c: New test.
From-SVN: r253460
Ian Lance Taylor [Thu, 5 Oct 2017 17:20:30 +0000 (17:20 +0000)]
compiler: centralize all symbol name handling
Consolidate all symbol name handling into the new file names.cc. This
is intended to define all the names that will appear in the generated
assembly code. Names that will not appear in the assembly code, such
as local variable names or label names, remain where they are.
This consolidation is not intended to change any of the existing
symbol names. Tested by building without and without this patch and
comparing the libgo symbol table.
Reviewed-on: https://go-review.googlesource.com/68310
* Make-lang.in (GO_OBJS): Add go/names.o.
From-SVN: r253458
Ian Lance Taylor [Thu, 5 Oct 2017 16:39:38 +0000 (16:39 +0000)]
elf.c (elf_zlib_fetch): Change pval argument to uint64_t *.
* elf.c (elf_zlib_fetch): Change pval argument to uint64_t *.
Read a four byte integer.
(elf_zlib_inflate): Change val to uint64_t. Align pin to a 32-bit
boundary before ever calling elf_zlib_fetch.
* ztest.c (test_large): Simplify print statements a bit.
From-SVN: r253456
Eric Botcazou [Thu, 5 Oct 2017 16:32:21 +0000 (16:32 +0000)]
re PR ada/82393 (Compilation error on cygwin64)
PR ada/82393
* mingw32.h (_O_U8TEXT, _O_U16TEXT, _O_WTEXT): Delete.
* sysdep.c (__gnat_set_mode ): Use DJGPP version for Cygwin.
From-SVN: r253454
Jan Hubicka [Thu, 5 Oct 2017 16:29:42 +0000 (18:29 +0200)]
i386.c (ia32_multipass_dfa_lookahead): Default to issue rate for post-reload scheduling.
* i386.c (ia32_multipass_dfa_lookahead): Default to issue rate
for post-reload scheduling.
From-SVN: r253453
Tamar Christina [Thu, 5 Oct 2017 15:17:39 +0000 (15:17 +0000)]
slp-perm-9.c: Use vect_sizes_16B_8B.
gcc/testsuite/
2017-10-05 Tamar Christina <tamar.christina@arm.com>
* gcc.dg/vect/slp-perm-9.c: Use vect_sizes_16B_8B.
* lib/target-supports.exp (vect_sizes_16B_8B): New.
gcc/
2017-10-05 Tamar Christina <tamar.christina@arm.com>
* doc/sourcebuild.texi (vect_sizes_16B_8B, vect_sizes_32B_16B): New.
From-SVN: r253452
Tamar Christina [Thu, 5 Oct 2017 15:13:31 +0000 (15:13 +0000)]
vect-align-1.c: Fix vect_hw_misalign condition.
2017-09-28 Tamar Christina <tamar.christina@arm.com>
* gcc.dg/vect/vect-align-1.c: Fix vect_hw_misalign condition.
* gcc.dg/vect/vect-align-2.c: Likewise.
* gcc.dg/vect/vect-multitypes-1.c: Likewise
From-SVN: r253451
Jan Hubicka [Thu, 5 Oct 2017 15:00:25 +0000 (17:00 +0200)]
i386.c (znver1_cost): Set branch_cost to 3 (instead of 2) to improve monte carlo in scimark.
* i386.c (znver1_cost): Set branch_cost to 3 (instead of 2)
to improve monte carlo in scimark.
From-SVN: r253449
Jan Hubicka [Thu, 5 Oct 2017 14:56:32 +0000 (16:56 +0200)]
i386.c (ix86_size_cost, [...]): Set reassociation width to 1.
* i386.c (ix86_size_cost, i386_cost, i486_cost, pentium_cost,
lakemont_cost, pentiumpro_cost, geode_cost, k6_cost,
athlon_cost, k8_cost, amdfam10_cost, btver1_cost, btver2_cost,
pentium4_cost, nocona_cost): Set reassociation width to 1.
(bdver1_cost, bdver2_cost, bdver3_cost, bdver4_cost): Set reassociation
width to 2 for fp operations and 1 otherwise.
(znver1_cost): Set scalar reassoc width to 4 and vector to 3 and 6
for int and fp.
(atom_cost): Set reassociation width to 2.
(slm_cost, generic_cost): Set fp reassociation width to 2 and 1 otherwise.
(intel_cost): Set fp reassociation width to 4 and 1 otherwise.
(core_cost): Set fp reassociation width to 4 and vector to 2.
(ix86_reassociation_width): Rewrite using cost table; special case
plus/minus on Zen; honor X86_TUNE_SSE_SPLIT_REGS
and TARGET_AVX128_OPTIMAL.
* i386.h (processor_costs): Add
reassoc_int, reassoc_fp, reassoc_vec_int, reassoc_vec_fp.
(TARGET_VECTOR_PARALLEL_EXECUTION, TARGET_REASSOC_INT_TO_PARALLEL,
TARGET_REASSOC_FP_TO_PARALLEL): Remove.
* x86-tune.def (X86_TUNE_REASSOC_INT_TO_PARALLEL): Remove.
(X86_TUNE_REASSOC_FP_TO_PARALLEL): Remove.
(X86_TUNE_VECTOR_PARALLEL_EXECUTION): Remove.
From-SVN: r253448
Nathan Sidwell [Thu, 5 Oct 2017 13:27:37 +0000 (13:27 +0000)]
Re: [PATCH] C++ warning on vexing parse
https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00249.html
gcc/cp/
Warn on MVP declarations
* cp-tree.h (struct cp_declarator): Add parenthesized field.
* decl.c (grokdeclarator): Warn about unnecessary parens.
* parser.c (make_declarator): Init parenthesized field.
(cp_parser_direct_declarator): Set parenthesized field.
gcc/
* doc/invoke.texi (Wparentheses): Document C++ MVP behaviour.
gcc/testsuite/
* g++.dg/warn/mvp.C: New.
From-SVN: r253446
Nathan Sidwell [Thu, 5 Oct 2017 12:10:55 +0000 (12:10 +0000)]
[C++ PATCH] Kill IDENTIFIER_GLOBAL_VALUE
https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00239.html
Kill IDENTIFIER_GLOBAL_VALUE, SET_IDENTIFIER_GLOBAL_VALUE
* cp-tree.h (IDENTIFIER_GLOBAL_VALUE,
SET_IDENTIFIER_GLOBAL_VALUE): Delete.
* name-lookup.h (set_global_binding): Remove NAME parm.
(get_global_binding): New inline fn.
* name-lookup.c (set_global_binding): Remove NAME parm. Adjust.
(identifier_global_value): Move to ...
* cp-objcp-common.c (identifier_global_value): ... here.
* class.c (build_ctor_vtbl_group, build_vtbl_initializer): Adjust.
* decl.c (record_builtin_type, expand_static_init,
grokdeclarator): Adjust.
* decl2.c (get_guard, get_local_tls_init_fn, get_tls_init_fn,
get_tls_wrapper_fn, maybe_warn_sized_delete): Adjust.
* except.c (declare_library_fn, build_throw): Adjust.
* init.c (throw_bad_array_length): Adjust.
* rtti.c (throw_bad_cast, throw_bad_typeid, get_tinfo_decl): Adjust.
From-SVN: r253444
Tamar Christina [Thu, 5 Oct 2017 11:38:06 +0000 (11:38 +0000)]
arm.c (arm_test_fpu_data): New.
2017-10-05 Tamar Christina <tamar.christina@arm.com>
* config/arm/arm.c (arm_test_fpu_data): New.
(arm_run_selftests): Call arm_test_fpu_data.
From-SVN: r253443
H.J. Lu [Thu, 5 Oct 2017 10:39:32 +0000 (10:39 +0000)]
Add sanitizer_linux_x86_64.lo if __x86_64__ is defined by $CC
Since size of "void *" is 4 bytes for x32, check if __x86_64__ is defined
by $CC, instead of
if test x$ac_cv_sizeof_void_p = x8; then
to decide wether sanitizer_linux_x86_64.lo should be used.
PR sanitizer/82379
* configure.tgt (SANITIZER_COMMON_TARGET_DEPENDENT_OBJECTS): Set
to sanitizer_linux_x86_64.lo if __x86_64__ is defined by $CC.
From-SVN: r253441
Nathan Sidwell [Thu, 5 Oct 2017 10:16:38 +0000 (10:16 +0000)]
Re: [C++ PATCH] Move mangling alias out of ::
https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00230.html
* decl2.c (record_mangling): Fix spello and formatting from
previous patch.
From-SVN: r253440
Tom de Vries [Thu, 5 Oct 2017 08:31:46 +0000 (08:31 +0000)]
Fix libgomp.oacc-c-c++-common/{loop-red-g-1,routine-g-1}.c for non-nvidia devices
2017-10-05 Tom de Vries <tom@codesourcery.com>
* testsuite/libgomp.oacc-c-c++-common/loop-red-g-1.c (main): Remove
vector_length(32) clause from acc parallel directive.
* testsuite/libgomp.oacc-c-c++-common/routine-g-1.c (main): Same.
From-SVN: r253439
Jakub Jelinek [Thu, 5 Oct 2017 08:09:34 +0000 (10:09 +0200)]
pr82374.c (SIZE): Change from 1G to 1M to make it ilp32 friendly.
* gcc.dg/gomp/pr82374.c (SIZE): Change from 1G to 1M to make it ilp32
friendly.
From-SVN: r253438
Richard Biener [Thu, 5 Oct 2017 07:45:42 +0000 (07:45 +0000)]
id-17.f: Fix typo.
2017-10-05 Richard Biener <rguenther@suse.de>
* gfortran.dg/graphite/id-17.f: Fix typo.
* gfortran.dg/graphite/id-19.f: Likewise.
* gfortran.dg/graphite/pr29832.f90: Likewise.
* gfortran.dg/graphite/pr42326-1.f90: Likewise.
* gfortran.dg/graphite/pr42326.f90: Likewise.
* gfortran.dg/graphite/pr68550-2.f90: Likewise.
* gfortran.dg/graphite/run-id-2.f90: Likewise.
* gfortran.dg/graphite/run-id-3.f90: Likewise.
From-SVN: r253437
GCC Administrator [Thu, 5 Oct 2017 00:16:18 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r253436
Paolo Carlini [Wed, 4 Oct 2017 21:25:20 +0000 (21:25 +0000)]
re PR c++/80471 ((gcc extension) Forwarding-reference `auto` function parameters do not follow the same rules as template functions or generic lambdas)
2017-10-04 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/80471
* g++.dg/cpp1y/pr80471.C: New.
From-SVN: r253432
Paolo Carlini [Wed, 4 Oct 2017 20:58:52 +0000 (20:58 +0000)]
re PR c++/78131 (Inconsistent evaluation for `constexpr` lambdas in templates between `static_assert`, `if constexpr(…)` and `constexpr` variables)
2017-10-04 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/78131
* g++.dg/cpp1z/constexpr-lambda17.C: New.
From-SVN: r253431
Paolo Carlini [Wed, 4 Oct 2017 20:34:03 +0000 (20:34 +0000)]
re PR c++/78018 ([C++14] "internal compiler error: Segmentation fault" with templates and lambdas)
2017-10-04 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/78018
* g++.dg/cpp1y/lambda-generic-78018.C: New.
From-SVN: r253430
Nathan Sidwell [Wed, 4 Oct 2017 17:58:28 +0000 (17:58 +0000)]
[PATCH] remove some unneeded parens
https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00200.html
* toplev.c (toplev::main): Remove excess parens on pretty_printer
decl.
* caller-save.c (insert_save): Remove excess parens on TO_SAVE parm.
From-SVN: r253427
Nathan Sidwell [Wed, 4 Oct 2017 17:54:59 +0000 (17:54 +0000)]
[C++ PATCH] give builtin types consistent name
https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00201.html
Give builtin types the correct name.
* name-lookup.c (set_global_binding): Assert name is DECL_NAME.
* decl.c (record_builtin_type): Reimplement, use new TYPE_DECL for
rname.
From-SVN: r253426
Jason Merrill [Wed, 4 Oct 2017 17:47:51 +0000 (13:47 -0400)]
PR c++/82406 - C++17 error with noexcept function type
* g++.dg/ext/attrib54.C: New.
From-SVN: r253425
Paolo Carlini [Wed, 4 Oct 2017 17:21:21 +0000 (17:21 +0000)]
re PR c++/71946 (asm in toplevel lambda function rejected)
/cp
2017-10-04 Paolo Carlini <paolo.carlini@oracle.com>
Andrew Pinski <apinski@cavium.com>
PR c++/71946
* parser.c (cp_parser_lambda_body): Set parser->in_function_body.
/testsuite
2017-10-04 Paolo Carlini <paolo.carlini@oracle.com>
Andrew Pinski <apinski@cavium.com>
PR c++/71946
* g++.dg/cpp0x/lambda/lambda-asm1.C: New.
* g++.dg/cpp0x/lambda/lambda-stmtexpr1.C: Likewise.
Co-Authored-By: Andrew Pinski <apinski@cavium.com>
From-SVN: r253423
Sudakshina Das [Wed, 4 Oct 2017 16:59:40 +0000 (16:59 +0000)]
[PATCH][AArch64] Add BIC-imm and ORR-imm SIMD pattern
This patch adds the support for BIC (vector, immediate) and
ORR (vector, immediate) SIMD patterns to the AArch64 backend.
Committed on behalf of Sudi Das.
Reviewed-by: Richard Earnshaw <Richard.Earnshaw@arm.com>
Reviewed-by: James Greenhalgh <james.greenhalgh@arm.com>
gcc/
* config/aarch64/aarch64-protos.h (enum simd_immediate_check): New
check type for aarch64_simd_valid_immediate.
(aarch64_output_simd_mov_immediate): Update prototype.
(aarch64_simd_valid_immediate): Update prototype.
* config/aarch64/aarch64-simd.md (orr<mode>3): modified pattern to add
support for ORR-immediate.
(and<mode>3): modified pattern to add support for BIC-immediate.
* config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Function
now checks for valid immediate for BIC and ORR based on new enum
argument.
(aarch64_output_simd_mov_immediate): Function now used to output
BIC/ORR imm as well based on new enum argument.
* config/aarch64/constraints.md (Do): New vector immediate constraint.
(Db) : Likewise.
* config/aarch64/predicates.md (aarch64_reg_or_orr_imm): New predicate.
(aarch64_reg_or_bic_imm): Likewise.
gcc/testsuite/
* gcc.target/aarch64/bic_imm_1.c: New test.
* gcc.target/aarch64/orr_imm_1.c: Likewise.
From-SVN: r253422
Nathan Sidwell [Wed, 4 Oct 2017 16:55:54 +0000 (16:55 +0000)]
[C++ PATCH] Move mangling alias out of ::
https://gcc.gnu.org/ml/gcc-patches/2017-10/msg00199.html
gcc/cp/
Move mangling aliases out of global namespace.
* cp-tree.h (record_mangling): New.
(maybe_remove_implicit_alias): Delete.
* decl2.c (mangled_decls): New hash map.
(generate_mangling_alias): Reimplement using mangled_decls.
(record_mangling): New.
* mangle.c (decl_implicit_alias_p,
maybe_remove_implicit_alias): Delete.
(mangle_decl): Use record_mangling.
* name-lookup.c (supplement_binding_1): Remove
maybe_remove_implicit_alias check.
* call.c (convert_arg_to_ellipsis): Correct comment about passing
by reference.
gcc/testsuite/
* g++.dg/abi/mangle41.C: Adjust diagnostics.
libcc1/
* libcp1plugin.cc (supplement_binding): Don't use
maybe_remove_implicit_alias.
From-SVN: r253421
Andreas Krebbel [Wed, 4 Oct 2017 16:43:09 +0000 (16:43 +0000)]
S/390: Fix mode in vector merge pattern.
vec_unpacks_hi_v4sf/vec_unpacks_lo_v4sf expand vec_mergeh and vec_mergel
patterns also for z13 with V4SF modes so the patterns should better
accept this. Fixed by changing the mode iterator to V_128_NOSINGLE
which accepts V4SF unconditionally.
gcc/ChangeLog:
2017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* config/s390/vx-builtins.md ("vec_mergeh<mode>")
("vec_mergel<mode>"): Change mode iterator to V_128_NOSINGLE.
From-SVN: r253420
Wilco Dijkstra [Wed, 4 Oct 2017 16:40:44 +0000 (16:40 +0000)]
Revert r253399:
PR rtl-optimization/82396
* haifa-sched.c (autopref_multipass_init): Simplify
initialization.
(autopref_rank_data): Simplify sort order.
* sched-int.h (autopref_multipass_data_): Remove
multi_mem_insn_p, min_offset and max_offset.
From-SVN: r253419
Jakub Jelinek [Wed, 4 Oct 2017 16:15:36 +0000 (18:15 +0200)]
re PR c++/82373 (syntax error in error message)
PR c++/82373
* error.c (dump_function_decl): If show_return, call dump_type_suffix
on the same return type dump_type_prefix has been called on.
* g++.dg/cpp1y/pr82373.C: New test.
From-SVN: r253418
Petr Ovtchenkov [Wed, 4 Oct 2017 16:15:18 +0000 (16:15 +0000)]
2017-10-04 Petr Ovtchenkov <ptr@void-ptr.info>
François Dumont <fdumont@gcc.gnu.org>
* include/bits/streambuf_iterator.h
(istreambuf_iterator<>::operator*()): Do not capture iterator state
in Debug assertion.
(istreambuf_iterator<>::operator++()): Likewise and remove _M_sbuf check.
(istreambuf_iterator<>::operator++(int)): Likewise.
(istreambuf_iterator<>::_M_get()): Remove _M_c assignment.
(istreambuf_iterator<>::_S_is_eof()): New.
(istreambuf_iterator<>::_M_at_eof()): Adapt, use latter.
(find(istreambuf_iterator<>, istreambuf_iterator<>, _CharT)):
Return an iterator with _M_c set to eof to capture streambuf state
on evaluation.
(testsuite/24_iterators/istreambuf_iterator/2.cc): Add checks.
Co-Authored-By: François Dumont <fdumont@gcc.gnu.org>
From-SVN: r253417
Jason Merrill [Wed, 4 Oct 2017 15:37:09 +0000 (11:37 -0400)]
PR c++/81525 - broken handling of auto in generic lambda.
* pt.c (tsubst_decl) [VAR_DECL]: Use strip_innermost_template_args.
From-SVN: r253414
David Malcolm [Wed, 4 Oct 2017 14:10:59 +0000 (14:10 +0000)]
C: underline parameters in mismatching function calls
In r253096
("C++: underline parameters in mismatching function calls"
aka
5d78d423a5f7a1d135c7bb678e82007678d1313c
https://gcc.gnu.org/ml/gcc-patches/2017-09/msg01546.html )
I updated the C++ FE's handling of mismatched types in function calls
so that it underlines the pertinent param of the callee, rather than
just the function name.
The following patch does the same for the C frontend.
Given e.g. this type mismatch:
extern int callee (int one, const char *two, float three);
int caller (int first, int second, float third)
{
return callee (first, second, third);
}
the C FE currently emits (trunk):
test.c: In function 'caller':
test.c:5:25: warning: passing argument 2 of 'callee' makes pointer from
integer without a cast [-Wint-conversion]
return callee (first, second, third);
^~~~~~
test.c:1:12: note: expected 'const char *' but argument is of type 'int'
extern int callee (int one, const char *two, float three);
^~~~~~
whereas with this patch the note underlines the pertinent param of
the callee:
test.c: In function 'caller':
test.c:5:25: warning: passing argument 2 of 'callee' makes pointer from
integer without a cast [-Wint-conversion]
return callee (first, second, third);
^~~~~~
test.c:1:41: note: expected 'const char *' but argument is of type 'int'
extern int callee (int one, const char *two, float three);
~~~~~~~~~~~~^~~
making the problem more obvious to the user.
As with the C++ patch, the patch:
(a) updates the locations of the params to cover the range of all
of their tokens, putting the caret on the first character of the
param name (if present), otherwise at the start of the first token
(doing so requires adding a last_token_location to the c_parser, so
we can determine the location of the last consumed token).
(b) updates the "note" to use the param location, rather than the
fndecl location
gcc/c/ChangeLog:
* c-decl.c (push_parm_decl): Store c_parm's location into the
PARAM_DECL.
(build_c_parm): Add "loc" param and store it within the c_parm.
* c-parser.c (struct c_parser): Add "last_token_location" field.
(c_parser_consume_token): Store location of the token into the
new field.
(c_parser_declaration_or_fndef): Store params into DECL_ARGUMENTS
when handling a FUNCTION_DECL, if it doesn't already have them.
(c_parser_parameter_declaration): Generate a location for the
parameter, and pass it to the call to build_c_parm.
* c-tree.h (struct c_parm): Add field "loc".
(build_c_parm): Add location_t param.
* c-typeck.c (get_fndecl_argument_location): New function.
(inform_for_arg): New function.
(convert_for_assignment): Use inform_for_arg when dealing with
ic_argpass.
gcc/testsuite/ChangeLog:
* gcc.dg/diagnostic-range-bad-called-object.c: Update expected
underlining for param.
* gcc.dg/param-type-mismatch.c: Update expected results to reflect
highlighting of parameters; add test coverage for trivial
parameter decls, and for callback parameters.
* gcc.dg/pr68533.c: Update location of two errors to reflect
location of params.
From-SVN: r253411
Nathan Sidwell [Wed, 4 Oct 2017 14:06:41 +0000 (14:06 +0000)]
call.c (convert_arg_to_ellipsis): Correct comment about passing by reference.
* call.c (convert_arg_to_ellipsis): Correct comment about passing
by reference.
From-SVN: r253410
David Malcolm [Wed, 4 Oct 2017 13:41:01 +0000 (13:41 +0000)]
jit: implement gcc_jit_context_new_rvalue_from_vector
This patch implements a new API entrypoint:
/* Build a vector rvalue from an array of elements.
"vec_type" should be a vector type, created using gcc_jit_type_get_vector.
This API entrypoint was added in LIBGCCJIT_ABI_10; you can test for its
presence using
#ifdef LIBGCCJIT_HAVE_gcc_jit_context_new_rvalue_from_vector
*/
extern gcc_jit_rvalue *
gcc_jit_context_new_rvalue_from_vector (gcc_jit_context *ctxt,
gcc_jit_location *loc,
gcc_jit_type *vec_type,
size_t num_elements,
gcc_jit_rvalue **elements);
gcc/jit/ChangeLog:
* docs/cp/topics/expressions.rst (Vector expressions): New
section.
* docs/topics/compatibility.rst (LIBGCCJIT_ABI_10): New ABI tag.
* docs/topics/expressions.rst (Vector expressions): New section.
* docs/topics/types.rst (gcc_jit_type_get_vector): Add link to
gcc_jit_context_new_rvalue_from_vector.
* jit-common.h (gcc::jit:recording::vector_type): New forward
decl.
* jit-playback.c
(gcc::jit::playback::context::new_rvalue_from_vector): New method.
* jit-playback.h
(gcc::jit::playback::context::new_rvalue_from_vector): New method.
* jit-recording.c: In namespace gcc::jit::
(class comma_separated_string): New class.
(comma_separated_string::comma_separated_string): New ctor,
adapted from recording::call::make_debug_string.
(comma_separated_string::~comma_separated_string): New dtor.
In namespace gcc::jit::recording::
(context::new_rvalue_from_vector): New method.
(type::get_vector): Update for renaming of memento_of_get_vector.
(class memento_of_get_vector): Rename to...
(class vector_type): ..this.
(memento_of_new_rvalue_from_vector::memento_of_new_rvalue_from_vector):
New ctor.
(memento_of_new_rvalue_from_vector::replay_into): New method.
(memento_of_new_rvalue_from_vector::visit_children): New method.
(memento_of_new_rvalue_from_vector::make_debug_string): New
method.
(memento_of_new_rvalue_from_vector::write_reproducer): New method.
(call::make_debug_string): Split out arg-printing code into ctor
for comma_separated_string.
* jit-recording.h: In namespace gcc::jit::recording::
(context::new_rvalue_from_vector): New method.
(type::dyn_cast_vector_type): New virtual function.
(class memento_of_get_vector): Rename to...
(class vector_type): ...this.
(vector_type::unqualified): Remove this vfunc override in favor
of...
(vector_type::get_element_type): ...this new method.
(vector_type::get_num_units): New method.
(vector_type::dyn_cast_vector_type): New vfunc override.
(class memento_of_new_rvalue_from_vector): New class.
* libgccjit++.h (gccjit::context::new_rvalue): Add overload for
vector of rvalue.
* libgccjit.c (gcc_jit_context_new_binary_op): Strip off type
qualifications when checking that both operands have same type.
(gcc_jit_context_new_rvalue_from_vector): New API entrypoint.
* libgccjit.h
(LIBGCCJIT_HAVE_gcc_jit_context_new_rvalue_from_vector): New
macro.
(gcc_jit_context_new_rvalue_from_vector): New API entrypoint.
* libgccjit.map (LIBGCCJIT_ABI_10): New ABI tag.
gcc/testsuite/ChangeLog:
* jit.dg/test-expressions.c (make_test_of_vectors): New function.
(create_code): Call it.
* jit.dg/test-vector-rvalues.cc: New test case.
From-SVN: r253409
Andreas Krebbel [Wed, 4 Oct 2017 12:00:34 +0000 (12:00 +0000)]
New target check: vect_peeling_profitable
gcc/ChangeLog:
2017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* doc/sourcebuild.texi: Document vect_peeling_profitable.
gcc/testsuite/ChangeLog:
2017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* g++.dg/vect/slp-pr56812.cc: xfail for targets which don't want
vector loop peeling.
* lib/target-supports.exp (check_effective_target_vect_peeling_profitable):
New proc.
From-SVN: r253407
Andreas Krebbel [Wed, 4 Oct 2017 11:59:30 +0000 (11:59 +0000)]
New target check for double<->int conversions
gcc/ChangeLog:
2017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* doc/sourcebuild.texi: Document vect_intdouble_cvt and
vect_doubleint_cvt.
gcc/testsuite/ChangeLog:
2017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* gcc.dg/vect/pr66251.c: Replace vect_floatint_cvt with
vect_doubleint_cvt and vect_intfloat_cvt with vect_intdouble_cvt.
* gcc.dg/vect/vect-floatint-conversion-2.c: Replace
vect_floatint_cvt with vect_doubleint_cvt.
* gcc.dg/vect/vect-intfloat-conversion-3.c: Replace
vect_intfloat_cvt with vect_intdouble_cvt.
* gfortran.dg/vect/pr60510.f: Require vect_intdouble_cvt.
* gfortran.dg/vect/vect-8.f90: Make number of vectorized loops
depend on vect_intdouble_cvt.
* lib/target-supports.exp
(check_effective_target_vect_doubleint_cvt)
(check_effective_target_vect_intdouble_cvt): New procs.
From-SVN: r253406
Andreas Krebbel [Wed, 4 Oct 2017 11:58:22 +0000 (11:58 +0000)]
New target check: vect_long_mult
We don't have a 64 bit vector integer multiply on z. Add a specific
check for that.
gcc/ChangeLog:
2017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* doc/sourcebuild.texi: Document vect_long_mult.
gcc/testsuite/ChangeLog:
2017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* gcc.dg/vect/pr60656.c: Check vect_long_mult.
* lib/target-supports.exp (check_effective_target_vect_long_mult):
New proc.
From-SVN: r253405
Andreas Krebbel [Wed, 4 Oct 2017 11:57:16 +0000 (11:57 +0000)]
Testcases using dg-options require at least -mzarch.
Testcases which override the vect default options using dg-options
need at least -mzarch on S/390 32 bit.
gcc/testsuite/ChangeLog:
2017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* gfortran.dg/vect/fast-math-mgrid-resid.f: Use -mzarch on S/390.
* gfortran.dg/vect/pr77848.f: Likewise.
From-SVN: r253404
Andreas Krebbel [Wed, 4 Oct 2017 11:56:28 +0000 (11:56 +0000)]
Enable vect_float with S/390 VXE and adjust testcases
The target supports routines provide vect_double and vect_float but
these do not appear to be used consequently in the vect testcases.
With z13 we only have support for vector double but with z14 also for
vector float. This patch adds vect_float to the testcases using the
float data type and make the vect_float target check to return 1 only
on z14.
gcc/testsuite/ChangeLog:
2017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* lib/target-supports.exp (check_effective_target_vect_float):
Return 1 being on a S/390 with VXE.
* gcc.dg/vect/pr31699.c: Require vec_float.
* gcc.dg/vect/pr61194.c: Likewise.
* gcc.dg/vect/pr65947-10.c: Likewise.
* gcc.dg/vect/pr66142.c: Likewise.
* gcc.dg/vect/slp-10.c: Likewise.
* gcc.dg/vect/slp-11c.c: Likewise.
* gcc.dg/vect/slp-12b.c: Likewise.
* gcc.dg/vect/slp-18.c: Likewise.
* gcc.dg/vect/slp-33.c: Likewise.
* gcc.dg/vect/slp-cond-2-big-array.c: Likewise.
* gcc.dg/vect/slp-cond-2.c: Likewise.
* gcc.dg/vect/vect-cond-10.c: Likewise.
* gcc.dg/vect/vect-cond-8.c: Likewise.
* gcc.dg/vect/vect-cond-9.c: Likewise.
* gcc.dg/vect/vect-float-extend-1.c: Likewise.
* gcc.dg/vect/vect-float-truncate-1.c: Likewise.
From-SVN: r253403
Thomas Schwinge [Wed, 4 Oct 2017 11:13:24 +0000 (13:13 +0200)]
Adjust test cases for attributes propagation changes for OMP outlined regions
PR tree-optimization/82374
* c-c++-common/goacc/kernels-double-reduction-n.c: Adjust for
attributes propagation changes for OMP outlined regions.
* c-c++-common/goacc/kernels-double-reduction.c: Likewise.
* c-c++-common/goacc/kernels-reduction.c: Likewise.
From-SVN: r253402
Richard Sandiford [Wed, 4 Oct 2017 10:50:19 +0000 (10:50 +0000)]
PR82413: Mismatched precisions in build_range_check
build_range_check explicitly allows LOW and HIGH to be a different type
from EXP, so we need to use w::to_widest when comparing a value based on
HIGH with a value based on EXP's type.
2017-10-04 Richard Sandiford <richard.sandiford@linaro.org>
gcc/
PR tree-optimization/82413
* fold-const.c (build_range_check): Use widest_int when comparing
the maximum ETYPE value with HIGH.
gcc/testsuite/
PR tree-optimization/82413
* g++.dg/pr82413.C: New test.
From-SVN: r253401
Paul Thomas [Wed, 4 Oct 2017 10:43:45 +0000 (10:43 +0000)]
re PR fortran/60458 (Error message on associate: deferred type parameter and requires either the pointer or allocatable attribute)
2017-10-04 Paul Thomas <pault@gcc.gnu.org>
PR fortran/60458
PR fortran/77296
* resolve.c (resolve_assoc_var): Deferred character type
associate names must not receive an integer conatant length.
* symbol.c (gfc_is_associate_pointer): Deferred character
length functions also require an associate pointer.
* trans-decl.c (gfc_get_symbol_decl): Deferred character
length functions or derived type components require the assoc
name to have variable string length.
* trans-stmt.c (trans_associate_var): Set the string length of
deferred string length associate names. The address expression
is not needed for allocatable, pointer or dummy targets. Change
the comment about defered string length targets.
2017-10-04 Paul Thomas <pault@gcc.gnu.org>
PR fortran/77296
* gfortran.dg/associate_32.f03 : New test.
From-SVN: r253400
Wilco Dijkstra [Wed, 4 Oct 2017 10:27:26 +0000 (10:27 +0000)]
Fix PR82396: qsort comparator non-negative on sorted output
r253236 broke AArch64 bootstrap. Earlier revision r253071 changed scheduling
behaviour on AArch64 as autopref scheduling no longer checks the base.
This patch fixes the bootstrap failure and cleans up autopref scheduling.
The code is greatly simplified. Sort accesses on the offset first, and
only if the offsets are the same fall back to other comparisons in
rank_for_schedule. This doesn't at all restore the original behaviour
since we no longer compare the base address, but it now defines a total
sorting order. More work will be required to improve the sorting so
that only loads/stores with the same base are affected.
gcc/
PR rtl-optimization/82396
* haifa-sched.c (autopref_multipass_init): Simplify
initialization.
(autopref_rank_data): Simplify sort order.
* sched-int.h (autopref_multipass_data_): Remove
multi_mem_insn_p, min_offset and max_offset.
From-SVN: r253399
Tom de Vries [Wed, 4 Oct 2017 08:39:09 +0000 (08:39 +0000)]
Fix openacc float reduction testcases
2017-10-04 Tom de Vries <tom@codesourcery.com>
* testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-3.c
(main): Reduce sum of arr elements. Assert that hres is exactly
representable in 32-bit floating point.
* testsuite/libgomp.oacc-c-c++-common/par-loop-comb-reduction-4.c
(main): Reduce sum of arr elements. Assert that hres and hmres are
exactly representable in 32-bit floating point.
* testsuite/libgomp.oacc-c-c++-common/reduction-7.c (gwv_np_4): Same.
From-SVN: r253398
Paolo Carlini [Wed, 4 Oct 2017 08:34:40 +0000 (08:34 +0000)]
re PR c++/78816 ([c++14] Static auto variable usage in generic/variadic lambda fails to compile)
2017-10-04 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/78816
* g++.dg/cpp1y/lambda-generic-variadic6.C: New.
From-SVN: r253397
Jakub Jelinek [Wed, 4 Oct 2017 07:52:26 +0000 (09:52 +0200)]
re PR tree-optimization/82381 (internal compiler error: qsort checking failed)
PR tree-optimization/82381
* tree-ssa-reassoc.c (sort_by_operand_rank): Check for different
oeN->rank first. Return 1 or -1 if one op is SSA_NAME and the other
is not.
From-SVN: r253396
Jakub Jelinek [Wed, 4 Oct 2017 07:50:38 +0000 (09:50 +0200)]
re PR tree-optimization/82374 (#pragma GCC optimize is not applied to openmp-generated functions)
PR tree-optimization/82374
* omp-low.c (create_omp_child_function): Copy DECL_ATTRIBUTES,
DECL_FUNCTION_SPECIFIC_OPTIMIZATION,
DECL_FUNCTION_SPECIFIC_TARGET and DECL_FUNCTION_VERSIONED from
current_function_decl to the new decl.
* gcc.dg/gomp/pr82374.c: New test.
From-SVN: r253395
Richard Biener [Wed, 4 Oct 2017 07:43:54 +0000 (07:43 +0000)]
id-17.f: For ilp32 allow graphite codegen errors and scan for one.
2017-10-04 Richard Biener <rguenther@suse.de>
* gfortran.dg/graphite/id-17.f: For ilp32 allow graphite codegen
errors and scan for one.
* gfortran.dg/graphite/id-19.f: Likewise.
* gfortran.dg/graphite/pr29832.f90: Likewise.
* gfortran.dg/graphite/pr42326-1.f90: Likewise.
* gfortran.dg/graphite/pr42326.f90: Likewise.
* gfortran.dg/graphite/pr68550-2.f90: Likewise.
* gfortran.dg/graphite/run-id-2.f90: Likewise.
* gfortran.dg/graphite/run-id-3.f90: Likewise.
* gfortran.dg/graphite/pr42393-1.f90: Dump graphite.
From-SVN: r253394
GCC Administrator [Wed, 4 Oct 2017 00:16:21 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r253393
Michael Meissner [Tue, 3 Oct 2017 23:08:16 +0000 (23:08 +0000)]
rs6000-builtin.def (BU_FLOAT128_2_HW): Define new helper macro for IEEE float128 hardware built-in functions.
[gcc]
2017-10-03 Michael Meissner <meissner@linux.vnet.ibm.com>
* config/rs6000/rs6000-builtin.def (BU_FLOAT128_2_HW): Define new
helper macro for IEEE float128 hardware built-in functions.
(SQRTF128_ODD): Add built-in functions with the round-to-odd
semantics.
(TRUNCF128_ODD): Likewise.
(ADDF128_ODD): Likewise.
(SUBF128_ODD): Likewise.
(MULF128_ODD): Likewise.
(DIVF128_ODD): Likewise.
(FMAF128_ODD): Likewise.
* config/rs6000/rs6000.md (UNSPEC_ROUND_TO_ODD): Rename to
UNSPEC_TRUNC_ROUND_TO_ODD.
(UNSPEC_TRUNC_ROUND_TO_ODD): Likewise.
(UNSPEC_ADD_ROUND_TO_ODD): New unspec codes for the IEEE 128-bit
floating point round to odd instructions.
(UNSPEC_SUB_ROUND_TO_ODD): Likewise.
(UNSPEC_MUL_ROUND_TO_ODD): Likewise.
(UNSPEC_DIV_ROUND_TO_ODD): Likewise.
(UNSPEC_FMA_ROUND_TO_ODD): Likewise.
(UNSPEC_SQRT_ROUND_TO_ODD): Likewise.
(trunc<mode>sf2_hw): Change the truncate with round to odd
expansion to use UNSPEC_TRUNC_ROUND_TO_ODD.
(add<mode>3_odd): Add insns for IEEE 128-bit floating point round
to odd hardware instructions.
(sub<mode>3_odd): Likewise.
(mul<mode>3_odd): Likewise.
(div<mode>3_odd): Likewise.
(sqrt<mode>2_odd): Likewise.
(fma<mode>4_odd): Likewise.
(fms<mode>4_odd): Likewise.
(nfma<mode>4_odd): Likewise.
(nfms<mode>4_odd): Likewise.
(trunc<mode>df2_odd): Change the truncate with round to odd
expansion to use UNSPEC_TRUNC_ROUND_TO_ODD. Add a generator
function.
* doc/extend.texi (PowerPC built-in functions): Update documentation
for existing IEEE float128-bit built-in functions. Add built-in
functions that generate the IEEE 128-bit floating point round to
odd instructions.
[gcc/testsuite]
2017-10-03 Michael Meissner <meissner@linux.vnet.ibm.com>
* gcc.target/powerpc/float128-odd.c: New test.
From-SVN: r253389
Paolo Carlini [Tue, 3 Oct 2017 21:15:56 +0000 (21:15 +0000)]
re PR c++/70343 (internal compiler error: in tsubst_copy, wrong code with lambda in template fn)
2017-10-03 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/70343
* g++.dg/cpp0x/lambda/lambda-70343.C: New.
From-SVN: r253388
Tony Reix [Tue, 3 Oct 2017 18:26:31 +0000 (18:26 +0000)]
Import from libffi master repository.
2017-08-31 Tony Reix <tony.reix@atos.net>
* src/powerpc/aix.S (ffi_call_AIX): Add debugging pseudo-op and
labels for EH.
(ffi_call_go_AIX): New function.
(_GLOBAL__F_libffi_src_powerpc_aix): New EH frame.
* src/powerpc/aix_closure.S (ffi_closure_ASM): Add debugging
pseudo-op and labels for EH.
(ffi_go_closure_ASM): New function.
(_GLOBAL__F_libffi_src_powerpc_aix_closure): New EH frame.
* src/powrpc/ffi_darwin.c (ffi_call_go): New function.
(ffi_prep_go_closure): New function.
(ffi_closure_helper_common): Rename from ffi_closure_helper_DARWIN.
(ffi_closure_helper_DARWIN): Call ffi_closure_helper_common.
(ffi_go_closure_helper_DARWIN): Call ffi_closure_helper_common.
* src/powerpc/ffitarget.h (FFI_GO_CLOSURES): Define.
From-SVN: r253386
Jeff Law [Tue, 3 Oct 2017 17:09:54 +0000 (11:09 -0600)]
re PR target/82358 (i386/stack-check-11.c fail)
PR target/82358
* gcc.target/i386/stack-check-11.c: Use -mtune=generic.
From-SVN: r253385
Segher Boessenkool [Tue, 3 Oct 2017 16:02:38 +0000 (18:02 +0200)]
simplify-rtx: Remove non-simplifying simplification (PR77729)
If we have (X&C1)|C2 simplify_binary_operation_1 makes C1 as small as
possible. This makes worse code in common cases like when the AND with
C1 is from a zero-extension. This patch fixes it by removing this
transformation (twice).
PR rtl-optimization/77729
* simplify-rtx.c (simplify_binary_operation_1): Delete the (X&C1)|C2
to (X&(C1&~C2))|C2 transformations.
From-SVN: r253384
Henry Linjamäki [Tue, 3 Oct 2017 15:16:34 +0000 (15:16 +0000)]
[BRIGFE] Fix (more) crash with calls with more than 4 args.
It missed a reference which is required because vector expansion
can move the object to another location.
From-SVN: r253382
Thomas Koenig [Tue, 3 Oct 2017 13:49:39 +0000 (13:49 +0000)]
io.c (match_wait_element): Correctly match END and EOR tags.
2017-10-03 Thomas Koenig <tkoenig@gcc.gnu.org>
* io.c (match_wait_element): Correctly match END and EOR tags.
* dump-parse-tree.c (show_code_node): Handle EXEC_WAIT.
From-SVN: r253381
Martin Jambor [Tue, 3 Oct 2017 11:43:45 +0000 (13:43 +0200)]
[PR 82363] Fix thinko in SRA subaccess propagation
2017-10-03 Martin Jambor <mjambor@suse.cz>
PR tree-optimization/82363
* tree-sra.c (propagate_subaccesses_across_link): In unrecoverable
mismatch, mark lacc written regardless of racc.
testsuite/
* gcc.dg/tree-ssa/pr82363.c: New test.
From-SVN: r253380
Jakub Jelinek [Tue, 3 Oct 2017 11:24:39 +0000 (13:24 +0200)]
re PR tree-optimization/82381 (internal compiler error: qsort checking failed)
PR tree-optimization/82381
* tree-ssa-reassoc.c (sort_by_operand_rank): Don't check
stmt_to_insert nor wheather SSA_NAMEs are default defs.
Return 1 or -1 if one of bba and bbb is NULL. If bb_rank is equal,
fallthrough into reassoc_stmt_dominates_stmt_p.
* gcc.c-torture/compile/pr82381.c: New test.
From-SVN: r253379
Jakub Jelinek [Tue, 3 Oct 2017 09:49:37 +0000 (11:49 +0200)]
re PR target/82386 (internal compiler error: Segmentation fault on 32-bit powerpc BE targets)
PR target/82386
* combine.c (combine_instructions): Don't combine in unreachable
basic blocks.
* gcc.dg/pr82386.c: New test.
From-SVN: r253378
Ian Lance Taylor [Tue, 3 Oct 2017 02:27:33 +0000 (02:27 +0000)]
ztest.c: #include <errno.h>.
* ztest.c: #include <errno.h>.
(TEST_TIMING): Don't define, don't test.
(xclock_gettime, xclockid_t): Define if !HAVE_CLOCK_GETTIME.
(clockid_t, clock_gettime, CLOCK_REALTIME): Likewise.
(ZLIB_CLOCK_GETTIME_ARG): Define.
* configure.ac: Change clock_gettime_link to CLOCK_GETTIME_LINK.
* Makefile.am: Likewise.
* configure, Makefile.in: Rebuild.
From-SVN: r253377
GCC Administrator [Tue, 3 Oct 2017 00:16:16 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r253376
Martin Sebor [Mon, 2 Oct 2017 23:57:19 +0000 (23:57 +0000)]
Clean up more fallout from r252976.
libatomic/ChangeLog:
2017-10-02 Martin Sebor <msebor@redhat.com>
PR c/81854
* acinclude.m4 (LIBAT_CHECK_IFUNC): Have ifunc resolver return
a function pointer rather than void* to avoid GCC 8 warnings.
* configure: Regenerate.
* libatomic_i.h: Declare ifunc resolvers to return function
pointers rather than void*.
From-SVN: r253372
Jakub Jelinek [Mon, 2 Oct 2017 23:28:54 +0000 (01:28 +0200)]
charconv (__unsigned_least_t): Fix number of closing >s for !_GLIBCXX_USE_INT128.
* include/std/charconv (__unsigned_least_t): Fix number of closing >s for
!_GLIBCXX_USE_INT128.
From-SVN: r253371
Paolo Carlini [Mon, 2 Oct 2017 22:21:16 +0000 (22:21 +0000)]
re PR c++/70570 (Assembler error "symbol already defined" from nested lambdas and function-static variable)
2017-10-02 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/70570
* g++.dg/cpp1y/lambda-generic-70570.C: New.
From-SVN: r253370
Paolo Carlini [Mon, 2 Oct 2017 22:02:03 +0000 (22:02 +0000)]
re PR c++/79590 (ICE (internal compiler error) in nothrow_spec_p with generic lambda and `noexcept(noexcept(...))` expression)
2017-10-02 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/79590
* g++.dg/cpp1y/lambda-generic-noexcept1.C: New.
From-SVN: r253369
Paolo Carlini [Mon, 2 Oct 2017 21:44:55 +0000 (21:44 +0000)]
re PR c++/79005 (Use of a captured variable within nested generic lambdas provokes internal compiler error.)
2017-10-02 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/79005
* g++.dg/cpp1y/lambda-generic-79005.C: New.
From-SVN: r253368
Eric Botcazou [Mon, 2 Oct 2017 19:38:06 +0000 (19:38 +0000)]
re PR ada/82384 (s-taprop.adb failed to compile for x32)
PR ada/82384
* libgnarl/s-linux__x32.ads (suseconds_t): New subtype.
(time_t): Change from derived type to subtype.
(timeval): Use suseconds_t for tv_usec.
* libgnarl/s-osinte__x32.adb (To_Timespec): Remove use type clause.
From-SVN: r253366
Paul Thomas [Mon, 2 Oct 2017 18:17:39 +0000 (18:17 +0000)]
re PR fortran/82312 ([OOP] Pointer assignment to component of class variable results wrong vptr for the variable.)
2017-10-02 Paul Thomas <pault@gcc.gnu.org>
PR fortran/82312
* resolve.c (gfc_resolve_code): Simplify condition for class
pointer assignments becoming regular assignments by asserting
that only class valued targets are permitted.
* trans-expr.c (trans_class_pointer_fcn): New function using a
block of code from gfc_trans_pointer_assignment.
(gfc_trans_pointer_assignment): Call the new function. Tidy up
a minor whitespace issue.
2017-10-02 Paul Thomas <pault@gcc.gnu.org>
PR fortran/82312
* gfortran.dg/typebound_proc_36.f90 : New test.
From-SVN: r253362
Peter Bergner [Mon, 2 Oct 2017 16:56:58 +0000 (11:56 -0500)]
re PR target/80210 (ICE in in extract_insn, at recog.c:2311 on ppc64 for with __builtin_pow)
gcc/
PR target/80210
* config/rs6000/rs6000.c (rs6000_option_override_internal): Rewrite
function to not use the have_cpu variable. Do not set cpu_index,
rs6000_cpu_index or rs6000_tune_index if we end up using TARGET_DEFAULT
or the default cpu.
(rs6000_valid_attribute_p): Remove duplicate initializations of
old_optimize and func_optimize.
(rs6000_pragma_target_parse): Call rs6000_activate_target_options ().
(rs6000_activate_target_options): Make global.
* config/rs6000/rs6000-protos.h (rs6000_activate_target_options): Add
prototype.
gcc/testsuite/
PR target/80210
* gcc.target/powerpc/pr80210-2.c: New test.
From-SVN: r253358
Jakub Jelinek [Mon, 2 Oct 2017 15:48:55 +0000 (17:48 +0200)]
tree-dfa.c (get_ref_base_and_extent): Set *pmax_size to -1 if *poffset + *pmax_size overflows in HOST_WIDE_INT.
* tree-dfa.c (get_ref_base_and_extent): Set *pmax_size to -1
if *poffset + *pmax_size overflows in HOST_WIDE_INT.
Set *poffset to 0 and *psize and *pmax_size to -1 if
*poffset + *psize overflows in HOST_WIDE_INT.
* gcc.dg/pr82389.c: New test.
From-SVN: r253357
Jakub Jelinek [Mon, 2 Oct 2017 15:44:10 +0000 (17:44 +0200)]
re PR tree-optimization/82387 (wrong code at -O1 and -Os on x86_64-linux-gnu in 64-bit mode)
PR tree-optimization/82387
PR tree-optimization/82388
PR tree-optimization/82389
* tree-ssa-dse.c (dse_classify_store): Test byte_tracking_enabled
instead of live_bytes non-NULL.
* gcc.c-torture/compile/pr82389.c: New test.
* gcc.c-torture/execute/pr82387.c: New test.
* gcc.c-torture/execute/pr82388.c: New test.
From-SVN: r253356
Jonathan Wakely [Mon, 2 Oct 2017 14:06:40 +0000 (15:06 +0100)]
C++17 P0067R5 std::to_chars and std::from_chars (partial)
This adds the integral overloads of std::to_chars and std::from_chars,
including the changes made by P0682R0. Support for floating point types
is absent.
* include/Makefile.am: Add new <charconv> header.
* include/Makefile.in: Regenerate.
* include/precompiled/stdc++.h: Include <charconv>.
* include/std/charconv: New file.
(to_chars_result, to_chars, from_chars_result, from_chars): Define.
* testsuite/20_util/from_chars/1.cc: New test.
* testsuite/20_util/from_chars/1_neg.cc: New test.
* testsuite/20_util/from_chars/2.cc: New test.
* testsuite/20_util/from_chars/requirements.cc: New test.
* testsuite/20_util/to_chars/1.cc: New test.
* testsuite/20_util/to_chars/1_neg.cc: New test.
* testsuite/20_util/to_chars/2.cc: New test.
* testsuite/20_util/to_chars/requirements.cc: New test.
From-SVN: r253353
Jakub Jelinek [Mon, 2 Oct 2017 14:00:53 +0000 (16:00 +0200)]
backtrace-rename.h (backtrace_uncompress_zdebug): Define.
* libbacktrace/backtrace-rename.h (backtrace_uncompress_zdebug):
Define.
From-SVN: r253351
Paolo Carlini [Mon, 2 Oct 2017 12:40:26 +0000 (12:40 +0000)]
re PR c++/79180 (Nested lambda-capture causes segfault for parameter pack)
2017-10-02 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/79180
* g++.dg/cpp0x/lambda/lambda-nested8.C: New.
* g++.dg/torture/pr79180.C: Likewise.
PR c++/71386
* g++.dg/cpp1y/lambda-generic-nested1.C: New.
From-SVN: r253350
Thomas Schwinge [Mon, 2 Oct 2017 11:56:50 +0000 (13:56 +0200)]
Handle libbacktrace in contrib/gcc_update
contrib/
* gcc_update (files_and_dependencies): Handle libbacktrace.
From-SVN: r253346
Thomas Schwinge [Mon, 2 Oct 2017 11:56:39 +0000 (13:56 +0200)]
libbacktrace: Support the case that clock_gettime is in librt
libbacktrace/
PR other/67165
* Makefile.am: Append the content of clock_gettime_link to
ztest_LDADD.
* configure.ac: Test for the case that clock_gettime is in librt.
* Makefile.in: Regenerate.
* configure: Likewise.
From-SVN: r253345
Thomas Schwinge [Mon, 2 Oct 2017 11:56:25 +0000 (13:56 +0200)]
libbacktrace: Conditionalize test timing on clock_gettime availability
libbacktrace/
PR other/67165
* configure.ac: Check for clock_gettime.
* config.h.in: Regenerate.
* configure: Likewise.
* ztest.c (average_time, test_large): Conditionalize test timing
on clock_gettime availability.
From-SVN: r253344
Georg-Johann Lay [Mon, 2 Oct 2017 11:31:03 +0000 (11:31 +0000)]
re PR target/41076 ([avr] pessimal code for logical OR of 8-bit fields)
PR target/41076
* confg/avr/avr.md (*iorhi3.ashift8-ext.zerox): Add "r,r,0"
alternative.
From-SVN: r253343
Richard Biener [Mon, 2 Oct 2017 10:04:00 +0000 (10:04 +0000)]
graphite-isl-ast-to-gimple.c (set_codegen_error): With -fchecking and --param graphite-allow-codegen-errors=0 ICE.
2017-10-02 Richard Biener <rguenther@suse.de>
* graphite-isl-ast-to-gimple.c (set_codegen_error): With
-fchecking and --param graphite-allow-codegen-errors=0 ICE.
* params.def (PARAM_GRAPHITE_ALLOW_CODEGEN_ERRORS): New param.
* gcc.dg/graphite/graphite.exp: Add -fdump-tree-graphite-details.
* gcc.dg/graphite/id-15.c: Adjust for existing codegen errors.
* gcc.dg/graphite/id-16.c: Likewise.
* gcc.dg/graphite/pr46168.c: Likewise.
* gcc.dg/graphite/pr68756.c: Likewise.
* gcc.dg/graphite/pr69728.c: Likewise.
* gcc.dg/graphite/pr71575-2.c: Likewise.
* gcc.dg/graphite/pr77362.c: Likewise.
* gcc.dg/graphite/pr81373.c: Likewise.
* gcc.dg/graphite/run-id-pr67700-1.c: Likewise.
* gfortran.dg/graphite/interchange-1.f: Likewise.
* gfortran.dg/graphite/pr29581.f90: Likewise.
* gfortran.dg/graphite/pr42334-1.f: Likewise.
* gfortran.dg/graphite/pr42393-1.f90: Likewise.
* gfortran.dg/graphite/pr42393.f90: Likewise.
* gfortran.dg/graphite/pr47019.f: Likewise.
From-SVN: r253342
Richard Sandiford [Mon, 2 Oct 2017 09:45:40 +0000 (09:45 +0000)]
Fix mismatched precisions in tree arithmetic
The tree wi:: decompose routine wasn't asserting that the requested
precision matched the tree's precision. This could make a difference
for unsigned trees that are exactly N HWIs wide and that have the upper
bit set, since we then need an extra zero HWI when extending it to wider
precisions (as for wi::to_widest).
This patch adds the assert and fixes the fallout shown by the testsuite.
Go seems to be unaffected.
2017-10-02 Richard Sandiford <richard.sandiford@linaro.org>
gcc/
* tree.h (wi::int_traits <const_tree>::decompose): Assert that the
requested precision matches the type's.
* calls.c (alloc_max_size): Calculate the new candidate size as
a widest_int and use wi::to_widest when comparing it with the
current candidate size.
* gimple-ssa-warn-alloca.c (pass_walloca::execute): Compare with
zero rather than integer_zero_node.
* match.pd: Check for a no-op conversion before using wi::add
rather than after. Use tree_to_uhwi when summing small shift
counts into an unsigned int.
gcc/c-family/
* c-warn.c (warn_tautological_bitwise_comparison): Use wi::to_widest
when combining the original unconverted comparison operands.
gcc/cp/
* constexpr.c (cxx_eval_store_expression): Use wi::to_widest
when comparing the array bounds with an ARRAY_REF index.
gcc/ada/
* gcc-interface/decl.c (annotate_value): Use wi::to_widest when
handling the form (plus/mult (convert @0) @1).
From-SVN: r253341
Paolo Carlini [Mon, 2 Oct 2017 09:41:36 +0000 (09:41 +0000)]
re PR c++/69977 (internal compiler error: Segmentation fault when using generic lambdas)
2017-10-02 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/69977
* g++.dg/cpp1y/lambda-generic-69977.C: New.
From-SVN: r253340