Commit Graph

112560 Commits

Author SHA1 Message Date
Richard Guenther
67af611e2e tree-ssa-loop-im.c (stmt_cost): Add WIDEN_*, FMA_EXPR and rotates to the set of expensive operations.
2011-10-20  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-loop-im.c (stmt_cost): Add WIDEN_*, FMA_EXPR
	and rotates to the set of expensive operations.

From-SVN: r180237
2011-10-20 07:57:48 +00:00
Eric Botcazou
53e7c794d1 Fix minor issues
From-SVN: r180236
2011-10-20 06:18:09 +00:00
David S. Miller
cedced651d Use can_create_pseudo_p() in the sparc backend.
gcc/

	* config/sparc/sparc.c (sparc_expand_move): Use
	can_create_pseudo_p.
	(sparc_emit_set_const32): Likewise.
	(sparc_emit_set_const64_longway): Likewise.
	(sparc_emit_set_const64): Likewise.
	(sparc_legitimize_pic_address): Likewise.
	(memory_ok_for_ldd): Likewise.

From-SVN: r180235
2011-10-19 21:16:45 -07:00
Dehao Chen
fa2988b4ff profile.c (compute_branch_probabilities): Compute and dump the overlap between the static estimation and the...
2011-10-20  Dehao Chen  <dehao@google.com>

	* profile.c (compute_branch_probabilities): Compute and dump the
	overlap between the static estimation and the instrumentation profile.
	(OVERLAP_BASE): New macro.
	(compute_frequency_overlap): New function

From-SVN: r180233
2011-10-20 00:39:12 +00:00
GCC Administrator
8b6843f176 Daily bump.
From-SVN: r180232
2011-10-20 00:18:36 +00:00
Paolo Carlini
c3c1f2b7bd re PR c++/13657 (Error message incorrectly describes return type as argument type)
/cp
2011-10-19  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/13657
	* class.c (instantiate_type): Fix error message.

/testsuite
2011-10-19  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/13657
	* g++.dg/parse/error42.C: New.
	* g++.old-deja/g++.other/ptrmem7.C: Tweak dg-errors.

From-SVN: r180228
2011-10-19 22:45:58 +00:00
Jason Merrill
875bcfdbf4 re PR c++/50793 (G++ doesn't value-initialize all members of non-trivial type in default argument)
PR c++/50793
	* tree.c (bot_manip): Propagate AGGR_INIT_ZERO_FIRST.

From-SVN: r180227
2011-10-19 18:29:15 -04:00
Jakub Jelinek
f33fa06698 i386.c (expand_vec_perm_vpshufb2_vpermq_even_odd): Use d->op1 instead of d->op0 for the second vpshufb.
* config/i386/i386.c (expand_vec_perm_vpshufb2_vpermq_even_odd): Use
	d->op1 instead of d->op0 for the second vpshufb.
	(expand_vec_perm_even_odd_1): For V8SImode fix vpshufd immediates.
	(ix86_expand_vec_perm_const): If mask indicates two operands are
	needed, but both are the same and expanding them as d.op0 == d.op1
	failed, retry with d.op0 != d.op1.
	(ix86_expand_vec_perm_builtin): Likewise.  Handle sorry printing
	also for d.nelt == 32.

	* gcc.dg/torture/vshuf-32.inc: Add interleave permutations.
	* gcc.dg/torture/vshuf-16.inc: Likewise.
	* gcc.dg/torture/vshuf-8.inc: Likewise.
	* gcc.dg/torture/vshuf-4.inc: Likewise.

From-SVN: r180212
2011-10-20 00:08:21 +02:00
Benjamin Kosnik
24ef84f6c3 [multiple changes]
2011-10-19  Ed Smith-Rowland  <3dw4rd@verizon.net>

	* include/tr2/bool_set (bool_set): New.
	* include/tr2/bool_set.tcc: New.
	* include/tr2/dynamic_bitset (dynamic_bitset): New.
	* include/tr2/ratio (kibi, mebi, gibi, tebi, pebi, exbi): New.
	* include/Makefile.am: Add files.
	* include/Makefile.in: Regenerate.

2011-10-19  Benjamin Kosnik  <bkoz@redhat.com>

	* doc/doxygen/user.cfg.in: Add tr2 files.
	* testsuite/tr2/headers/all.cc: New.
	* testsuite/tr2/headers/using_namespace_std_tr2.cc: New.

	* include/tr2/type_traits: Tweak.

From-SVN: r180211
2011-10-19 22:05:26 +00:00
Janus Weil
2c23ebfec6 re PR fortran/47023 (C_Sizeof: Rejects valid code)
2011-10-19  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/47023
	* check.c (gfc_check_sizeof): Reject procedures as argument of SIZEOF.
	* intrinsinc.texi (SIZEOF): Document it.
	(STORAGE_SIZE): Fix special characters. Fix line breaks.

2011-10-19  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/47023
	* gfortran.dg/sizeof_proc.f90: New.

From-SVN: r180210
2011-10-20 00:05:23 +02:00
Joseph Myers
e423833d36 struct-layout-1_generate.c: Also pass -mno-mmx -Wno-abi for i?86-*-mingw32* x86_64-*-mingw32* i?86-*-cygwin*.
* g++.dg/compat/struct-layout-1_generate.c: Also pass -mno-mmx
	-Wno-abi for i?86-*-mingw32* x86_64-*-mingw32* i?86-*-cygwin*.

From-SVN: r180208
2011-10-19 22:25:52 +01:00
Uros Bizjak
bff5c921c8 re PR testsuite/50796 (FAIL: gcc.dg/plugin/plugindir[1234].c)
PR testsuite/50796
	* gcc.dg/plugin/plugindir?.c Update dg_prune_output.

From-SVN: r180207
2011-10-19 23:05:23 +02:00
Jason Merrill
2bb385d908 re PR c++/50787 (reference fails to bind directly to variable)
PR c++/50787
	* g++.dg/init/ref20.C: New.

From-SVN: r180206
2011-10-19 16:42:50 -04:00
Jakub Jelinek
3f3af9dfcc re PR middle-end/50754 (ICE in expand_debug_expr, at cfgexpand.c:3341)
PR middle-end/50754
	* cfgexpand.c (expand_debug_expr): Handle WIDEN_LSHIFT_EXPR, ignore
	VEC_PERM_EXPR.

From-SVN: r180201
2011-10-19 21:31:14 +02:00
Kai Tietz
da004daccc re PR middle-end/50795 (FAIL: gcc.dg/tree-ssa/builtin-expect-[1234].c)
PR middle-end/50795
        * gcc.dg/tree-ssa/builtin-expect-1.c: Adjust test.
        * gcc.dg/tree-ssa/builtin-expect-2.c: Adjust test.
        * gcc.dg/tree-ssa/builtin-expect-3.c: Adjust test.
        * gcc.dg/tree-ssa/builtin-expect-4.c: Adjust test.
        * gcc.dg/tree-ssa/builtin-expect-5.c: Adjust test.

From-SVN: r180200
2011-10-19 19:44:35 +02:00
Bernd Schmidt
1f234b83b8 regrename.h: New file.
* regrename.h: New file.
	* regrename.c: Include it.  Also include "emit-rtl.h".
	(struct du_head, struct du_chain, du_head_p DEF_VEC and
	DEF_VEC_ALLOC_P): Move to regrename.h.
	(do_replace): Remove declaration.
	(insn_rr): New variable.
	(cur_operand): New static variable.
	(regrename_chain_from_id): Renamed from chain_from_id and no longer
	static.  All callers changed.
	(record_operand_use): New static function.
	(scan_rtx_reg): Use it.
	(find_best_rename_reg): New function, broken out of rename_chains.
	(rename_chains): Use it.  Don't update chain regno and nregs here, ...
	(regrename_do_replace): ... do it here instead.  Renamed from
	do_replace, and no longer static.  All callers changed.
	(regrename_analyze): No longer static.  New arg bb_mask.
	All callers changed.  If bb_mask is nonzero, use it to limit the
	number of basic blocks we analyze.  If we failed to analyze a block,
	clear insn operand data.
	(record_out_operands): New arg insn_info.  Update cur_operand if it is
	nonnull.
	(build_def_use): If insn_rr is nonnull, pass an insn_info to
	record_out_operands, and update cur_operand here as well.
	(regrename_init, regrename_finish): New functions.
	(regrename_optimize): Use them.
	* Makefile.in (regrename.o): Adjust dependencies.

From-SVN: r180198
2011-10-19 17:26:26 +00:00
Tom de Vries
40f73edd0c re PR tree-optimization/50769 (ICE: in phi_alternatives_equal, at tree-cfgcleanup.c:355 with -O2 -fno-delete-null-pointer-checks -fno-guess-branch-probability -fipa-pta)
2011-10-19  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/50769
	* tree-ssa-tail-merge.c (replace_block_by): Calculate phi_vuse2
	unconditionally.  Handle case that phi_vuse2 is not an SSA_NAME.  Add
	dummy argument .MEM to phi when increasing number of arguments of phi by
	redirecting edges to the block with phi.

From-SVN: r180197
2011-10-19 16:29:42 +00:00
Rainer Orth
87fb500b93 Properly test for madvise on Solaris 10 (PR bootstrap/50777)
PR bootstrap/50777
	* configure.ac: Save and restore CXXFLAGS around
	gcc_AC_CHECK_DECLS uses.
	Check for madvise() declaration with g++ if --enable-build-with-cxx.
	* configure: Regenerate.
	* config.in: Regenerate.
	* ggc-page.c (USING_MADVISE): Also check HAVE_DECL_MADVISE.

From-SVN: r180195
2011-10-19 16:02:30 +00:00
Alexandre Oliva
09dbcd96d6 re PR middle-end/49310 (Compile time hog in var-tracking emit)
PR debug/49310
* var-tracking.c (loc_exp_dep, onepart_aux): New structs.
(variable_part): Replace offset with union.
(enum onepart_enum, onepart_enum_t): New.
(variable_def): Drop cur_loc_changed, add onepart.
(value_chain_def, const_value_chain): Remove.
(VAR_PART_OFFSET, VAR_LOC_1PAUX): New macros, with checking.
(VAR_LOC_DEP_LST, VAR_LOC_DEP_LSTP): New macros.
(VAR_LOC_FROM, VAR_LOC_DEPTH, VAR_LOC_DEP_VEC): Likewise.
(value_chain_pool, value_chains): Remove.
(dropped_values): New.
(struct parm_reg): Only if HAVE_window_save.
(vt_stack_adjustments): Don't record register arguments.
(dv_as_rtx): New.
(dv_onepart_p): Return a onepart_enum_t.
(onepart_pool): New.
(dv_pool): Remove.
(dv_from_rtx): New.
(variable_htab_free): Release onepart aux data.  Reset flags.
(value_chain_htab_hash, value_chain_htab_eq): Remove.
(unshare_variable): Use onepart field.  Propagate onepart aux
data or offset.  Drop cur_loc_changed.
(val_store): Cope with NULL insn.  Rephrase dump output.  Check
for unsuitable locs.  Add FIXME on using cselib locs.
(val_reset): Remove FIXME of unfounded concerns.
(val_resolve): Check for unsuitable locs.  Add FIXME on using
cselib locs.
(variable_union): Use onepart field, adjust access to offset.
(NO_LOC_P): New.
(VALUE_CHANGED, DECL_CHANGED): Update doc.
(set_dv_changed): Clear NO_LOC_P when changed.
(find_loc_in_1pdv): Use onepart field.
(intersect_loc_chains): Likewise.
(unsuitable_loc): New.
(loc_cmp): Keep ENTRY_VALUEs at the end of the loc list.
(add_value_chain, add_value_chains): Remove.
(add_cselib_value_chains, remove_value_chain): Likewise.
(remove_value_chains, remove_cselib_value_chains): Likewise.
(canonicalize_loc_order_check): Use onepart.  Drop cur_loc_changed.
(canonicalize_values_star, canonicalize_vars_star): Use onepart.
(variable_merge_over_cur): Likewise.  Adjust access to offset.
Drop cur_loc_changed.
(variable_merge_over_src): Use onepart field.
(remove_duplicate_values): Likewise.
(variable_post_merge_new_vals): Likewise.
(find_mem_expr_in_1pdv): Likewise.
(dataflow_set_preserve_mem_locs): Likewise.  Drop cur_loc_changed
and value chains.
(dataflow_set_remove_mem_locs): Likewise.  Use VAR_LOC_FROM.
(variable_different_p): Use onepart field.  Move onepart test out
of the loop.
(argument_reg_set): Drop.
(add_uses, add_stores): Preserve but do not record in dynamic
tables equivalences for ENTRY_VALUEs and CFA_based addresses.
Avoid unsuitable address expressions.
(EXPR_DEPTH): Unlimit.
(EXPR_USE_DEPTH): Repurpose PARAM_MAX_VARTRACK_EXPR_DEPTH.
(prepare_call_arguments): Use DECL_RTL_IF_SET.
(dump_var): Adjust access to offset.
(variable_from_dropped, recover_dropped_1paux): New.
(variable_was_changed): Drop cur_loc_changed.  Use onepart.
Preserve onepart aux in empty_var.  Recover empty_var and onepart
aux from dropped_values.
(find_variable_location_part): Special-case onepart.  Adjust
access to offset.
(set_slot_part): Use onepart.  Drop cur_loc_changed.  Adjust
access to offset.  Initialize onepaux.  Drop value chains.
(delete_slot_part): Drop value chains.  Use VAR_LOC_FROM.
(VEC (variable, heap), VEC (rtx, stack)): Define.
(expand_loc_callback_data): Drop dummy, cur_loc_changed,
ignore_cur_loc.  Add expanding, pending, depth.
(loc_exp_dep_alloc, loc_exp_dep_clear): New.
(loc_exp_dep_insert, loc_exp_dep_set): New.
(notify_dependents_of_resolved_value): New.
(update_depth, vt_expand_var_loc_chain): New.
(vt_expand_loc_callback): Revamped.
(resolve_expansions_pending_recursion): New.
(INIT_ELCD, FINI_ELCD): New.
(vt_expand_loc): Use the new macros above.  Drop ignore_cur_loc
parameter, adjust all callers.
(vt_expand_loc_dummy): Drop.
(vt_expand_1pvar): New.
(emit_note_insn_var_location): Operate on non-debug decls only.
Revamp multi-part cur_loc recomputation and one-part expansion.
Drop cur_loc_changed.  Adjust access to offset.
(VEC (variable, heap)): Drop.
(changed_variables_stack, changed_values_stack): Drop.
(check_changed_vars_0, check_changed_vars_1): Remove.
(check_changed_vars_2, check_changed_vars_3): Remove.
(values_to_stack, remove_value_from_changed_variables): New.
(notify_dependents_of_changed_value, process_changed_values): New.
(emit_notes_for_changes): Revamp onepart updates.
(emit_notes_for_differences_1): Use onepart.  Drop cur_loc_changed
and value chains.  Propagate onepaux.  Recover empty_var and onepaux
from dropped_values.
(emit_notes_for_differences_2): Drop value chains.
(emit_notes_in_bb): Adjust.
(vt_emit_notes): Drop value chains, changed_variables_stack.
Initialize and release dropped_values.
(create_entry_value): Revamp.
(vt_add_function_parameter): Use new interface.
(note_register_arguments): Remove.
(vt_initialize): Drop value chains and register arguments.
(vt_finalize): Drop value chains.  Release windowed_parm_regs only
if HAVE_window_save.
* rtl.h: Document various pass-local uses of RTL flags.
* tree.h (DECL_RTL_KNOWN_SET): New.
* doc/invoke.texi (param max-vartrack-expr-depth): Update
description and default.

From-SVN: r180194
2011-10-19 15:50:00 +00:00
Georg-Johann Lay
2f47b8d3be re PR target/50447 ([avr] Better support of AND, OR, XOR and PLUS with constant integers for 16- and 32-bit values)
PR target/50447
	* config/avr/avr.md (cc): New alternative out_plus_noclobber.
	(adjust_len): Ditto.
	(addhi3): Don't pipe through short; use gen_int_mode instead.
	Prior to reload, expand to gen_addhi3_clobber.
	(*addhi3): Use avr_out_plus_noclobber if applicable, use
	out_plus_noclobber in cc and adjust_len attribute.
	(addhi3_clobber): 2 new RTL peepholes.
	(addhi3_clobber): New insn.
	* config/avr/avr-protos.h: (avr_out_plus_noclobber): New prototype.
	* config/avr/avr.c (avr_out_plus_noclobber): New function.
	(notice_update_cc): Handle CC_OUT_PLUS_NOCLOBBER.
	(avr_out_plus_1): Tweak if only MSB is +/-1 and other bytes are 0.
	Set cc0 to set_zn for adiw on 16-bit values.
	(adjust_insn_length): Handle ADJUST_LEN_OUT_PLUS_NOCLOBBER.
	(expand_epilogue): No need to add 0 to frame_pointer_rtx.

From-SVN: r180193
2011-10-19 14:59:00 +00:00
Richard Guenther
dd46054a5f re PR tree-optimization/50780 (ICE: verify_gimple failed: invalid operands in ternary operation with -ftree-vectorize -fnon-call-exceptions)
2011-10-19  Richard Guenther  <rguenther@suse.de>

	PR middle-end/50780
	* tree-ssa-forwprop.c (forward_propagate_into_cond): Verify
	the condition is properly gimple before using it.
	* tree-eh (stmt_could_throw_1_p): Properly extract the
	operation type from comparisons.

From-SVN: r180192
2011-10-19 14:54:34 +00:00
Roland Stigge
9aaa9e894a [multiple changes]
2011-10-19  Roland Stigge  <stigge@antcom.de>  

	PR translation/48638
	* plugin.c (add_new_plugin): Fix typo in fatal_error message.

2011-10-19  Roland Stigge  <stigge@antcom.de>  

	PR translation/49517
	* config/rx/rx.c (rx_print_operand): Fix typo in warning message.

/cp
2011-10-19  Roland Stigge  <stigge@antcom.de>

	PR translation/49704    
	* semantics.c (potential_constant_expression_1): Use "AST" instead of
	"ast" in sorry message.

From-SVN: r180188
2011-10-19 13:20:22 +00:00
Richard Guenther
e256dfce35 re PR tree-optimization/50768 (ICE: in execute_todo, at passes.c:1731 with -O2 -ftracer)
2011-10-19  Richard Guenther  <rguenther@suse.de>

	PR middle-end/50768
	* gimple-fold.c (gimplify_and_update_call_from_tree): Rewrite.

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

From-SVN: r180187
2011-10-19 12:59:21 +00:00
Alexander Monakov
854b5fd7b5 re PR rtl-optimization/50340 (Fails to build SPEC 2000 176.gcc)
2011-10-19  Andrey Belevantsev  <abel@ispras.ru>

	PR rtl-optimization/50340
	* sel-sched-ir.c (update_target_availability): LHS register
	availability is not known if the unavailable LHS of the other
	expression is a different register.

	* gcc.dg/pr50340.c: New.

From-SVN: r180186
2011-10-19 16:46:44 +04:00
Paolo Carlini
9b6ab3c059 re PR c++/38761 (%s substituted with regular word can't be properly translated)
2011-10-19  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/38761
	PR c++/40872
	* decl.c (duplicate_decls, make_typename_type, grokdeclarator): Use
	G_() in error message strings to facilitate translation.
	* semantics.c (finish_id_expression): Likewise.
	* parser.c (cp_parser_nested_name_specifier_opt,
	cp_parser_parameter_declaration): Likewise.

From-SVN: r180185
2011-10-19 12:46:42 +00:00
Ulrich Weigand
7f9a3dcd7d re PR target/50310 (ICE: in gen_vcondv2div2df, at config/i386/sse.md:1435 with -O -ftree-vectorize and __builtin_isunordered())
PR target/50310
	* config/spu/spu.c (spu_emit_vector_compare): Support unordered
	floating-point comparisons.

From-SVN: r180184
2011-10-19 12:17:35 +00:00
Jan Hubicka
a66f86bbc4 Oops, old revision of patch..
From-SVN: r180182
2011-10-19 11:39:00 +00:00
Jan Hubicka
c9552bff09 cgraphunit.c (handle_alias_pairs): Also handle wekref with destination declared.
* cgraphunit.c (handle_alias_pairs): Also handle wekref with destination
	declared.
	(output_weakrefs): New function.
	* varpool.c (varpool_create_variable_alias): Handle external aliases.

From-SVN: r180181
2011-10-19 10:27:50 +00:00
Jakub Jelinek
0917519935 dwarf2out.c (loc_descriptor): For SUBREG pass SUBREG_REG's mode as second argument instead of mode.
* dwarf2out.c (loc_descriptor): For SUBREG pass SUBREG_REG's mode as
	second argument instead of mode.

From-SVN: r180178
2011-10-19 10:43:09 +02:00
GCC Administrator
02a448403a Daily bump.
From-SVN: r180173
2011-10-19 00:18:47 +00:00
Jakub Jelinek
b6f9a04a80 i386.c (ix86_expand_vec_perm): In merge_two use mode SUBREG of operands[0] as target.
* config/i386/i386.c (ix86_expand_vec_perm): In merge_two use
	mode SUBREG of operands[0] as target.
	(valid_perm_using_mode_p): Don't ignore higher bits of d->perm.
	(expand_vec_pshufb): For V8SImode vmode emit avx2_permvarv8si.
	(expand_vec_perm_1): Handle identity and some broadcast
	permutations.
	(expand_vec_perm_interleave2): Handle also 32-byte modes, using
	vperm2[fi]128 or vpunpck[lh]* followed by single insn permutation.
	For d->testing_p return true earlier to avoid creating more GC
	garbage.
	(expand_vec_perm_vpermq_perm_1): New function.
	(expand_vec_perm_vpshufb2_vpermq): For d->testing_p return true
	earlier to avoid creating more GC garbage.  Fix handling of
	V16HImode.  Avoid some SUBREGs in SET_DEST.
	(expand_vec_perm_broadcast_1): Return false for 32-byte integer
	vector modes.
	(expand_vec_perm_vpshufb4_vpermq2): New function.
	(ix86_expand_vec_perm_builtin_1): Call expand_vec_perm_vpermq_perm_1
	and expand_vec_perm_vpshufb4_vpermq2.

From-SVN: r180169
2011-10-18 23:27:40 +02:00
Andrew Stubbs
e9d662bb75 Commit correct version of previous patch.
2011-10-18  Andrew Stubbs  <ams@codesourcery.com>

	gcc/
	* config/arm/driver-arm.c (host_detect_local_cpu): Close the file
	before exiting.

From-SVN: r180168
2011-10-18 20:40:21 +00:00
Andrew Stubbs
6d3f1a1349 driver-arm.c (host_detect_local_cpu): Close the file before exiting.
2011-10-18  Andrew Stubbs  <ams@codesourcery.com>

	gcc/
	* config/arm/driver-arm.c (host_detect_local_cpu): Close the file
	before exiting.

From-SVN: r180167
2011-10-18 20:33:00 +00:00
Andrew Stubbs
3d71881d2d re PR tree-optimization/50717 (Silent code gen fault with incorrect widening of multiply)
2011-10-18  Andrew Stubbs  <ams@codesourcery.com>

	PR tree-optimization/50717

	gcc/
	* tree-ssa-math-opts.c (is_widening_mult_p): Remove the 'type'
	parameter.  Calculate 'type' from stmt.
	(convert_mult_to_widen): Update call the is_widening_mult_p.
	(convert_plusminus_to_widen): Likewise.

	gcc/testsuite/
	* gcc.dg/pr50717-1.c: New file.
	* gcc.target/arm/wmul-12.c: Correct types.
	* gcc.target/arm/wmul-8.c: Correct types.

From-SVN: r180164
2011-10-18 19:57:15 +00:00
Jason Merrill
15e0646fde re PR c++/50531 ([C++0x] ICE on defaulted template destructor)
PR c++/50531
	* pt.c (instantiate_decl): Recognize when a function defaulted
	outside the class is already instantiated.

From-SVN: r180162
2011-10-18 15:36:28 -04:00
Jason Merrill
d2f706418a re PR c++/50742 (tree check fail in check_previous_goto_1)
PR c++/50742
	* decl.c (check_previous_goto_1): Handle using-decl.

From-SVN: r180160
2011-10-18 13:39:31 -04:00
Jason Merrill
a2e70335e2 re PR c++/50500 ([C++0x] [DR 1082] move constructor should cause copy constructor to be deleted, but still declared)
PR c++/50500
	DR 1082
	* class.c (type_has_user_declared_move_constructor): New.
	(type_has_user_declared_move_assign): New.
	(add_implicitly_declared_members): Add lazy copy ops
	even if there's a move.
	* method.c (lazily_declare_fn): Delete implicit copies
	if there's a move.
	(maybe_explain_implicit_delete): Explain this.  Use inform rather
	than error.
	* cp-tree.h: Declare new fns.

From-SVN: r180159
2011-10-18 13:39:15 -04:00
Ulrich Weigand
c5d942188b spu.c (struct machine_function): New data structure.
* config/spu/spu.c (struct machine_function): New data structure.
	(spu_init_machine_status): New function.
	(spu_option_override): Install it.
	(get_pic_reg): Set and use cfun->machine->pic_reg.
	(spu_split_immediate): Do not set crtl->uses_pic_offset_table.
	(need_to_save_reg): Use cfun->machine->pic_reg instead of
	checking crtl->uses_pic_offset_table.
	(spu_expand_prologue): Likewise.

From-SVN: r180156
2011-10-18 15:48:49 +00:00
Kirill Yukhin
d8381c04c3 Add some tests for AVX2 vectorizer.
2011-10-18  Kirill Yukhin  <kirill.yukhin@intel.com>

	* gcc.target/i386/avx2-vpop-check.h: New header.
	* gcc.target/i386/avx2-vpaddd-3.c: New test.
	* gcc.target/i386/avx2-vpaddw-3.c: Ditto.
	* gcc.target/i386/avx2-vpaddb-3.c: Ditto.
	* gcc.target/i386/avx2-vpaddq-3.c: Ditto.
	* gcc.target/i386/avx2-vpand-3.c: Ditto.
	* gcc.target/i386/avx2-vpmulld-3.c: Ditto.
	* gcc.target/i386/avx2-vpmullw-3.c: Ditto.
	* gcc.target/i386/avx2-vpsrad-3.c: Ditto.
	* gcc.target/i386/avx2-vpsraw-3.c: Ditto.
	* gcc.target/i386/avx2-vpsrld-3.c: Ditto.
	* gcc.target/i386/avx2-vpsrlw-3.c: Ditto.
	* gcc.target/i386/avx2-vpsubb-3.c: Ditto.
	* gcc.target/i386/avx2-vpsubd-3.c: Ditto.
	* gcc.target/i386/avx2-vpsubq-3.c: Ditto.
	* gcc.target/i386/avx2-vpsubw-3.c: Ditto.

From-SVN: r180155
2011-10-18 08:41:27 -07:00
Jakub Jelinek
5dac1dae25 re PR tree-optimization/50735 (gcc.dg/torture/vector-2.c:52:1: ICE: verify_ssa failed at -O1 and above)
PR tree-optimization/50735
	* function.c (gimplify_parameters): Use create_tmp_var instead of
	create_tmp_reg.  If parm is not TREE_ADDRESSABLE and type is complex
	or vector type, set DECL_GIMPLE_REG_P.

From-SVN: r180154
2011-10-18 17:33:12 +02:00
Mikael Morin
1b688c0e01 re PR fortran/50420 ([Coarray] lcobound doesn't accept coarray subcomponents)
PR fortran/50420
	* gfortran.dg/coarray_subobject_1.f90: New test.
	* gfortran.dg/coarray/subobject_1.f90: New test.

From-SVN: r180153
2011-10-18 15:23:04 +00:00
Mikael Morin
fef8962802 re PR fortran/50420 ([Coarray] lcobound doesn't accept coarray subcomponents)
PR fortran/50420
	* trans.c (gfc_build_array_ref): If type is not an array, check that
	there is nothing to do, and do nothing.

From-SVN: r180152
2011-10-18 15:17:29 +00:00
Mikael Morin
49b804d0ea re PR fortran/50420 ([Coarray] lcobound doesn't accept coarray subcomponents)
PR fortran/50420
	* trans-types.c (gfc_build_array_type): Don't force lower bound to one
	in the deferred case.

From-SVN: r180151
2011-10-18 15:13:45 +00:00
Mikael Morin
dbeebc56bd re PR fortran/50420 ([Coarray] lcobound doesn't accept coarray subcomponents)
PR fortran/50420
	* simplify.c (simplify_cobound): Accept non-last-in-ref-chain coarrays.
	Don't set already set array ref.

From-SVN: r180150
2011-10-18 15:11:21 +00:00
Mikael Morin
db171167f4 array.c (gfc_find_array_ref): Remove coarray-specific handling.
* array.c (gfc_find_array_ref): Remove coarray-specific handling.

From-SVN: r180149
2011-10-18 15:08:08 +00:00
Mikael Morin
66b23e9399 re PR fortran/50420 ([Coarray] lcobound doesn't accept coarray subcomponents)
PR fortran/50420
	* check.c (dim_corank_check): Use gfc_get_corank to get corank.

From-SVN: r180148
2011-10-18 15:05:30 +00:00
Mikael Morin
6cab5e07b0 re PR fortran/50420 ([Coarray] lcobound doesn't accept coarray subcomponents)
PR fortran/50420
	* trans-intrinsic.c (walk_coarray): Change AR_ELEMENT to AR_SECTION.

	PR fortran/50420
	* trans-intrinsic.c (walk_coarray): Use gfc_walk_array_ref for
	the scalarization chain initialization.

From-SVN: r180147
2011-10-18 15:02:38 +00:00
Mikael Morin
411e1a0f53 re PR fortran/50420 ([Coarray] lcobound doesn't accept coarray subcomponents)
PR fortran/50420
	* trans-intrinsic.c (walk_coarray): Allow subreferences after a
	coarray object reference.

From-SVN: r180146
2011-10-18 14:59:07 +00:00
Mikael Morin
6b81e94de1 re PR fortran/50420 ([Coarray] lcobound doesn't accept coarray subcomponents)
PR fortran/50420
	* trans-array.c (gfc_walk_array_ref): Allow zero rank arrays
	if they are coarrays.

From-SVN: r180145
2011-10-18 14:55:48 +00:00
Mikael Morin
42ac5ee128 trans-array.h (gfc_walk_array_ref): New prototype.
* trans-array.h (gfc_walk_array_ref): New prototype.
	* trans-array.c (gfc_walk_array_ref): New function, containing
	all but the beginning of gfc_walk_variable_expr's code.
	(gfc_walk_variable_expr): Use gfc_walk_array_ref.

From-SVN: r180144
2011-10-18 14:53:43 +00:00