David Edelsohn [Wed, 2 Aug 2017 12:45:55 +0000 (08:45 -0400)]
Add PR number.
From-SVN: r250825
David Edelsohn [Wed, 2 Aug 2017 12:44:54 +0000 (12:44 +0000)]
* xcoff.c (xcoff_process_linenos): Initialize incl to NULL.
From-SVN: r250824
Tom de Vries [Wed, 2 Aug 2017 12:11:50 +0000 (12:11 +0000)]
Add missing probabilities in nvptx_lock{less,full}_update
2017-08-02 Tom de Vries <tom@codesourcery.com>
Cesar Philippidis <cesar@codesourcery.com>
* config/nvptx/nvptx.c (nvptx_lockless_update, nvptx_lockfull_update):
Add missing edge probabilities.
Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com>
From-SVN: r250823
Marek Polacek [Wed, 2 Aug 2017 11:56:54 +0000 (11:56 +0000)]
re PR c/81448 (False positive -Werror=multistatement-macros in openssl)
PR c/81448
PR c/81306
* c-warn.c (warn_for_multistatement_macros): Prevent bogus
warnings. Avoid walking MACRO_MAP_LOCATIONS.
* c-c++-common/Wmultistatement-macros-13.c: New test.
From-SVN: r250822
Marek Polacek [Wed, 2 Aug 2017 11:50:16 +0000 (11:50 +0000)]
re PR c/81289 (ICE in libcpp/line-map.c)
PR c/81289
* c-parser.c (c_parser_unary_expression): Use set_error.
* gcc.dg/noncompile/pr81289.c: New test.
From-SVN: r250821
Uros Bizjak [Wed, 2 Aug 2017 11:19:58 +0000 (13:19 +0200)]
pr25967-1.c: Delete
* gcc.dg/guality/pr25967-1.c: Delete
* gcc.dg/guality/pr25967-2.c: Delete
* gcc.dg/guality/pr25967-3.c: Rename to pr25967-1.c.
* gcc.dg/guality/pr25967-4.c: Rename to pr25967-2.c.
* gcc.dg/torture/pr25967-1.c: Delete
* gcc.dg/torture/pr25967-2.c: Delete
* gcc.dg/torture/pr25967-3.c: Rename to pr25967-1.c.
* gcc.dg/torture/pr25967-4.c: Rename to pr25967-2.c.
From-SVN: r250820
Tamar Christina [Wed, 2 Aug 2017 08:55:59 +0000 (08:55 +0000)]
aarch64.c (aarch64_reinterpret_float_as_int): Correct endianness.
2017-08-02 Tamar Christina <tamar.christina@arm.com>
* config/aarch64/aarch64.c (aarch64_reinterpret_float_as_int):
Correct endianness.
From-SVN: r250818
Jakub Jelinek [Wed, 2 Aug 2017 07:28:21 +0000 (09:28 +0200)]
re PR c++/81640 (ICE in lookup_fnfields_slot_nolazy w/ -Wshadow=compatible-local)
PR c++/81640
* call.c (build_user_type_conversion_1): Only call
lookup_fnfields_slot if totype is CLASS_TYPE_P.
* g++.dg/warn/Wshadow-compatible-local-2.C: New test.
From-SVN: r250816
Jakub Jelinek [Wed, 2 Aug 2017 07:13:25 +0000 (09:13 +0200)]
re PR middle-end/79499 (ICE in rtl_verify_bb_insns, at cfgrtl.c:2661)
PR middle-end/79499
* function.c (thread_prologue_and_epilogue_insns): Determine blocks
for find_many_sub_basic_blocks bitmap by looking up BLOCK_FOR_INSN
of first NONDEBUG_INSN_P in each of the split_prologue_seq and
prologue_seq sequences - if any.
* gcc.dg/pr79499.c: New test.
From-SVN: r250814
Richard Biener [Wed, 2 Aug 2017 06:57:12 +0000 (06:57 +0000)]
tree-vect-stmts.c (vectorizable_store): Perform vector extracts via vectors if supported...
2017-08-02 Richard Biener <rguenther@suse.de>
* tree-vect-stmts.c (vectorizable_store): Perform vector extracts
via vectors if supported, integer extracts via punning if supported
or otherwise vector extracts.
From-SVN: r250813
Richard Biener [Wed, 2 Aug 2017 06:52:26 +0000 (06:52 +0000)]
tree-ssa-pre.c (bitmap_insert_into_set_1): Remove and inline into ...
2017-08-02 Richard Biener <rguenther@suse.de>
* tree-ssa-pre.c (bitmap_insert_into_set_1): Remove and inline
into ...
(bitmap_insert_into_set): ... this.
From-SVN: r250812
Richard Biener [Wed, 2 Aug 2017 06:38:36 +0000 (06:38 +0000)]
re PR tree-optimization/81633 (Incorrect floating point result with tree vectoriser)
2017-08-02 Richard Biener <rguenther@suse.de>
PR tree-optimization/81633
Revert
2015-08-17 Alan Hayward <alan.hayward@arm.com>
PR tree-optimization/71752
* tree-vect-slp.c (vect_get_slp_defs): Handle null operands.
* gcc.dg/vect/pr81633.c: New testcase.
From-SVN: r250811
GCC Administrator [Wed, 2 Aug 2017 00:16:20 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r250810
Joseph Myers [Tue, 1 Aug 2017 23:44:12 +0000 (00:44 +0100)]
* fr.po: Update.
From-SVN: r250805
Daniel Santos [Tue, 1 Aug 2017 22:33:16 +0000 (22:33 +0000)]
[i386] Remove ix86_frame::outlined_save_offset and machine_function::call_ms2sysv_pad_out
ix86_frame::outlined_save_offset isn't used and
machine_function::call_ms2sysv_pad_out is an ineffective strategy.
2017-08-01 Daniel Santos <daniel.santos@pobox.com>
* config/i386/i386.h (ix86_frame::outlined_save_offset): Remove field.
(machine_function::call_ms2sysv_pad_out): Remove field.
* config/i386/i386.c (xlogue_layout::get_stack_space_used): Modify.
(ix86_compute_frame_layout): Likewise.
From-SVN: r250803
Eric Botcazou [Tue, 1 Aug 2017 22:15:32 +0000 (22:15 +0000)]
c-ada-spec.c (has_static_fields): Look only into fields.
* c-ada-spec.c (has_static_fields): Look only into fields.
(dump_generic_ada_node): Small tweak.
(dump_nested_types): Look only into fields.
(print_ada_declaration): Look only into methods. Small tweak.
(print_ada_struct_decl): Look only into fields. Use DECL_VIRTUAL_P.
From-SVN: r250802
H.J. Lu [Tue, 1 Aug 2017 21:39:51 +0000 (21:39 +0000)]
i386: Add more naked attribute tests
Add some tests for implementing interrupt handlers with naked attribute
and without asm statements.
* gcc.dg/guality/pr25967-3.c: New test.
* gcc.dg/guality/pr25967-4.c: Likewise.
* gcc.dg/torture/pr25967-3.c: Likewise.
* gcc.dg/torture/pr25967-4.c: Likewise.
From-SVN: r250800
H.J. Lu [Tue, 1 Aug 2017 21:07:04 +0000 (21:07 +0000)]
i386: Add some naked attribute tests
Add some tests for implementing interrupt handlers with naked attribute.
* gcc.dg/guality/pr25967-1.c: New test.
* gcc.dg/guality/pr25967-2.c: Likewise.
* gcc.dg/torture/pr25967-1.c: Likewise.
* gcc.dg/torture/pr25967-2.c: Likewise.
From-SVN: r250799
Eric Botcazou [Tue, 1 Aug 2017 20:50:00 +0000 (20:50 +0000)]
c-ada-spec.c (print_generic_ada_decl): Pass correctly-typed constant.
* c-ada-spec.c (print_generic_ada_decl): Pass correctly-typed constant.
(dump_ada_function_declaration): Likewise.
(dump_generic_ada_node): Likewise.
(print_ada_declaration): Add support for const-qualified variables.
From-SVN: r250797
H.J. Lu [Tue, 1 Aug 2017 20:25:41 +0000 (20:25 +0000)]
386: Disallow naked attribute with interrupt attribute
gcc/
PR target/81654
* config/i386/i386.c (ix86_set_func_type): Disallow naked
attribute with interrupt attribute.
gcc/testsuite/
PR target/81654
* gcc.target/i386/pr81654.c: New test.
From-SVN: r250793
Thomas Koenig [Tue, 1 Aug 2017 19:09:02 +0000 (19:09 +0000)]
re PR fortran/79312 (Empty array in assignment not correctly type-checked)
2017-08-01 Thomas König <tkoenig@gcc.gnu.org>
PR fortran/79312
* intrisic.c (gfc_convert_type_warn): Only set typespec for
empty array constructors which don't have it already.
2017-08-01 Thomas König <tkoenig@gcc.gnu.org>
PR fortran/79312
* gfortran.dg/logical_assignment_1.f90: New test.
From-SVN: r250792
Thomas Koenig [Tue, 1 Aug 2017 17:59:11 +0000 (17:59 +0000)]
re PR fortran/45435 (Automatically generate C interop interface blocks from C code)
2017-08-01 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/45435
* lang.opt (fc-prototypes): Add option.
* gfortran.h (gfc_typespec): Add interop_kind to struct.
(gfc_dump_c_prototypes): Add prototype.
* decl.c (gfc_match_kind_spec): Copy symbol used for kind to typespec.
* parse.c (gfc_parse_file): Call gfc_dump_prototypes.
* dump-parse-tree.c (gfc_dump_c_prototypes): New function.
(type_return): New enum.
(get_c_type_name): New function.
(write_decl): New function.
(write_type): New function.
(write_variable): New function.
(write_proc): New function.
(write_interop_decl): New function.
* invoke.texi: Document -fc-prototypes.
From-SVN: r250791
Andrew Pinski [Tue, 1 Aug 2017 17:58:17 +0000 (17:58 +0000)]
tree-ssa-scopedtables.c (hashable_expr_equal_p): Check BIT_INSERT_EXPR's operand 1 to see if the types precision matches.
2017-08-01 Andrew Pinski <apinski@cavium.com>
* tree-ssa-scopedtables.c (hashable_expr_equal_p): Check
BIT_INSERT_EXPR's operand 1
to see if the types precision matches.
From-SVN: r250790
Martin Liska [Tue, 1 Aug 2017 17:21:29 +0000 (19:21 +0200)]
Make mempcpy more optimal (PR middle-end/70140).
2017-08-01 Martin Liska <mliska@suse.cz>
PR middle-end/70140
* gcc.dg/string-opt-1.c: Adjust test-case to scan for memcpy.
2017-08-01 Martin Liska <mliska@suse.cz>
PR middle-end/70140
* builtins.c (expand_builtin_memcpy_args): Remove.
(expand_builtin_memcpy): Call newly added function
expand_builtin_memory_copy_args.
(expand_builtin_memcpy_with_bounds): Likewise.
(expand_builtin_mempcpy): Remove last argument.
(expand_builtin_mempcpy_with_bounds): Likewise.
(expand_builtin_memory_copy_args): New function created from
expand_builtin_mempcpy_args with small modifications.
(expand_builtin_mempcpy_args): Remove.
(expand_builtin_stpcpy): Remove unused argument.
(expand_builtin): Likewise.
(expand_builtin_with_bounds): Likewise.
From-SVN: r250789
Martin Liska [Tue, 1 Aug 2017 17:10:38 +0000 (19:10 +0200)]
Revert r250771
2017-08-01 Martin Liska <mliska@suse.cz>
Revert r250771
Make mempcpy more optimal (PR middle-end/70140).
2017-08-01 Martin Liska <mliska@suse.cz>
Revert r250771
Make mempcpy more optimal (PR middle-end/70140).
From-SVN: r250788
Jason Merrill [Tue, 1 Aug 2017 16:38:11 +0000 (12:38 -0400)]
* decl.c (declare_global_var): Set DECL_CONTEXT.
From-SVN: r250786
Jakub Jelinek [Tue, 1 Aug 2017 16:34:31 +0000 (18:34 +0200)]
re PR target/81622 (ICE on invalid altivec code with ppc64{,le})
PR target/81622
* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For
__builtin_vec_cmpne verify both arguments are compatible vectors
before looking at TYPE_MODE on the element type. For __builtin_vec_ld
verify arg1_type is a pointer or array type. For __builtin_vec_st,
move computation of aligned to after checking the argument types.
Formatting fixes.
* gcc.target/powerpc/pr81622.c: New test.
From-SVN: r250785
Jakub Jelinek [Tue, 1 Aug 2017 16:12:31 +0000 (18:12 +0200)]
re PR target/80846 (auto-vectorized AVX2 horizontal sum should narrow to 128b right away, to be more efficient for Ryzen and Intel)
PR target/80846
* config/rs6000/vsx.md (vextract_fp_from_shorth,
vextract_fp_from_shortl): Add element mode after mode in gen_vec_init*
calls.
From-SVN: r250784
Steve Ellcey [Tue, 1 Aug 2017 15:37:22 +0000 (15:37 +0000)]
re PR tree-optimization/80925 (vect peeling failures)
2017-08-01 Steve Ellcey <sellcey@cavium.com>
PR tree-optimization/80925
* gcc.dg/vect/vect-28.c: Add
--param vect-max-peeling-for-alignment=0 option.
Remove unaligned access and peeling checks.
* gcc.dg/vect/vect-33-big-array.c: Ditto.
* gcc.dg/vect/vect-70.c: Ditto.
* gcc.dg/vect/vect-87.c: Ditto.
* gcc.dg/vect/vect-88.c: Ditto.
* gcc.dg/vect/vect-91.c: Ditto.
* gcc.dg/vect/vect-93.c: Ditto.
From-SVN: r250783
Jerome Lambourg [Tue, 1 Aug 2017 14:14:21 +0000 (14:14 +0000)]
config.gcc (arm-wrs-vxworks*): Rework to handle arm-wrs-vxworks7 as well as arm-wrs-vxworks.
2017-08-01 Jerome Lambourg <lambourg@adacore.com>
Doug Rupp <rupp@adacore.com>
Olivier Hainque <hainque@adacore.com>
gcc/
* config.gcc (arm-wrs-vxworks*): Rework to handle arm-wrs-vxworks7 as
well as arm-wrs-vxworks. Update target_cpu_name from arm6 (arch v3) to
arm8 (arch v4).
* config/arm/vxworks.h (MAYBE_TARGET_BPABI_CPP_BUILTINS): New, helper
for TARGET_OS_CPP_BUILTIN.
(TARGET_OS_CPP_BUILTIN): Invoke MAYBE_TARGET_BPABI_CPP_BUILTINS(),
refine CPU definitions for arm_arch5 and add those for arm_arch6 and
arm_arch7.
(MAYBE_ASM_ABI_SPEC): New, helper for SUBTARGET_EXTRA_ASM_SPEC,
passing required abi options to the assembler for EABI configurations.
(EXTRA_CC1_SPEC): New macro, to help prevent the implicit production
of .text.hot and .text.unlikely sections for kernel modules when
using ARM style exceptions.
(CC1_SPEC): Remove obsolete attempt at mimicking Diab toolchain
options. Add EXTRA_CC1_SPEC.
(VXWORKS_ENDIAN_SPEC): Adjust comment and remove handling of Diab
toolchain options.
(DWARF2_UNWIND_INFO): Redefine to handle the pre/post VxWorks 7
transition.
(ARM_TARGET2_DWARF_FORMAT): Define.
* config/arm/t-vxworks: Adjust multilib control to removal of the
Diab command line options.
libgcc/
* config.host (arm-wrs-vxworks*): Rework to handle arm-wrs-vxworks7
as well as arm-wrs-vxworks.
* config/arm/t-vxworks7: New file. Add unwind-arm-vxworks.c to
LIB2ADDEH.
* config/arm/unwind-arm-vxworks.c: New file. Provide dummy
__exidx_start and __exidx_end for downloadable modules.
Co-Authored-By: Doug Rupp <rupp@adacore.com>
Co-Authored-By: Olivier Hainque <hainque@adacore.com>
From-SVN: r250781
Martin Liska [Tue, 1 Aug 2017 14:06:13 +0000 (16:06 +0200)]
Fix segfault in gcov.c (PR gcov-profile/81561).
2017-08-01 Martin Liska <mliska@suse.cz>
PR gcov-profile/81561
* gcov.c (unblock): Make unblocking safe as we need to preserve
index correspondence of blocks and block_lists.
From-SVN: r250780
Tom de Vries [Tue, 1 Aug 2017 13:52:14 +0000 (13:52 +0000)]
Simplify nvptx/slp* test-cases
Use signed loop iteration variable in nvtpx/slp* test-cases to work around
PR tree-optimizaion/81635.
2017-08-01 Tom de Vries <tom@codesourcery.com>
* gcc.target/nvptx/slp-2.c (foo): Use signed loop iteration variable.
* gcc.target/nvptx/slp.c (foo): Same.
From-SVN: r250778
Richard Biener [Tue, 1 Aug 2017 13:36:50 +0000 (13:36 +0000)]
re PR tree-optimization/81181 (ICE in compute_antic, at tree-ssa-pre.c:2410)
2017-08-01 Richard Biener <rguenther@suse.de>
PR tree-optimization/81181
* tree-ssa-pre.c (compute_antic_aux): Defer clean() to ...
(compute_antic): ... end of iteration here.
* gcc.dg/torture/pr81181.c: New testcase.
From-SVN: r250777
Olivier Hainque [Tue, 1 Aug 2017 13:23:06 +0000 (13:23 +0000)]
t-vxworks (LIBGCC2_INCLUDES): Start with -I.
2017-08-01 Olivier Hainque <hainque@adacore.com>
* config/t-vxworks (LIBGCC2_INCLUDES): Start with -I. after -nostdinc.
* config/t-vxworks7: Likewise.
From-SVN: r250776
Olivier Hainque [Tue, 1 Aug 2017 12:59:44 +0000 (12:59 +0000)]
t-vxworks: Instead of redefining LIB2ADD, augment LIB2ADDEH with vxlib.c and vxlib-tls.c.
2017-08-01 Olivier Hainque <hainque@adacore.com>
* config/t-vxworks: Instead of redefining LIB2ADD,
augment LIB2ADDEH with vxlib.c and vxlib-tls.c.
From-SVN: r250775
James Greenhalgh [Tue, 1 Aug 2017 12:59:05 +0000 (12:59 +0000)]
Remove flag_tree_vectorize
gcc/
* common.opt (ftree-vectorize): No longer set flag_tree_vectorize.
(ftree-loop-vectorize): Set as EnabledBy ftree-vectorize.
(ftree-slp-vectorize): Likewise.
* omp-expand (expand_omp_simd): Remove flag_tree_vectorize, as it
can no longer be set independent of flag_tree_loop_vectorize.
* omp-general.c (emp_max_vf): Likewise.
* opts.c (enable_fdo_optimizations): Remove references to
flag_tree_vectorize, these are now implicit.
(common_handle_option): Remove handling for OPT_ftree_vectorize,
and leave it for the options machinery.
From-SVN: r250774
Tamar Christina [Tue, 1 Aug 2017 12:23:59 +0000 (12:23 +0000)]
Reverted 250770
From-SVN: r250773
Martin Liska [Tue, 1 Aug 2017 11:59:27 +0000 (13:59 +0200)]
Make mempcpy more optimal (PR middle-end/70140).
2017-08-01 Martin Liska <mliska@suse.cz>
PR middle-end/70140
* gcc.dg/string-opt-1.c: Adjust test-case to scan for memcpy.
2017-08-01 Martin Liska <mliska@suse.cz>
PR middle-end/70140
* builtins.c (expand_builtin_memcpy_args): Remove.
(expand_builtin_memcpy): Call newly added function
expand_builtin_memory_copy_args.
(expand_builtin_memcpy_with_bounds): Likewise.
(expand_builtin_mempcpy): Remove last argument.
(expand_builtin_mempcpy_with_bounds): Likewise.
(expand_builtin_memory_copy_args): New function created from
expand_builtin_mempcpy_args with small modifications.
(expand_builtin_mempcpy_args): Remove.
(expand_builtin_stpcpy): Remove unused argument.
(expand_builtin): Likewise.
(expand_builtin_with_bounds): Likewise.
From-SVN: r250771
Tamar Christina [Tue, 1 Aug 2017 11:41:03 +0000 (11:41 +0000)]
dbl_mov_immediate_1.c: Use conditional assembler scans.
2017-08-01 Tamar Christina <tamar.christina@arm.com>
* gcc.target/aarch64/dbl_mov_immediate_1.c:
Use conditional assembler scans.
From-SVN: r250770
Uros Bizjak [Tue, 1 Aug 2017 11:15:52 +0000 (13:15 +0200)]
re PR target/81641 (Assemble failure with named address spaces and -masm=intel)
PR target/81641
* config/i386/i386.c (ix86_print_operand_address_as): For -masm=intel
print "ds:" only for immediates in generic address space.
testsuite/ChangeLog:
PR target/81641
* gcc.target/i386/pr81641.c: New test.
From-SVN: r250769
Uros Bizjak [Tue, 1 Aug 2017 10:57:55 +0000 (12:57 +0200)]
re PR target/81639 (ICE in rtl_verify_bb_insns, at cfgrtl.c:2669 with a naked function)
PR target/81639
* config/i386/i386.c (ix86_funciton_naked): New prototype.
(ix86_function_ok_for_sibcall): Return false for naked functions.
testsuite/ChangeLog:
PR target/81639
* gcc.target/i386/pr81639.c: New test.
From-SVN: r250768
Richard Biener [Tue, 1 Aug 2017 10:47:14 +0000 (10:47 +0000)]
tree-ssa-pre.c (print_pre_expr): Handle NULL expr.
2017-08-01 Richard Biener <rguenther@suse.de>
* tree-ssa-pre.c (print_pre_expr): Handle NULL expr.
(compute_antic): Seed worklist with exit block predecessors.
* cfganal.c (dfs_find_deadend): For a cycle return the source
of the edge closing it.
* gcc.dg/tree-ssa/ssa-dce-3.c: Adjust.
* gcc.dg/tree-ssa/split-path-5.c: Remove case with just dead
endless loop.
* gcc.dg/uninit-23.c: Adjust.
From-SVN: r250767
Tamar Christina [Tue, 1 Aug 2017 09:56:31 +0000 (09:56 +0000)]
2017-08-01 Tamar Christina <tamar.christina@arm.com>
* config/aarch64/aarch64.c
(aarch64_can_const_movi_rtx_p): Move 0 check.
From-SVN: r250766
Bin Cheng [Tue, 1 Aug 2017 09:28:18 +0000 (09:28 +0000)]
tree.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Delete.
* tree.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Delete.
* fold-const.c (fold_comparison, fold_binary_loc): Delete use of
above macro.
* match.pd: Ditto in address comparison pattern.
gcc/testsuite
* gcc.dg/no-strict-overflow-7.c: Revise comment and test string.
* gcc.dg/tree-ssa/pr81388-1.c: Ditto.
From-SVN: r250765
Bin Cheng [Tue, 1 Aug 2017 09:20:08 +0000 (09:20 +0000)]
re PR tree-optimization/81627 (ICE on valid code at -O3: in check_loop_closed_ssa_use, at tree-ssa-loop-manip.c:707)
PR tree-optimization/81627
* tree-predcom.c (prepare_finalizers): Always rewrite into loop
closed ssa form for store-store chain.
gcc/testsuite
* gcc.dg/tree-ssa/pr81627.c: New.
From-SVN: r250764
Bin Cheng [Tue, 1 Aug 2017 09:17:29 +0000 (09:17 +0000)]
re PR tree-optimization/81620 (ICE in is_inv_store_elimination_chain, at tree-predcom.c:1651 with -O3)
PR tree-optimization/81620
* tree-predcom.c (add_ref_to_chain): Don't set has_max_use_after
for store-store chain.
gcc/testsuite
* gcc.dg/tree-ssa/pr81620-1.c: New.
* gcc.dg/tree-ssa/pr81620-2.c: New.
From-SVN: r250763
Dominique d'Humieres [Tue, 1 Aug 2017 09:02:58 +0000 (11:02 +0200)]
re PR fortran/53542 (Diagnostic of USE-associated variables shows original instead of renamed symbol name)
2017-08-01 Dominique d'Humieres <dominiq@lps.ens.fr>
PR fortran/53542
* expr.c (gfc_check_init_expr): Use the renamed name.
PR testsuite/53542
* gfortran.dg/use_30.f90: New test.
From-SVN: r250762
Jakub Jelinek [Tue, 1 Aug 2017 08:32:37 +0000 (10:32 +0200)]
re PR tree-optimization/81588 (Wrong code at -O2)
PR tree-optimization/81588
* tree-ssa-reassoc.c (optimize_range_tests_var_bound): If
ranges[i].in_p, invert comparison code ccode. For >/>=,
swap rhs1 and rhs2 and comparison code unconditionally,
for </<= don't do that. Don't swap rhs1/rhs2 again if
ranges[i].in_p, instead invert comparison code ccode if
opcode or oe->rank is BIT_IOR_EXPR.
* gcc.dg/tree-ssa/pr81588.c: New test.
* gcc.dg/pr81588.c: New test.
* gcc.c-torture/execute/pr81588.c: New test.
From-SVN: r250760
Jakub Jelinek [Tue, 1 Aug 2017 08:26:14 +0000 (10:26 +0200)]
re PR target/80846 (auto-vectorized AVX2 horizontal sum should narrow to 128b right away, to be more efficient for Ryzen and Intel)
PR target/80846
* optabs.def (vec_extract_optab, vec_init_optab): Change from
a direct optab to conversion optab.
* optabs.c (expand_vector_broadcast): Use convert_optab_handler
with GET_MODE_INNER as last argument instead of optab_handler.
* expmed.c (extract_bit_field_1): Likewise. Use vector from
vector extraction if possible and optab is available.
* expr.c (store_constructor): Use convert_optab_handler instead
of optab_handler. Use vector initialization from smaller
vectors if possible and optab is available.
* tree-vect-stmts.c (vectorizable_load): Likewise.
* doc/md.texi (vec_extract, vec_init): Document that the optabs
now have two modes.
* config/i386/i386.c (ix86_expand_vector_init): Handle expansion
of vec_init from half-sized vectors with the same element mode.
* config/i386/sse.md (ssehalfvecmode): Add V4TI case.
(ssehalfvecmodelower, ssescalarmodelower): New mode attributes.
(reduc_plus_scal_v8df, reduc_plus_scal_v4df, reduc_plus_scal_v2df,
reduc_plus_scal_v16sf, reduc_plus_scal_v8sf, reduc_plus_scal_v4sf,
reduc_<code>_scal_<mode>, reduc_umin_scal_v8hi): Add element mode
after mode in gen_vec_extract* calls.
(vec_extract<mode>): Renamed to ...
(vec_extract<mode><ssescalarmodelower>): ... this.
(vec_extract<mode><ssehalfvecmodelower>): New expander.
(rotl<mode>3, rotr<mode>3, <shift_insn><mode>3, ashrv2di3): Add
element mode after mode in gen_vec_init* calls.
(VEC_INIT_HALF_MODE): New mode iterator.
(vec_init<mode>): Renamed to ...
(vec_init<mode><ssescalarmodelower>): ... this.
(vec_init<mode><ssehalfvecmodelower>): New expander.
* config/i386/mmx.md (vec_extractv2sf): Renamed to ...
(vec_extractv2sfsf): ... this.
(vec_initv2sf): Renamed to ...
(vec_initv2sfsf): ... this.
(vec_extractv2si): Renamed to ...
(vec_extractv2sisi): ... this.
(vec_initv2si): Renamed to ...
(vec_initv2sisi): ... this.
(vec_extractv4hi): Renamed to ...
(vec_extractv4hihi): ... this.
(vec_initv4hi): Renamed to ...
(vec_initv4hihi): ... this.
(vec_extractv8qi): Renamed to ...
(vec_extractv8qiqi): ... this.
(vec_initv8qi): Renamed to ...
(vec_initv8qiqi): ... this.
* config/rs6000/vector.md (VEC_base_l): New mode attribute.
(vec_init<mode>): Renamed to ...
(vec_init<mode><VEC_base_l>): ... this.
(vec_extract<mode>): Renamed to ...
(vec_extract<mode><VEC_base_l>): ... this.
* config/rs6000/paired.md (vec_initv2sf): Renamed to ...
(vec_initv2sfsf): ... this.
* config/rs6000/altivec.md (splitter, altivec_copysign_v4sf3,
vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi,
vec_unpacku_lo_v8hi, mulv16qi3, altivec_vreve<mode>2): Add
element mode after mode in gen_vec_init* calls.
* config/aarch64/aarch64-simd.md (vec_init<mode>): Renamed to ...
(vec_init<mode><Vel>): ... this.
(vec_extract<mode>): Renamed to ...
(vec_extract<mode><Vel>): ... this.
* config/aarch64/iterators.md (Vel): New mode attribute.
* config/s390/s390.c (s390_expand_vec_strlen, s390_expand_vec_movstr):
Add element mode after mode in gen_vec_extract* calls.
* config/s390/vector.md (non_vec_l): New mode attribute.
(vec_extract<mode>): Renamed to ...
(vec_extract<mode><non_vec_l>): ... this.
(vec_init<mode>): Renamed to ...
(vec_init<mode><non_vec_l>): ... this.
* config/s390/s390-builtins.def (s390_vlgvb, s390_vlgvh, s390_vlgvf,
s390_vlgvf_flt, s390_vlgvg, s390_vlgvg_dbl): Add element mode after
vec_extract mode.
* config/arm/iterators.md (V_elem_l): New mode attribute.
* config/arm/neon.md (vec_extract<mode>): Renamed to ...
(vec_extract<mode><V_elem_l>): ... this.
(vec_extractv2di): Renamed to ...
(vec_extractv2didi): ... this.
(vec_init<mode>): Renamed to ...
(vec_init<mode><V_elem_l>): ... this.
(reduc_plus_scal_<mode>, reduc_plus_scal_v2di, reduc_smin_scal_<mode>,
reduc_smax_scal_<mode>, reduc_umin_scal_<mode>,
reduc_umax_scal_<mode>, neon_vget_lane<mode>, neon_vget_laneu<mode>):
Add element mode after gen_vec_extract* calls.
* config/mips/mips-msa.md (vec_init<mode>): Renamed to ...
(vec_init<mode><unitmode>): ... this.
(vec_extract<mode>): Renamed to ...
(vec_extract<mode><unitmode>): ... this.
* config/mips/loongson.md (vec_init<mode>): Renamed to ...
(vec_init<mode><unitmode>): ... this.
* config/mips/mips-ps-3d.md (vec_initv2sf): Renamed to ...
(vec_initv2sfsf): ... this.
(vec_extractv2sf): Renamed to ...
(vec_extractv2sfsf): ... this.
(reduc_plus_scal_v2sf, reduc_smin_scal_v2sf, reduc_smax_scal_v2sf):
Add element mode after gen_vec_extract* calls.
* config/mips/mips.md (unitmode): New mode iterator.
* config/spu/spu.c (spu_expand_prologue, spu_allocate_stack,
spu_builtin_extract): Add element mode after gen_vec_extract* calls.
* config/spu/spu.md (inner_l): New mode attribute.
(vec_init<mode>): Renamed to ...
(vec_init<mode><inner_l>): ... this.
(vec_extract<mode>): Renamed to ...
(vec_extract<mode><inner_l>): ... this.
* config/sparc/sparc.md (veltmode): New mode iterator.
(vec_init<VMALL:mode>): Renamed to ...
(vec_init<VMALL:mode><VMALL:veltmode>): ... this.
* config/ia64/vect.md (vec_initv2si): Renamed to ...
(vec_initv2sisi): ... this.
(vec_initv2sf): Renamed to ...
(vec_initv2sfsf): ... this.
(vec_extractv2sf): Renamed to ...
(vec_extractv2sfsf): ... this.
* config/powerpcspe/vector.md (VEC_base_l): New mode attribute.
(vec_init<mode>): Renamed to ...
(vec_init<mode><VEC_base_l>): ... this.
(vec_extract<mode>): Renamed to ...
(vec_extract<mode><VEC_base_l>): ... this.
* config/powerpcspe/paired.md (vec_initv2sf): Renamed to ...
(vec_initv2sfsf): ... this.
* config/powerpcspe/altivec.md (splitter, altivec_copysign_v4sf3,
vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi,
vec_unpacku_lo_v8hi, mulv16qi3): Add element mode after mode in
gen_vec_init* calls.
From-SVN: r250759
Richard Biener [Tue, 1 Aug 2017 07:04:10 +0000 (07:04 +0000)]
re PR tree-optimization/81297 (ICE in get_single_symbol)
2017-08-01 Richard Biener <rguenther@suse.de>
PR tree-optimization/81297
* tree-vrp.c (get_single_symbol): Remove assert, instead drop
TREE_OVERFLOW from INTEGER_CSTs.
* gcc.dg/torture/pr81297.c: New testcase.
From-SVN: r250758
Uros Bizjak [Tue, 1 Aug 2017 05:56:28 +0000 (07:56 +0200)]
naked-1.c (dg-options): Add -fno-pic.
* gcc.target/i386/naked-1.c (dg-options): Add -fno-pic.
From-SVN: r250757
GCC Administrator [Tue, 1 Aug 2017 00:16:34 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r250756
Steve Ellcey [Mon, 31 Jul 2017 21:44:34 +0000 (21:44 +0000)]
re PR tree-optimization/80925 (vect peeling failures)
2017-07-31 Steve Ellcey <sellcey@cavium.com>
PR tree-optimization/80925
* gcc.dg/vect/no-section-anchors-vect-69.c: Add
--param vect-max-peeling-for-alignment=0 option.
Remove unaligned access and peeling checks.
* gcc.dg/vect/section-anchors-vect-69.c: Ditto.
From-SVN: r250752
Carl Love [Mon, 31 Jul 2017 21:01:39 +0000 (21:01 +0000)]
builtins-4-runnable.c: Fix dg argument that got missed in commit 250746.
gcc/testsuite/ChangeLog:
2017-07-31 Carl Love <cel@us.ibm.com>
* gcc.target/powerpc/builtins-4-runnable.c: Fix dg argument that got
missed in commit 250746.
From-SVN: r250751
Richard Henderson [Mon, 31 Jul 2017 18:37:27 +0000 (11:37 -0700)]
Update myself in MAINTAINERS
From-SVN: r250750
Segher Boessenkool [Mon, 31 Jul 2017 17:00:57 +0000 (19:00 +0200)]
rs6000: Trailing comma warning in enum
* config/rs6000/rs6000.c (enum rs6000_reg_type): Delete trailing comma.
From-SVN: r250749
Joseph Myers [Mon, 31 Jul 2017 15:50:40 +0000 (16:50 +0100)]
* es.po, uk.po: Update.
From-SVN: r250747
Carl Love [Mon, 31 Jul 2017 15:42:01 +0000 (15:42 +0000)]
rs6000-c: Add support for built-in functions vector signed char vec_xl_be (signed long...
gcc/ChangeLog:
2017-07-31 Carl Love <cel@us.ibm.com>
* config/rs6000/rs6000-c: Add support for built-in functions
vector signed char vec_xl_be (signed long long, signed char *);
vector unsigned char vec_xl_be (signed long long, unsigned char *);
vector signed int vec_xl_be (signed long long, signed int *);
vector unsigned int vec_xl_be (signed long long, unsigned int *);
vector signed long long vec_xl_be (signed long long, signed long long *);
vector unsigned long long vec_xl_be (signed long long, unsigned long long *);
vector signed short vec_xl_be (signed long long, signed short *);
vector unsigned short vec_xl_be (signed long long, unsigned short *);
vector double vec_xl_be (signed long long, double *);
vector float vec_xl_be (signed long long, float *);
* config/rs6000/altivec.h (vec_xl_be): Add #define.
* config/rs6000/rs6000-builtin.def (XL_BE_V16QI, XL_BE_V8HI, XL_BE_V4SI,
XL_BE_V2DI, XL_BE_V4SF, XL_BE_V2DF, XL_BE): Add definitions for the builtins.
* config/rs6000/rs6000.c (altivec_expand_xl_be_builtin): Add function.
(altivec_expand_builtin): Add switch statement to call altivec_expand_xl_be
for each builtin.
(altivec_init_builtins): Add def_builtin for _builtin_vsx_le_be_v8hi,
__builtin_vsx_le_be_v4si, __builtin_vsx_le_be_v2di, __builtin_vsx_le_be_v4sf,
__builtin_vsx_le_be_v2df, __builtin_vsx_le_be_v16qi.
* doc/extend.texi: Update the built-in documentation file for the
new built-in functions.
gcc/testsuite/ChangeLog:
2017-07-31 Carl Love <cel@us.ibm.com>
* gcc.target/powerpc/builtins-4-runnable.c: Add test cases for the
new builtins.
From-SVN: r250746
H.J. Lu [Mon, 31 Jul 2017 14:59:24 +0000 (14:59 +0000)]
Compile pr79793-[12].c with -mtune=generic
pr79793-1.c and pr79793-2.c are failed when GCC is configured with
--with-cpu=slm since lea is used to adjust stack, instead of sub/add.
This patch uses -mtune=generic to always generate sub and add.
* gcc.target/i386/pr79793-1.c: Compile with -mtune=generic.
* gcc.target/i386/pr79793-2.c: Likewise.
From-SVN: r250745
Marek Polacek [Mon, 31 Jul 2017 13:44:16 +0000 (13:44 +0000)]
re PR libstdc++/81599 (Error in documentation of std::stack)
PR libstdc++/81599
* include/bits/stl_stack.h: Fix typo.
From-SVN: r250743
Uros Bizjak [Mon, 31 Jul 2017 13:11:59 +0000 (15:11 +0200)]
re PR target/25967 (Add attribute naked for x86)
PR target/25967
* config/i386/i386.c (ix86_allocate_stack_slots_for_args):
New function.
(TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
testsuite/ChangeLog:
PR target/25967
* gcc.target/i386/naked-3.c (dg-options): Use -O0.
(naked): Add attribute regparm(1) for x86_32 targets.
Add integer argument. Remove global "data" variable.
(main): Pass integer argument to naked function.
* gcc.target/i386/naked-4.c: New test.
From-SVN: r250742
Robin Dapp [Mon, 31 Jul 2017 12:02:33 +0000 (12:02 +0000)]
Add myself to MAINTAINERS.
From-SVN: r250741
Andreas Krebbel [Mon, 31 Jul 2017 11:31:09 +0000 (11:31 +0000)]
[Committed] S/390: Support z14 as CPU name.
With IBM z14 officially announced we can add support for z14 as
preferred CPU name. We still pass arch12 to Binutils in order to keep
older Binutils versions supported.
gcc/ChangeLog:
2017-07-31 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* config.gcc: Add z14.
* config/s390/driver-native.c (s390_host_detect_local_cpu): Add
CPU model numbers for z13s and z14.
* config/s390/s390-c.c (s390_resolve_overloaded_builtin): Replace
arch12 with z14.
* config/s390/s390-opts.h (enum processor_type): Rename
PROCESSOR_ARCH12 to PROCESSOR_3906_Z14.
* config/s390/s390.c (processor_table): Add field for CPU name to
be passed to Binutils.
(s390_asm_output_machine_for_arch): Use the new field in
processor_table for Binutils.
(s390_expand_builtin): Replace arch12 with z14.
(s390_issue_rate): Rename PROCESSOR_ARCH12 to PROCESSOR_3906_Z14.
(s390_get_sched_attrmask): Likewise.
(s390_get_unit_mask): Likewise.
* config/s390/s390.opt: Add z14 to processor_type enum.
From-SVN: r250739
Martin Jambor [Mon, 31 Jul 2017 11:18:31 +0000 (13:18 +0200)]
[PR 81477] Set versionable regardless of optimization level
2017-07-31 Martin Jambor <mjambor@suse.cz>
PR hsa/81477
* ipa-fnsummary.c (ipa_fn_summary_generate): Set versionable
regardless of optimization level.
From-SVN: r250738
Jan Hubicka [Mon, 31 Jul 2017 11:16:00 +0000 (13:16 +0200)]
Recover GOTO predictor.
2017-07-31 Jan Hubicka <hubicka@ucw.cz>
Martin Liska <mliska@suse.cz>
* c-typeck.c (c_finish_goto_label): Build gimple predict
stament.
2017-07-31 Jan Hubicka <hubicka@ucw.cz>
Martin Liska <mliska@suse.cz>
* predict.def: Remove old comment and adjust probability.
* gimplify.c (should_warn_for_implicit_fallthrough): Ignore
PREDICT statements.
2017-07-31 Jan Hubicka <hubicka@ucw.cz>
Martin Liska <mliska@suse.cz>
* gcc.dg/predict-15.c: New test.
* gcc.dg/tree-ssa/vrp24.c: Update scanned pattern.
2017-07-31 Jan Hubicka <hubicka@ucw.cz>
Martin Liska <mliska@suse.cz>
* pt.c (tsubst_copy): Copy PREDICT_EXPR.
* semantics.c (finish_goto_stmt): Build gimple predict
stament.
* constexpr.c (potential_constant_expression_1): Handle
PREDICT_EXPR.
Co-Authored-By: Martin Liska <mliska@suse.cz>
From-SVN: r250737
Uros Bizjak [Mon, 31 Jul 2017 10:22:41 +0000 (12:22 +0200)]
re PR target/25967 (Add attribute naked for x86)
PR target/25967
* config/i386/i386.c (ix86_function_naked): New function.
(ix86_can_use_return_insn_p): Return false for naked functions.
(ix86_expand_prologue): Skip prologue for naked functions.
(ix86_expand_epilogue): Skip epilogue for naked functions
and emit trap instruction.
(ix86_warn_func_return): New function.
(ix86_attribute_table): Add "naked" attribute specification.
(TARGET_WARN_FUNC_RETURN): Define.
* doc/extend.texi (x86 Function Attributes) <naked>: Document it.
testsuite/ChangeLog:
PR target/25967
* gcc.target/i386/naked-1.c: New test.
* gcc.target/i386/naked-2.c: Ditto.
* gcc.target/i386/naked-3.c: Ditto.
* gcc.target/x86_64/abi/ms-sysv/ms-sysv.c: Remove
do_test_body0 stub function, use attribute "naked" instead.
* gcc.dg/pr44290-1.c: Use naked_functions effective target.
* gcc.dg/pr44290-2.c: Ditto.
From-SVN: r250736
Thomas Koenig [Mon, 31 Jul 2017 09:34:36 +0000 (09:34 +0000)]
re PR fortran/81581 (runtime checks for DIM argument of intrinsic SUM missing)
2017-07-31 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/81581
* m4/ifuntion.m4 (name`'rtype_qual`_'atype_code): Perform check
for dim.
(`m'name`'rtype_qual`_'atype_code): Likewise. Change type of rank
and tim to index_type.
(`s'name`'rtype_qual`_'atype_code): Perform check for dim.
* generated/iall_i16.c: Regenerated.
* generated/iall_i1.c: Regenerated.
* generated/iall_i2.c: Regenerated.
* generated/iall_i4.c: Regenerated.
* generated/iall_i8.c: Regenerated.
* generated/iany_i16.c: Regenerated.
* generated/iany_i1.c: Regenerated.
* generated/iany_i2.c: Regenerated.
* generated/iany_i4.c: Regenerated.
* generated/iany_i8.c: Regenerated.
* generated/iparity_i16.c: Regenerated.
* generated/iparity_i1.c: Regenerated.
* generated/iparity_i2.c: Regenerated.
* generated/iparity_i4.c: Regenerated.
* generated/iparity_i8.c: Regenerated.
* generated/maxloc1_16_i16.c: Regenerated.
* generated/maxloc1_16_i1.c: Regenerated.
* generated/maxloc1_16_i2.c: Regenerated.
* generated/maxloc1_16_i4.c: Regenerated.
* generated/maxloc1_16_i8.c: Regenerated.
* generated/maxloc1_16_r10.c: Regenerated.
* generated/maxloc1_16_r16.c: Regenerated.
* generated/maxloc1_16_r4.c: Regenerated.
* generated/maxloc1_16_r8.c: Regenerated.
* generated/maxloc1_4_i16.c: Regenerated.
* generated/maxloc1_4_i1.c: Regenerated.
* generated/maxloc1_4_i2.c: Regenerated.
* generated/maxloc1_4_i4.c: Regenerated.
* generated/maxloc1_4_i8.c: Regenerated.
* generated/maxloc1_4_r10.c: Regenerated.
* generated/maxloc1_4_r16.c: Regenerated.
* generated/maxloc1_4_r4.c: Regenerated.
* generated/maxloc1_4_r8.c: Regenerated.
* generated/maxloc1_8_i16.c: Regenerated.
* generated/maxloc1_8_i1.c: Regenerated.
* generated/maxloc1_8_i2.c: Regenerated.
* generated/maxloc1_8_i4.c: Regenerated.
* generated/maxloc1_8_i8.c: Regenerated.
* generated/maxloc1_8_r10.c: Regenerated.
* generated/maxloc1_8_r16.c: Regenerated.
* generated/maxloc1_8_r4.c: Regenerated.
* generated/maxloc1_8_r8.c: Regenerated.
* generated/maxval_i16.c: Regenerated.
* generated/maxval_i1.c: Regenerated.
* generated/maxval_i2.c: Regenerated.
* generated/maxval_i4.c: Regenerated.
* generated/maxval_i8.c: Regenerated.
* generated/maxval_r10.c: Regenerated.
* generated/maxval_r16.c: Regenerated.
* generated/maxval_r4.c: Regenerated.
* generated/maxval_r8.c: Regenerated.
* generated/minloc1_16_i16.c: Regenerated.
* generated/minloc1_16_i1.c: Regenerated.
* generated/minloc1_16_i2.c: Regenerated.
* generated/minloc1_16_i4.c: Regenerated.
* generated/minloc1_16_i8.c: Regenerated.
* generated/minloc1_16_r10.c: Regenerated.
* generated/minloc1_16_r16.c: Regenerated.
* generated/minloc1_16_r4.c: Regenerated.
* generated/minloc1_16_r8.c: Regenerated.
* generated/minloc1_4_i16.c: Regenerated.
* generated/minloc1_4_i1.c: Regenerated.
* generated/minloc1_4_i2.c: Regenerated.
* generated/minloc1_4_i4.c: Regenerated.
* generated/minloc1_4_i8.c: Regenerated.
* generated/minloc1_4_r10.c: Regenerated.
* generated/minloc1_4_r16.c: Regenerated.
* generated/minloc1_4_r4.c: Regenerated.
* generated/minloc1_4_r8.c: Regenerated.
* generated/minloc1_8_i16.c: Regenerated.
* generated/minloc1_8_i1.c: Regenerated.
* generated/minloc1_8_i2.c: Regenerated.
* generated/minloc1_8_i4.c: Regenerated.
* generated/minloc1_8_i8.c: Regenerated.
* generated/minloc1_8_r10.c: Regenerated.
* generated/minloc1_8_r16.c: Regenerated.
* generated/minloc1_8_r4.c: Regenerated.
* generated/minloc1_8_r8.c: Regenerated.
* generated/minval_i16.c: Regenerated.
* generated/minval_i1.c: Regenerated.
* generated/minval_i2.c: Regenerated.
* generated/minval_i4.c: Regenerated.
* generated/minval_i8.c: Regenerated.
* generated/minval_r10.c: Regenerated.
* generated/minval_r16.c: Regenerated.
* generated/minval_r4.c: Regenerated.
* generated/minval_r8.c: Regenerated.
* generated/norm2_r10.c: Regenerated.
* generated/norm2_r16.c: Regenerated.
* generated/norm2_r4.c: Regenerated.
* generated/norm2_r8.c: Regenerated.
* generated/parity_l16.c: Regenerated.
* generated/parity_l1.c: Regenerated.
* generated/parity_l2.c: Regenerated.
* generated/parity_l4.c: Regenerated.
* generated/parity_l8.c: Regenerated.
* generated/product_c10.c: Regenerated.
* generated/product_c16.c: Regenerated.
* generated/product_c4.c: Regenerated.
* generated/product_c8.c: Regenerated.
* generated/product_i16.c: Regenerated.
* generated/product_i1.c: Regenerated.
* generated/product_i2.c: Regenerated.
* generated/product_i4.c: Regenerated.
* generated/product_i8.c: Regenerated.
* generated/product_r10.c: Regenerated.
* generated/product_r16.c: Regenerated.
* generated/product_r4.c: Regenerated.
* generated/product_r8.c: Regenerated.
* generated/sum_c10.c: Regenerated.
* generated/sum_c16.c: Regenerated.
* generated/sum_c4.c: Regenerated.
* generated/sum_c8.c: Regenerated.
* generated/sum_i16.c: Regenerated.
* generated/sum_i1.c: Regenerated.
* generated/sum_i2.c: Regenerated.
* generated/sum_i4.c: Regenerated.
* generated/sum_i8.c: Regenerated.
* generated/sum_r10.c: Regenerated.
* generated/sum_r16.c: Regenerated.
* generated/sum_r4.c: Regenerated.
* generated/sum_r8.c: Regenerated.
2017-07-31 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/81581
* gfortran.dg/dim_sum_1.f90: New test case.
* gfortran.dg/dim_sum_2.f90: New test case.
* gfortran.dg/dim_sum_3.f90: New test case.
From-SVN: r250735
Jakub Jelinek [Mon, 31 Jul 2017 09:32:02 +0000 (11:32 +0200)]
* check.c (gfc_check_num_images): Fix a pasto.
From-SVN: r250734
Martin Liska [Mon, 31 Jul 2017 08:54:05 +0000 (10:54 +0200)]
Learn GIMPLE pretty printer to produce nicer dump output.
2017-07-31 Martin Liska <mliska@suse.cz>
* gimple-pretty-print.c (dump_gimple_label): Never dump
BB info.
(dump_gimple_bb_header): Always dump BB info.
(pp_cfg_jump): Do not append info about BB when dumping a jump.
2017-07-31 Martin Liska <mliska@suse.cz>
* gcc.dg/builtin-unreachable-6.c: Update scanned patterns.
* gcc.dg/tree-ssa/attr-hotcold-2.c: Likewise.
From-SVN: r250731
Martin Liska [Mon, 31 Jul 2017 08:53:00 +0000 (10:53 +0200)]
Do UBSAN sanitization just when current_function_decl != NULL_TREE (PR sanitize/81530).
2017-07-31 Martin Liska <mliska@suse.cz>
PR sanitize/81530
* cp-gimplify.c (cp_genericize): Guard condition with flag_sanitize_p
also with current_function_decl non-null equality.
* cp-ubsan.c (cp_ubsan_instrument_vptr_p): Likewise.
* decl.c (compute_array_index_type): Likewise.
* init.c (finish_length_check): Likewise.
* typeck.c (cp_build_binary_op): Likewise.
2017-07-31 Martin Liska <mliska@suse.cz>
PR sanitize/81530
* c-convert.c (convert): Guard condition with flag_sanitize_p
also with current_function_decl non-null equality.
* c-decl.c (grokdeclarator): Likewise.
* c-typeck.c (build_binary_op): Likewise.
2017-07-31 Martin Liska <mliska@suse.cz>
PR sanitize/81530
* convert.c (convert_to_integer_1): Guard condition with flag_sanitize_p
also with current_function_decl non-null equality.
2017-07-31 Martin Liska <mliska@suse.cz>
PR sanitize/81530
* c-ubsan.c (ubsan_maybe_instrument_array_ref):
Guard condition with flag_sanitize_p also with current_function_decl
non-null equality.
(ubsan_maybe_instrument_reference_or_call): Likewise.
2017-07-31 Martin Liska <mliska@suse.cz>
PR sanitize/81530
* g++.dg/ubsan/pr81530.C: New test.
From-SVN: r250730
Jakub Jelinek [Mon, 31 Jul 2017 08:24:58 +0000 (10:24 +0200)]
re PR sanitizer/81604 (Ubsan type reporting can be bogus in some cases)
PR sanitizer/81604
* ubsan.c (ubsan_type_descriptor): For UBSAN_PRINT_ARRAY don't
change type to the element type, instead add eltype variable and
use it where we are interested in the element type.
* c-c++-common/ubsan/pr81604.c: New test.
From-SVN: r250728
Jakub Jelinek [Mon, 31 Jul 2017 08:22:14 +0000 (10:22 +0200)]
re PR tree-optimization/81603 (Various compiler UB on very large constant offsets)
PR tree-optimization/81603
* ipa-polymorphic-call.c
(ipa_polymorphic_call_context::ipa_polymorphic_call_context): Perform
offset arithmetic in offset_int, bail out if the resulting bit offset
doesn't fit into shwi.
From-SVN: r250727
Martin Liska [Mon, 31 Jul 2017 07:29:49 +0000 (09:29 +0200)]
Remove a Java-specific hunk.
2017-07-31 Martin Liska <mliska@suse.cz>
* gimplify.c (mostly_copy_tree_r): Remove Java specific hunk.
(gimplify_save_expr): Fix comment.
From-SVN: r250726
GCC Administrator [Mon, 31 Jul 2017 00:16:46 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r250725
H.J. Lu [Sun, 30 Jul 2017 14:10:32 +0000 (14:10 +0000)]
i386: Update INCOMING_FRAME_SP_OFFSET for exception handler
Since there is an extra error code passed to the exception handler,
INCOMING_FRAME_SP_OFFSET is return address plus error code for the
exception handler. This patch updates INCOMING_FRAME_SP_OFFSET to
the correct value for the exception handler.
This patch exposed a bug in DWARF stack frame CFI generation, which
assumes that INCOMING_FRAME_SP_OFFSET is the same for all functions:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81570
It sets and caches the incoming stack frame offset with the same
INCOMING_FRAME_SP_OFFSET for all functions. When there are both
exception handler and normal function in the same input, the wrong
incoming stack frame offset is used for exception handler or normal
function, which leads to
FAIL: gcc.dg/guality/pr68037-1.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 33 error == 0x12345670
FAIL: gcc.dg/guality/pr68037-1.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 33 frame->ip == 0x12345671
FAIL: gcc.dg/guality/pr68037-1.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 33 frame->cs == 0x12345672
FAIL: gcc.dg/guality/pr68037-1.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 33 frame->flags == 0x12345673
FAIL: gcc.dg/guality/pr68037-1.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 33 frame->sp == 0x12345674
FAIL: gcc.dg/guality/pr68037-1.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects line 33 frame->ss == 0x12345675
With the patch for PR 81570:
https://gcc.gnu.org/ml/gcc-patches/2017-07/msg01851.html
applied, there are no regressions on i686 and x86-64.
gcc/
PR target/79793
* config/i386/i386.c (ix86_function_arg): Update arguments for
exception handler.
(ix86_compute_frame_layout): Set the initial stack offset to
INCOMING_FRAME_SP_OFFSET. Update red-zone offset with
INCOMING_FRAME_SP_OFFSET.
(ix86_expand_epilogue): Don't pop the 'ERROR_CODE' off the
stack before exception handler returns.
* config/i386/i386.h (INCOMING_FRAME_SP_OFFSET): Add the
the 'ERROR_CODE' for exception handler.
gcc/testsuite/
PR target/79793
* gcc.dg/guality/pr68037-1.c: Update gdb breakpoints.
* gcc.target/i386/interrupt-5.c (interrupt_frame): New struct.
(foo): Check the builtin return address against the return address
in interrupt frame.
* gcc.target/i386/pr79793-1.c: New test.
* gcc.target/i386/pr79793-2.c: Likewise.
From-SVN: r250721
Uros Bizjak [Sun, 30 Jul 2017 08:51:37 +0000 (10:51 +0200)]
i386.h (ASM_PRINTF_EXTENSIONS): New macro.
* config/i386/i386.h (ASM_PRINTF_EXTENSIONS): New macro.
(ASM_OUTPUT_REG_PUSH): Rewrite with new operand modifiers.
(ASM_OUTPUT_REG_POP): Ditto.
* config/i386/i386.c (ix86_asm_output_function_label): Use fputs
instead of asm_fprintf to output pure string.
From-SVN: r250720
Uros Bizjak [Sun, 30 Jul 2017 08:49:40 +0000 (10:49 +0200)]
c-format.c (asm_fprintf_char_table): Add 'z' to format_chars.
* c-format.c (asm_fprintf_char_table): Add 'z' to format_chars.
From-SVN: r250719
GCC Administrator [Sun, 30 Jul 2017 00:16:35 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r250718
Eric Botcazou [Sat, 29 Jul 2017 09:52:04 +0000 (09:52 +0000)]
c-ada-spec.c (dump_generic_ada_node): Take into account signedness for enumeral types.
* c-ada-spec.c (dump_generic_ada_node): Take into account signedness
for enumeral types.
(print_ada_declaration): Add missing guard for record types.
From-SVN: r250714
Jakub Jelinek [Sat, 29 Jul 2017 07:52:16 +0000 (09:52 +0200)]
debug.h (struct gcc_debug_hooks): Add IMPLICIT argument to imported_module_or_decl hook.
* debug.h (struct gcc_debug_hooks): Add IMPLICIT argument
to imported_module_or_decl hook.
(debug_nothing_tree_tree_tree_bool): Remove.
(debug_nothing_tree_tree_tree_bool_bool): New declaration.
* debug.c (do_nothing_debug_hooks): Use
debug_nothing_tree_tree_tree_bool_bool instead of
debug_nothing_tree_tree_tree_bool.
* vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
* dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
* sdbout.c (sdb_debug_hooks): Likewise.
* dwarf2out.c (dwarf2_lineno_debug_hooks): Likewise.
(gen_namespace_die): Add DW_AT_export_symbols attribute if
langhook wants it.
(dwarf2out_imported_module_or_decl): Add IMPLICIT argument,
if true, -gdwarf-5 and decl will have DW_AT_export_symbols
attribute, don't add anything.
cp/
* cp-objcp-common.c (cp_decl_dwarf_attribute): Handle
DW_AT_export_symbols.
* name-lookup.c (emit_debug_info_using_namespace): Add IMPLICIT
argument, pass it through to the debug hook.
(finish_namespace_using_directive): Adjust
emit_debug_info_using_namespace caller.
(push_namespace): Likewise. Call it after setting
DECL_NAMESPACE_INLINE_P.
(cp_emit_debug_info_for_using): Pass false as new argument to
the imported_module_or_decl debug hook.
fortran/
* trans-decl.c (gfc_trans_use_stmts): Pass false as new argument to
the imported_module_or_decl debug hook.
ada/
* gcc-interface/utils.c (gnat_write_global_declarations): Pass false
as new argument to the imported_module_or_decl debug hook.
testsuite/
* g++.dg/debug/dwarf2/inline-ns-1.C: New test.
* g++.dg/debug/dwarf2/inline-ns-2.C: New test.
From-SVN: r250713
Trevor Saunders [Sat, 29 Jul 2017 01:39:48 +0000 (01:39 +0000)]
use c++ for fold_buildN_loc
gcc/ChangeLog:
2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* fold-const.c (fold_build1_stat_loc): Remove _stat from name.
(fold_build2_stat_loc): Likewise.
(fold_build3_stat_loc): Likewise.
* fold-const.h (fold_build1, fold_build2, fold_build3): Adjust.
(fold_build1_loc): Remove macro.
(fold_build2_loc): Likewise.
(fold_build3_loc): Likewise.
From-SVN: r250712
Trevor Saunders [Sat, 29 Jul 2017 01:39:42 +0000 (01:39 +0000)]
use c++ for gimple_build_debug_bind{,_source}
gcc/ChangeLog:
2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* gimple.c (gimple_build_debug_bind_stat): Remove _stat from name.
(gimple_build_debug_bind_source_stat): Likewise.
* gimple.h (gimple_build_debug_bind): Remove macro.
(gimple_build_debug_bind_source): Likewise.
From-SVN: r250711
Trevor Saunders [Sat, 29 Jul 2017 01:39:36 +0000 (01:39 +0000)]
use c++ for bitmap_initialize
gcc/ChangeLog:
2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* bitmap.c (bitmap_alloc): Adjust.
(bitmap_gc_alloc): Likewise.
* bitmap.h (bitmap_initialize_stat): Remove _stat from name.
From-SVN: r250710
Trevor Saunders [Sat, 29 Jul 2017 01:39:31 +0000 (01:39 +0000)]
simplify the bitmap alloc_stat functions with c++
gcc/fortran/ChangeLog:
2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* resolve.c (find_reachable_labels): Adjust.
gcc/ChangeLog:
2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* bitmap.c (bitmap_obstack_alloc_stat): Rename to bitmap_alloc.
(bitmap_gc_alloc_stat): Rename to bitmap_gc_alloc.
* bitmap.h (bitmap_obstack_alloc_stat): Adjust prototype.
(bitmap_gc_alloc_stat): Likewise.
(BITMAP_ALLOC, BITMAP_GGC_ALLOC): Adjust.
From-SVN: r250709
Trevor Saunders [Sat, 29 Jul 2017 01:39:25 +0000 (01:39 +0000)]
replace shallow_copy_rtx_stat with c++
gcc/ChangeLog:
2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* rtl.c (shallow_copy_rtx_stat): Remove _stat from name.
* rtl.h (shallow_copy_rtx): Remove macro.
From-SVN: r250708
Trevor Saunders [Sat, 29 Jul 2017 01:39:17 +0000 (01:39 +0000)]
replace rtx_alloc_stat with c++
gcc/ChangeLog:
2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* emit-rtl.c (gen_raw_REG): Adjust.
* gengenrtl.c (gendef): Likewise.
* rtl.c (rtx_alloc_stat): Remove _stat from name.
* rtl.h (rtx_alloc): Remove macro.
From-SVN: r250707
Trevor Saunders [Sat, 29 Jul 2017 01:39:10 +0000 (01:39 +0000)]
use c++ for build_tree_list{,_vec}_stat
gcc/ChangeLog:
2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* tree.c (build_tree_list_vec_stat): Remove _stat from name.
(build_tree_list_stat): Likewise.
* tree.h (build_tree_list): Remove macro.
(build_tree_list_vec): Likewise.
From-SVN: r250706
Trevor Saunders [Sat, 29 Jul 2017 01:39:03 +0000 (01:39 +0000)]
use C++ for {make,build}_vector_stat
gcc/ChangeLog:
2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* tree.c (make_vector_stat): Remove _stat from name.
(build_vector_stat): Likewise.
* tree.h (make_vector_stat): Remove macro.
(build_vector_stat): Likewise.
From-SVN: r250705
Trevor Saunders [Sat, 29 Jul 2017 01:38:57 +0000 (01:38 +0000)]
remove unused build_var_debug_value prototype
gcc/ChangeLog:
2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* tree.h (build_var_debug_value): Remove prototype.
From-SVN: r250704
Trevor Saunders [Sat, 29 Jul 2017 01:38:51 +0000 (01:38 +0000)]
use c++ for tree_cons_stat
gcc/ChangeLog:
2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* tree.c (tree_cons_stat): Remove _stat from name.
* tree.h (tree_cons): Remove macro.
From-SVN: r250703
Trevor Saunders [Sat, 29 Jul 2017 01:38:43 +0000 (01:38 +0000)]
use c++ instead of build_vl_exp_stat
gcc/ChangeLog:
2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* tree.c (build_vl_exp_stat): Remove _stat from name.
* tree.h (build_vl_exp): Remove macro.
From-SVN: r250702
Trevor Saunders [Sat, 29 Jul 2017 01:38:37 +0000 (01:38 +0000)]
use c++ instead of build_decl_stat
gcc/ChangeLog:
2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* tree.c (build_decl_stat): Remove _stat from name.
* tree.h (build_decl): Remove macro.
From-SVN: r250701
Trevor Saunders [Sat, 29 Jul 2017 01:38:31 +0000 (01:38 +0000)]
replace gimple_alloc_stat with c++
gcc/ChangeLog:
2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* gimple.c (gimple_build_with_ops_stat): Adjust.
(gimple_alloc_stat): Remove _stat from name.
* gimple.h (gimple_alloc): Remove macro.
From-SVN: r250700
Trevor Saunders [Sat, 29 Jul 2017 01:38:25 +0000 (01:38 +0000)]
use c++ instead of {make,grow}_tree_vec_stat
gcc/ChangeLog:
2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* tree.c (make_tree_vec_stat): Remove _stat from name.
(grow_tree_vec_stat): Likewise.
* tree.h (make_tree_vec_stat): Adjust prototype.
(grow_tree_vec_stat): Likewise.
(make_tree_vec): Remove macro.
(grow_tree_vec): Likewise.
From-SVN: r250699
Trevor Saunders [Sat, 29 Jul 2017 01:38:19 +0000 (01:38 +0000)]
use c++ instead of buildN_stat{,_loc}
gcc/ChangeLog:
2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* fold-const.c (fold_build1_stat_loc): Adjust.
(fold_build2_stat_loc): Likewise.
(fold_build3_stat_loc): Likewise.
* tree.c (build0_stat): Remove _stat from name.
(build1_stat): Likewise.
(build2_stat): Likewise.
(build3_stat): Likewise.
(build4_stat): Likewise.
(build5_stat): Likewise.
* tree.h (build1_loc): Remove macro, and rename _stat function
to this.
(build2_loc): Likewise.
(build3_loc): Likewise.
(build4_loc): Likewise.
(build5_loc): Likewise.
From-SVN: r250698
Trevor Saunders [Sat, 29 Jul 2017 01:38:12 +0000 (01:38 +0000)]
use c++ for make_int_cst_stat
gcc/ChangeLog:
2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* tree.c (make_int_cst_stat): Remove _stat from name.
* tree.h (make_int_cst_stat): Adjust prototype.
(make_int_cst): Remove macro.
From-SVN: r250697
Trevor Saunders [Sat, 29 Jul 2017 01:38:06 +0000 (01:38 +0000)]
use cxx instead of make_tree_binfo_stat
gcc/ChangeLog:
2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* tree.c (make_tre_binfo_stat): Remove _stat from name.
* tree.h (make_tree_binfo_stat): Adjust prototype.
(make_tree_binfo): Remove.
From-SVN: r250696
Trevor Saunders [Sat, 29 Jul 2017 01:38:00 +0000 (01:38 +0000)]
use c++ instead of _stat for copy_node_stat
gcc/cp/ChangeLog:
2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* lex.c (copy_decl): Adjust.
(copy_type): Likewise.
gcc/ChangeLog:
2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* tree.c (copy_node_stat): Rename to copy_node.
(build_distinct_type_copy): Adjust.
* tree.h (copy_node_stat): Adjust prototype.
(copy_node): Remove macro.
From-SVN: r250695
Trevor Saunders [Sat, 29 Jul 2017 01:37:54 +0000 (01:37 +0000)]
use c++ instead of make_node_stat
gcc/ChangeLog:
2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* tree.c (make_node_stat): rename to make_node.
(build_tree_list_stat): Adjust.
(build0_stat): Likewise.
(build2_stat): Likewise.
(build3_stat): Likewise.
(build4_stat): Likewise.
(build5_stat): Likewise.
(build_decl_stat): Likewise.
* tree.h (make_node_stat): Adjust prototype.
(make_node): remove macro.
From-SVN: r250694
GCC Administrator [Sat, 29 Jul 2017 00:16:41 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r250693