Commit Graph

152119 Commits

Author SHA1 Message Date
Segher Boessenkool
da3243b2b6 cris: Fix for RTL checking
* config/cris/cris.md: Use correct operand in a define_peephole2.

From-SVN: r245723
2017-02-24 23:34:37 +01:00
Matthew Fortune
4bc2b7860f Update paired single tests to cope with ABI fixes for o32/o64
gcc/testsuite/

	* gcc.target/mips/mips-ps-type-2.c (move): Force generation
	of mov.ps.
	* gcc.target/mips/mips-ps-type.c (move): Likewise.
	(cond_move1): Simplify condition to force generation of
	mov[nz].ps.
	(cond_move2): Likewise.

From-SVN: r245722
2017-02-24 22:34:25 +00:00
Segher Boessenkool
015122d8c4 c6x: Fix for RTL checking
* config/c6x/c6x.c (predicate_insn): Do not incorrectly share RTL.

From-SVN: r245721
2017-02-24 23:32:46 +01:00
Segher Boessenkool
4173ddafe2 arc: Fixes for RTL checking
* config/arc/arc.c (arc_ccfsm_advance): Only take the PATTERN of
	this_insn if it is an INSN or JUMP_INSN.
	(force_offsettable): Look at base, not at addr.
	* config/arc/predicates.md (brcc_nolimm_operator): Don't call INTVAL
	on things that aren' necessarily CONST_INTs.

From-SVN: r245720
2017-02-24 23:20:14 +01:00
Jakub Jelinek
4227c9adf0 re PR c++/79588 (ICE in warn_for_restrict with -Wrestrict)
PR c++/79588
c-family/
	* c-common.c (check_function_restrict): New function.
	(check_function_arguments): Add FNDECL argument.  Call
	check_function_restrict if -Wrestrict.
	* c-warn.c (warn_for_restrict): Remove ARGS argument, add ARGARRAY
	and NARGS.  Use auto_vec for ARG_POSITIONS, simplify.
	* c-common.h (check_function_arguments): Add FNDECL argument.
	(warn_for_restrict): Remove ARGS argument, add ARGARRAY and NARGS.
c/
	* c-parser.c (c_parser_postfix_expression_after_primary): Don't
	handle -Wrestrict here.
	* c-typeck.c (build_function_call_vec): Adjust
	check_function_arguments caller.
cp/
	* call.c (build_over_call): Call check_function_arguments even for
	-Wrestrict, adjust check_function_arguments caller.
	* parser.c (cp_parser_postfix_expression): Don't handle -Wrestrict
	here.
	* typeck.c (cp_build_function_call_vec): Adjust
	check_function_arguments caller.
testsuite/
	* g++.dg/warn/Wrestrict-1.C: New test.
	* g++.dg/warn/Wrestrict-2.C: New test.

From-SVN: r245719
2017-02-24 21:41:54 +01:00
Marek Polacek
5713d44853 re PR translation/79705 (cp/decl.c message not marked for translation)
PR translation/79705
	* decl.c (check_redeclaration_exception_specification): Mark a string
	for translation.  Make the pointer const.

From-SVN: r245717
2017-02-24 18:54:13 +00:00
David Edelsohn
fd527ec190 Require LTO.
Add initial ChangeLog entry.

From-SVN: r245716
2017-02-24 13:39:44 -05:00
Uros Bizjak
14a7c857a0 invoke.texi (x86 Options, [...]): Mention that -mfpmath=sse is the default also for x86-32 targets with SSE2...
* doc/invoke.texi (x86 Options, -mfpmath=sse): Mention that
	-mfpmath=sse is the default also for x86-32 targets with SSE2
	instruction set when @option{-ffast-math} is enabled

From-SVN: r245715
2017-02-24 19:18:57 +01:00
Jeff Law
19e1183f17 re PR rtl-optimization/79286 (ira and lra wrong code at -O2 and -Os on i686-linux)
PR rtl-optimizatoin/79286
	* ira.c (update_equiv_regs): Drop may_trap_p exception to
	dominance test.

From-SVN: r245714
2017-02-24 08:36:10 -07:00
Richard Biener
d081521703 re PR tree-optimization/79389 (30% performance regression in SciMark2 MonteCarlo)
2017-02-24  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/79389
	* gimple-ssa-split-paths.c (is_feasible_trace): Properly skip
	debug insns.

From-SVN: r245713
2017-02-24 11:51:33 +00:00
Toma Tabacu
2af8fd5cdf Use logical_op_short_circuit to skip targets in ssa-thread-14.c.
gcc/testsuite/

	* gcc.dg/tree-ssa/ssa-thread-14.c (dg-options): Use
	logical_op_short_circuit to skip targets.
	(dg-additional-options): Don't pass -mbranch-cost=2 for MIPS, AVR
	and s390.

From-SVN: r245711
2017-02-24 11:03:12 +00:00
Eric Botcazou
741bd9b135 decl.c (gnat_to_gnu_field): Do not remove the wrapper around a justified modular type if...
* gcc-interface/decl.c (gnat_to_gnu_field): Do not remove the wrapper
	around a justified modular type if it doesn't have the same scalar
	storage order as the enclosing record type.

From-SVN: r245710
2017-02-24 11:03:08 +00:00
Aldy Hernandez
70e1d145c8 tree-ssa-loop-niter.c (number_of_iterations_exit): Update function comment to reflect reality.
* tree-ssa-loop-niter.c (number_of_iterations_exit): Update
	function comment to reflect reality.
	(loop_exits_before_overflow): Fix typo in function description.

From-SVN: r245709
2017-02-24 11:02:16 +00:00
Eric Botcazou
830815b9ae trans.c (gnat_to_gnu): Do not apply special handling of boolean rvalues to function calls.
* gcc-interface/trans.c (gnat_to_gnu): Do not apply special handling
	of boolean rvalues to function calls.

From-SVN: r245706
2017-02-24 10:54:00 +00:00
Eric Botcazou
491527afb8 utils.c (fold_bit_position): New function.
* gcc-interface/utils.c (fold_bit_position): New function.
	(rest_of_record_type_compilation): Call it instead of bit_position to
	compute the field position and remove the call to remove_conversions.
	(compute_related_constant): Factor out the multiplication in both
	operands, if any, and streamline the final test.

From-SVN: r245704
2017-02-24 10:48:38 +00:00
Eric Botcazou
0b9cdb9a40 * gcc-interface/trans.c (return_value_ok_for_nrv_p): Add sanity check.
From-SVN: r245701
2017-02-24 10:35:14 +00:00
Eric Botcazou
59909673d1 c-ada-spec.c (dump_ada_function_declaration): Add comment about the treatment of parameters with pointer-to-tagged type and...
c-family/
	* c-ada-spec.c (dump_ada_function_declaration): Add comment about the
	treatment of parameters with pointer-to-tagged type and tidy up.
	(print_ada_methods): Remove the special treatment of C++ static member
	functions.
ada/
	* gcc-interface/decl.c: Include demangle.h.
	(is_cplusplus_method): Return again true for a primitive operation
	only if it is dispatching.  For a subprogram with an interface name,
	call the demangler to get the number of C++ parameters and compare it
	with the number of Ada parameters.

From-SVN: r245700
2017-02-24 10:21:39 +00:00
Eric Botcazou
8ff873dcdc trans.c (Handled_Sequence_Of_Statements_to_gnu): If there is no end label...
* gcc-interface/trans.c (Handled_Sequence_Of_Statements_to_gnu): If
	there is no end label, put the location of the At_End procedure on
	the call to the procedure.

From-SVN: r245699
2017-02-24 10:07:45 +00:00
Eric Botcazou
bf6b72928e misc.c (gnat_type_max_size): Try to return a meaningful value for array types with TYPE_INDEX_TYPE set on...
* gcc-interface/misc.c (gnat_type_max_size): Try to return a meaningful
	value for array types with TYPE_INDEX_TYPE set on their domain type.
	* gcc-interface/utils.c (max_size): For operations and expressions, do
	not build a new node if the operands have not changed or are missing.

From-SVN: r245698
2017-02-24 10:00:04 +00:00
Eric Botcazou
4af362a957 utils.c (max_size): Flip the second argument when recursing on TRUTH_NOT_EXPR.
* gcc-interface/utils.c (max_size) <tcc_expression>: Flip the second
	argument when recursing on TRUTH_NOT_EXPR.

From-SVN: r245697
2017-02-24 09:52:31 +00:00
Richard Biener
7699e88f68 re PR tree-optimization/79389 (30% performance regression in SciMark2 MonteCarlo)
2017-02-24  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/79389
	* gimple-ssa-split-paths.c (is_feasible_trace): Verify more
	properly that a threading opportunity exists.  Detect conditional
	copy/constant propagation opportunities.

	* gcc.dg/tree-ssa/split-path-10.c: New testcase.

From-SVN: r245696
2017-02-24 08:04:31 +00:00
GCC Administrator
f83002c7ba Daily bump.
From-SVN: r245695
2017-02-24 00:16:19 +00:00
Paolo Carlini
e3beb191c5 re PR c++/79361 (ICE redefining a template function as defaulted or deleted)
/cp
2017-02-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/79361
	* pt.c (register_specialization): Check duplicate_decls return value
	for error_mark_node and pass it back.

/testsuite
2017-02-23  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/79361
	* g++.dg/cpp0x/pr79361-1.C: New.
	* g++.dg/cpp0x/pr79361-2.C: Likewise.

From-SVN: r245692
2017-02-23 23:20:58 +00:00
Eric Botcazou
195610aaa0 visium.md (type): Add trap.
* config/visium/visium.md (type): Add trap.
	(b): New mode attribute.
	(*btst): Rename into...
	(*btst<mode>): ...this and adjust.
	(*cbranchsi4_btst_insn): Rename into...
	(*cbranch<mode>4_btst_insn): ...this and adjust.
	(trap): New define_insn.

From-SVN: r245691
2017-02-23 23:04:00 +00:00
Jakub Jelinek
ada61c3d47 re PR tree-optimization/79389 (30% performance regression in SciMark2 MonteCarlo)
PR tree-optimization/79389
	* ifcvt.c (struct noce_if_info): Add rev_cond field.
	(noce_reversed_cond_code): New function.
	(noce_emit_store_flag): Use rev_cond if non-NULL instead of
	reversed_comparison_code.  Formatting fix.
	(noce_try_store_flag): Test rev_cond != NULL in addition to
	reversed_comparison_code.
	(noce_try_store_flag_constants): Likewise.
	(noce_try_store_flag_mask): Likewise.
	(noce_try_addcc): Use rev_cond if non-NULL instead of
	reversed_comparison_code.
	(noce_try_cmove_arith): Likewise.  Formatting fixes.
	(noce_try_minmax, noce_try_abs): Clear rev_cond.
	(noce_find_if_block): Initialize rev_cond.
	(find_cond_trap): Call noce_get_condition with then_bb == trap_bb
	instead of false as last argument never attempt to reverse it
	afterwards.

From-SVN: r245690
2017-02-23 23:05:19 +01:00
Bin Cheng
d822f3d585 re PR tree-optimization/79663 (r244815 causes 10% regression for spec1k/172.mgrid on AArch64)
2017-01-21  Bin Cheng  <bin.cheng@arm.com>

	PR tree-optimization/79663
	* tree-predcom.c (combine_chains): Process refs in reverse order
	only for ZERO length chains, and add explaining comment.

From-SVN: r245689
2017-02-23 15:02:01 -07:00
Jeff Law
06b909b07e re PR tree-optimization/79578 (Unnecessary instructions in generated code)
PR tree-optimization/79578
	* tree-ssa-dse.c (clear_bytes_written_by): Use OEP_ADDRESS_OF
	in call to operand_equal_p.

From-SVN: r245688
2017-02-23 14:43:03 -07:00
Jonathan Wakely
cb701078b1 Ensure <experimental/iterator> includes <iterator>
* include/experimental/iterator: Include <iterator>.
	* testsuite/experimental/iterator/requirements.cc: Check for contents
	of <iterator>.

From-SVN: r245686
2017-02-23 18:25:22 +00:00
Dominik Vogt
17885cad6a PR 68749: S/390: Disable ifcvt-4.c for -m31.
gcc/testsuite/ChangeLog:

2017-02-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	PR 68749
	* gcc.dg/ifcvt-4.c: Disable for -m31, use -march=z196.

From-SVN: r245684
2017-02-23 15:18:16 +00:00
Richard Biener
5d972e66ba re PR c/79684 (Conditional jump or move depends on uninitialised value in GIMPLE FE)
2017-02-23  Richard Biener  <rguenther@suse.de>

	PR c/79684
	* gimple-parser.c (c_parser_gimple_statement): Use set_error
	to initialize c_exprs to return.
	(c_parser_gimple_binary_expression): Likewise.
	(c_parser_gimple_unary_expression): Likewise.
	(c_parser_gimple_postfix_expression): Likewise.

From-SVN: r245681
2017-02-23 12:38:39 +00:00
Dominique d'Humieres
f3ffa342ea re PR target/71017 (libgcc/config/i386/cpuinfo.c:346:17: runtime error: left shift of 1 by 31 places cannot be represented in type 'int')
2017-01-23  Dominique d'Humieres  <dominiq@lps.ens.fr>

	PR target/71017
	* config/i386/cpuid.h: Fix another undefined behavior.

From-SVN: r245680
2017-02-23 13:19:05 +01:00
Richard Biener
45f7faf0b5 re PR tree-optimization/79683 (SLP vectorizer drops gs: prefix)
2017-02-23  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/79683
	* tree-vect-stmts.c (vect_analyze_stmt): Do not overwrite
	vector types for data-refs.

	* gcc.target/i386/pr79683.c: New testcase.

From-SVN: r245679
2017-02-23 11:43:51 +00:00
Martin Liska
06393a9754 Fix typo in ChangeLog
From-SVN: r245678
2017-02-23 08:45:54 +00:00
Martin Liska
91ebcfce9a Change default of param not being smaller that min.
2017-02-23  Martin Liska  <mliska@suse.cz>

	* params.def (PARAM_MIN_NONDEBUG_INSN_UID): Change default to 0.

From-SVN: r245677
2017-02-23 08:38:35 +00:00
Jakub Jelinek
b607e75e25 re PR middle-end/79665 (gcc's signed (x*x)/200 is slower than clang's)
PR middle-end/79665
	* internal-fn.c (get_range_pos_neg): Moved to ...
	* tree.c (get_range_pos_neg): ... here.  No longer static.
	* tree.h (get_range_pos_neg): New prototype.
	* expr.c (expand_expr_real_2) <case TRUNC_DIV_EXPR>: If both arguments
	are known to be in between 0 and signed maximum inclusive, try to
	expand both unsigned and signed divmod and use the cheaper one from
	those.

From-SVN: r245676
2017-02-23 08:49:06 +01:00
Jeff Law
18eb304e5f re PR tree-optimization/79578 (Unnecessary instructions in generated code)
PR tree-optimization/79578
	* tree-ssa-dse.c (clear_bytes_written_by): Use operand_equal_p
	to compare base operands.

	PR tree-optimization/79578
	* g++.dg/tree-ssa/ssa-dse-3.C: New test.

From-SVN: r245675
2017-02-22 22:47:43 -07:00
Jason Merrill
680ed1065a PR c++/79679 - missing destructor for argument
PR c++/79679 - missing destructor for argument
	* call.c (build_over_call): Don't pass tf_no_cleanup to argument
	conversions.

From-SVN: r245672
2017-02-22 20:15:43 -05:00
GCC Administrator
a4759f362f Daily bump.
From-SVN: r245671
2017-02-23 00:16:20 +00:00
Segher Boessenkool
c5f06528e5 rs6000: Fix fsel pattern (PR79211)
The fsel define_insn uses fpr_reg_operand for its predicates.  This
won't work because passes can put a hard register in the operands: in
the testcase, combine likes to forward the parameter registers to what
then is still an smin, and then split1 uses "*s<minmax><mode>3_fpr"
(which has gpc_reg_operand).  And then we have a GPR in the operand,
which does not match fpr_reg_operand.

It seems to me the predicates should be gpc_reg_operand here as well.
This patch changes that.


	PR target/79211
	* config/rs6000/rs6000.md (*fsel<SFDF:mode><SFDF2:mode>4): Use
	gpc_reg_operand instead of fpr_reg_operand.

From-SVN: r245667
2017-02-23 00:50:46 +01:00
Sameera Deshpande
0a864a97e9 Fix MIPS o32 calling convention for MSA and FP vector types
gcc/
	* config/mips/mips.c (mips_return_in_memory): Force FP
	vector types to be returned in memory for o32 ABI.

gcc/testsuite/

	* gcc.target/mips/msa-fp-cc.c: New test.

From-SVN: r245666
2017-02-22 23:09:43 +00:00
Jason Merrill
349c635163 * pt.c (do_class_deduction): Handle 0 argument case.
From-SVN: r245665
2017-02-22 17:55:26 -05:00
Jakub Jelinek
e40b6fc7a1 re PR c++/79664 (ICE with #pragma omp parallel in constexpr function)
PR c++/79664
	* parser.c (cp_parser_omp_teams, cp_parser_omp_target): Use
	SET_EXPR_LOCATION on OMP_TARGET/OMP_TEAMS tree.
	* constexpr.c (potential_constant_expression_1): Handle
	OMP_*, OACC_* and CILK_* trees.  Use error_at with
	EXPR_LOC_OR_LOC (t, input_location) computed early
	instead of error, or error_at with location_of (t).

	* g++.dg/gomp/teams-1.C: Adjust expected diagnostic location.
	* g++.dg/cpp1y/constexpr-throw.C: Likewise.
	* g++.dg/gomp/pr79664.C: New test.

From-SVN: r245662
2017-02-22 23:36:20 +01:00
Jakub Jelinek
fe8ece053b dwarf2out.c (gen_variable_die): For -gdwarf-5...
* dwarf2out.c (gen_variable_die): For -gdwarf-5, use DW_TAG_variable
	instead of DW_TAG_member for static data member declarations and don't
	set no_linkage_name for static inline data members.
	(gen_member_die): For -gdwarf-5 don't change DW_TAG_variable
	to DW_TAG_member.

	* g++.dg/debug/dwarf2/inline-var-2.C: New test.

From-SVN: r245661
2017-02-22 22:33:47 +01:00
Marek Polacek
61ac5ebe61 re PR c/79662 (ICE on invalid code in convert_arguments in c/c-typeck.c:3452)
PR c/79662
	* c-typeck.c (convert_arguments): Handle error_mark_node.

	* gcc.dg/enum-incomplete-4.c: New test.

From-SVN: r245660
2017-02-22 21:28:42 +00:00
Martin Liska
54dcd52676 instead of -Wnormalized=<options>
2017-02-22  Martin Liska  <mliska@suse.cz>

	* doc/invoke.texi: Replace inequality signs with square brackets
	for -Wnornalized.
2017-02-22  Martin Liska  <mliska@suse.cz>

	* c.opt: Replace inequality signs with square brackets
	for -Wnornalized.

From-SVN: r245659
2017-02-22 21:15:46 +00:00
Marek Polacek
8fdddd3d83 re PR c++/79657 (ICE on invalid c++ code in finish_underlying_type cp/semantics.c:3849)
PR c++/79657
	* semantics.c (finish_underlying_type): Bail out for incomplete enums.

	* g++.dg/ext/underlying_type12.C: New test.

From-SVN: r245658
2017-02-22 19:33:13 +00:00
Marek Polacek
78af14ae0e re PR c++/79653 (ICE on invalid c++ code in cp_check_const_attributes in cp/decl2.c:1423)
PR c++/79653
	* parser.c (cp_parser_std_attribute_spec): Don't build the attribute
	if the alignas expression is erroneous.
	* pt.c (tsubst_attribute): If tsubst_pack_expansion fails, return
	error_mark_node.

	* g++.dg/cpp0x/alignas10.C: New test.
	* g++.dg/cpp0x/alignas9.C: New test.

From-SVN: r245657
2017-02-22 19:31:49 +00:00
Bill Schmidt
3b2a007843 re PR tree-optimization/68644 (FAIL: gcc.dg/tree-ssa/ivopts-lt-2.c scan-tree-dump-times ivopts "PHI <p_" 1)
2017-02-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR tree-optimization/68644
	* gcc.dg/tree-ssa/ivopts-lt-2.c: Skip for powerpc*-*-*.

From-SVN: r245656
2017-02-22 18:00:21 +00:00
Matthew Fortune
198075e1c9 Support WORD_REGISTER_OPERATIONS requirements in simplify_operand_subreg
gcc/
	PR target/78660
	* lra-constraints.c (simplify_operand_subreg): Handle
	WORD_REGISTER_OPERATIONS targets.

From-SVN: r245655
2017-02-22 17:20:14 +00:00
Jakub Jelinek
888c705092 re PR target/70465 (Poor code for x87 asm)
PR target/70465
	* reg-stack.c (emit_swap_insn): Treat (float_extend:?F (mem:?F))
	and (const_double:?F) like (mem:?F) for the purpose of fxch %st(1)
	elimination by swapping fld*.

	* gcc.target/i386/pr70465-2.c: New test.

From-SVN: r245654
2017-02-22 18:17:17 +01:00