Commit Graph

102007 Commits

Author SHA1 Message Date
Richard Henderson
17959958bc Remove duplicate definition of TARGET_64BIT_MS_ABI.
The definition in cygming.h differed from the definition in i386.h in
that the predicate was true for 32-bit when outside of any function.
Which (a) seems wrong and (b) never matters because the predicate is
only tested in terms of REGPARM and RED_ZONE, both of which are tied
to functions.

From-SVN: r162887
2010-08-04 16:58:14 -07:00
Richard Henderson
e8dc4658fa Cleanup 32-bit ms_hook code.
Emit the entire required hook code sequence via ASM_BYTE; emit
unwind info onto a blockage insn.

Remove the vswapmov pattern.

Fix indentation in several places.

From-SVN: r162886
2010-08-04 16:58:08 -07:00
Richard Henderson
2550204162 Consolidate red-zone logic into ix86_using_red_zone.
From-SVN: r162885
2010-08-04 16:58:02 -07:00
Richard Henderson
cdcb5f261e Simplify logic saving the int registers in the prologue.
From-SVN: r162884
2010-08-04 16:57:56 -07:00
Richard Henderson
9bf40564e1 Eliminate most of the conditional compilation from dwarf2out.c.
Trying to reduce the amount of code compiled when dwarf2 debug
info and/or dwarf2 unwind info are disabled results in a twisted
mess.  Don't bother -- just build it all even if it's not going
to be used.

From-SVN: r162883
2010-08-04 16:57:50 -07:00
Richard Henderson
e78f1a3f67 re PR debug/45171 (Invalid DWARF...DIE 0x00006a1d has multiple AT_byte_size attributes.)
PR debug/45171
* dwarf2out.c (gen_typedef_die): Don't re-generate the die of
an is_naming_typedef_decl.

From-SVN: r162882
2010-08-04 16:32:08 -07:00
Bernd Schmidt
fde157f2ed re PR rtl-optimization/45162 (ARM bootstrap comparison failures after stage 3)
PR rtl-optimization/45162
	* df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs.
	* dce.c (word_dce_process_block): Likewise.

From-SVN: r162881
2010-08-04 21:07:05 +00:00
Changpeng Fang
69df3daed3 Add Changpeng Fang to the Write After Approval list
From-SVN: r162880
2010-08-04 20:48:50 +00:00
Janus Weil
e10f52d099 re PR fortran/42207 ([OOP] Compile-time errors on typed allocation and pointer function result assignment)
2010-08-04  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/42207
	PR fortran/44064
	PR fortran/44065
	* class.c (gfc_find_derived_vtab): Do not generate vtabs for class
	container types. Do not artificially increase refs. Commit symbols one
	by one.
	* interface.c (compare_parameter): Make sure vtabs are present before
	generating module variables.
	* resolve.c (resolve_allocate_expr): Ditto.


2010-08-04  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/42207
	PR fortran/44064
	PR fortran/44065
	* gfortran.dg/class_25.f03: New.
	* gfortran.dg/class_26.f03: New.

From-SVN: r162879
2010-08-04 21:49:19 +02:00
Daniel Gutson
0e884a9464 * g++.dg/warn/miss-format-1.C: Update line number.
From-SVN: r162872
2010-08-04 19:01:24 +00:00
Tobias Burnus
c130efd5b9 re PR fortran/45183 (FAIL: gfortran.dg/derived_constructor_char_1.f90)
2010-08-04  Tobias Burnus  <burnus@net-b.de>

        PR fortran/45183
        PR fortran/44857
        * resolve.c (resolve_structure_cons): Fix
        freeing of charlen.

From-SVN: r162871
2010-08-04 20:49:23 +02:00
Steve Ellcey
339746734a re PR target/44583 (c-c++-common/torture/complex-sign-add.c fails for signed zeros)
2010-07-29  Steve Ellcey  <sje@cup.hp.com>

	PR target/44583
	* config/ia64/constraints.md (Z): New.
	* config/ia64/predicates.md (fr_reg_or_signed_fp01_operand): New.
	(xfreg_or_signed_fp01_operand): New.
	* config/ia64/ia64.md (addsf3): Replace fr_reg_or_fp01_operand
	with fr_reg_or_signed_fp01_operand and constraint G with Z.
	(subsf3): Ditto.
	(*maddsf4): Ditto.
	(*msubsf4): Ditto.
	(adddf3): Ditto.
	(adddf3_trunc): Ditto.
	(subdf3): Ditto.
	(*subdf3_trunc): Ditto.
	(*madddf4): Ditto.
	(*madddf4_trunc): Ditto.
	(*msubdf4): Ditto.
	(*msubdf4_trunc): Ditto.
	(addxf3): Replace xfreg_or_fp01_operand with
	xfreg_or_signed_fp01_operand and constraint G with Z.
	(*addxf3_truncsf): Ditto.
	(*addxf3_truncdf): Ditto.
	(subxf3): Ditto.
	(*subxf3_truncsf): Ditto.
	(*subxf3_truncdf): Ditto.
	(*maddxf4): Ditto.
	(*maddxf4_truncsf): Ditto.
	(*maddxf4_truncdf): Ditto.
	(*msubxf4): Ditto.
	(*msubxf4_truncsf): Ditto.
	(*msubxf4_truncdf): Ditto.

From-SVN: r162869
2010-08-04 18:32:37 +00:00
Arnaud Charlet
3b0c690efc c-ada-spec.c (dump_ada_template): Mark underlying instance type as visited.
* c-ada-spec.c (dump_ada_template): Mark underlying instance type as
	visited.
	(dump_generic_ada_node): Code clean up. Use TREE_VISITED flag to
	decide whether a type has already been declared/seen.
	Do not go to the original type.
	(dump_nested_types): New parameter forward.
	Generate forward declaration if needed and mark type as visited.
	(print_ada_declaration): Call dump_nested_types if not already done.
	Mark types as visited.

From-SVN: r162868
2010-08-04 17:50:10 +02:00
Richard Guenther
55e3bc4cec alias.c (rtx_refs_may_alias_p): Do not resort to TBAA if either alias-set is zero.
2010-08-04  Richard Guenther  <rguenther@suse.de>

	* alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
	if either alias-set is zero.

From-SVN: r162867
2010-08-04 15:35:21 +00:00
Uros Bizjak
079e56d05c re PR c++/44641 (Generated constructors and destructors get wrong debug location when a typedef uses a forward declaration of the type before the definition)
PR c++/44641
	* lib/scanasm.exp (dg-function-on-line): Expand regex to also ignore
	.frame and .mask assembler directives.

From-SVN: r162866
2010-08-04 16:19:01 +02:00
Mikael Morin
4bc20f3a3f re PR fortran/42051 ([OOP] ICE on array-valued function with CLASS formal argument)
2010-08-04  Mikael Morin  <mikael@gcc.gnu.org>

	PR fortran/42051
	PR fortran/44064
	* symbol.c (changed_syms): Made static again.
	(gfc_symbol_state): Don't conditionalize on GFC_DEBUG. 
	Changed conditional internal error into assert.
	Rename function to ...
	(gfc_enforce_clean_symbol_state): ... this.
	* gfortran.h (gfc_symbol_state, gfc_enforce_clean_symbol_state): 
	Rename the former to the latter.
	* parse.c (decode_statement, decode_omp_directive,
	decode_gcc_attribute): Update callers accordingly. Don't conditionalize
	on GFC_DEBUG.
	(changed_syms): Remove declaration.
	(next_statement): Use gfc_enforce_clean_symbol_state.

From-SVN: r162865
2010-08-04 14:17:31 +00:00
Richard Guenther
455e6d5ba7 tree-ssa-propagate.h (struct prop_value_d, [...]): Move ...
2010-08-04  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
	* tree-ssa-ccp.c: ... here.
	* tree-ssa-copy.c: ... and here.
	* tree-ssa-propagate.h (enum value_range_type, struct value_range_d, 
	value_range_t): Move ...
	* tree-vrp.c: ... here.
	* tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
	(substitute_and_fold): Adjust prototype.
	* tree-ssa-propagate.c (replace_uses_in): Adjust.
	(replace_phi_args_in): Likewise.
	(substitute_and_fold): Take callback to query lattice instead
	of pointer to lattice.  Replace SSA name defs with lattice
	values first.
	* tree-ssa-ccp.c (ccp_finalize): Adjust.
	* tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
	(get_value): New function.
	(fini_copy_prop): Adjust.
	* tree-vrp.c (vrp_finalize): Adjust.

	* gcc.dg/tree-ssa/vrp35.c: Adjust.
	* gcc.dg/tree-ssa/vrp36.c: Likewise.
	* gcc.dg/tree-ssa/vrp50.c: Likewise.
	* gcc.dg/tree-ssa/vrp52.c: Likewise.

From-SVN: r162864
2010-08-04 12:29:48 +00:00
Tobias Burnus
a48a91732b re PR fortran/44857 (ICE in output_constructor_regular_field, at varasm.c:4996)
2010-08-04  Tobias Burnus  <burnus@net-b.de>

        PR fortran/44857
        * resolve.c (resolve_structure_cons): Fix handling of
        initialization structcture constructors with character
        elements of the wrong length.
        * array.c (gfc_check_iter_variable): Add NULL check.
        (gfc_resolve_character_array_constructor): Also truncate
        character length.

2010-08-04  Tobias Burnus  <burnus@net-b.de>

        PR fortran/44857
        * gfortran.dg/derived_constructor_char_1.f90: New.
        * gfortran.dg/derived_constructor_char_2.f90: New.

From-SVN: r162863
2010-08-04 13:51:32 +02:00
Richard Guenther
48176d8100 re PR middle-end/45176 (restrict qualifier is not used in a manually unrolled loop)
2010-08-04  Richard Guenther  <rguenther@suse.de>

	PR middle-end/45176
	* expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
	points-to set for original MEM_REF.

From-SVN: r162862
2010-08-04 11:08:54 +00:00
Richard Guenther
84d77ca61a tree-ssa-ccp.c (get_constant_value): New function.
2010-08-04  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-ccp.c (get_constant_value): New function.
	(get_rhs_assign_op_for_ccp): Remove.
	(valueize_op): New function.
	(ccp_fold): Use get_constant_value and valueize_op.
	(fold_const_aggregate_ref): Likewise.
	(ccp_fold_stmt): Likewise.
	(visit_assignment): Simplify.

From-SVN: r162860
2010-08-04 09:16:58 +00:00
Richard Guenther
552cbe64b6 Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
2010-08-04  Richard Guenther  <rguenther@suse.de>

	* Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
	* double-int.h (double_int_ctz): Declare.
	* double-int.c (double_int_ctz): New function.

From-SVN: r162859
2010-08-04 09:15:51 +00:00
Hariharan Sandanagobalane
31af83671c picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
* config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
          Define.
          picochip_expand_movmemhi : Expand movmem pattern.
        * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
          Declare.
        * config/picochip/picochip.md (movmemhi) : New pattern.

From-SVN: r162858
2010-08-04 09:02:48 +00:00
Tobias Burnus
a19d2b955a trans-io.c (gfc_build_io_library_fndecls): Fix return value of some libgfortran functions.
2010-08-04  Tobias Burnus  <burnus@net-b.de>

        * trans-io.c (gfc_build_io_library_fndecls): Fix return
        value of some libgfortran functions.

From-SVN: r162857
2010-08-04 10:56:32 +02:00
Uros Bizjak
f39cd38b27 unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
* config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.

From-SVN: r162855
2010-08-04 09:07:17 +02:00
Eric Botcazou
56345d11f8 decl.c: Do not undefine IN_GCC_FRONTEND and do not include expr.h.
* gcc-interface/decl.c: Do not undefine IN_GCC_FRONTEND and do not
	include expr.h.
	(gnat_to_gnu_entity) <object>: Force address of -1 at the tree level
	for the debug-only entity.
	* gcc-interface/Make-lang.in (ada/decl.o): Adjust dependencies.

From-SVN: r162854
2010-08-04 06:49:08 +00:00
GCC Administrator
59c724ac20 Daily bump.
From-SVN: r162853
2010-08-04 00:17:28 +00:00
Bernd Schmidt
29b40d79bb simplify-rtx.c (simplify_binary_operation_1): Try to simplify away NEG as operand of a MULT by merging it with the other operand.
* simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
	NEG as operand of a MULT by merging it with the other operand.
	* combine.c (make_compound_operation): Use trunc_int_for_mode when
	generating a MULT with constant.  Canonicalize PLUS and MINUS involving
	MULT.
	* config/arm/constraints.md (M): Examine only 32 bits of a
	HOST_WIDE_INT.
	* config/arm/predicates.md (power_of_two_operand): Likewise.

From-SVN: r162849
2010-08-03 23:48:52 +00:00
Thomas Koenig
15b71db372 re PR fortran/45159 (Unnecessary temporaries)
2010-08-03  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/45159
	* dependency.c (gfc_deb_compare_expr):  Remove any integer
	conversion functions to larger types from both arguments.
	Remove handling these functions futher down.

2010-08-03  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/45159
	* gfortran.dg/dependency_30.f90:  New test.

From-SVN: r162848
2010-08-03 22:02:30 +00:00
Ulrich Weigand
051de0eb4f spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of non-NOTE insns.
* config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
	non-NOTE insns.

From-SVN: r162845
2010-08-03 18:01:52 +00:00
Jan Hubicka
241a2b9ec2 ipa-split.c (struct split_point): Add split_part_set_retval.
* ipa-split.c (struct split_point): Add split_part_set_retval.
	(find_retval): Forward declare.
	(test_nonssa_use, mark_nonssa_use): Special case return by reference.
	(consider_split): Compute current->split_part_set_retval.
	(visit_bb): Do not look into return value.
	(split_function): Handle !split_part_set_retval

From-SVN: r162842
2010-08-03 14:23:04 +00:00
Martin Jambor
fc734382d1 tree-sra.c (completely_scalarize_record): New parameter REF, create its own access->expr intead of using build_ref_for_offset.
2010-08-03  Martin Jambor  <mjambor@suse.cz>

	* tree-sra.c (completely_scalarize_record): New parameter REF, create
	its own access->expr intead of using build_ref_for_offset.

From-SVN: r162841
2010-08-03 13:50:25 +02:00
Janus Weil
aea18e926a re PR fortran/44584 (Invalid memory access with gfortran.dg/typebound_proc_15.f03)
2010-08-03  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/44584
	PR fortran/45161
	* class.c (add_procs_to_declared_vtab1): Don't add erroneous procedures.
	* resolve.c (resolve_tb_generic_targets): Check for errors.


2010-08-03  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/44584
	PR fortran/45161
	* gfortran.dg/typebound_call_9.f03: Modified.
	* gfortran.dg/typebound_generic_1.f03: Modified.

From-SVN: r162840
2010-08-03 13:08:50 +02:00
Joseph Myers
1890bccc84 alpha.h (SWITCH_TAKES_ARG): Define.
* config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
	* config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
	* config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G*
	options.
	* config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
	* config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
	* config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
	* config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
	DEFAULT_SWITCH_TAKES_ARG.
	* config/rx/rx.opt (-patch=): Remove option.
	* config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
	* defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
	* doc/invoke.texi (RX Options): Remove -patch=.
	* gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
	(option_map): Remove --profile-blocks, --quiet and --silent.

ada:
	* gcc-interface/lang-specs.h: Don't pass -a options.

c-family:
	* c.opt (-print-pch-checksum): Remove option.
	* c-opts.c (c_common_handle_option): Don't handle
	OPT_print_pch_checksum.

From-SVN: r162838
2010-08-03 10:42:46 +01:00
Uros Bizjak
dc91d89279 i386.h (ix86_compare_op0, [...]): Remove.
* config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
	* config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
	(ix86_expand_branch): Add op0 and op1 arguments.  Do not access
	ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
	Update calls to ix86_expand_compare and ix86_expand_branch.
	(ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
	ix86_expand_compare.
	(ix86_expand_compare): Add op0 and op1 arguments.  Do not access
	ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
	Make static.
	(ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
	and ix86_compare_op1.  Update calls to ix86_expand_compare.
	(ix86_expand_int_movcc): Ditto.
	(ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
	* config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
	(ix86_expand_setcc): Ditto.
	(ix86_expand_compare): Remove prototype.
	* config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
	ix86_compare_op0 and ix86_compare_op1.  Update calls
	to ix86_expand_branch to directly pass operands[1] and operands[2].
	(cbranchxf4): Ditto.
	(cbranch<MODEF:mode>4): Ditto.
	(cbranchcc4): Ditto.
	(cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
	Update calls to ix86_expand_setcc to directly pass operands[2] and
	operands[3].
	(cstorexf4): Ditto.
	(cstore<MODEF:mode>4): Ditto.
	(cstorecc4): Ditto.

From-SVN: r162837
2010-08-03 11:25:22 +02:00
GCC Administrator
d518b5e9c7 Daily bump.
From-SVN: r162834
2010-08-03 00:17:02 +00:00
Thomas Koenig
1d1002304e re PR fortran/45159 (Unnecessary temporaries)
2010-08-02  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/45159
	* depencency.c (gfc_dep_resolver):  Fix logic for when a loop
	can be reversed.

2010-08-02  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/45159

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

From-SVN: r162829
2010-08-02 22:04:36 +00:00
Bernd Schmidt
14292418cb re PR target/45063 (ICE: Segmentation fault (cc1) compiling matmul_i1.c)
PR target/45063
	* caller-save.c (save_call_clobbered_regs): Remove regs from
	hard_regs_saved when they are set.

From-SVN: r162828
2010-08-02 20:17:59 +00:00
Uros Bizjak
fea8c25725 alpha.c (alpha_build_builtin_va_list): Mark __offset as volatile.
target/41089
	* config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
	as volatile.

From-SVN: r162826
2010-08-02 19:26:40 +02:00
Thomas Koenig
071bdb5f22 re PR fortran/36854 ([meta-bug] fortran front-end optimization)
2010-08-02  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/36854
	* dependency.h:  Add prototype for gfc_are_identical_variables.
	* frontend-passes.c:  Include depencency.h.
	(optimimize_equality):  Use gfc_are_identical_variables.
	* dependency.c (identical_array_ref): New function.
	(gfc_are_identical_variables):  New function.
	(gfc_deb_compare_expr):  Use gfc_are_identical_variables.
	* dependency.c (gfc_check_section_vs_section).  Rename gfc_
	prefix from statc function.
	(check_section_vs_section): Change arguments to gfc_array_ref,
	adjust function body accordingly.

2010-08-02  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/36854
	* gfortran.dg/character_comparison_2.f90:  New test.
	* gfortran.dg/character_comparison_3.f90:  New test.
	* gfortran.dg/dependency_28.f90:  New test.

From-SVN: r162824
2010-08-02 16:53:51 +00:00
Sebastian Pop
20769d5eb6 Add -ftree-loop-distribute-patterns enabled at -O3.
2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>

	* common.opt (ftree-loop-distribute-patterns): New.
	* invoke.texi (-ftree-loop-distribute-patterns): Documented.
	* opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
	at -O3.
	* tree-data-ref.c (stores_zero_from_loop): New.
	* tree-data-ref.h (stores_zero_from_loop): Declared.
	* tree-loop-distribution.c (tree_loop_distribution): Call
	stores_zero_from_loop.
	(tree_loop_distribution): Check flag_tree_loop_distribute_patterns.

From-SVN: r162822
2010-08-02 16:20:36 +00:00
Mikael Morin
ef973f3f4b re PR fortran/42051 ([OOP] ICE on array-valued function with CLASS formal argument)
2010-08-02  Mikael Morin  <mikael@gcc.gnu.org>
	    Janus Weil  <janus@gcc.gnu.org>

	PR fortran/42051
	PR fortran/44064
	PR fortran/45151
	* intrinsic.c (gfc_get_intrinsic_sub_symbol): Commit changed symbol. 
	* symbol.c (gen_cptr_param, gen_fptr_param, gen_shape_param,
	gfc_copy_formal_args, gfc_copy_formal_args_intr,
	gfc_copy_formal_args_ppc, generate_isocbinding_symbol): Ditto.
	* parse.c (parse_derived_contains, parse_spec, parse_progunit): 
	Call reject_statement in case of error. 
	(match_deferred_characteritics): Call gfc_undo_symbols in case match
	fails.


Co-Authored-By: Janus Weil <janus@gcc.gnu.org>

From-SVN: r162821
2010-08-02 15:30:47 +00:00
Bernd Schmidt
13cc4787bf arm.c (arm_rtx_costs_1): Remove second clause from the if statement which adds extra costs to...
* config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
	if statement which adds extra costs to frame-related expressions.

From-SVN: r162816
2010-08-02 10:21:05 +00:00
Bernd Schmidt
3711941045 re PR target/40457 (use stm and ldm to access consecutive memory words)
PR target/40457
	* config/arm/arm.h (arm_regs_in_sequence): Declare.
	* config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
	load_multiple_sequence, store_multiple_sequence): Delete
	declarations.
	(arm_gen_load_multiple, arm_gen_store_multiple): Adjust
	declarations.
	* config/arm/ldmstm.md: New file.
	* config/arm/arm.c (arm_regs_in_sequence): New array.
	(load_multiple_sequence): Now static.  New args SAVED_ORDER,
	CHECK_REGS.  All callers changed.
	If SAVED_ORDER is nonnull, copy the computed order into it.
	If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
	(store_multiple_sequence): Now static.  New args NOPS_TOTAL,
	SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
	If SAVED_ORDER is nonnull, copy the computed order into it.
	If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
	like REGS.  Handle Thumb mode.
	(arm_gen_load_multiple_1): New function, broken out of
	arm_gen_load_multiple.
	(arm_gen_store_multiple_1): New function, broken out of
	arm_gen_store_multiple.
	(arm_gen_multiple_op): New function, with code from
	arm_gen_load_multiple and arm_gen_store_multiple moved here.
	(arm_gen_load_multiple, arm_gen_store_multiple): Now just
	wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
	changed.
	(gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
	* config/arm/predicates.md (commutative_binary_operator): New.
	(load_multiple_operation, store_multiple_operation): Handle more
	variants of these patterns with different starting offsets.  Handle
	Thumb-1.
	* config/arm/arm.md: Include "ldmstm.md".
	(ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
	ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
	stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
	peepholes): Delete.
	* config/arm/ldmstm.md: New file.
	* config/arm/arm-ldmstm.ml: New file.

testsuite/
	PR target/40457
	* gcc.target/arm/pr40457-1.c: New test.
	* gcc.target/arm/pr40457-2.c: New test.

From-SVN: r162815
2010-08-02 10:06:47 +00:00
Bernd Schmidt
0bd44ba2e1 thumb2.md (thumb2_movdi, [...]): Delete patterns.
* config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
	thumb2_movdf_soft_insn): Delete patterns.
	* config/arm/arm.md (arm_pool_range, thumb2_pool_range,
	arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
	(pool_range, neg_pool_range): Use them to define defaults.
	(movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
	and allow for TARGET_32BIT.

From-SVN: r162814
2010-08-02 09:53:58 +00:00
Bernd Schmidt
906668bb6f final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
* final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
	* config/arm/arm.c (thumb1_code): New variable.
	(arm_override_options): Set it.
	(thumb1_final_prescan_insn): Keep track of condition code status.
	(arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
	jumps that depend on them.
	* config/arm/arm.h (thumb1_code): Declare variable.
	(struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
	members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
	thumb1_cc_mode.
	(CC_STATUS_INIT): New macro.
	* config/arm/constraints.md (Pd): New constraint.
	* config/arm/predicates.md (noov_comparison_operator): New predicate.
	* config/arm/arm.md (is_thumb1): New define_attr.
	(conds): Set default to "clob" when generating Thumb1 code.
	(thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
	code are set.  Use two-operand assembly syntax.
	(thumb1_subsi3_insn): Condition codes are set.  Now a properly named
	pattern.
	(thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
	codes are set.  Use two-operand assembly syntax.
	(zero_extendhisi splitter): Remove constraints.
	(thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
	thumb1_movsf_insn): Set conds attribute as appropriate.
	(cbranchsi4_insn): Use condition code status from struct
	machine_function to determine whether the comparison can be eliminated.
	Discourage the alternative using high registers.
	(movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
	orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
	bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
	subsi3_cbranch): Delete.
	(movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
	one subtract and one cbranch insn.

From-SVN: r162813
2010-08-02 09:51:39 +00:00
Bernd Schmidt
f37e278a15 postreload.c (reload_cse_simplify_operands): Take attribute enabled into account.
* postreload.c (reload_cse_simplify_operands): Take attribute enabled
	into account.

From-SVN: r162812
2010-08-02 09:42:37 +00:00
Ramana Radhakrishnan
0eeeef0768 arm.c (COSTS_N_INSNS): Remove definition.
2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	* config/arm/arm.c (COSTS_N_INSNS): Remove definition.

From-SVN: r162811
2010-08-02 08:52:15 +00:00
Janne Blomqvist
3571367557 Don't update the position flag for non-seekable files, check for stell() error.
From-SVN: r162810
2010-08-02 09:22:23 +03:00
GCC Administrator
0093ddee96 Daily bump.
From-SVN: r162809
2010-08-02 00:17:15 +00:00
Gerald Pfeifer
dd9120005c update_web_docs_libstdcxx_svn: Do not compress generated .html files any more.
* update_web_docs_libstdcxx_svn: Do not compress generated .html
	files any more.

From-SVN: r162805
2010-08-01 21:10:55 +00:00