144581 Commits

Author SHA1 Message Date
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
Eric Botcazou
8ea456b94a decl.c (gnat_to_gnu_entity): Retrofit handling of unconstrained array types as designated types into common...
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Retrofit
	handling of unconstrained array types as designated types into common
	processing.  Also handle array types as incomplete designated types.

From-SVN: r233807
2016-02-29 09:30:09 +00:00
Eric Botcazou
68ec561342 decl.c (gnat_to_gnu_entity): In ASIS mode, fully lay out the minimal record type.
* gcc-interface/decl.c (gnat_to_gnu_entity) <Concurrent types>: In
	ASIS mode, fully lay out the minimal record type.

From-SVN: r233806
2016-02-29 09:21:12 +00:00
Eric Botcazou
5d2a63dc7b trans.c (finalize_nrv_r): Remove obsolete code.
* gcc-interface/trans.c (finalize_nrv_r): Remove obsolete code.
	(build_return_expr): Likewise.
	(Call_to_gnu): If this is a function call and there is no target,
	create a temporary for the return value for all aggregate types,
	but never create it for a return statement.  Push a binding level
	around the call in more cases.  Remove obsolete code.

From-SVN: r233805
2016-02-29 09:16:57 +00:00
Eric Botcazou
93e708f9c3 ada-tree.h (DECL_RETURN_VALUE_P): New macro.
* gcc-interface/ada-tree.h (DECL_RETURN_VALUE_P): New macro.
	* gcc-interface/gigi.h (gigi): Remove useless attribute.
	(gnat_gimplify_expr): Likewise.
	(gnat_to_gnu_external): Declare.
	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: Factor out
	code dealing with the expression of external constants into...
	Invoke gnat_to_gnu_external instead.
	<E_Variable>: Invoke gnat_to_gnu_external to translate renamed objects
	when not for a definition.  Deal with COMPOUND_EXPR and variables with
	DECL_RETURN_VALUE_P set for renamings and with the case of a dangling
	'reference to a function call in a renaming.  Remove obsolete test and
	adjust associated comment.
	* gcc-interface/trans.c (Call_to_gnu): Set DECL_RETURN_VALUE_P on the
	temporaries created to hold the return value, if any.
	(gnat_to_gnu_external): ...this.  New function.
	* gcc-interface/utils.c (create_var_decl): Detect a constant created
	to hold 'reference to function call.
	* gcc-interface/utils2.c (build_unary_op) <ADDR_EXPR>: Add folding
	for COMPOUND_EXPR in the DECL_RETURN_VALUE_P case.

From-SVN: r233804
2016-02-29 09:02:46 +00:00
Richard Biener
6512bc9314 re PR tree-optimization/69720 (wrong code at -O3 on x86_64-linux-gnu)
2016-02-29  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69720
	* tree-vect-loop.c (get_initial_def_for_reduction): Avoid
	the adjustment_def path for possibly vectorized defs.
	(vect_create_epilog_for_reduction): Handle vectorized initial
	defs properly.

	* gcc.dg/vect/vect-outer-pr69720.c: New testcase.

From-SVN: r233803
2016-02-29 08:45:17 +00:00