Commit Graph

144367 Commits

Author SHA1 Message Date
Andreas Krebbel
d0a859e621 S/390: z13 fix mode in vcond expansion
For floating point vector compares the target mode is an integer mode
which accidently was used as register mode when forcing the compare
operands into regs.

gcc/ChangeLog:

	* config/s390/s390.c (s390_expand_vcond): Use the compare operand
	mode.

gcc/testsuite/ChangeLog:

	* gcc.target/s390/vector/vec-vcond-1.c: New test.

From-SVN: r233552
2016-02-19 10:34:12 +00:00
Andreas Krebbel
9e4eb64394 S/390: Adjust movstr-1.c testcase to work with the z13 stpcpy implementation.
2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* gcc.target/s390/md/movstr-1.c: Allow also the z13 strings
	instruction pattern name to prevent the testcase from failing with
	-march=z13.

From-SVN: r233551
2016-02-19 10:32:38 +00:00
Andreas Krebbel
859a4c0e84 S/390: z13 inline stpcpy implementation.
A handwritten loop for stpcpy using the new z13 vector instructions
appears to be much faster than the millicoded instruction.  However,
the implementation is much longer and therefore will only be enabled
when optimization for speed.

gcc/testsuite/ChangeLog:

	* gcc.target/s390/md/movstr-2.c: New test.

gcc/ChangeLog:

	* config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
	* config/s390/s390.c (s390_expand_vec_movstr): New function.
	* config/s390/s390.md ("movstr<P:mode>"): Call
	s390_expand_vec_movstr.

From-SVN: r233550
2016-02-19 10:31:05 +00:00
Andreas Krebbel
9a36359ec6 S/390: z13 lcbb fix address operand.
gcc/ChangeLog:

2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.md: Add missing output modifier for operand 1
	to print it as address properly.

From-SVN: r233549
2016-02-19 10:28:45 +00:00
Andreas Krebbel
239020213a S/390: Add IBM z13 pipeline description
This patch adds proper support for the -mtune=z13 option by adding a
z13 pipeline description.  As started with zEC12 we mostly make use of
the sched reorder hooks to implement a grouping strategy.  However,
this time we also keep an eye at the instruction mix provided in the
out of order window to allow the hardware to exploit the different
units.

gcc/ChangeLog:

	* config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
	* config/s390/2964.md: New file.
	* config/s390/s390.c (s390_get_sched_attrmask): Use the right set
	of insn grouping attributes depending on the CPU level.
	(s390_get_unit_mask): New function.
	(s390_sched_score): Remove the OOO from the scheduling macros.
	Add loop to calculate a score for the instruction mix.
	(s390_sched_reorder): Likewise plus improve debug output.
	(s390_sched_variable_issue): Rename macros as above.  Calculate
	the unit distances after actually scheduling an insn.  Improve
	debug output.
	(s390_sched_init): Clear last_scheduled_unit_distance array.
	* config/s390/s390.md: Include 2964.md.

From-SVN: r233548
2016-02-19 10:27:12 +00:00
Marcin Kościelnicki
efc2340b5f S/390: Add __morestack test.
gcc/testsuite/ChangeLog:

	* gcc.target/s390/morestack.c: New test.

From-SVN: r233547
2016-02-19 10:20:23 +00:00
Dominik Vogt
ca2bfbc2ca S/390: PR 69625: Add test case
gcc/testsuite/ChangeLog

	PR target/69625
	* gcc.target/s390/pr69625.c: Add test case.

From-SVN: r233546
2016-02-19 10:15:43 +00:00
Jakub Jelinek
7082a7621a re PR target/69671 (FAIL: gcc.target/i386/avx512vl-vpmovqb-1.c scan-assembler-times vpmovqb[ \\t]+[^{\n]*%ymm[0-9]+[^\n]*%xmm[0-9]+{%k[1-7]}{z}(?)
PR target/69671
	* config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
	*avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
	*avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
	*avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
	*avx512f_<code>v8div16qi2_mask_1): New insns.

From-SVN: r233545
2016-02-19 08:56:36 +01:00
Jason Merrill
747b61fcb3 mangle.c (maybe_check_abi_tags): Add for_decl parm.
* mangle.c (maybe_check_abi_tags): Add for_decl parm.  Call
	mangle_decl.
	(mangle_decl): Call maybe_check_abi_tags for function scope.
	(mangle_guard_variable): Call maybe_check_abi_tags here.
	(write_guarded_var_name): Not here.

From-SVN: r233544
2016-02-19 01:25:05 -05:00
GCC Administrator
654f089a92 Daily bump.
From-SVN: r233543
2016-02-19 00:16:16 +00:00
Bernd Edlinger
efd4bd05f3 re PR testsuite/68580 (FAIL: c-c++-common/tsan/pr65400-1.c -O0 execution test)
PR testsuite/68580
* c-c++-common/tsan/pr65400-1.c (v, q, o): Make 8-byte aligned.

From-SVN: r233538
2016-02-18 22:27:09 +00:00
Michael Meissner
2bf2078afb re PR bootstrap/68404 (PGO/LTO bootstrap failure on ppc64le)
[gcc]
2016-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/68404
	* config/rs6000/predicates.md (fusion_gpr_addis): Revert
	2016-02-09 change.

	* config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
	earlyclobber from target.  Use wF constraint for fused memory
	address.
	(fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.

[gcc/testsuites]
2016-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/68404
	* gcc.target/powerpc/fusion.c: Revert the 2016-02-09 change.
	* gcc.target/powerpc/fusion3.c: Likewise.

From-SVN: r233532
2016-02-18 19:36:39 +00:00
Jakub Jelinek
c461d26383 Do not emit red stack zones for a fn with no_sanitize_address
PR sanitizer/69863
	* cfgexpand.c (asan_sanitize_stack_p): New function.
	(partition_stack_vars): Use the function.
	(expand_stack_vars): Likewise.
	(defer_stack_allocation): Likewise.
	(expand_used_vars): Likewise.

Co-Authored-By: Martin Liska <mliska@suse.cz>

From-SVN: r233524
2016-02-18 17:15:25 +00:00
Richard Biener
f003579e9c re PR middle-end/69553 (Optimizations O1/O2 makes std::array value incorrect when passed to function)
2016-02-18  Richard Biener  <rguenther@suse.de>

	PR middle-end/69553
	* fold-const.c (operand_equal_p): Properly compare offsets for
	IMAGPART_EXPR and ARRAY_REF.

	* g++.dg/torture/pr69553.C: New testcase.

From-SVN: r233520
2016-02-18 14:34:59 +00:00
Nick Clifton
cc7ab8a232 Fix PR number in changelog entries.
From-SVN: r233519
2016-02-18 13:23:06 +00:00
Nick Clifton
19233914d1 PR target/62554
PR target/69610
gcc     * config/arm/arm.c (arm_option_override_internal): Disable
        interworking if the target does not support thumb instructions.
        (arm_reload_in_hi): Handle the case where a register to register
        move needs reloading because there is no simple pattern to handle
        it.
        (arm_reload_out_hi): Likewise.

tests   * gcc.target/arm/pr62554.c: New test.
        * gcc.target/arm/pr69610-1.c: New test.
        * gcc.target/arm/pr69610-2.c: New test.

From-SVN: r233518
2016-02-18 13:00:07 +00:00
Richard Biener
23f2783968 re PR middle-end/69854 (ICE: tree check: expected class 'constant', have 'binary' (plus_expr) in generic_simplify_65, at generic-match.c:3110)
2016-02-18  Richard Biener  <rguenther@suse.de>

	PR middle-end/69854
	* match.pd: Don't use fold_binary or fold_unary for folding
	constants.

	* gcc.dg/torture/pr69854.c: New testcase.

From-SVN: r233516
2016-02-18 08:43:58 +00:00
Ian Lance Taylor
43414a5dd3 libgo: Update to final Go 1.6 release.
Reviewed-on: https://go-review.googlesource.com/19592

From-SVN: r233515
2016-02-18 05:56:46 +00:00
Jason Merrill
fa837fb670 re PR c++/65985 (compiler segfault with assert() in constexpr constructor body)
PR c++/65985
	* constexpr.c (build_constexpr_constructor_member_initializers):
	Handle an additional STATEMENT_LIST.

From-SVN: r233514
2016-02-18 00:08:09 -05:00
Jason Merrill
bcb5f3c9f5 re PR c++/68585 (c++14 code accepted by 4.9 not accepted by 5 and 6)
PR c++/68585
	* constexpr.c (cxx_eval_bare_aggregate): Fix 'changed' detection.

From-SVN: r233513
2016-02-18 00:08:02 -05:00
Jason Merrill
50ccdf5bc2 re PR c++/68679 (gcc-5.2.1 ICE in C++11 anon union of structs with template fns, OK in gcc <= 4.9.3)
PR c++/68679
	* decl2.c (reset_type_linkage_2): Look through member templates.

From-SVN: r233512
2016-02-18 00:07:55 -05:00
GCC Administrator
f590daa42a Daily bump.
From-SVN: r233511
2016-02-18 00:16:12 +00:00
Jakub Jelinek
932c0da42d re PR c++/69850 (unnecessary -Wnonnull-compare warning)
PR c++/69850
	* gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
	on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
	* gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
	warn on gimple_no_warning_p statements.

	* init.c (build_delete): Set TREE_NO_WARNING on ifexp.

	* g++.dg/warn/Wnonnull-compare-1.C: New test.

From-SVN: r233508
2016-02-17 23:27:24 +01:00
Jason Merrill
0f02dd56f5 re PR c++/69842 (Parameter deduction in polymorphic lambdas)
PR c++/69842
	* method.c (forward_parm): Split out from...
	(add_one_base_init): ...here.
	* lambda.c (maybe_add_lambda_conv_op): Use it.

From-SVN: r233506
2016-02-17 15:45:15 -05:00
Max Filippov
9bfcbdeecf xtensa: fix libgcc build with --text-section-literals
Functions __muldf3_aux, __divdf3_aux, __mulsf3_aux and __divsf3_aux
don't start with leaf_entry, so they need explicit .literal_position,
otherwise libgcc build fails in the presence of --text-section-literals.

2016-02-17  Max Filippov  <jcmvbkbc@gmail.com>
libgcc/
	* config/xtensa/ieee754-df.S (__muldf3_aux, __divdf3_aux): Add
	.literal_position before the function.
	* config/xtensa/ieee754-sf.S (__mulsf3_aux, __divsf3_aux):
	Likewise.

From-SVN: r233505
2016-02-17 20:21:48 +00:00
Jonathan Wakely
e8f289e597 extend.texi (C++ Attributes): Correct description of warn_unused type attribute.
* doc/extend.texi (C++ Attributes): Correct description of
	warn_unused type attribute.

From-SVN: r233502
2016-02-17 17:36:22 +00:00
Jerry DeLisle
efea09f21b re PR libfortran/69651 ([6 Regession] Usage of unitialized pointer io/list_read.c)
2016-02-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libgfortran/69651
	* io/list_read.c (push_char4): Fix the pointer usage for xrealloc.

From-SVN: r233500
2016-02-17 16:48:57 +00:00
Bill Schmidt
1bed93e465 altivec.md (*altivec_lvxl_<mode>_internal): Output correct instruction.
[gcc]

2016-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
	correct instruction.

[gcc/testsuite]

2012-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* gcc.target/powerpc/vec-cg.c: New test.

From-SVN: r233499
2016-02-17 16:23:55 +00:00
Richard Biener
375374ad41 re PR rtl-optimization/69609 (block reordering consumes an inordinate amount of time, REE consumes much memory)
2016-02-17  Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/69609
	* bb-reorder.c (struct bbro_basic_block_data): Add priority member.
	(find_traces_1_round): When ending a trace update cached priority
	of successors.
	(bb_to_key): Use cached priority when available.
	(copy_bb): Initialize cached priority.
	(reorder_basic_blocks_software_trace_cache): Likewise.

From-SVN: r233498
2016-02-17 14:57:58 +00:00
Richard Biener
57bfb13452 re PR testsuite/69586 (FAIL: gcc.dg/uninit-21.c for target defaulting to short enum)
2016-02-17  Richard Biener  <rguenther@suse.de>

	PR testsuite/69586
	* gcc.dg/uninit-21.c: Add -fno-short-enums.

From-SVN: r233497
2016-02-17 14:51:27 +00:00
Kyrylo Tkachov
a44e0ebb89 [AArch64] PR target/69161: Don't use special predicate for CCmode comparisons in expressions that require matching modes
PR target/69161
	* config/aarch64/predicates.md (aarch64_comparison_operator_mode):
	New predicate.
	(aarch64_comparison_operator): Break overly long line into two.
	(aarch64_comparison_operation): Likewise.
	* config/aarch64/aarch64.md (cstorecc4): Use
	aarch64_comparison_operator_mode instead of
	aarch64_comparison_operator.
	(cstore<mode>4): Likewise.
	(aarch64_cstore<mode>): Likewise.
	(*cstoresi_insn_uxtw): Likewise.
	(cstore<mode>_neg): Likewise.
	(*cstoresi_neg_uxtw): Likewise.

	* gcc.c-torture/compile/pr69161.c: New test.

From-SVN: r233496
2016-02-17 13:42:35 +00:00
Kyrylo Tkachov
ac4bf40708 [ARM] PR target/69161: Don't ignore mode when matching comparison operator in cstore-like patterns
PR target/69161
	* config/arm/predicates.md (arm_comparison_operator_mode):
	New predicate.
	* config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
	instead of arm_comparison_operator.
	(*mov_negscc): Likewise.
	(*mov_notscc): Likewise.
	* config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
	(*thumb2_mov_negscc): Likewise.
	(*thumb2_mov_negscc_strict_it): Likewise.
	(*thumb2_mov_notscc): Likewise.
	(*thumb2_mov_notscc_strict_it): Likewise.

From-SVN: r233495
2016-02-17 13:39:30 +00:00
David Sherwood
ffacd7263e re PR target/69532 (FAIL: gcc.target/arm/{vect-,}fmaxmin.c execution test on armv7)
2016-02-17  David Sherwood  <david.sherwood@arm.com>

    gcc/testsuite:
        PR target/69532
        * gcc.target/arm/fmaxmin.c: Change effective target to arm_v8_neon_hw.
        * gcc.target/arm/vect-fmaxmin.c: Likewise.

From-SVN: r233494
2016-02-17 13:16:31 +00:00
Wilco Dijkstra
1312b1ba11 As part of the final cleanup of aarch64_internal_mov_immediate a return was accidentally removed.
As part of the final cleanup of aarch64_internal_mov_immediate a return was
accidentally removed.  This causes the 2-instruction case to fallthrough
into the general case even when it found a match.  An example immediate is
0xcccccccccccccccd which was using 2 instructions in GCC5 but now requires 4.
Adding the return fixes the regressions.

2016-02-17  Wilco Dijkstra  <wdijkstr@arm.com>

    gcc/
	* config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
	Add missing return.

From-SVN: r233490
2016-02-17 11:52:35 +00:00
Eric Botcazou
448db8d2f6 * gcc.dg/ifcvt-4.c: Skip on Visium.
From-SVN: r233489
2016-02-17 11:20:06 +00:00
Eric Botcazou
8072945b83 visium.c (machine_libfunc_index): New enum.
* config/visium/visium.c (machine_libfunc_index): New enum.
	(machine_libfuncs): New structure.
	(visium_libfuncs): New static variable.
	(TARGET_INIT_LIBFUNCS): Define to...
	(visium_init_libfuncs): ...this.  New function.
	(expand_block_move_4): Use the appropriate libfunc.
	(expand_block_move_2): Likewise.
	(expand_block_move_1): Likewise.
	(expand_block_set_4): Likewise.
	(expand_block_set_2): Likewise.
	(expand_block_set_1): Likewise.
	(visium_trampoline_init): Likewise.

From-SVN: r233488
2016-02-17 11:17:15 +00:00
Nick Clifton
01c93899e2 msp430.c (msp430_mcu_data): Sync with data from TI's devices.csv file as of March 2016.
* config/msp430/msp430.c (msp430_mcu_data): Sync with data from
	TI's devices.csv file as of March 2016.

From-SVN: r233487
2016-02-17 09:53:42 +00:00
Eric Botcazou
e2f0522e06 exp_ch4.adb (Expand_N_Indexed_Component): Active synchronization if the prefix denotes an entity which Has_Atomic_Components.
* exp_ch4.adb (Expand_N_Indexed_Component): Active synchronization if
	the prefix denotes an entity which Has_Atomic_Components.
	* gcc-interface/trans.c (node_is_atomic): Return true if the prefix
	denotes an entity which Has_Atomic_Components.

From-SVN: r233485
2016-02-17 09:21:58 +00:00
Eric Botcazou
bf17fe3f73 utils2.c (gnat_protect_expr): Make a SAVE_EXPR only for fat pointer or scalar types.
* gcc-interface/utils2.c (gnat_protect_expr): Make a SAVE_EXPR only
	for fat pointer or scalar types.

From-SVN: r233484
2016-02-17 09:08:09 +00:00
Tim Shen
244901a572 re PR libstdc++/69794 (std::regex_search match failure with regex object with flags grep|icase)
2016-02-16  Tim Shen  <timshen@google.com>

	PR libstdc++/69794
	* include/bits/regex_scanner.h: Add different special character
	sets for grep and egrep regex.
	* include/bits/regex_scanner.tcc: Use _M_spec_char more uniformly.
	* testsuite/28_regex/regression.cc: Add new testcase.

From-SVN: r233482
2016-02-17 03:33:02 +00:00
Jason Merrill
6bab4c63c4 re PR c++/10200 (Weird clash with same names in different scopes)
PR c++/10200
	PR c++/69753
	* call.c, cp-tree.h, name-lookup.c, pt.c, search.c, semantics.c,
	tree.c, typeck2.c: Revert earlier changes.
	* parser.c (cp_parser_lookup_name): Ignore namespace-scope
	non-type templates after -> or .

From-SVN: r233481
2016-02-16 19:50:23 -05:00
GCC Administrator
a529923e35 Daily bump.
From-SVN: r233480
2016-02-17 00:16:12 +00:00
Kelvin Nilsen
ecf835e901 re PR target/48344 (powerpc ICE with -fstack-limit-register=r2)
[gcc]

2016-02-16  Kelvin Nilsen  <kelvin@gcc.gnu.org>

	PR Target/48344
	* opts-global.c (handle_common_deferred_options): Introduce and
	initialize two global variables to remember command-line options
	specifying a stack-limiting register.
	* opts.h: Add extern declarations of the two new global variables. 
	* emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
	variable based on the values of the two new global variables.

[gcc/testsuite]

2016-02-16  Kelvin Nilsen  <kelvin@gcc.gnu.org>

	PR Target/48344
	* gcc.target/powerpc/pr48344-1.c: New test.

From-SVN: r233477
2016-02-16 23:12:19 +00:00
Thomas Koenig
49a1164ae3 re PR fortran/69742 (ICE with -O3 and ASSOCIATE containing repeated expression)
2015-02-16  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/69742
	* frontend-passes.c (cfe-expr_0):  Don't register functions
	from within an ASSOCIATE statement.

2015-02-16  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/69742
	* gfortran.dg/associate_21.f90:  New test.

From-SVN: r233474
2016-02-16 21:10:00 +00:00
Jakub Jelinek
bf14eba23b re PR c/69835 (-Wnonnull diagnoses parameter comparisons with NULL even when those could have changed)
PR c/69835
	* common.opt (Wnonnull-compare): New warning.
	* doc/invoke.texi (-Wnonnull): Remove text about comparison
	of arguments against NULL.
	(-Wnonnull-compare): Document.
	* Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
	* tree-pass.h (make_pass_warn_nonnull_compare): Declare.
	* passes.def (pass_warn_nonnull_compare): Add.
	* gimple-ssa-nonnull-compare.c: New file.
c-family/
	* c.opt (Wnonnull-compare): Enable for -Wall.
c/
	* c-typeck.c (build_binary_op): Revert 2015-09-09 change.
cp/
	* typeck.c (cp_build_binary_op): Revert 2015-09-09 change.
testsuite/
	* c-c++-common/nonnull-1.c: Use -Wnonnull-compare instead of
	-Wnonnull in dg-options.
	* c-c++-common/nonnull-2.c: New test.

From-SVN: r233472
2016-02-16 21:46:17 +01:00
Jason Merrill
7128d6ab21 re PR c++/69657 (abs() not inlined after including math.h)
PR c++/69657
	* name-lookup.c (lookup_qualified_name): Add find_hidden parm.
	(set_decl_namespace): Pass it.  Complain about finding a hidden friend.
	* name-lookup.h: Adjust.

From-SVN: r233470
2016-02-16 14:01:49 -05:00
Eric Botcazou
7005800cd1 gigi.h (maybe_debug_type): New inline function.
* gcc-interface/gigi.h (maybe_debug_type): New inline function.
	* gcc-interface/misc.c (gnat_get_array_descr_info): Use it.
	Call maybe_character_value on the array bounds.  Get to the base type
	of the index type and call maybe_debug_type on it.
	* gcc-interface/utils.c (finish_character_type): Add special treatment

From-SVN: r233469
2016-02-16 18:01:04 +00:00
Eric Botcazou
8c7eac6260 misc.c (gnat_enum_underlying_base_type): New function.
* gcc-interface/misc.c (gnat_enum_underlying_base_type): New function.
	(LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): Define to above.

From-SVN: r233467
2016-02-16 17:51:56 +00:00
James Greenhalgh
7c175186bc [AArch64] Remove AARCH64_EXTRA_TUNE_RECIP_SQRT from Cortex-A57 tuning
gcc/

	* config/aarch64/aarch64.c (cortexa57_tunings): Remove
	AARCH64_EXTRA_TUNE_RECIP_SQRT.

From-SVN: r233463
2016-02-16 16:04:42 +00:00
James Greenhalgh
1a33079e17 [Patch AArch64] Use software sqrt expansion always for -mlow-precision-recip-sqrt
gcc/

	* config/aarch64/aarch64.c (use_rsqrt_p): Always use software
	reciprocal sqrt for -mlow-precision-recip-sqrt.

From-SVN: r233462
2016-02-16 16:03:27 +00:00