1. 01 Aug, 2017 17 commits
    • Remove flag_tree_vectorize · 26d476cd
      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
      James Greenhalgh committed
    • Reverted 250770 · 225dcdec
      From-SVN: r250773
      Tamar Christina committed
    • Make mempcpy more optimal (PR middle-end/70140). · 98b7180c
      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
      Martin Liska committed
    • dbl_mov_immediate_1.c: Use conditional assembler scans. · 59ba84d8
      2017-08-01  Tamar Christina  <tamar.christina@arm.com>
      
      	* gcc.target/aarch64/dbl_mov_immediate_1.c:
      	Use conditional assembler scans.
      
      From-SVN: r250770
      Tamar Christina committed
    • re PR target/81641 (Assemble failure with named address spaces and -masm=intel) · 4f3e333a
      	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 committed
    • re PR target/81639 (ICE in rtl_verify_bb_insns, at cfgrtl.c:2669 with a naked function) · b8bb5772
      	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
      Uros Bizjak committed
    • tree-ssa-pre.c (print_pre_expr): Handle NULL expr. · 34e5c511
      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
      Richard Biener committed
    • 2017-08-01 Tamar Christina <tamar.christina@arm.com> · 35c38fa6
      	* config/aarch64/aarch64.c
      	(aarch64_can_const_movi_rtx_p): Move 0 check.
      
      From-SVN: r250766
      Tamar Christina committed
    • tree.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Delete. · 5e19d437
      	* 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 committed
    • re PR tree-optimization/81627 (ICE on valid code at -O3: in… · 7061cfc0
      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 committed
    • re PR tree-optimization/81620 (ICE in is_inv_store_elimination_chain, at… · 39637a44
      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
      Bin Cheng committed
    • re PR fortran/53542 (Diagnostic of USE-associated variables shows original… · f9c5fe06
      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
      Dominique d'Humieres committed
    • re PR tree-optimization/81588 (Wrong code at -O2) · da98e3b1
      	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 committed
    • re PR target/80846 (auto-vectorized AVX2 horizontal sum should narrow to 128b… · ff03930a
      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
      Jakub Jelinek committed
    • re PR tree-optimization/81297 (ICE in get_single_symbol) · 5e8fe12f
      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
      Richard Biener committed
    • naked-1.c (dg-options): Add -fno-pic. · 93ac482a
      	* gcc.target/i386/naked-1.c (dg-options): Add -fno-pic.
      
      From-SVN: r250757
      Uros Bizjak committed
    • Daily bump. · 7670a542
      From-SVN: r250756
      GCC Administrator committed
  2. 31 Jul, 2017 22 commits
    • re PR tree-optimization/80925 (vect peeling failures) · 6cc518c6
      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
      Steve Ellcey committed
    • builtins-4-runnable.c: Fix dg argument that got missed in commit 250746. · 24c8e8eb
      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
      Carl Love committed
    • Update myself in MAINTAINERS · 8eb56d6b
      From-SVN: r250750
      Richard Henderson committed
    • rs6000: Trailing comma warning in enum · 9ad732aa
      
      	* config/rs6000/rs6000.c (enum rs6000_reg_type): Delete trailing comma.
      
      From-SVN: r250749
      Segher Boessenkool committed
    • * es.po, uk.po: Update. · 7f23f238
      From-SVN: r250747
      Joseph Myers committed
    • rs6000-c: Add support for built-in functions vector signed char vec_xl_be (signed long... · b40e941b
      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
      Carl Love committed
    • Compile pr79793-[12].c with -mtune=generic · 67779f74
      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
      H.J. Lu committed
    • re PR libstdc++/81599 (Error in documentation of std::stack) · 4ab033db
      	PR libstdc++/81599
      	* include/bits/stl_stack.h: Fix typo.
      
      From-SVN: r250743
      Marek Polacek committed
    • re PR target/25967 (Add attribute naked for x86) · a97cf8f9
      	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
      Uros Bizjak committed
    • Add myself to MAINTAINERS. · 9c04bba3
      From-SVN: r250741
      Robin Dapp committed
    • [Committed] S/390: Support z14 as CPU name. · 2731a5b3
      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
      Andreas Krebbel committed
    • [PR 81477] Set versionable regardless of optimization level · 0688f9c1
      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
      Martin Jambor committed
    • Recover GOTO predictor. · 7fef86d3
      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
      Jan Hubicka committed
    • re PR target/25967 (Add attribute naked for x86) · 2ec580be
      	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
      Uros Bizjak committed
    • re PR fortran/81581 (runtime checks for DIM argument of intrinsic SUM missing) · cfdf6ff6
      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
      Thomas Koenig committed
    • * check.c (gfc_check_num_images): Fix a pasto. · 57b1c5e9
      From-SVN: r250734
      Jakub Jelinek committed
    • Learn GIMPLE pretty printer to produce nicer dump output. · 5edb1c48
      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 committed
    • Do UBSAN sanitization just when current_function_decl != NULL_TREE (PR sanitize/81530). · f34ebeb2
      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
      Martin Liska committed
    • re PR sanitizer/81604 (Ubsan type reporting can be bogus in some cases) · 066bbc57
      	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 committed
    • re PR tree-optimization/81603 (Various compiler UB on very large constant offsets) · 0d1e5925
      	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
      Jakub Jelinek committed
    • Remove a Java-specific hunk. · 3dd93025
      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
      Martin Liska committed
    • Daily bump. · f826c40e
      From-SVN: r250725
      GCC Administrator committed
  3. 30 Jul, 2017 1 commit
    • i386: Update INCOMING_FRAME_SP_OFFSET for exception handler · a10b3cf1
      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
      H.J. Lu committed