Commit Graph

155258 Commits

Author SHA1 Message Date
James Greenhalgh 26d476cd52 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
2017-08-01 12:59:05 +00:00
Tamar Christina 225dcdec6f Reverted 250770
From-SVN: r250773
2017-08-01 12:23:59 +00:00
Martin Liska 98b7180c15 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
2017-08-01 11:59:27 +00:00
Tamar Christina 59ba84d882 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
2017-08-01 11:41:03 +00:00
Uros Bizjak 4f3e333a87 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
2017-08-01 13:15:52 +02:00
Uros Bizjak b8bb5772c6 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
2017-08-01 12:57:55 +02:00
Richard Biener 34e5c5116f 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
2017-08-01 10:47:14 +00:00
Tamar Christina 35c38fa674 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
2017-08-01 09:56:31 +00:00
Bin Cheng 5e19d4371e 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
2017-08-01 09:28:18 +00:00
Bin Cheng 7061cfc027 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
2017-08-01 09:20:08 +00:00
Bin Cheng 39637a44f4 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
2017-08-01 09:17:29 +00:00
Dominique d'Humieres f9c5fe06f9 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
2017-08-01 11:02:58 +02:00
Jakub Jelinek da98e3b126 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
2017-08-01 10:32:37 +02:00
Jakub Jelinek ff03930a11 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
2017-08-01 10:26:14 +02:00
Richard Biener 5e8fe12fcc 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
2017-08-01 07:04:10 +00:00
Uros Bizjak 93ac482a66 naked-1.c (dg-options): Add -fno-pic.
* gcc.target/i386/naked-1.c (dg-options): Add -fno-pic.

From-SVN: r250757
2017-08-01 07:56:28 +02:00
GCC Administrator 7670a54258 Daily bump.
From-SVN: r250756
2017-08-01 00:16:34 +00:00
Steve Ellcey 6cc518c6cb 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
2017-07-31 21:44:34 +00:00
Carl Love 24c8e8eb65 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
2017-07-31 21:01:39 +00:00
Richard Henderson 8eb56d6b70 Update myself in MAINTAINERS
From-SVN: r250750
2017-07-31 11:37:27 -07:00
Segher Boessenkool 9ad732aa46 rs6000: Trailing comma warning in enum
* config/rs6000/rs6000.c (enum rs6000_reg_type): Delete trailing comma.

From-SVN: r250749
2017-07-31 19:00:57 +02:00
Joseph Myers 7f23f23811 * es.po, uk.po: Update.
From-SVN: r250747
2017-07-31 16:50:40 +01:00
Carl Love b40e941b53 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
2017-07-31 15:42:01 +00:00
H.J. Lu 67779f7422 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
2017-07-31 07:59:24 -07:00
Marek Polacek 4ab033db41 re PR libstdc++/81599 (Error in documentation of std::stack)
PR libstdc++/81599
	* include/bits/stl_stack.h: Fix typo.

From-SVN: r250743
2017-07-31 13:44:16 +00:00
Uros Bizjak a97cf8f9a3 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
2017-07-31 15:11:59 +02:00
Robin Dapp 9c04bba366 Add myself to MAINTAINERS.
From-SVN: r250741
2017-07-31 12:02:33 +00:00
Andreas Krebbel 2731a5b331 [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
2017-07-31 11:31:09 +00:00
Martin Jambor 0688f9c152 [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
2017-07-31 13:18:31 +02:00
Jan Hubicka 7fef86d348 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
2017-07-31 11:16:00 +00:00
Uros Bizjak 2ec580be15 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
2017-07-31 12:22:41 +02:00
Thomas Koenig cfdf6ff61b 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
2017-07-31 09:34:36 +00:00
Jakub Jelinek 57b1c5e9ab * check.c (gfc_check_num_images): Fix a pasto.
From-SVN: r250734
2017-07-31 11:32:02 +02:00
Martin Liska 5edb1c48f8 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
2017-07-31 08:54:05 +00:00
Martin Liska f34ebeb25e 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
2017-07-31 08:53:00 +00:00
Jakub Jelinek 066bbc5721 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
2017-07-31 10:24:58 +02:00
Jakub Jelinek 0d1e5925e4 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
2017-07-31 10:22:14 +02:00
Martin Liska 3dd9302511 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
2017-07-31 07:29:49 +00:00
GCC Administrator f826c40ecb Daily bump.
From-SVN: r250725
2017-07-31 00:16:46 +00:00
H.J. Lu a10b3cf148 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
2017-07-30 07:10:32 -07:00
Uros Bizjak ec1895c1f3 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
2017-07-30 10:51:37 +02:00
Uros Bizjak 218e5d04b3 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
2017-07-30 10:49:40 +02:00
GCC Administrator 9ff915823f Daily bump.
From-SVN: r250718
2017-07-30 00:16:35 +00:00
Eric Botcazou 942047f22f 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
2017-07-29 09:52:04 +00:00
Jakub Jelinek e071b76781 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
2017-07-29 09:52:16 +02:00
Trevor Saunders 226b828937 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
2017-07-29 01:39:48 +00:00
Trevor Saunders 59cdeebcbe 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
2017-07-29 01:39:42 +00:00
Trevor Saunders 2a1a5f3080 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
2017-07-29 01:39:36 +00:00
Trevor Saunders 3fe793df7c 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
2017-07-29 01:39:31 +00:00
Trevor Saunders 22a7303de2 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
2017-07-29 01:39:25 +00:00