Commit Graph

144586 Commits

Author SHA1 Message Date
DJ Delorie d15bd5bbdb MAINTAINERS (mep): Remove myself as MeP maintainer.
* MAINTAINERS (mep): Remove myself as MeP maintainer.
* config.gcc: Deprecate mep-*.

From-SVN: r233887
2016-03-01 23:41:58 -05:00
Jason Merrill 5c969cb8ca re PR c++/70036 ([concepts] ICE with a dependent sizeof in a concept)
PR c++/70036

	* parser.c (cp_parser_requires_clause): Call
	check_for_bare_parameter_packs.

From-SVN: r233886
2016-03-01 21:55:23 -05:00
Jason Merrill e57b697d63 * gcc/cp/call.c: Mark as C++ for emacs.
From-SVN: r233885
2016-03-01 21:47:15 -05:00
Jason Merrill c8a66fc97b re PR c++/51489 (constexpr not working consistently)
PR c++/51489

	* constexpr.c (cxx_eval_binary_expression): Don't VERIFY_CONSTANT
	the operands.

From-SVN: r233878
2016-03-01 21:32:44 -05:00
Jason Merrill 7f0e23e931 re PR c++/69995 ([C++14] Invalid result when evaluating constexpr function)
PR c++/69995

	* constexpr.c (cxx_eval_call_expression): Unshare arg.
	(cxx_eval_constant_expression) [DECL_EXPR]: Unshare init.
	[TARGET_EXPR]: Unshare init.

From-SVN: r233877
2016-03-01 21:32:38 -05:00
Vladimir Makarov 4be9717cf8 re PR middle-end/70025 (Miscompilation of gc-7.4.2 on s390x starting with r227382)
2016-03-01  Vladimir Makarov  <vmakarov@redhat.com>

	PR middle-end/70025
	* lra-constraints.c (regno_val_use_in): New.
	(match_reload): Use it instead of regno_use_in.

From-SVN: r233876
2016-03-02 01:39:30 +00:00
GCC Administrator af5108bcde Daily bump.
From-SVN: r233874
2016-03-02 00:16:16 +00:00
Jeff Law eab2541b86 re PR tree-optimization/69196 (code size regression with jump threading at -O2)
PR tree-optimization/69196
	* tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
	Appropriately clamp the number of statements to copy when the
	thread path does not traverse a loop backedge.

	PR tree-optimization/69196
	* gcc.dg/tree-ssa/pr69196.c: New test.

From-SVN: r233870
2016-03-01 16:12:10 -07:00
Eric Botcazou 0bca04b822 re PR rtl-optimization/70007 (wrong code with -mbmi2)
PR rtl-optimization/70007
	* gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
	references present in REG_EQUAL notes attached to non-SET patterns.

From-SVN: r233867
2016-03-01 22:31:52 +00:00
Jeff Law 2a9afc8680 re PR tree-optimization/69196 (code size regression with jump threading at -O2)
PR tree-optimization/69196
	* tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
	Do count some PHIs in the thread path against the insn count.  Decrease
	final statement count by one as the control statement in the last
	block will get removed.  Remove special cased code for handling PHIs		in the last block.

	PR tree-optimization/69196
	* gcc.dg/tree-ssa/vrp46.c: Twiddle threading params to keep it from
	duplicating code and spoiling the expected output.

From-SVN: r233866
2016-03-01 14:46:58 -07:00
Michael Meissner 0d39977e34 re PR target/70033 (PowerPC power9 tests don't have guard for power9 support)
2016-03-01  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/70033
	* gcc.target/powerpc/p9-lxvx-stxvx-1.c: Make sure compiler
	supports power9 before doing tests.
	* gcc.target/powerpc/p9-lxvx-stxvx-2.c: Likewise.
	* gcc.target/powerpc/p9-lxvx-stxvx-3.c: Likewise.
	* gcc.target/powerpc/p9-permute.c: Likewise.

From-SVN: r233865
2016-03-01 21:31:47 +00:00
Uros Bizjak a0c0699d05 re PR target/70027 (invalid assembly syntax generated with -fno-plt -masm=intel)
PR target/70027
	* config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
	asm dialect alternatives to explicit GOTPCREL calls.

testsuite/ChangeLog:

	PR target/70027
	* gcc.target/i386/pr70027.c: New test.

From-SVN: r233864
2016-03-01 21:11:19 +01:00
Eric Botcazou 0ae3ef4765 Fix date
From-SVN: r233863
2016-03-01 20:05:31 +00:00
Eric Botcazou 355a43a19f re PR ada/70017 (c52103x and c52104x test failure on s390x)
PR ada/70017
	* ira.c (do_reload): Issue warning for generic stack checking here...
	* reload1.c (reload): ...instead of here and streamline it.

From-SVN: r233862
2016-03-01 20:04:01 +00:00
Jakub Jelinek 686e2237f3 re PR c/69796 (ICE on invalid code in useless_type_conversion_p, at gimple-expr.c:83)
PR c/69796
	PR c/69974
	* c-parser.c (c_parser_translation_unit): Don't change TREE_TYPE
	of incomplete decls to error_mark_node.

	* gcc.dg/pr69796.c: New test.
	* gcc.dg/pr69974.c: New test.

From-SVN: r233861
2016-03-01 19:27:21 +01:00
Eric Botcazou f8e4188cae * gnat.dg/stack_usage3.adb: Robustify and enable for all targets.
From-SVN: r233859
2016-03-01 17:33:51 +00:00
Nick Clifton db48a9e352 * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
From-SVN: r233858
2016-03-01 16:52:37 +00:00
Jeff Law 5e3f1c7c70 re PR middle-end/69987 (internal compiler error: in verify_loop_structure, at cfgloop.c:1639)
PR tree-optimization/69987
	* gfortran.dg/pr69987.f90: New test.

	PR tree-optimization/69989
	* gcc.c-torture/compile/pr69989-2.c: New test.

From-SVN: r233857
2016-03-01 09:22:51 -07:00
Richard Biener e546907cd9 re PR middle-end/69983 (FAIL: gcc.dg/graphite/scop-sor.c scan-tree-dump-times graphite "number of SCoPs: 1" 1)
2016-03-01  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69983
	* tree-chrec.c (eq_evolutions_p): Handle conversions, compare
	types and fall back to operand_equal_p.

From-SVN: r233856
2016-03-01 15:58:25 +00:00
Marek Polacek 1be56bc542 re PR c++/69795 (g++ ICE on invalid code on x86_64-linux-gnu in "reject_gcc_builtin")
PR c++/69795
	* c-common.c (reject_gcc_builtin): Check for FUNCTION_DECL rather than
	any DECL.

	* g++.dg/parse/invalid1.C: New test.

From-SVN: r233855
2016-03-01 15:30:42 +00:00
Andreas Krebbel db340c730f S/390: Revert setmem pattern folding
This does not work without:
https://gcc.gnu.org/ml/gcc-patches/2016-02/msg01575.html

2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	Revert
	2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/constraints.md ("jm8"): New constraint.
	* config/s390/predicates.md ("const_int_8bitset_operand"): New predicate.
	* config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
	into ...
	("*setmem_long<setmem_and>"): New pattern.
	("*setmem_long_31z", "*setmem_long_and_31z"): Merge
	into ...
	("*setmem_long_31z<setmem_and>"): New pattern.
	* config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
	New substitution rules with the required attributes.

From-SVN: r233854
2016-03-01 14:53:29 +00:00
Andreas Krebbel a7ba15ca58 Revert recent gensupport change.
2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	Revert
	2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* gensupport.c (process_substs_on_one_elem): Split loop to
	complete mark_operands_used_in_match_dup on all expressions in the
	vector first.
	(adjust_operands_numbers): Inline into process_substs_on_one_elem
	and remove function.

From-SVN: r233853
2016-03-01 14:51:17 +00:00
Richard Biener 1b19470d14 re PR middle-end/70022 (ICE: in tree_to_shwi, at tree.c:7328 with out-of-bounds vector index)
2016-03-01  Richard Biener  <rguenther@suse.de>

	PR middle-end/70022
	* fold-const.c (fold_indirect_ref_1): Fix range checking for
	vector BIT_FIELD_REF extract.

	* gcc.dg/pr70022.c: New testcase.

From-SVN: r233852
2016-03-01 13:32:13 +00:00
Richard Biener 366298bdda re PR target/69994 (test case gfortran.dg/reassoc_6.f fails starting with r233669)
2016-03-01  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69994
	* tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.

From-SVN: r233851
2016-03-01 12:50:41 +00:00
Ilya Enkovich 3ae0661a71 re PR tree-optimization/69956 (Wrong vector type @ fold-const)
gcc/

	PR tree-optimization/69956
	* tree-vect-stmts.c (supportable_widening_operation): Support
	multi-step conversion of boolean vectors.
	(supportable_narrowing_operation): Likewise.

gcc/testsuite/

	PR tree-optimization/69956
	* gcc.dg/pr69956.c: New test.

From-SVN: r233850
2016-03-01 11:17:44 +00:00
Andreas Krebbel c64181a8c8 S/390: Disallow SImode in s390_decompose_address
After Y is never used anymore with SImode operands we can finally
disallow SImode (if != Pmode) in s390_decompose_address.  In fact that
was the whole point of the patch series.

gcc/ChangeLog:

2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.c (s390_decompose_address): Don't accept SImode
	anymore.

From-SVN: r233849
2016-03-01 09:27:10 +00:00
Andreas Krebbel 708c0910a8 S/390: Use define_subst for the setmem patterns.
While trying to get rid of the Y constraint in the setmem patterns I
noticed that for these patterns it isn't even a problem since these
always only use the constraint with a Pmode match_operand.  But while
being at it I've tried to fold some of the patterns a bit.

gcc/ChangeLog:

2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/constraints.md ("jm8"): New constraint.
	* config/s390/predicates.md ("const_int_8bitset_operand"): New predicate.
	* config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
	into ...
	("*setmem_long<setmem_and>"): New pattern.
	("*setmem_long_31z", "*setmem_long_and_31z"): Merge
	into ...
	("*setmem_long_31z<setmem_and>"): New pattern.
	* config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
	New substitution rules with the required attributes.

From-SVN: r233848
2016-03-01 09:26:20 +00:00
Andreas Krebbel 674a959cd5 S/390: Get rid of Y constraint in vector.md.
This finally removes the Y constraint from the vector patterns while
folding some of them using a code iterator.

gcc/ChangeLog:

2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/subst.md (DSI_VI): New mode iterator.
	("addr_style_op_subst"): Use DSI_VI instead of DSI.
	* config/s390/vector.md ("vec_set<mode>"): Move expander before
	the insn definition.
	("*vec_set<mode>"): Change predicate and add alternative to
	support only either register or const_int operands as element
	selector.
	("*vec_set<mode>_plus"): New pattern to support reg + const_int
	operands.
	("vec_extract<mode>"): New expander.
	("*vec_extract<mode>"): New insn definition supporting reg and
	const_int element selectors.
	("*vec_extract<mode>_plus"): New insn definition supporting
	reg+const_int element selectors.
	("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
	following expander+insn definition.
	("<vec_shifts_name><mode>3"): New expander.
	("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.

From-SVN: r233847
2016-03-01 09:25:23 +00:00
Andreas Krebbel eae48192e4 S/390: Get rid of Y constraint in tabort.
This removes the Y constraint from the tabort pattern definition.  In
this case it is easier without using substitutions.

gcc/ChangeLog:

2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.md ("*tabort_1"): Change predicate to
	nonmemory_operand.  Add a second alternative to cover
	register as well as const int operands.
	("*tabort_1_plus"): New pattern definition.

From-SVN: r233846
2016-03-01 09:24:29 +00:00
Andreas Krebbel a9fcf821eb S/390: Get rid of Y constraint in arithmetic right shift
patterns.

The arithmetic shift patterns set also the condition code.  This adds
more substitution potential.  Depending on whether the actual result
or the CC output will be used 3 different variants of each of these
patterns are needed.  This multiplied with the PLUS and the AND
operands from the earlier substitutions enables a lot of folding.

2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.md ("*ashrdi3_cc_31")
	("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
	("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
	Merge insn definitions into ...
	("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
	New pattern definition.
	("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
	("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
	("*ashr<mode>3_and"): Merge insn definitions into ...
	("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
	New pattern definition.
	* config/s390/subst.md ("addr_style_op_cc_subst")
	("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
	substitutions patterns plus attributes.
	Add ashiftrt to SUBST iterator.

From-SVN: r233845
2016-03-01 09:23:41 +00:00
Andreas Krebbel adf22b3f5a S/390: Get rid of Y constraint in left and logical right
shift patterns.

With this patch the substitution patterns added earlier are used for
the logical right shift and all the left shift patterns.

2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.md ("<shift><mode>3"): Change predicate of
	op2 to nonmemory_operand.
	("*<shift>di3_31", "*<shift>di3_31_and"):
	Merge into single pattern definition ...
	("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
	("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
	pattern definition ...
	("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
	* config/s390/subst.md: Add ashift and lshiftrt to SUBST
	iterator.

From-SVN: r233844
2016-03-01 09:22:20 +00:00
Andreas Krebbel 191eb16d3a S/390: Get rid of Y constraint in rotate patterns.
This patch introduces substitution patterns to add PLUS const_int, and
AND operands to patterns and uses this to rewrite the existing rotate
pattern.

gcc/ChangeLog:

2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/predicates.md (const_int_6bitset_operand): New
        predicates.
	* config/s390/s390.md: Include subst.md.
	("rotl<mode>3"): New expander.
	("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
	...
	("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
	* config/s390/subst.md: New file.

From-SVN: r233843
2016-03-01 09:21:23 +00:00
Andreas Krebbel 62d3f2615c S/390: Use enabled attribute overrides to disable
alternatives.

So far whenever we wanted to disable an alternative we have used mode
attributes emitting constraints matching an earlier alternative
assuming that due to this the later alternative will never be chosen.

With this patch the `enabled' attribute, which so far is only set from
`cpu_facility', is overridden to 0 to disable certain alternatives.
This comes handy when defining the substitutions later and while
adding it anyway I've used it for the existing cases as well.

gcc/ChangeLog:

2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* config/s390/s390.md ("op_type", "atype", "length" attributes):
	Remove RRR type.  It doesn't really exist.
	("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
	attributes.
	("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
	("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
	("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
	("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
	("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
	("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
	`enabled' attribute.

From-SVN: r233842
2016-03-01 09:20:12 +00:00
Andreas Krebbel 772040f796 gensupport: Fix define_subst operand renumbering.
When processing substitutions the operands are renumbered.  To find a
free operand number the array used_operands_numbers is used.
Currently this array is used to assign new numbers before all the
RTXes in the vector have been processed.  I did run into problems with
this for insns where a match_dup occurred in a later (use ...) operand
referring to an earlier operand (e.g. s390.md "setmem_long").

The patch splits the loop doing the processing into two in order to
have all the operand numbers collected already when assigning new
numbers.

gcc/ChangeLog:

2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* gensupport.c (process_substs_on_one_elem): Split loop to
	complete mark_operands_used_in_match_dup on all expressions in the
	vector first.
	(adjust_operands_numbers): Inline into process_substs_on_one_elem
	and remove function.

From-SVN: r233841
2016-03-01 09:19:14 +00:00
Bill Schmidt 0f09ab8825 re PR target/70011 (test case gcc.dg/vect/costmodel/ppc/costmodel-fast-math-vect-pr29925.c fails)
2016-02-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR target/70011
	* gcc.dg/vect/costmodel/ppc/costmodel-fast-math-vect-pr299925.c:
	XFAIL when hardware supports efficient unaligned storage access.

From-SVN: r233840
2016-03-01 04:14:15 +00:00
Patrick Palka 76d881bfdd Fix PR c++/69961 (invalid ctor call with dependent args)
gcc/cp/ChangeLog:

	PR c++/68948
	PR c++/69961
	* pt.c (tsubst_baselink): Reinstate the check for an invalid
	constructor call.

gcc/testsuite/ChangeLog:

	PR c++/69961
	* g++.dg/template/pr69961a.C: New test.
	* g++.dg/template/pr69961b.C: New test.

From-SVN: r233838
2016-03-01 01:24:44 +00:00
David Malcolm 7168133a37 PR preprocessor/69985: fix ICE with long lines in -Wformat
gcc/testsuite/ChangeLog:
	PR preprocessor/69985
	* gcc.dg/cpp/pr69985.c: New test case.

libcpp/ChangeLog:
	PR preprocessor/69985
	(linemap_position_for_loc_and_offset): Rename param from "offset"
	to "column_offset".  Right-shift the column_offset by m_range_bits
	of the pertinent ordinary map whenever offsetting a
	source_location.  For clarity, offset the column by the column
	offset, rather than the other way around.

From-SVN: r233836
2016-03-01 01:02:49 +00:00
Eric Botcazou f3c7a94580 re PR target/69706 (internal compiler error: in extract_constrain_insn, at recog.c:2246)
PR target/69706
	* config/sparc/sparc.c (NWORDS_UP): Rename to...
	(CEIL_NWORDS): ...this.  Use CEIL macro.
	(compute_fp_layout): Adjust to above renaming.
	(function_arg_union_value): Likewise.
	(sparc_arg_partial_bytes): Likewise.
	(sparc_function_arg_advance): Likewise.

From-SVN: r233833
2016-03-01 00:22:26 +00:00
GCC Administrator 9cb37fca64 Daily bump.
From-SVN: r233832
2016-03-01 00:16:15 +00:00
Jeff Law e66f219b03 re PR tree-optimization/70005 (wrong code at -O2 and -O3 on x86_64-linux-gnu)
PR tree-optimization/70005
	* tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
	where an object with a boolean range is compared against a value
	outside [0..1].

	PR tree-optimization/70005
	* gcc.c-torture/execute/pr70005.c New test.

From-SVN: r233829
2016-02-29 17:04:48 -07:00
Jeff Law 0c6072a3fc re PR tree-optimization/69999 (ICE in verify_loop_structure, at cfgloop.c:1639 (error: loop with header 3 not in loop tree) at -O3 or -Ofast)
PR tree-optimization/69999
	* gimple-ssa-split-paths.c (split_paths): When duplicating a block
	with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
	loop cleanups.

	PR tree-optimization/69999
	* gcc.c-torture/compile/pr69999.c: New test.

From-SVN: r233824
2016-02-29 15:45:41 -07:00
Joseph Myers 8cfb576a28 * sv.po: Update.
From-SVN: r233820
2016-02-29 20:48:24 +00:00
Martin Liska 56c091abef Poison ENABLE_CHECKING macro
* system.h: Poison ENABLE_CHECKING macro.

From-SVN: r233817
2016-02-29 15:40:20 +00:00
Richard Biener ce40915e90 re PR target/69994 (test case gfortran.dg/reassoc_6.f fails starting with r233669)
2016-02-29  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69994
	* tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
	(get_unary_op): Look through nop conversions.
	(ops_equal_values_p): New function, look for equality diregarding
	nop conversions.
	(eliminate_plus_minus_pair): Use ops_equal_values_p
	(repropagate_negates): Do not use get_unary_op here.

From-SVN: r233816
2016-02-29 15:30:50 +00:00
Martin Liska 4232ebbbc9 Replace ENABLE_CHECKING macro with flag_checking in GNAT
* gcc-interface/utils.c (set_reverse_storage_order_on_pad_type):
	Replace ENABLE_CHECKING macro with flag_checking.

From-SVN: r233815
2016-02-29 15:30:08 +00:00
Martin Liska 2998cb96c8 HSA: reduce dump output w/o -details flag
* hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
	is presented in dump flags.
	* hsa-regalloc.c (linear_scan_regalloc): Likewise.
	(hsa_regalloc): Likewise.

From-SVN: r233814
2016-02-29 15:15:27 +00:00
Yuri Rumyantsev fd9fbdb339 re PR tree-optimization/69652 ([ICE] verify_ssa fail w/ -O2 -ffast-math -ftree-vectorize)
gcc/testsuite/

2016-02-29  Yuri Rumyantsev  <ysrumyan@gmail.com>

	PR tree-optimization/69652
	* gcc.dg/torture/pr69652.c: Delete test.
	* gcc.dg/vect/pr69652.c: New test.

From-SVN: r233811
2016-02-29 14:32:24 +00:00
Jason Merrill 7574c916ae re PR c++/69995 ([C++14] Invalid result when evaluating constexpr function)
PR c++/69995
	* constexpr.c (cxx_eval_store_expression): Unshare init.

From-SVN: r233810
2016-02-29 09:25:57 -05:00
Richard Biener cbd400b43e re PR tree-optimization/69980 (Supposedly wrong SLP code emitted)
2016-02-19  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69980
	* tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
	permutation of those we need to keep.

	* gfortran.dg/vect/pr69980.f90: New testcase.

From-SVN: r233809
2016-02-29 13:24:24 +00:00
Eric Botcazou 84ea0f5850 re PR target/69706 (internal compiler error: in extract_constrain_insn, at recog.c:2246)
PR target/69706
	* config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
	(NWORDS_UP): ...this
	(init_cumulative_args): Minor tweaks.
	(sparc_promote_function_mode): Likewise.
	(scan_record_type): Delete.
	(traverse_record_type): New function template.
	(classify_data_t): New structure type.
	(classify_registers): New inline function.
	(function_arg_slotno): In 64-bit mode, bail out early if FP slots are
	exhausted.  Instantiate traverse_record_type on classify_registers and
	deal with the case of a structure passed in slot #15 with no FP field
	in the first word.
	(assign_data_t): New structure type.
	(compute_int_layout): New static function.
	(compute_fp_layout): Likewise.
	(count_registers): New inline function.
	(assign_int_registers): New static function.
	(assign_fp_registers): Likewise.
	(assign_registers): New inline function.
	(function_arg_record_value_1): Delete.
	(function_arg_record_value_2): Likewise.
	(function_arg_record_value_3): Likewise.
	(function_arg_record_value): Adjust to above changes.  Instantiate
	traverse_record_type on count_registers to first count the number of
	registers to be used and then on assign_registers to assign them.
	(function_arg_union_value): Adjust to above renaming.
	(sparc_function_arg_1); Minor tweaks.  Remove commented out code.
	(sparc_arg_partial_bytes): Adjust to above renaming.  Deal with the
	case of a structure passed in slot #15
	(sparc_function_arg_advance): Likewise.
	(function_arg_padding): Minor tweak.

From-SVN: r233808
2016-02-29 10:20:31 +00:00