Commit Graph

101795 Commits

Author SHA1 Message Date
Jack Howarth ba2dc63db7 re PR testsuite/42843 (--enable-build-with-cxx plugin tests fail)
2010-07-16  Jack Howarth  <howarth@bromo.med.uc.edu>

	PR testsuite/42843
	* gcc.dg/plugin/selfassign.c: Include diagnostic.h.
	* gcc.dg/plugin/ggcplug.c: Likewise.
	* g++.dg/plugin/selfassign.c: Likewise.
	* g++.dg/plugin/attribute_plugin.c: Likewise.
	* g++.dg/plugin/dumb_plugin.c: Likewise.
	* g++.dg/plugin/pragma_plugin.c: Likewise.

From-SVN: r162254
2010-07-16 08:39:37 +00:00
Nathan Froyd 6998c7ede7 init.c (build_new_1): Use cp_build_function_call_nary instead of cp_build_function_call.
* init.c (build_new_1): Use cp_build_function_call_nary instead of
	cp_build_function_call.

From-SVN: r162241
2010-07-16 02:37:10 +00:00
Bernd Schmidt 71008de4b3 re PR target/42235 (redundant memory move from parameter space to spill space)
PR target/42235
	* function.c (record_hard_reg_sets): New static function.
	(assign_parm_setup_reg): If an optab for extending exists and the
	generated code clobbbers no hard regs, emit the insn directly and
	create a REG_EQUIV note.

From-SVN: r162240
2010-07-16 02:09:03 +00:00
Nathan Froyd f7587ed0d8 c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of TREE_CHAIN.
* c-decl.c (detect_field_duplicates): Use DECL_CHAIN insted of
	TREE_CHAIN.
	* c-typeck.c (push_init_level): Likewise.
	(process_init_element): Likewise.

From-SVN: r162239
2010-07-16 01:30:32 +00:00
GCC Administrator f0cd14a7ed Daily bump.
From-SVN: r162238
2010-07-16 00:17:09 +00:00
Jason Merrill 10746f3715 re PR c++/44909 ([C++0x] Copy constructors implicitly deleted)
PR c++/44909
	* call.c (add_function_candidate): If we're working on an implicit
	declaration, don't consider candidates that won't match.
	* typeck.c (same_type_ignoring_top_level_qualifiers_p): Now a fn.
	* cp-tree.h (same_type_ignoring_top_level_qualifiers_p): Adjust.

	Revert:
	* cp-tree.h (struct lang_type_class): Add has_user_opeq.
	(TYPE_HAS_USER_OPEQ): New.
	* decl.c (grok_special_member_properties): Set it.
	* class.c (add_implicitly_declared_members): Don't lazily declare
	constructors/operator= if a base or member has a user-declared one.
	(check_bases_and_members, check_bases): Adjust.
	(check_field_decls, check_field_decl): Adjust.

From-SVN: r162233
2010-07-15 16:45:35 -04:00
Ulrich Weigand 8e7af53e4a Disable float tests for __SPU__ targets due to lack of signed zero:
* c-c++-common/torture/complex-sign-add.c (check_add_float).
	* c-c++-common/torture/complex-sign-sub.c (check_sub_float).
	* c-c++-common/torture/complex-sign-mul.c (check_mul_float).
	* c-c++-common/torture/complex-sign-mul-one.c (check_mul_float).
	* c-c++-common/torture/complex-sign-mul-minus-one.c (check_mul_float).
	* c-c++-common/torture/complex-sign-mixed-add.c (check_add_float).
	* c-c++-common/torture/complex-sign-mixed-sub.c (check_sub_float).
	* c-c++-common/torture/complex-sign-mixed-mul.c (check_mul_float).
	* c-c++-common/torture/complex-sign-mixed-div.c (check_div_float).

From-SVN: r162232
2010-07-15 19:32:37 +00:00
Anatoly Sokolov 9a9d280e02 tree.h (enum tree_index): Add TI_INTEGER_THREE.
* tree.h (enum tree_index): Add TI_INTEGER_THREE.
	(integer_three_node): Add.
	* tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
	NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
	* builtins.c (expand_builtin_prefetch): Use common tree nodes instead
	of call build_int_cst.
	* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
	* tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
	(find_interesting_uses_address): Ditto.
	* tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
	* tree-eh.c (lower_eh_constructs_2): Ditto.
	* tree-vect-loop.c (get_initial_def_for_induction): Ditto.
	* c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
	* expmed.c (expand_divmod): Ditto.
	* tree-mudflap.c (mx_register_decls): Ditto.
	* varasm.c (array_size_for_constructor): Ditto.
	* tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
	* c-parser.c (c_parser_postfix_expression): Ditto.
	
/cp
	* decl.c (integer_three_node): Remove.
	(cxx_init_decl_processing): Do not initialize the integer_three_node.
	* cp-tree.h (integer_three_node): Remove.

From-SVN: r162230
2010-07-15 22:47:23 +04:00
Bernd Schmidt 67bb020619 postreload.c (last_label_ruid, [...]): New static variables.
* postreload.c (last_label_ruid, first_index_reg, last_index_reg):
	New static variables.
	(reload_combine_recognize_pattern): New static function, broken out
	of reload_combine.
	(reload_combine): Use it.  Only initialize first_index_reg and
	last_index_reg once.

From-SVN: r162228
2010-07-15 17:07:17 +00:00
Richard Henderson c5f77dcb78 Finish zeroing out the current function status after building cdtor.
From-SVN: r162227
2010-07-15 09:38:16 -07:00
Jakub Jelinek d2886bc744 trans.h (gfc_string_to_single_character): New prototype.
* trans.h (gfc_string_to_single_character): New prototype.
	* trans-expr.c (string_to_single_character): Renamed to ...
	(gfc_string_to_single_character): ... this.  No longer static.
	(gfc_conv_scalar_char_value, gfc_build_compare_string,
	gfc_trans_string_copy): Adjust callers.
	* config-lang.in (gtfiles): Add fortran/trans-stmt.c.
	* trans-stmt.c: Include ggc.h and gt-fortran-trans-stmt.h.
	(select_struct): Move to toplevel, add GTY(()).
	(gfc_trans_character_select): Optimize SELECT CASE
	with character length 1.

	* gfortran.dg/select_char_2.f90: New test.

From-SVN: r162226
2010-07-15 18:09:48 +02:00
Jan Hubicka ef8fc6c2ef lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling comdats for broken gold.
* lto-symtab.c (lto_symtab_resolve_symbols): Remove hack handling comdats
	for broken gold.
	(lto_sy	mtab_merge_decls_1): Set used_from_object_file correctly.

From-SVN: r162225
2010-07-15 16:01:33 +00:00
Nathan Froyd 3d894a8eaf * tree.h (TREE_RTL_OPERAND_CHECK): Delete.
From-SVN: r162224
2010-07-15 15:57:23 +00:00
Nathan Froyd 910ad8dee5 tree.h (DECL_CHAIN): Define.
gcc/
	* tree.h (DECL_CHAIN): Define.
	* alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
	* c-decl.c: Likewise.
	* c-parser.c: Likewise.
	* c-typeck.c: Likewise.
	* cfgexpand.c: Likewise.
	* cgraph.c: Likewise.
	* cgraphunit.c: Likewise.
	* combine.c: Likewise.
	* config/alpha/alpha.c: Likewise.
	* config/arm/arm.c: Likewise.
	* config/frv/frv.c: Likewise.
	* config/i386/i386.c: Likewise.
	* config/i386/winnt-cxx.c: Likewise.
	* config/ia64/ia64.c: Likewise.
	* config/iq2000/iq2000.c: Likewise.
	* config/mep/mep.c: Likewise.
	* config/mips/mips.c: Likewise.
	* config/pa/som.h: Likewise.
	* config/rs6000/rs6000.c: Likewise.
	* config/s390/s390.c: Likewise.
	* config/sh/sh.c: Likewise.
	* config/sh/symbian-cxx.c: Likewise.
	* config/sparc/sparc.c: Likewise.
	* config/spu/spu.c: Likewise.
	* config/stormy16/stormy16.c: Likewise.
	* config/vxworks.c: Likewise.
	* config/xtensa/xtensa.c: Likewise.
	* coverage.c: Likewise.
	* dbxout.c: Likewise.
	* dwarf2out.c: Likewise.
	* emit-rtl.c: Likewise.
	* expr.c: Likewise.
	* function.c: Likewise.
	* gimple-low.c: Likewise.
	* gimple-pretty-print.c: Likewise.
	* gimplify.c: Likewise.
	* integrate.c: Likewise.
	* ipa-inline.c: Likewise.
	* ipa-prop.c: Likewise.
	* ipa-split.c: Likewise.
	* ipa-struct-reorg.c: Likewise.
	* ipa-type-escape.c: Likewise.
	* langhooks.c: Likewise.
	* lto-cgraph.c: Likewise.
	* omp-low.c: Likewise.
	* stor-layout.c: Likewise.
	* tree-cfg.c: Likewise.
	* tree-complex.c: Likewise.
	* tree-dfa.c: Likewise.
	* tree-dump.c: Likewise.
	* tree-inline.c: Likewise.
	* tree-mudflap.c: Likewise.
	* tree-nested.c: Likewise.
	* tree-object-size.c: Likewise.
	* tree-pretty-print.c: Likewise.
	* tree-sra.c: Likewise.
	* tree-ssa-live.c: Likewise.
	* tree-ssa-loop-niter.c: Likewise.
	* tree-ssa-math-opts.c: Likewise.
	* tree-ssa-reassoc.c: Likewise.
	* tree-ssa-sccvn.c: Likewise.
	* tree-ssa-structalias.c: Likewise.
	* tree-tailcall.c: Likewise.
	* tree-vrp.c: Likewise.
	* tree.c: Likewise.
	* var-tracking.c: Likewise.
	* varasm.c: Likewise.

gcc/ada/
	* gcc-interface/decl.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
	* gcc-interface/trans.c: Likewise.
	* gcc-interface/utils.c: Likewise.
	* gcc-interface/utils2.c: Likewise.

gcc/c-family/
	* c-common.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
	* c-format.c: Likewise.

gcc/cp/
	* cp-tree.h: Carefully replace TREE_CHAIN with DECL_CHAIN.
	* call.c: Likewise.
	* class.c: Likewise.
	* cp-gimplify.c: Likewise.
	* decl.c: Likewise.
	* decl2.c: Likewise.
	* init.c: Likewise.
	* mangle.c: Likewise.
	* name-lookup.c: Likewise.
	* optimize.c: Likewise.
	* parser.c: Likewise.
	* pt.c: Likewise.
	* rtti.c: Likewise.
	* search.c: Likewise.
	* semantics.c: Likewise.
	* typeck.c: Likewise.
	* typeck2.c: Likewise.

gcc/fortran/
	* f95-lang.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
	* trans-common.c: Likewise.
	* trans-decl.c: Likewise.
	* trans-types.c: Likewise.
	* trans.c: Likewise.

gcc/java/
	* java-tree.h: Carefully replace TREE_CHAIN with DECL_CHAIN.
	* boehm.c: Likewise.
	* class.c: Likewise.
	* decl.c: Likewise.
	* expr.c: Likewise.
	* jcf-parse.c: Likewise.
	* typeck.c: Likewise.
	* verify-glue.c: Likewise.

gcc/objc/
	* objc-act.c: Carefully replace TREE_CHAIN with DECL_CHAIN.

gcc/testsuite/
	* g++.dg/plugin/attribute_plugin.c: Carefully replace TREE_CHAIN
	with DECL_CHAIN.

From-SVN: r162223
2010-07-15 14:31:28 +00:00
Jerry DeLisle b05027be0c Fix ChangeLog to mention last commit to transfer.c
From-SVN: r162222
2010-07-15 13:39:11 +00:00
Janus Weil ab7306ed7c re PR fortran/44936 ([OOP] Generic TBP not resolved correctly at compile time)
2010-07-15  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/44936
	* resolve.c (resolve_typebound_generic_call): Resolve generic
	non-polymorphic type-bound procedure calls to the correct specific
	procedure.
	(resolve_typebound_subroutine): Remove superfluous code.


2010-07-15  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/44936
	* gfortran.dg/typebound_generic_9.f03: New.

From-SVN: r162221
2010-07-15 15:36:28 +02:00
Ulrich Weigand 643afedb71 re PR target/44877 (C++ compiler can no longer compile dealII for VSX/Altivec vectorization)
PR target/44877
	* config/spu/spu.c (spu_expand_builtin_1): Allow references
	(as well as pointers) as argument to mask_for_load builtins.

From-SVN: r162220
2010-07-15 12:37:03 +00:00
Daniel Kraft 0019d49828 re PR fortran/44709 (BLOCK and GOTO/EXIT/CYCLE)
2010-07-15  Daniel Kraft  <d@domob.eu>

	PR fortran/44709
	* trans.h (struct gfc_wrapped_block): New struct.
	(gfc_start_wrapped_block), (gfc_add_init_cleanup): New methods.
	(gfc_finish_wrapped_block): New method.
	(gfc_init_default_dt): Add new init code to block rather than
	returning it.
	* trans-array.h (gfc_trans_auto_array_allocation): Use gfc_wrapped_block
	(gfc_trans_dummy_array_bias): Ditto.
	(gfc_trans_g77_array): Ditto.
	(gfc_trans_deferred_array): Ditto.
	* trans.c (gfc_add_expr_to_block): Call add_expr_to_chain.
	(add_expr_to_chain): New method based on old gfc_add_expr_to_block.
	(gfc_start_wrapped_block), (gfc_add_init_cleanup): New methods.
	(gfc_finish_wrapped_block): New method.
	* trans-array.c (gfc_trans_auto_array_allocation): use gfc_wrapped_block
	(gfc_trans_g77_array), (gfc_trans_dummy_array_bias): Ditto.
	(gfc_trans_deferred_array): Ditto.
	* trans-decl.c (gfc_trans_dummy_character): Ditto.
	(gfc_trans_auto_character_variable), (gfc_trans_assign_aux_var): Ditto.
	(init_intent_out_dt): Ditto.
	(gfc_init_default_dt): Add new init code to block rather than
	returning it.
	(gfc_trans_deferred_vars): Use gfc_wrapped_block to collect all init
	and cleanup code and put it all together.

From-SVN: r162219
2010-07-15 14:23:47 +02:00
Rainer Orth f644b3d1af sparc-signal.h: Renamed to ...
* include/sparc-signal.h: Renamed to ...
	* include/solaris-signal.h: ... this.
	* configure.ac: Use it on any *-*-solaris2* target.
	* configure: Regenerate.
	* configure.host (i?86-*-solaris2*): Set can_unwind_signal=yes.
	* Makefile.am (prims.lo): Add -fno-omit-frame-pointer to AM_CXXFLAGS.
	* Makefile.in: Regenerate.

From-SVN: r162217
2010-07-15 12:03:54 +00:00
Richard Biener 0ba0772ba4 re PR tree-optimization/44946 (ICE: in get_constraint_for_component_ref, at tree-ssa-structalias.c:3184)
2010-07-15  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/44946
	* tree-ssa-structalias.c (get_constraint_for_component_ref): Deal
	with accessing only padding properly.

	* gcc.c-torture/compile/pr44946.c: New testcase.

From-SVN: r162216
2010-07-15 11:17:37 +00:00
Jan Hubicka 02ee7bea62 ipa.c (function_and_variable_visibility): Variables marked as used should not be localized.
* ipa.c (function_and_variable_visibility): Variables marked as used should
	not be localized.

From-SVN: r162215
2010-07-15 11:03:03 +00:00
Jan Hubicka 99fecd47f1 cgraph.c: Include lto-streamer.h
* cgraph.c: Include lto-streamer.h
	(change_decl_assembler_name): Work when assembler name hash is at place.
	(cgraph_make_decl_local): When localizing COMDAT symbol at WPA stage, be
	sure to rename it to avoid name clash.
	* ipa.c (cgraph_externally_visible_p, function_and_variable_visibility):
	Localize hidden symbols only when locally defined.

From-SVN: r162211
2010-07-15 10:01:07 +00:00
Jakub Jelinek 79c7430051 re PR fortran/40206 ([gfortran] Incorrect warning with -Wuninitialized)
PR fortran/40206
	* trans-stmt.c (gfc_trans_character_select): Always use NULL for high
	in CASE_LABEL_EXPR and use NULL for low for the default case.

	* gfortran.dg/select_char_3.f90: New test.

From-SVN: r162209
2010-07-15 09:52:51 +02:00
Jakub Jelinek 23b1042021 trans.h (gfc_build_compare_string): Add CODE argument.
* trans.h (gfc_build_compare_string): Add CODE argument.
	* trans-intrinsic.c (gfc_conv_intrinsic_strcmp): Pass OP to
	gfc_build_compare_string.
	* trans-expr.c (gfc_conv_expr_op): Pass CODE to
	gfc_build_compare_string.
	(string_to_single_character): Rename len variable to length.
	(gfc_optimize_len_trim): New function.
	(gfc_build_compare_string): Add CODE argument.  If it is EQ_EXPR
	or NE_EXPR and one of the strings is string literal with LEN_TRIM
	bigger than the length of the other string, they compare unequal.

From-SVN: r162208
2010-07-15 09:50:04 +02:00
Uros Bizjak 53f00dde26 i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.
* config/i386/i386.h (SHIFT_COUNT_TRUNCATED): Expand comment.

From-SVN: r162206
2010-07-15 08:09:38 +02:00
Magnus Granberg 8ffadef952 builtins.c (expand_builtin_init_trampoline): If -Wtrampolines make a warning.
2010-07-15  Magnus Granberg  <zorry@gentoo.org>
	    Kevin F. Quinn  <kevquinn@gentoo.org>

        * builtins.c (expand_builtin_init_trampoline): If
	-Wtrampolines make a warning.
	* common.opt:   Add -Wtrampolines.
        * doc/invoke.texi:      Add -Wtrampolines.
testsuite/
        * gcc.dg/Wtrampolines.c: New.

Co-Authored-By: Kevin F. Quinn <kevquinn@gentoo.org>

From-SVN: r162205
2010-07-15 05:46:36 +00:00
Jerry DeLisle 6b58c62f29 re PR fortran/44934 (Bogus "Missing format for FORMATTED data transfer")
2010-07-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/44934
	* gfortran.dg/endfile_2.f90: Fix to unformatted file type.

From-SVN: r162204
2010-07-15 03:42:29 +00:00
Jerry DeLisle c0d1689058 re PR fortran/44934 (Bogus "Missing format for FORMATTED data transfer")
2010-07-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/44934
	* io/file_pos.c (st_endfile): Correctly set unit flags for form.

From-SVN: r162203
2010-07-15 03:40:56 +00:00
Jie Zhang 5cb55204f2 cortex-a8.md (cortex_a8_load_store_2): Reserve cortex_a8_issue_ls.
* config/arm/cortex-a8.md (cortex_a8_load_store_2): Reserve
	cortex_a8_issue_ls.

From-SVN: r162201
2010-07-15 02:07:53 +00:00
Dave Korn 4c4837a374 cygwin.h (LIBGCJ_SONAME): Update.
* config/i386/cygwin.h (LIBGCJ_SONAME): Update.
	* config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.

From-SVN: r162200
2010-07-15 01:45:51 +00:00
GCC Administrator d422a6d7c0 Daily bump.
From-SVN: r162199
2010-07-15 00:16:58 +00:00
Jonathan Wakely e79fa1eb9b shared_ptr.xml: Update.
2010-07-14  Jonathan Wakely  <jwakely.gcc@gmail.com>

	* doc/xml/manual/shared_ptr.xml: Update.
	* doc/html/*: Regenerate.

From-SVN: r162193
2010-07-14 21:11:09 +01:00
Mikael Morin 859b660016 trans-array.c (gfc_conv_section_upper_bound): Remove
2010-07-14  Mikael Morin  <mikael@gcc.gnu.org>

	* trans-array.c (gfc_conv_section_upper_bound): Remove
	(gfc_conv_section_startstride): Don't set the upper bound in the 
	vector subscript case. 
	(gfc_conv_loop_setup): Don't use gfc_conv_section_upper_bound

From-SVN: r162191
2010-07-14 19:19:57 +00:00
Ulrich Weigand 588c71dabf spu.c (reg_names): Remove prototype.
* config/spu/spu.c (reg_names): Remove prototype.
	(call_used_regs): Likewise.

From-SVN: r162190
2010-07-14 18:17:13 +00:00
Jason Merrill 973f026a60 re PR c++/44810 (FAIL: g++.dg/torture/pr36745.C)
PR c++/44810
	* g++.dg/torture/pr36745.C: Avoid undefined behavior.

From-SVN: r162189
2010-07-14 13:01:15 -04:00
Jason Merrill 535335bffc init.c (sort_mem_initializers): Rename "field_type" to "ctx".
* init.c (sort_mem_initializers): Rename "field_type" to "ctx".
	(build_field_list): Cache field type.

From-SVN: r162188
2010-07-14 13:01:03 -04:00
Jason Merrill 57ece25833 Implement C++0x unrestricted unions (N2544)
Implement C++0x unrestricted unions (N2544)
	* class.c (check_field_decl): Loosen union handling in C++0x.
	* method.c (walk_field_subobs): Split out from...
	(synthesized_method_walk): ...here.  Set msg before loops.
	(process_subob_fn): Check for triviality in union members.
	* init.c (sort_mem_initializers): Splice out uninitialized
	anonymous unions and union members.
	(push_base_cleanups): Don't automatically destroy anonymous unions
	and union members.

From-SVN: r162187
2010-07-14 13:00:51 -04:00
Dave Korn a9c5db803f cygming-crtend.c (__FRAME_END__): Replace attribute "unused" with attribute "used".
* config/i386/cygming-crtend.c (__FRAME_END__): Replace attribute
	"unused" with attribute "used".
	(__JCR_END__): Likewise.
	* config/i386/cygming-crtbegin.c (__EH_FRAME_BEGIN__): Add missing
	"used" attribute.
	(__JCR_LIST__): Replace attribute "unused" with attribute "used".

From-SVN: r162186
2010-07-14 16:54:14 +00:00
Richard Guenther 61593e5e75 lto-streamer-in.c (maybe_fixup_handled_component): Remove.
2010-07-14  Richard Guenther  <rguenther@suse.de>

	* lto-streamer-in.c (maybe_fixup_handled_component): Remove.
	(maybe_fixup_decls): Likewise.
	(input_gimple_stmt): Do not fixup anything.
	* lto-streamer-out.c (output_gimple_stmt): Make sure all
	non-automatic variable uses are wrapped inside a MEM_REF.

From-SVN: r162185
2010-07-14 16:29:22 +00:00
Richard Henderson fc7fcda12b passes.c (rest_of_decl_compilation): Do not call
* passes.c (rest_of_decl_compilation): Do not call
        * assemble_variable for functions.
        * varasm.c (assemble_variable): Remove early exit for functions;
        assert that we're given a variable.

From-SVN: r162184
2010-07-14 09:22:06 -07:00
Jie Zhang eab3f92e95 cortex-a8.md (cortex_a8_alu): Don't use cortex_a8_default when neon_type is not none.
* config/arm/cortex-a8.md (cortex_a8_alu): Don't use
	cortex_a8_default when neon_type is not none.

From-SVN: r162182
2010-07-14 15:37:44 +00:00
Bernd Schmidt 402464a01f lower-subreg.c (subreg_context): New static bitmap.
* lower-subreg.c (subreg_context): New static bitmap.
	(decompose_multiword_subregs): Allocate and free it.
	(find_decomposable_subregs): Set a bit in it for a register that
	occurs in a subreg that changes mode but not size.
	(can_decompose_p): Test it instead of non_decomposable_context.

From-SVN: r162181
2010-07-14 15:17:28 +00:00
Richard Guenther bf9899d44b re PR middle-end/44824 (internal compiler error: verify_stmts failed)
2010-07-14  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/44824
	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Use
	is_gimple_mem_ref_addr.
	(tree_ssa_forward_propagate_single_use_vars): Do not propagate
	non-decl_address_invariant_p addresses.

From-SVN: r162177
2010-07-14 12:19:16 +00:00
Bernd Schmidt b1c8622e95 reload.c (find_reloads): Revert code to penalize small register classes that was brought in with the IRA...
* reload.c (find_reloads): Revert code to penalize small register
	classes that was brought in with the IRA merge.

From-SVN: r162176
2010-07-14 11:07:17 +00:00
Richard Guenther 2bd6311dbb tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF as base of ARRAY_REFs.
2010-07-14  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-ccp.c (fold_const_aggregate_ref): Handle MEM_REF
	as base of ARRAY_REFs.

From-SVN: r162175
2010-07-14 09:52:01 +00:00
Richard Guenther f051cb5dca re PR target/44930 (another problem with line break in output with -fverbose-asm)
2010-07-14  Richard Guenther  <rguenther@suse.de>

	PR middle-end/44930
	* tree-pretty-print.c (do_niy): Do not print a newline.

From-SVN: r162174
2010-07-14 09:06:34 +00:00
Janus Weil f6199e635e re PR fortran/44925 ([OOP] C_LOC with CLASS pointer)
2010-07-14  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/44925
	* gfortran.h (gfc_is_data_pointer): Remove prototype.
	* dependency.c (gfc_is_data_pointer): Make it static.
	* intrinsic.texi: Update documentation on C_LOC.
	* resolve.c (gfc_iso_c_func_interface): Fix pointer and target checks
	and add a check for polymorphic variables.


2010-07-14  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/44925
	* gfortran.dg/c_loc_tests_15.f90: New.

From-SVN: r162169
2010-07-14 10:09:05 +02:00
Bernd Schmidt fa86d337f6 ira-int.h (ira_object_conflict_iterator): Rename from ira_allocno_conflict_iterator.
* ira-int.h (ira_object_conflict_iterator): Rename from
	ira_allocno_conflict_iterator.
	(ira_object_conflict_iter_init): Rename from
	ira_allocno_conflict_iter_init, second arg changed to
	* ira.c (check_allocation): Use FOR_EACH_OBJECT_CONFLICT rather than
	FOR_EACH_ALLOCNO_CONFLICT.
	* ira-color.c (assign_hard_reg, push_allocno_to_stack)
	setup_allocno_left_conflicts_size, coalesced_allocno_conflict_p,
	ira_reassign_conflict_allocnos, ira_reassign_pseudos): Likewise.
	* ira-conflicts.c (print_allocno_conflicts): Likewise.

From-SVN: r162168
2010-07-14 01:56:32 +00:00
Bernd Schmidt 9140d27b2a ira-int.h (struct live_range): Rename allocno member to object and change type to ira_object_t.
* ira-int.h (struct live_range): Rename allocno member to object and change
	type to ira_object_t.
	(struct ira_object): New member live_ranges.
	(struct ira_allocno): Remove member live_ranges.
	(ALLOCNO_LIVE_RANGES): Remove.
	(OBJECT_LIVE_RANGES): New macro.
	(ira_create_live_range, ira_copy_live_range_list,
	ira_merge_live_range_list, ira_live_ranges_intersect_p,
	ira_finish_live_range, ira_finish_live_range_list): Adjust declarations.
	* ira-build.c (ira_create_object): Initialize live ranges here.
	(ira_create_allocno): Not here.
	(ira_create_live_range): Rename from ira_create_allocno_live_range, arg
	changed to ira_object_t, all callers changed.
	(copy_live_range): Rename from copy_allocno_live_range, all callers
	changed.
	(ira_copy_live_range_list): Rename from ira_copy_allocno_live_range_list,
	all callers changed.
	(ira_merge_live_ranges): Rename from ira_merge_allocno_live_range_list,
	all callers changed.
	(ira_live_ranges_intersect_p): Rename from
	ira_allocno_live_ranges_intersect_p, all callers changed.
	(ira_finish_live_range): Rename from ira_finish_allocno_live_range, all
	callers changed.
	(ira_finish_live_range_list): Rename from
	ira_finish_allocno_live_range_list, all callers changed.
	(change_object_in_range_list): Rename from change_allocno_in_range_list,
	last arg changed to ira_object_t, all callers changed.
	(finish_allocno): Changed to expect live ranges in the allocno's object.
	(move_allocno_live_ranges, copy_allocno_live_ranges,
	update_bad_spill_attribute, setup_min_max_allocno_live_range_point,
	ira_flattening, ira_build): Likewise.
	* ira-color.c (allocnos_have_intersected_live_ranges_p,
	slot_coalesced_allocno_live_ranges_intersect,
	setup_slot_coalesced_allocno_live_ranges, fast_allocation): Likewise.
	* ira-conflicts.c (build_conflict_bit_table): Likewise.
	* ira-emit.c (add_range_and_copies_from_move_list): Likewise.
	* ira-lives.c (make_allocno_born, update_allocno_pressure_excess_length,
	make_allocno_dead, create_start_finish_chains,
	remove_some_program_points_and_update_live_ranges,
	ira_debug_live_range_list): Likewise.

From-SVN: r162167
2010-07-14 01:55:02 +00:00
Bernd Schmidt a49ae21794 ira-int.h (struct ira_object): New.
* ira-int.h (struct ira_object): New.
	(ira_object_t): New typedef.  Add DEF_VEC_P and DEF_VEC_ALLOC_P
	for it.
	(struct ira_allocno): Remove members min, max,
	conflict_allocno_array, conflict_id, conflict_allocno_array_size,
	conflict_allocnos_num and conflict_vec_p.  Add new member object.
	(OBJECT_CONFLICT_ARRAY, OBJECT_CONFLICT_VEC_P,
	OBJECT_NUM_CONFLICTS, OBJECT_CONFLICT_ARRAY_SIZE,
	OBJECT_CONFLICT_HARD_REGS, OBJECT_TOTAL_CONFLICT_HARD_REGS,
	OBJECT_MIN, OBJECT_MAX, OBJECT_CONFLICT_ID): Renamed from
	ALLOCNO_CONFLICT_ALLOCNO_ARRAY, ALLOCNO_CONFLICT_VEC_P,
	ALLOCNO_CONFLICT_ALLOCNOS_NUM, ALLOCNO_CONFLICT_ALLOCNO_ARRAY_SIZE,
	ALLOCNO_CONFLICT_HARD_REGS, ALLOCNO_TOTAL_CONFLICT_HARD_REGS)
	ALLOCNO_MIN, ALLOCNO_MAX, and ALLOCNO_CONFLICT_ID; now operate on
	an ira_object_t rather than ira_allocno_t.  All uses changed.
	(ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
	contains a vector of ira_object_t; all uses changed.
	(ira_objects_num): Declare variable.
	(ira_create_allocno_object): Declare function.
	(ira_conflict_vector_profitable_p): Adjust prototype.
	(ira_allocate_conflict_vec): Renamed from
	ira_allocate_allocno_conflict_vec; first arg now ira_object_t.
	(ira_allocate_object_conflicts): Renamed from
	ira_allocate_allocno_conflicts; first arg now ira_object_t.
	(struct ira_object_iterator): New.
	(ira_object_iter_init, ira_object_iter_cond, FOR_EACH_OBJECT): New.
	(ira_allocno_conflict_iterator): Renamed member allocno_conflict_vec_p
	to conflict_vec_p.  All uses changed.
	(ira_allocno_conflict_iter_init, ira_allocno_conflict_iter_cond):
	Changed to take into account that conflicts are now tracked for
	objects.
	* ira-conflicts.c (OBJECTS_CONFLICT_P): Renamed from
	CONFLICT_ALLOCNO_P.  Args changed to accept ira_object_t.  All
	uses changed.
	(allocnos_conflict_p): New static function.
	(collected_conflict_objects): Renamed from collected_allocno_objects;
	now a vector of ira_object_t.  All uses changed.
	(build_conflict_bit_table): Changed to take into account that
	conflicts are now tracked for objects.
	(process_regs_for_copy, propagate_copies, build_allocno_conflicts)
	(print_allocno_conflicts, ira_build_conflicts): Likewise.
	* ira-color.c (assign_hard_reg, setup_allocno_available_regs_num)
	setup_allocno_left_conflicts_size, allocno_reload_assign,
	fast_allocation): Likewise.
	* ira-lives.c (make_hard_regno_born, make_allocno_born)
	process_single_reg_class_operands, process_bb_node_lives): Likewise.
	* ira-emit.c (modify_move_list, add_range_and_copies_from_move_list):
	Likewise.
	* ira-build.c (ira_objects_num): New variable.
	(ira_object_id_map): Renamed from ira_conflict_id_allocno_map; now
	contains a vector of ira_object_t; all uses changed.
	(ira_object_id_map_vec): Corresponding change.
	(object_pool): New static variable.
	(initiate_allocnos): Initialize it.
	(finish_allocnos): Free it.
	(ira_create_object, ira_create_allocno_object, create_allocno_objects):
	New functions.
	(ira_create_allocno): Don't set members that were removed.
	(ira_set_allocno_cover_class): Don't change conflict hard regs.
	(merge_hard_reg_conflicts): Changed to take into account that
	conflicts are now tracked for objects.
	(ira_conflict_vector_profitable_p, ira_allocate_conflict_vec,
	allocate_conflict_bit_vec, ira_allocate_object_conflicts,
	compress_conflict_vecs, remove_low_level_allocnos, ira_flattening,
	setup_min_max_allocno_live_range_point, allocno_range_compare_func,
	setup_min_max_conflict_allocno_ids, ):  Likewise.
	((add_to_conflicts): Renamed from add_to_allocno_conflicts, args changed
	to ira_object_t; all callers changed.
	(ira_add_conflict): Renamed from ira_add_allocno_conflict, args changed
	to ira_object_t, all callers changed.
	(clear_conflicts): Renamed from clear_allocno_conflicts, arg changed
	to ira_object_t, all callers changed.
	(conflict_check, curr_conflict_check_tick): Renamed from
	allocno_conflict_check and curr_allocno_conflict_check_tick; all uses
	changed.
	(compress_conflict_vec): Renamed from compress_allocno_conflict_vec,
	arg changed to ira_object_t, all callers changed.
	(create_cap_allocno): Call ira_create_allocno_object.
	(finish_allocno): Free the corresponding object.
	(sort_conflict_id_map): Renamed from sort_conflict_id_allocno_map; all
	callers changed.  Adjusted for dealing with objects.
	(ira_build): Call create_allocno_objects after ira_costs.  Adjusted for
	dealing with objects.
	* ira.c (ira_bad_reload_regno_1): Adjusted for dealing with objects.

From-SVN: r162166
2010-07-14 01:53:35 +00:00