Commit Graph

31682 Commits

Author SHA1 Message Date
Richard Sandiford bda2a57174 m68k-protos.h (valid_mov3q_const): Take a HOST_WIDE_INT and return a bool.
gcc/
	* config/m68k/m68k-protos.h (valid_mov3q_const): Take a HOST_WIDE_INT
	and return a bool.
	(output_move_const_into_data_reg, output_move_simode_const): Delete.
	* config/m68k/m68k.c (const_method, const_int_cost): Take a
	HOST_WIDE_INT instead of an rtx.
	(m68k_rtx_costs): Update call accordingly.
	(output_move_const_into_data_reg): Likewise.  Fix formatting.
	(valid_mov3q_const): Take a HOST_WIDE_INT instead of an rtx.
	Return a bool.
	(output_move_simode_const): Update calls after above changes.
	Rework to use automatic variables and predicates like MEM_P.
	* config/m68k/m68k.md (pushexthisi_const): Update call to
	valid_mov3q_const.

From-SVN: r120957
2007-01-19 13:28:57 +00:00
Dirk Mueller 23e739936e tree-ssa-alias.c (perform_var_substitution): Fix typo in dump_flags test.
2007-01-19  Dirk Mueller  <dmueller@suse.de>

       * tree-ssa-alias.c (perform_var_substitution): Fix typo
       in dump_flags test.

From-SVN: r120954
2007-01-19 11:51:25 +00:00
Richard Guenther b54c5497e5 builtins.c (expand_builtin_cexpi): Fall back to expanding via cexp in case sincos is not available.
2007-01-19  Richard Guenther  <rguenther@suse.de>

	* builtins.c (expand_builtin_cexpi): Fall back to expanding
	via cexp in case sincos is not available.

From-SVN: r120953
2007-01-19 11:13:24 +00:00
Richard Guenther 006339cde4 tm.texi (TARGET_HAS_SINCOS): Document new target macro.
2007-01-19  Richard Guenther  <rguenther@suse.de>

	* doc/tm.texi (TARGET_HAS_SINCOS): Document new target macro.
	* defaults.h (TARGET_HAS_SINCOS): Default to off.
	* config/linux.h (TARGET_HAS_SINCOS): Set to on if we have glibc.
	* config/alpha/linux.h (TARGET_HAS_SINCOS): Likewise.
	* config/sparc/linux.h (TARGET_HAS_SINCOS): Likewise.
	* config/sparc/linux64.h (TARGET_HAS_SINCOS): Likewise.
	* config/rs6000/linux.h (TARGET_HAS_SINCOS): Likewise.
	* config/rs6000/linux64.h (TARGET_HAS_SINCOS): Likewise.

From-SVN: r120952
2007-01-19 11:06:56 +00:00
Uros Bizjak 8ef4f42c93 i386.md (*fpatanxf3_i387, [...]): New insn patterns.
* config/i386/i386.md (*fpatanxf3_i387, fpatan_extend<mode>xf3_i387):
	New insn patterns.
	(atan2sf3_1, atan2df3_1, atan2xf3_1): Remove insn patterns.
	(atan2xf3): Directly generate RTL pattern.
	(atan2<mode>3): Rename from atan2sf3 and atan2df3 and macroize insn
	patterns using X87MODEF12 mode macro.  Use fpatan_extend<mode>xf3_i387
	and truncate result to requested mode.  Use SSE_FLOAT_MODE_P to
	disable patterns for SSE math.
	(atan<mode>2): Rename from atansf2 and atandf2 and macroize insn
	patterns using X87MODEF12 mode macro.  Use fpatan_extend<mode>xf3_i387
	and truncate result to requested mode.  Use SSE_FLOAT_MODE_P to
	disable patterns for SSE math.

From-SVN: r120950
2007-01-19 09:59:39 +01:00
Alexandre Oliva fe30b1f37e * libgcc-std.ver: Fix typo in %inherit for GCC_4.3.0.
From-SVN: r120948
2007-01-19 06:27:18 +00:00
Roger Sayle f85242f0ce fold-const.c (fold_unary): Optimize away a VIEW_CONVERT_EXPR to the same type as it's operand.
* fold-const.c (fold_unary) <VIEW_CONVERT_EXPR>: Optimize away a
	VIEW_CONVERT_EXPR to the same type as it's operand.

From-SVN: r120945
2007-01-19 00:30:47 +00:00
David Edelsohn 7fcc054b8f darwin-ldouble.c: Only build _SOFT_FLOAT if configured for long double 128.
* config/rs6000/darwin-ldouble.c: Only build _SOFT_FLOAT if
        configured for long double 128.

From-SVN: r120938
2007-01-18 18:43:08 -05:00
Mike Stump d1123cdeb3 rs6000.c (rs6000_emit_vector_compare): Fix build error.
* config/rs6000/rs6000.c (rs6000_emit_vector_compare): Fix build
	error.

From-SVN: r120935
2007-01-18 22:15:36 +00:00
Michael Meissner 7874f14d88 Make #if 0 type correct
From-SVN: r120934
2007-01-18 22:12:49 +00:00
Jan Hubicka 4cdffd965f tree-ssa-operands.c (vop_free_bucket_size): Never return value greater than NUM_VOP_FREE_BUCKETS.
* tree-ssa-operands.c (vop_free_bucket_size): Never return value
	greater than NUM_VOP_FREE_BUCKETS.

From-SVN: r120933
2007-01-18 21:58:18 +00:00
Daniel Berlin 3e5937d7b3 tree-ssa-structalias.c: Update comments.
2007-01-18  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-structalias.c: Update comments.
	(ptabitmap_obstack): Removed.
	(pta_obstack): New.
	(oldpta_obstack): Ditto.
	(stats): Add a few members.
	(struct variable_info): Remove node, complex, address_taken, and
	indirect_target members. Add oldsolution member.
	(new_var_info): Do not initialize removed members.
	(constraint_expr_type): Remove INCLUDES.
	(constraint_graph): Add size, implicit_preds, rep,
	indirect_cycles, eq_rep, label, direct_nodes, and complex members.
	(FIRST_REF_NODE): New macro.
	(LAST_REF_NODE): Ditto.
	(FIRST_ADDR_NODE): Ditto.
	(find): New function.
	(unite): Ditto.
	(dump_constraint): Do not handle INCLUDES.
	(insert_into_complex): Do not insert duplicate constraints.
	(condense_varmap_nodes): Renamed and rewritten into ...
	(merge_node_constraints): This. Also fix bug in handling of
	offseted copy constraints.
	(clear_edges_for_node): No longer need to deal with preds at all,
	or removing associated preds/succs. 
	(merge_graph_nodes): Deal with indirect_cycles.
	Don't deal with predecessors.
	(add_implicit_graph_edge): New function.
	(add_pred_graph_edge): Ditto.
	(add_graph_edge): Don't deal with predecessors.
	(build_constraint_graph): Removed.
	(build_pred_graph): New function.
	(build_succ_graph): Ditto.
	(struct scc_info): Removed in_component. Added roots, dfs, and
	node_mapping. Remove visited_index, unification_queue.
	(scc_visit): Deal with union-find we do now.
	Deal with cycles with REF nodes.
	(collapse_nodes): Renamed and rewritten to ...
	(unify_nodes): This.
	(process_unification_queue): Removed.
	(topo_visit): Cleanup
	(do_da_constraint): Use find.
	(do_sd_constraint): Ditto.
	(do_ds_constraint): Ditto.
	(do_complex_constraint): Ditto.
	(init_scc_info): Update for removed and added members.
	(find_and_collapse_graph_cycles): Renamed and rewritten into ...
	(find_indirect_cycles): This.
	(equivalence_class): New variable.
	(label_visit): New function.
	(perform_variable_substitution): Rewritten.
	(free_var_substitution_info): New function.
	(find_equivalent_node): Ditto.
	(move_complex_constraints): Ditto.
	(eliminate_indirect_cycles): Ditto.
	(solve_graph): Only propagate changed bits.
	Use indirect cycle elimination.
	Use find.
	(tree_id_t): Rename to tree_vi_t, delete id member, add vi member.
	(tree_id_eq): Renamed to ...
	(tree_vi_eq): This. Update for member change
	(insert_id_for_tree): Renamed and rewritten to ...
	(insert_vi_for_tree): This.
	(lookup_id_for_tree): Renamed and rewritten to ...
	(lookup_vi_for_tree): This.
	(get_id_for_tree): Renamed and rewritten to ...
	(get_vi_for_tree): Ditto.
	(get_constraint_exp_from_ssa_var): Update to use get_vi_for_tree.
	(process_constraint): Don't handle INCLUDES.
	Remove special ADDRESSOF case.
	(find_func_aliases): Rewrite to use vi functions instead of id
	ones.
	(create_function_info_for): Ditto.
	(create_variable_info_for): Ditto.
	(intra_create_variable_infos): Ditto.
	(merge_smts_into): Ditto.
	(find_what_p_points_to): Ditto.
	(init_base_vars): Ditto.
	(init_alias_vars): Ditto.
	(remove_preds_and_fake_succs): New function.
	(dump_sa_points_to_info): Dump new stats.
	(dump_solution_for_var): Use find.
	(set_used_smts): Fix formatting.
	(compute_points_to_sets): Updated for new functions.
	(ipa_pta_execute): Ditto.

From-SVN: r120931
2007-01-18 21:30:38 +00:00
Kazu Hirata 576c9028f0 200x-xx-xx Kazu Hirata <kazu@codesourcery.com> Richard Sandiford <richard@codesourcery.com>
gcc/
200x-xx-xx  Kazu Hirata  <kazu@codesourcery.com>
	    Richard Sandiford  <richard@codesourcery.com>

	* doc/tm.texi (TARGET_FUNCTION_VALUE): Expand documentation of
	parallels.
	* calls.c (expand_call): If the return value is a PARALLEL,
	extract its first member.
	* config/m68k/linux.h (FUNCTION_EXTRA_EPILOGUE): Remove.
	* config/m68k/m68k.c (m68k_output_function_epilogue): Don't
	use FUNCTION_EXTRA_EPILOGUE.
	(m68k_function_value): Return a PARALLEL if the return value
	is of a pointer type.
	* config/m68k/netbsd-elf.h (current_function_returns_pointer)
	(FUNCTION_EXTRA_EPILOGUE): Remove.
	* config/m68k/m68k.md (D0_REG): New constant.

Co-Authored-By: Richard Sandiford <richard@codesourcery.com>

From-SVN: r120929
2007-01-18 19:54:44 +00:00
Kazu Hirata dfd050746b 200x-xx-xx Kazu Hirata <kazu@codesourcery.com>
gcc/
200x-xx-xx  Kazu Hirata  <kazu@codesourcery.com>

	* config/m68k/m68k.c (m68k_output_function_epilogue): Don't
	output a NOP for empty epilogues.

From-SVN: r120928
2007-01-18 19:52:51 +00:00
Richard Sandiford 413ac1b28d m68k.c (m68k_use_return_insn): Update comments before function.
gcc/
	* config/m68k/m68k.c (m68k_use_return_insn): Update comments
	before function.  Extend register save check to include all
	registers, not just integer ones.

From-SVN: r120927
2007-01-18 19:51:47 +00:00
Kazu Hirata a2bda628bf 200x-xx-xx Kazu Hirata <kazu@codesourcery.com>
gcc/
200x-xx-xx  Kazu Hirata  <kazu@codesourcery.com>

	* config/m68k/m68k-protos.h (use_return_insn): Rename to...
	(m68k_use_return_insn): ...this.
	* config/m68k/m68k.h (USE_RETURN_INSN): Delete.
	* config/m68k/m68k.c (use_return_insn): Rename to...
	(m68k_use_return_insn): ...this.
	* config/m68k/m68k.md (return): Use m68k_use_return_insn instead
	of USE_RETURN_INSN.

From-SVN: r120926
2007-01-18 19:50:48 +00:00
Nathan Sidwell e444d54e44 200x-xx-xx Nathan Sidwell <nathan@codesourcery.com>
gcc/
200x-xx-xx  Nathan Sidwell  <nathan@codesourcery.com>

	* config/m68k/fpgnulib.c (__truncdfsf2): Implement round to
	nearest even, fix denormal rounding overflow.

From-SVN: r120925
2007-01-18 19:49:59 +00:00
Richard Sandiford 17e143a173 m68k.md (movsf_cf_hard): Use fsmove instead of f%$smove and f%$move.
gcc/
	* config/m68k/m68k.md (movsf_cf_hard): Use fsmove instead of
	f%$smove and f%$move.
	(movdf_cf_hard): Use fdmove for cases 0 and 3 and fmove for case 1.
	(extendsfdf2_cf): Use fdmove instead of f%&move.
	(truncdfsf2_cf): Use fsmove instead of f%$smove.
	(add<mode>3_cf, sub<mode>3_cf): Use <FP:prec> instead of <FP:round>.

From-SVN: r120924
2007-01-18 19:49:17 +00:00
Richard Sandiford bb017fc18e m68k.md (movdf_cf_hard): Use output_move_double for GPR<-GPR moves.
gcc/
	* config/m68k/m68k.md (movdf_cf_hard): Use output_move_double for
	GPR<-GPR moves.

From-SVN: r120923
2007-01-18 19:46:30 +00:00
Richard Sandiford 58145e4deb real.h (real_format): Add a canonical_nan_lsbs_set field.
gcc/
	* real.h (real_format): Add a canonical_nan_lsbs_set field.
	(coldfire_single_format): Declare.
	(coldfire_double_format): Likewise.
	* real.c (encode_ieee_single): Use canonical_nan_lsbs_set instead
	of qnan_msb_set to determine the lower bits of a canonical
	NaN significand.
	(encode_ieee_double): Likewise.
	(encode_ieee_quad): Likewise.
	(ieee_single_format): Initialize canonical_nan_lsbs_set.
	(mips_single_format): Likewise.
	(ieee_double_format): Likewise.
	(mips_double_format): Likewise.
	(ieee_extended_motorola_format): Likewise.
	(ieee_extended_intel_96_format): Likewise.
	(ieee_extended_intel_128_format): Likewise.
	(ieee_extended_intel_96_round_53_format): Likewise.
	(ibm_extended_format): Likewise.
	(mips_extended_format): Likewise.
	(ieee_quad_format): Likewise.
	(mips_quad_format): Likewise.
	(vax_f_format): Likewise.
	(vax_d_format): Likewise.
	(vax_g_format): Likewise.
	(i370_single_format): Likewise.
	(i370_double_format): Likewise.
	(decimal_single_format): Likewise.
	(decimal_double_format): Likewise.
	(decimal_quad_format): Likewise.
	(c4x_single_format): Likewise.
	(c4x_extended_format): Likewise.
	(real_internal_format): Likewise.
	(coldfire_single_format): New real_format.
	(coldfire_double_format): Likewise.
	* config/pdp11/pdp11.c (pdp11_f_format): Initialize
	canonical_nan_lsbs_set.
	(pdp11_d_format): Likewise.
	* config/m68k/m68k.c (override_options): Override REAL_FORMAT_MODE
	if TARGET_COLDFIRE_CPU.

From-SVN: r120922
2007-01-18 19:45:13 +00:00
Richard Sandiford 29ca003a7a m68k-protos.h (m68k_output_pic_call): Delete.
gcc/
	* config/m68k/m68k-protos.h (m68k_output_pic_call): Delete.
	(output_call, m68k_legitimize_call_address): Declare.
	* config/m68k/m68k.h (EXTRA_CONSTRAINT): Remove unnecessary
	parenthesees.  Add support for a 'W' constraint.
	(LEGITIMATE_PIC_OPERAND_P): Remove SYMBOL_REF_FLAG handling.
	(PRINT_OPERAND_PUNCT_VALID_P): Remove comment about 'o'.
	(m68k_symbolic_call, m68k_symbolic_jump): Declare.
	* config/m68k/m68k.c (m68k_symbolic_call, m68k_symbolic_jump): New
	variables.
	(override_options): Initialize them.  Do not set flag_no_function_cse
	for TARGET_ID_SHARED_LIBRARY.
	(m68k_output_pic_call): Delete.
	(m68k_legitimize_call_address): New function.
	(print_operand): Remove the %o prefix.  Handle the %p prefix.
	(output_call): New function.
	(m68k_output_mi_thunk): Use m68k_symbolic_jump.  Always load the
	target address from the GOT if symbolic jumps are not allowed.
	* config/m68k/m68k.md (call, general_operand): Do not set
	SYMBOL_REF_FLAG.  Use m68k_legitimize_call_address instead.
	Merge separate flag_pic and !flag_pic define_insns into...
	(*call, *call_value): ...these new patterns.  Match the address
	rather than the containing MEM and require it to be a call_operand.
	Use output_call to generate the asm template.
	* config/m68k/predicates.md (const_call_operand): New predicate.
	(call_operand): Likewise.

From-SVN: r120921
2007-01-18 19:40:12 +00:00
Nathan Sidwell 85dbf7e225 200x-xx-xx Nathan Sidwell <nathan@codesourcery.com>
gcc/
200x-xx-xx  Nathan Sidwell  <nathan@codesourcery.com>

	* config/m68k/m68k.h (REGISTER_MOVE_COST): Simplify definition.
	(STACK_GROWS_DOWNWARD): Define to 1.
	(FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Equivocate
	comments, emphasizing that these values are only defaults.
	* config/m68k/linux.h (LINK_SPEC): Fix formatting in #undef.
	* config/m68k/m68k.c (const_method): Remove trailing whitespace.

From-SVN: r120920
2007-01-18 19:35:11 +00:00
Richard Sandiford 565e35c947 m68k.md (cmpsi): Remove outdated flag_pic handling.
gcc/
	* config/m68k/m68k.md (cmpsi): Remove outdated flag_pic handling.

gcc/testsuite/
200x-xx-xx  Nathan Sidwell  <nathan@codesourcery.com>

	* gcc.dg/m68k-pic-1.c: New.

From-SVN: r120919
2007-01-18 19:33:01 +00:00
Kazu Hirata 36e04090c1 200x-xx-xx Kazu Hirata <kazu@codesourcery.com> Richard Sandiford <richard@codesourcery.com>
gcc/
200x-xx-xx  Kazu Hirata  <kazu@codesourcery.com>
	    Richard Sandiford  <richard@codesourcery.com>

	* config/m68k/m68k.h (DATA_REGNO_P, ADDRESS_REGNO_P, INT_REGNO_P)
	(FP_REGNO_P): New macros.
	(REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_DATA_P)
	(REGNO_OK_FOR_FP_P, REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Use them.
	(EH_RETURN_STACKADJ_RTX): Use A0_REG.
	* config/m68k/m68k.c (m68k_regno_mode_ok): Use the new REGNO macros.

Co-Authored-By: Richard Sandiford <richard@codesourcery.com>

From-SVN: r120918
2007-01-18 19:31:15 +00:00
Nathan Sidwell 47b41fa34a 200x-xx-xx Nathan Sidwell <nathan@codesourcery.com>
gcc/
200x-xx-xx  Nathan Sidwell  <nathan@codesourcery.com>

	* config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
	(m68k-*-uclinuxoldabi, m68k-*-uclinux*, m68k-*-rtems*): Add t-floatlib
	to $tmake_file.
	* config/m68k/t-floatlib: New file, extracting common code from...
	* config/m68k/t-m68kbare, config/m68k/t-m68kelf,
	* config/m68k/t-uclinux: Here.
	* config/m68k/fpgnulib.c: Do not compile extendeed precision
	routines on ColdFire targets.

From-SVN: r120917
2007-01-18 19:29:48 +00:00
Nathan Sidwell a96533d5e5 200x-xx-xx Nathan Sidwell <nathan@codesourcery.com>
gcc/
200x-xx-xx  Nathan Sidwell  <nathan@codesourcery.com>

	* config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
	(m68010-*-netbsdelf*, m68k*-*-netbsdelf*, m68k*-*-openbsd*)
	(m68k-*-uclinuxoldabi, m68k-*-uclinux*, m68k-*-linux*)
	(m68k-*-rtems*): Use tm_file rather than m68k/m68k.h and
	explicitly set MOTOROLA to 1.
	* config/m68k/m68k.h (MOTOROLA): Simplify definition accordingly.

From-SVN: r120916
2007-01-18 19:26:21 +00:00
Richard Sandiford ba5f7c88dc 200x-xx-xx Richard Sandiford <richard@codesourcery.com> Nathan Sidwell <nathan@codesourcery.com>
gcc/
200x-xx-xx  Richard Sandiford  <richard@codesourcery.com>
	    Nathan Sidwell  <nathan@codesourcery.com>

	* config/m68k/m68k.h (PCC_STATIC_STRUCT_RETURN): Delete.
	(ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Add MOTOROLA cases.
	* config/m68k/coff.h (REGISTER_PREFIX_MD): Delete.
	* config/m68k/m68020-elf.h (LIB_SPEC): Delete.
	* config/m68k/m68k-none.h (CC1_SPEC, CPP_SUBTARGET_SPEC): Delete.
	* config/m68k/m68kelf.h (IMMEDIATE_PREFIX, REGISTER_PREFIX_MD)
	(ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
	(NO_DOLLAR_IN_LABEL, PCC_STATIC_STRUCT_RETURN): Don't undefine.
	(BSS_ASM_OP, ASM_OUTPUT_SKIP, ASM_OUTPUT_ASCII): Delete.
	* config/m68k/m68kemb.h (PCC_STATIC_STRUCT_RETURN): Don't undefine.
	* config/m68k/linux.h (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE)
	(WCHAR_TYPE_SIZE, TARGET_OBJFMT_CPP_BUILTINS): Delete.
	(TARGET_OS_CPP_BUILTINS): Don't define mc68000 and mc68020 here.
	(DBX_REGISTER_NUMBER): Delete.
	* config/m68k/netbsd-elf.h (IMMEDIATE_PREFIX): Delete.
	(PCC_STATIC_STRUCT_RETURN): Don't undefine.
	* config/m68k/openbsd.h (PCC_STATIC_STRUCT_RETURN): Define.

Co-Authored-By: Nathan Sidwell <nathan@codesourcery.com>

From-SVN: r120913
2007-01-18 19:12:34 +00:00
Richard Sandiford abe92a04b6 config.gcc (m68k-*-uclinux*): Add flat.h to $tm_file.
gcc/
	* config.gcc (m68k-*-uclinux*): Add flat.h to $tm_file.
	* config/flat.h: New file.
	* crtstuff.c (USE_PT_GNU_EH_FRAME): Don't define if
	OBJECT_FORMAT_FLAT.
	* config/m68k/m68k.h (ASM_PREFERRED_EH_DATA_FORMAT): Do not use
	indirect references for -msep-data or -mid-shared-library.
	Do not use PC-relative code addresses either.
	* config/m68k/m68k.c (override_options): Restrict -fPIC error
	to -mpcrel.
	* config/m68k/uclinux.h (STARTFILE_SPEC): Define.  Use Scrt1.o
	for shared libraries and crt1.o for executables.  Use crti.o and
	crtbegin.o.
	(ENDFILE_SPEC): Use crtend.o and crtn.o.
	(LIB_SPEC): Suppress -Rlibc.gdb if -static-libc is given.
	Do not add -elf2flt or -shared-lib-id options here.
	(LINK_SPEC): Define.  Pass -elf2flt if no -elf2flt option is given.
	Pass -shared-lib-id if -mid-shared-library, taking the library
	identifier from -mshared-library-id if given, otherwise
	defaulting to 0.
	(EH_FRAME_IN_DATA_SECTION): Do not undefine.
	(INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Likewise.
	(TARGET_OS_CPP_BUILTINS): Define __GXX_MERGED_TYPEINFO_NAMES=0
	and __GXX_TYPEINFO_EQUALITY_INLINE=0 if -mid-shared-library.
	(DRIVER_SELF_SPECS): Map unadorned PIC options to -msep-data.
	* config/m68k/t-uclinux (EXTRA_MULTILIB_PARTS): Add crtbegin.o
	and crtend.o.
	* config/m68k/lb1sf68.asm (PICCALL): Use an lea and pc-relative
	jump sequence for ISA A and ISA A+.
	(PICJUMP): Likewise.

From-SVN: r120912
2007-01-18 19:09:59 +00:00
Richard Sandiford 78218d8997 config.gcc (m68k-*-uclinux*): Base the port on the common and m68k GNU/Linux files rather than on the generic...
gcc/
	* config.gcc (m68k-*-uclinux*): Base the port on the common
	and m68k GNU/Linux files rather than on the generic ELF ones.
	* config/m68k/uclinux.h (TARGET_VERSION): Override.
	(TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.

From-SVN: r120911
2007-01-18 19:04:52 +00:00
Julian Brown 5189ab949e 200x-xx-xx Julian Brown <julian@codesourcery.com> Richard Sandiford <richard@codesourcery.com>
gcc/
200x-xx-xx  Julian Brown  <julian@codesourcery.com>
	    Richard Sandiford  <richard@codesourcery.com>

	* config/m68k/m68k.h (LONG_DOUBLE_TYPE_SIZE): Make 64-bit on ColdFire.
	(LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.
	* config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Undefine
	before redefining.
	* config/m68k/uclinux-oldabi.h (LONG_DOUBLE_TYPE_SIZE): Redefine to
	80 unconditionally.
	(LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Likewise.

Co-Authored-By: Richard Sandiford <richard@codesourcery.com>

From-SVN: r120910
2007-01-18 18:45:46 +00:00
Richard Sandiford 4529dbf15f /home/richard/patches/freescale/head-submission/uclinux-oldabi.clog
From-SVN: r120909
2007-01-18 18:33:28 +00:00
Kaz Kojima e2265be077 m32r-protos.h (m32r_expand_epilogue): Declare it.
* config/m32r/m32r-protos.h (m32r_expand_epilogue): Declare it.
* config/m32r/m32r.c (m32r_setup_incoming_varargs): Use gen_frame_mem.
  (m32r_compute_frame_size): Use unsigned for regno.
  (m32r_reload_lr): Use gen_frame_mem.
  (pop): New.
  (m32r_output_function_epilogue): Don't output the function epilogue textually here.
  (m32r_expand_epilogue): New.
  (direct_return): Return false if the function has the interrupt attribute.
  (m32r_hard_regno_rename_ok): Remove code for the textual epilogue.
* config/m32r/m32r.md (epilogue): New expander.
  (return_lr, return_rte): New insns.
  (return): Make it expander.
  (return_normal): New expander.

From-SVN: r120904
2007-01-18 17:04:21 +00:00
Josh Conner 370df7db15 re PR target/30485 (ICE in rs6000_emit_vector_compare when building with -fno-trapping-math)
2007-01-18  Josh Conner  <jconner@apple.com>

	PR target/30485
	* config/rs6000/rs6000.c (rs6000_emit_vector_compare): Add
	support for UNLE, UNLT, UNGE, and UNGT.

From-SVN: r120902
2007-01-18 16:44:03 +00:00
Jan Hubicka 1994bfea41 tree-vrp.c (finalize_jump_threads): Do not call cleanup_cfg by hand.
* tree-vrp.c (finalize_jump_threads): Do not call cleanup_cfg by hand.
	* tree-tailcall (add_virtual_phis): Likewise.
	(optimize_tail_call): Return TODOs.
	(execute_tail_calls): Return TODOs.
	* tree-ssa-ccp (execute_fold_all_builtins): Do cleanup_cfg via TODO.
	* tree-cfgcleanup.c (cleanup_tree_cfg_loop): Return if something
	changed.
	* tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_value):
	Cleanup cfg using TODO.
	* tree-flow.h (cleanup_tree_cfg_loop): Update prototype.
	* passes.c (execute_function_todo): When cleanup did something, remove
	unused locals.
	* tree-cfg.c (pass_build_cfg): Add cleanup_cfg TODO.
	(make_edges): Don't cleanup_cfg.

From-SVN: r120900
2007-01-18 14:56:33 +00:00
Uros Bizjak d85c755027 reg-stack.c (subst_stack_regs_pat): Use generic code for instructions that operate on the top of stack.
* reg-stack.c (subst_stack_regs_pat) [UNSPEC_SINCOS_COS,
	UNSPEC_XTRACT_FRACT]: Use generic code for instructions that
	operate on the top of stack.
	[UNSPEC_SINCOS_SIN, UNSPEC_XTRACT_EXP, UNSPEC_TAN]: Rewrite
	register handling of instructions that output to the second
	stack slot.
	[UNSPEC_TAN_ONE, UNSPEC_TAN_TAN]: Remove.
	(move_for_stack_reg): Special-case check for dead destination
	stack slot for constant load of 1.0 inside UNSPEC_TAN.

	* config/i386/i386.md (UNSPEC_TAN): New constant.
	(UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): Remove.
	(fptanxf4_i387, fptan_extend<mode>xf4_i387): New patterns
	to correctly model move of constant 1.0 to top stack slot.
	(*tandf3_1, *tansf3_1, *tanxf3_1): Remove insn patterns.
	(unnamed peephole2 pattern): Remove corresponding peephole2
	pattern that optimizes tan insn and loading of constant 1.0.
	(tanxf2): Use fptanxf4_i387.
	(tan<mode>2): Rename from tansf2 and tandf2 and macroize insn
	patterns using X87MODEF12 mode macro.  Use fptan_extend<mode>xf4_i387
	and truncate result to requested mode.  Use SSE_FLOAT_MODE_P to
	disable patterns for SSE math.
	(sincos<mode>3): Use truncxf<mode>2_i387_noop for truncation.
	(fyl2x_extend<mode>xf3_i387): Use X87MODEF12 for operand 1.

testsuite/ChangeLog:

	* gcc.target/i386/387-8.c: Update comment about optimizing
	inherent load of 1.0 of fptan instruction.

From-SVN: r120899
2007-01-18 14:06:57 +01:00
Dirk Mueller 590b1f2d1f · Richard Guenther <rguenther@suse.de>
2007-01-18  Dirk Mueller  <dmueller@suse.de>
·           Richard Guenther <rguenther@suse.de>

·       PR diagnostic/8268
·       * doc/invoke.texi (Warray-bounds): Document -Warray-bounds.
·       * common.opt (Warray-bounds): Add new warning option.
·       * c-opts.c (c_common_handle_option): Define -Warray-bounds
·       if -Wall is given.
        * Makefile.in: make tree-vrp.o depend on toplev.h
·       * tree-vrp.c (vrp_finalize): Call check_array_refs if -Warray-bounds
·       is enabled.
·       (check_array_refs, check_array_bounds, check_array_ref): New.

·       * gcc.dg/Warray-bounds.c: New testcase.
        * gcc.dg/Warray-bounds-2.c: New testcase.
        * g++.dg/warn/Warray-bounds.C: New testcase.
        * g++.dg/warn/Warray-bounds-2.C: New testcase.

From-SVN: r120898
2007-01-18 13:00:33 +00:00
Jan Hubicka 3253eafbda tree-ssa-ccp.c (ccp_finalize): Return if something changed.
* tree-ssa-ccp.c (ccp_finalize): Return if something changed.
	(execute_ssa_ccp): Return flags conditionally.
	* tree-ssa-propagate.c (substitue_and_fold): Return if something was
	changed.
	* tree-ssa-propagate.h (substitute_and_fold): Update prototype.

From-SVN: r120894
2007-01-18 09:11:57 +00:00
Steven Bosscher aeceeb06a1 cfgcleanup.c (cleanup_cfg): Detect cfglayout mode and set the CLEANUP_CFGLAYOUT flag when in cfglayout mode.
* cfgcleanup.c (cleanup_cfg): Detect cfglayout mode and set
	the CLEANUP_CFGLAYOUT flag when in cfglayout mode.

	* Makefile.c (GTFILES): Add cfglayout.h.
	* gengtype.c (open_base_files): Likewise.
	* cfglayout.c (cfg_layout_function_footer,
	cfg_layout_function_header) Reindent to make gengtype happy.
	* cfglayout.h (cfg_layout_function_footer,
	cfg_layout_function_header): Add GTY(()) marker.

	* ifcvt.c (noce_try_sign_mask): Make sure INSN_B is non-null.

From-SVN: r120893
2007-01-18 08:17:06 +00:00
Ben Elliston 19b8c2d976 genautomata.c (write_automata): Include xstrerror output in the error message if...
* genautomata.c (write_automata): Include xstrerror output in the
	error message if writing the DFA description file fails.

From-SVN: r120891
2007-01-18 14:12:27 +11:00
H.J. Lu f8fdb5036d mips-protos.h (mips_output_external): Make it return void.
gcc/
2007-01-17  H.J. Lu  <hongjiu.lu@intel.com>

	* config/mips/mips-protos.h (mips_output_external): Make it
	return void.
	* config/mips/iris.h (TARGET_ASM_EXTERNAL_LIBCALL): Removed.
	* config/mips/mips.c (irix_output_external_libcall): Likewise.
	(extern_list): Likewise.
	(extern_head): Likewise.
	(TARGET_ASM_FILE_END): Likewise.
	(mips_file_end): Likewise.
	(mips_output_external): Rewritten.

From-SVN: r120880
2007-01-17 22:27:26 +00:00
Ben Elliston 495fb8cdd8 genpreds.c (write_insn_preds_c): Only write out the function body for regclass_for_constraint if...
* genpreds.c (write_insn_preds_c): Only write out the function
	body for regclass_for_constraint if we have register constraints.

From-SVN: r120879
2007-01-18 09:15:19 +11:00
Tom Tromey 4eb3e79538 sourcebuild.texi (libgcj Tests): Use sourceware.org.
* doc/sourcebuild.texi (libgcj Tests): Use sourceware.org.
	* doc/install.texi (Testing): Use sourceware.org.
	(Binaries): Likewise.
	(Specific): Likewise.
	* doc/contrib.texi (Contributors): Use sourceware.org.

From-SVN: r120873
2007-01-17 20:10:57 +00:00
Ian Lance Taylor e7fd0be47b Remove DOS line endings.
From-SVN: r120868
2007-01-17 19:33:24 +00:00
Anatoly Sokolov dd6d1f8c3f avr.h (AVR_HAVE_LPMX): New macro.
* config/avr/avr.h (AVR_HAVE_LPMX): New macro.
	(AVR_ENHANCED): Rename to ...
	(AVR_HAVE_MUL): ... new.
	(avr_enhanced_p): Rename to ...
	(avr_have_mul_p): ... new.
	(TARGET_CPU_CPP_BUILTINS): Use 'avr_have_mul_p' instead of 
	'avr_enhanced_p' for "__AVR_ENHANCED__". Define "__AVR_HAVE_MUL__".
	* config/avr/avr.c (avr_enhanced_p): Rename to ...
	(avr_have_mul_p): ... new.
	(base_arch_s): Rename 'enhanced' to 'have_mul'.
	(avr_override_options): Use 'avr_have_mul_p' and 'have_mul' instead of
	'avr_enhanced_p' and 'enhanced'.
	(ashlhi3_out, ashrhi3_out, lshrhi3_out, avr_rtx_costs): Use 
	AVR_HAVE_MUL instead of AVR_ENHANCED.
	* avr.md (*tablejump_enh): Use AVR_HAVE_LPMX instead of AVR_ENHANCED.
	(mulqi3, *mulqi3_enh, *mulqi3_call, mulqihi3, umulqihi3, mulhi3, 
	*mulhi3_enh, *mulhi3_call, mulsi3, *mulsi3_call): Use AVR_HAVE_MUL 
	instead of AVR_ENHANCED.
	(*tablejump_enh): Use AVR_HAVE_LPMX instead of AVR_ENHANCED.
	* libgcc.S: Use __AVR_HAVE_MUL__ instead of __AVR_ENHANCED__.
	(__tablejump__): Use __AVR_HAVE_LPMX__ instead of __AVR_ENHANCED__.

From-SVN: r120865
2007-01-17 21:42:58 +03:00
Ian Lance Taylor efb7e1e026 vec.h (VEC_reserve_exact): Define.
./:	* vec.h (VEC_reserve_exact): Define.
	(vec_gc_p_reserve_exact): Declare.
	(vec_gc_o_reserve_exact): Declare.
	(vec_heap_p_reserve_exact): Declare.
	(vec_heap_o_reserve_exact): Declare.
	(VEC_OP (T,A,reserve_exact)): New static inline function, three
	versions.
	(VEC_OP (T,A,reserve)) [all versions]: Remove handling of
	negative parameter.
	(VEC_OP (T,A,alloc)) [all versions]: Call ...reserve_exact.
	(VEC_OP (T,A,copy)) [all versions]: Likewise.
	(VEC_OP (T,a,safe_grow)) [all versions]: Likewise.
	* vec.c (calculate_allocation): Add exact parameter.  Change all
	callers.
	(vec_gc_o_reserve_1): New static function, from vec_gc_o_reserve.
	(vec_gc_p_reserve, vec_gc_o_reserve): Call vec_gc_o_reserve_1.
	(vec_gc_p_reserve_exact, vec_gc_o_reserve_exact): New functions.
	(vec_heap_o_reserve_1): New static function, from vec_heap_o_reserve.
	(vec_heap_p_reserve, vec_heap_o_reserve): Call vec_heap_o_reserve_1.
	(vec_heap_p_reserve_exact): New function.
	(vec_heap_o_reserve_exact): New function.
cp/:
	* class.c (add_method): Call VEC_reserve_exact rather than passing
	a negative size to VEC_reserve.

From-SVN: r120861
2007-01-17 17:42:10 +00:00
Jan Hubicka dd82a6c6f6 * ipa-type-escape.c (look_for_casts): Revamp using handled_component_p.
From-SVN: r120849
2007-01-17 11:16:24 +00:00
Eric Christopher 30fd45a0b2 config.gcc: Support core2 processor.
2007-01-17  Eric Christopher  <echristo@apple.com>

        * config.gcc: Support core2 processor.

From-SVN: r120846
2007-01-17 09:21:11 +00:00
Jan Hubicka 109c8d3934 tree-ssanames.c (release_dead_ssa_names): Instead of ggc_freeing the names...
* tree-ssanames.c (release_dead_ssa_names): Instead of ggc_freeing
	the names, just unlink the chain so we don't crash on dangling pointers
	to dead SSA names.

From-SVN: r120837
2007-01-16 23:42:06 +00:00
Jan Hubicka 873aa8f548 cgraph.h (cgraph_decide_inlining_incrementally): Kill.
* cgraph.h (cgraph_decide_inlining_incrementally): Kill.
	* tree-pass.h: Reorder to make IPA passes appear toegher.
	(pass_early_inline, pass_inline_parameters, pass_apply_inline): Declare.
	* cgraphunit.c (cgraph_finalize_function): Do not compute inling
	parameters, do not call early inliner.
	* ipa-inline.c: Update comments.  Include tree-flow.h
	(cgraph_decide_inlining): Do not compute inlining parameters.
	(cgraph_decide_inlining_incrementally): Return TODOs; assume to
	be called with function context set up.
	(pass_ipa_inline): Remove unreachable functions before pass.
	(cgraph_early_inlining): Simplify assuming to be called from the
	PM as local pass.
	(pass_early_inline): New pass.
	(cgraph_gate_ipa_early_inlining): New gate.
	(pass_ipa_early_inline): Turn into simple wrapper.
	(compute_inline_parameters): New function.
	(gate_inline_passes): New gate.
	(pass_inline_parameters): New pass.
	(apply_inline): Move here from tree-optimize.c
	(pass_apply_inline): New pass.
	* ipa.c (cgraph_remove_unreachable_nodes): Verify cgraph after
	transforming.
	* tree-inline.c (optimize_inline_calls): Return TODOs rather than
	doing them by hand.
	(tree_function_versioning): Do not allocate dummy struct function.
	* tree-inline.h (optimize_inline_calls): Update prototype.
	* tree-optimize.c (execute_fixup_cfg): Export.
	(pass_fixup_cfg): Remove
	(tree_rest_of_compilation): Do not apply inlines.
	* tree-flow.h (execute_fixup_cfg): Declare.
	* Makefile.in (gt-passes.c): New.
	* passes.c: Include gt-passes.h
	(init_optimization_passes): New passes.
	(nnodes, order): New static vars.
	(do_per_function_toporder): New function.
	(execute_one_pass): Dump current pass here.
	(execute_ipa_pass_list): Don't dump current pass here.

From-SVN: r120835
2007-01-16 21:30:54 +00:00
Janis Johnson 70b81845bf dfp-bit.c (dfp_compare_op): Return separate value for NaN.
gcc/
	* config/dfp-bit.c (dfp_compare_op): Return separate value for NaN.
	(DFP_NE, DFP_LE, DFP_GE): Return false for NaN.
gcc/testsuite/
	* gcc.dg/dfp/compare-special.h: New file.
	* gcc.dg/dfp/compare-special-32.c: New test.
	* gcc.dg/dfp/compare-special-64.c: New test.
	* gcc.dg/dfp/compare-special-128.c: New test.

From-SVN: r120830
2007-01-16 18:53:16 +00:00
David Edelsohn d0768f1953 darwin-ldouble.c: Build file for SOFT_FLOAT.
* config/rs6000/darwin-ldouble.c: Build file for SOFT_FLOAT.
	(strong_alias): Define.
	(__gcc_qmul): Provide non-FMA for soft-float.
	(__gcc_qdiv): Same.
	(__gcc_qneg): New.
	(__gcc_qeq): New.
	(__gcc_qle): New.
	(__gcc_qge): New.
	(__gcc_qunord): New.
	(__gcc_stoq): New.
	(__gcc_dtoq): New.
	(__gcc_qtos): New.
	(__gcc_qtod): New.
	(__gcc_qtoi): New.
	(__gcc_qtou): New.
	(__gcc_itoq): New.
	(__gcc_utoq): New.
	(fmsub): New.
	* config/rs6000/rs6000.c (rs6000_init_libfuncs): Initialize
	soft-float functions.
	* config/rs6000/libgcc-ppc-glibc.ver: Version soft-float symbols.
	* config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Do not warn
	about long double soft float.

From-SVN: r120828
2007-01-16 11:03:26 -05:00
Dorit Nuzman 878aa81717 tree-vectorizer.h (is_pattern_stmt_p): New.
* tree-vectorizer.h (is_pattern_stmt_p): New.
        * tree-vect-analyze.c (vect_determine_vectorization_factor): Fix
        formatting (tabs instead of spaces). Cleanup and clarify setting
        of STMT_VINFO_VECTYPE. Call is_pattern_stmt_p.
        * tree-vect-transform.c (vect_get_vec_def_for_operand): Fix typo.
        (vectorizable_type_demotion): Check that types are integral.
        (vectorizable_type_promotion): Likewise.
        (vectorizable_store): Fix typo.  Eliminate new-line at end of
        comments.


Co-Authored-By: Tehila Meyzels <tehila@il.ibm.com>

From-SVN: r120825
2007-01-16 08:26:03 +00:00
Jan Hubicka 03b1d1341c tree-ssanames.c (release_dead_ssa_names): Remove invalidated cgraph edges too.
* tree-ssanames.c (release_dead_ssa_names): Remove invalidated
	cgraph edges too.

From-SVN: r120823
2007-01-16 06:48:23 +00:00
Eric Christopher 632ac2b491 ifcvt.c: Include vec.h, vecprim.h.
2007-01-15  Eric Christopher  <echristo@apple.com>

        * ifcvt.c: Include vec.h, vecprim.h.
        (check_cond_move_block): New argument regs.
        Reorganize. Add registers used to regs.
        (cond_move_process_if_block): Use regs set above as
        loop bounds.

From-SVN: r120822
2007-01-16 05:34:02 +00:00
Eric Christopher 7a292b24d6 darwin.h: Update copyright.
2007-01-15  Eric Christopher  <echristo@apple.com>

	    * config/darwin.h: Update copyright.
	    (TARGET_OPTION_TRANSLATE_TABLE): Add umbrella.
	    (LINK_COMMAND_SPEC): Add -u.
	    (LINK_SPEC): Fix umbrella for above.

From-SVN: r120815
2007-01-16 02:05:47 +00:00
Joseph Myers af7a7593fa op-common.h, op-4.h: Update from glibc CVS.
* config/soft-fp/op-common.h, config/soft-fp/op-4.h: Update from
	glibc CVS.

From-SVN: r120806
2007-01-15 23:56:32 +00:00
Tom Tromey 694032374b sourcebuild.texi (libgcj Tests): Don't mention jacks.
gcc
	* doc/sourcebuild.texi (libgcj Tests): Don't mention jacks.
	* doc/install.texi (Testing): Don't mention jacks.
	(Configuration): Document --enable-java-maintainer-mode.  Move
	--with-java-home to libgcj-specific section.  Document
	--with-ecj-jar.
	(Prerequisites): Mention --enable-java-maintainer-mode, ecj1.
contrib
	* download_ecj: New file.

From-SVN: r120802
2007-01-15 21:49:31 +00:00
Jan Hubicka 7665f023e8 tree-ssa-dce.c (DCE_TODOs): New.
* tree-ssa-dce.c (DCE_TODOs): New.
	(propagate_necessity): Return if something changed.
	(eliminate_unnecessary_stmts): Likewise.
	(perform_tree_ssa_dce): Return TODO flags when needed.
	(pass_dce, pass_dce_loop, pass_cd_dce): Remove TODO flags.

From-SVN: r120797
2007-01-15 15:44:51 +00:00
Uros Bizjak 0ac45694f3 i386.md (fyl2xxf3_i387): Rename from fyl2x_xf3.
* config/i386/i386.md (fyl2xxf3_i387): Rename from fyl2x_xf3.
	(fyl2x_extend<mode>xf3_i387): New insn pattern.
	(log<mode>2): Rename from logsf2 and logdf2 and macroize insn
	insn patterns using X87MODEF12 mode macro.  Extend operand 1
	to XFmode. Use SSE_FLOAT_MODE_P to disable patterns for SSE math.
	(log10<mode>2): Ditto.
	(log2<mode>2): Ditto.
	(log1p<mode>2): Ditto.
	(logb<mode>2): Ditto.
	(fyl2xp1xf3_i387): Rename from fyl2xp1_xf3.
	(fyl2xp1_extend<mode>xf3_i387): New insn pattern.
	(*fxtractxf3_i387): Rename from *fxtractxf3.
	(fxtract_extend<mode>xf3_i387): New insn pattern.
	(ilogbsi2): Use match_dup 3, not match_operand:XF 3.

	* config/i386/i386.c (ix86_emit_i387_log1p): Use gen_fyl2xp1xf3_i387()
	and gen_fyl2xxf3_i387().

From-SVN: r120792
2007-01-15 13:35:30 +01:00
Zdenek Dvorak b4c1c7e3bd loop-unswitch.c (unswitch_loop): Do not call fix_loop_placement.
* loop-unswitch.c (unswitch_loop): Do not call fix_loop_placement.
	* cfgloopmanip.c (fix_loop_placement): Made static.  Use
	get_loop_exit_edges.  Changed return type to bool.
	* cfgloop.h (fix_loop_placement): Declaration removed.

From-SVN: r120782
2007-01-14 20:07:42 +00:00
Dorit Nuzman acdc40dfd2 param.h (MIN_VECT_LOOP_BOUND): New.
* param.h (MIN_VECT_LOOP_BOUND): New.
        * params.def (MIN_VECT_LOOP_BOUND): New.
        * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Takes another
        argument - minimum threshold for number of iterations.
        * tree-vectorizer.h (slpeel_tree_peel_loop_to_edge): Add another
        argument to declaration.
        * tree-vect-analyze.c (vect_analyze_operations): Check value of
        MIN_VECT_LOOP_BOUND.
        * tree-vect-transform.c (vect_do_peeling_for_loop_bound): Call
        slpeel_tree_peel_loop_to_edge with additional argument.
        (vect_do_peeling_for_alignment): Likewise.
        * doc/invoke.texi (min-vect-loop-bound): Document new param option.

From-SVN: r120770
2007-01-14 12:42:40 +00:00
Uros Bizjak 37fc8424ac re PR target/30413 (%z produces ICE for char operands)
PR target/30413
        * config/i386/i386.c (print_operand) ['z']: Output 'b' for
        operands of size 1.

testsuite/ChangeLog:

        PR target/30413
        * gcc.target/i386/pr30413.c: New test.

From-SVN: r120769
2007-01-14 12:14:20 +01:00
Jan Hubicka 326648f1bd tree-dfa.c (remove_referenced_var): New function.
* tree-dfa.c (remove_referenced_var): New function.
	* tree-ssa-live.c (remove_unused_locals): Walk referenced vars and
	prune referenced vars list too.
	* tree-flow.h (remove_referenced_var): Declare.

From-SVN: r120767
2007-01-14 10:50:43 +00:00
Jan Hubicka 4437b50d21 tree-eh.c (add_stmt_to_eh_region_fn): Do not add call_exprs separately.
* tree-eh.c (add_stmt_to_eh_region_fn): Do not add call_exprs
	separately.
	(remove_stmt_from_eh_region_fn): Do not remove call_exprs.
	(verify_eh_throw_stmt_node, verify_eh_throw_table_statements): Kill.
	* except.h (verify_eh_throw_table_statements): Kill prototype.
	* cfgexpand.c (expand_gimple_basic_block): Propagate Eh regions
	into call exrepssions.
	* tree-optimize.c (execute_free_cfg_annotatiosn): Do not call
	eh trhow verifier.
	* tree-cfg.c: Include pointer-set.h.
	(verify_node_sharing): Work on pointer set.
	(verify_eh_throw_stmt_node): New.
	(verify_stmts): Use pointers sets, verify throw_stmt.

From-SVN: r120766
2007-01-14 10:47:48 +00:00
Zdenek Dvorak 2a134b7364 ipa-reference.c (analyze_function): Consider also addresses taken in phi nodes.
* ipa-reference.c (analyze_function): Consider also addresses taken
	in phi nodes.

	* gcc.dg/20070112-1.c: New test.

From-SVN: r120757
2007-01-13 19:12:39 +00:00
Roger Sayle 8bcd6380d1 c-typeck.c (null_pointer_constant_p): Replace use of TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
* c-typeck.c (null_pointer_constant_p): Replace use of
	TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
	(build_c_cast): Likewise.

From-SVN: r120747
2007-01-13 05:39:57 +00:00
Roger Sayle d95787e646 tree.h (force_fit_type_double): Remove unused final argument.
* tree.h (force_fit_type_double): Remove unused final argument.
	* c-common.c (constant_expression_warning): Replace use of
	TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
	(convert_and_check): Likewise.
	(shorten_compare): Update call to force_fit_type_double.
	(c_common_truthvalue_conversion) <INTEGER_CST>: Use integer_zerop.
	* convert.c (convert_to_pointer): Update call to
	force_fit_type_double.
	* fold-const.c (force_fit_type_double): Remove overflowed_const
	argument.
	(int_const_binop, fold_convert_const_int_from_int,
	fold_convert_const_int_from_real, fold_div_compare,
	fold_sign_changed_comparison, fold_unary, fold_negate_const,
	fold_abs_const, fold_not_const): Remove the final argument from
	calls to force_fit_type_double.

From-SVN: r120746
2007-01-13 05:39:00 +00:00
Andrew Pinski 714f737ffa configure.ac: Set insn to "nop" for spu-*-* also.
2007-01-12  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        * configure.ac: Set insn to "nop" for spu-*-* also.
        * configure: Regenerate.

From-SVN: r120736
2007-01-12 15:03:48 -08:00
Olga Golovanevsky db9d500a22 Add BUILT_IN_FREE
From-SVN: r120732
2007-01-12 21:01:46 +00:00
Jan Hubicka 3d283195f7 re PR middle-end/30443 (4.3 internal compiler error: verify_cgraph_node failed)
PR tree-optimization/30443
	* tree-inline.c (tree_function_versioning): Do not optimize when
	cloning for inlining.

From-SVN: r120730
2007-01-12 18:07:57 +00:00
Zdenek Dvorak 6270df4c21 loop.texi: Document recording of loop exits.
* doc/loop.texi: Document recording of loop exits.
	* cfgloopmanip.c (loopify, duplicate_loop): Use alloc_loop.
	(update_single_exits_after_duplication,
	update_single_exit_for_duplicated_loop,
	update_single_exit_for_duplicated_loops): Removed.
	(duplicate_loop_to_header_edge): Do not call
	update_single_exits_after_duplication and
	update_single_exit_for_duplicated_loops.
	(loop_version): Do not update single_exit information.
	(fix_loop_structure): Use record_loop_exits instead of
	mark_single_exit_loops.
	* tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update
	the lists of loop exits.
	* cfghooks.c (redirect_edge_and_branch, redirect_edge_and_branch_force,
	split_edge, merge_blocks): Update the lists of loop exits.
	* modulo-sched.c (sms_schedule): Pass LOOPS_HAVE_RECORDED_EXITS to
	loop_optimizer_init.
	* loop-init.c (loop_optimizer_init): Call record_loop_exits instead
	of mark_single_exit_loops.
	(loop_optimizer_finalize): Call release_recorded_exits.
	* tree-ssa-loop.c (tree_loop_optimizer_init): Pass
	LOOPS_HAVE_RECORDED_EXITS to loop_optimizer_init.
	* tree-vectorizer.c (slpeel_tree_duplicate_loop_to_edge_cfg): Do not
	update single exit information.
	* lambda-code.c (perfect_nestify): Ditto.
	* cfgloop.c (flow_loop_free): Destroy the list of exits of the loop.
	(mark_single_exit_loops): Removed.
	(alloc_loop, loop_exit_hash, loop_exit_eq, loop_exit_free,
	get_exit_descriptions, rescan_loop_exit, record_loop_exits,
	dump_recorded_exit, dump_recorded_exits, release_recorded_exits): New
	functions.
	(get_loop_exit_edges, single_exit): Use recorded exit lists.
	(add_bb_to_loop, remove_bb_from_loops): Update the lists of loop exits.
	(verify_loop_structure): Verify consistency of the exit lists.
	(flow_loops_find): Use alloc_loop.  Initialize exits hash.
	(set_single_exit): Removed.
	* cfgloop.h (struct loop_exit): New function.
	(struct loop): single_exit_ field replaced by exits field.
	(LOOPS_HAVE_MARKED_SINGLE_EXITS): Replaced by LOOPS_HAVE_RECORDED_EXITS.
	(struct loops): Added exits hash.
	(mark_single_exit_loops, set_single_exit): Declaration removed.
	(release_recorded_exits, record_loop_exits, rescan_loop_exit): Declare.

From-SVN: r120728
2007-01-12 17:57:40 +00:00
Richard Sandiford 1cbe999f08 invoke.texi: Avoid use of @headitem.
gcc/
	* doc/invoke.texi: Avoid use of @headitem.

From-SVN: r120726
2007-01-12 15:27:42 +00:00
Richard Sandiford 192232e253 cse.c (cse_insn): Move HAVE_CC0 code after declarations.
gcc/
	* cse.c (cse_insn): Move HAVE_CC0 code after declarations.

From-SVN: r120719
2007-01-12 10:04:55 +00:00
Richard Sandiford 183dc04b83 install.texi: Fix m68k-*-* anchor and add m68k-*-* to the list of targets.
gcc/
	* doc/install.texi: Fix m68k-*-* anchor and add m68k-*-* to the
	list of targets.

From-SVN: r120718
2007-01-12 09:56:36 +00:00
Nathan Sidwell 648265890d 200x-xx-xx Nathan Sidwell <nathan@codesourcery.com> Richard Sandiford <richard@codesourcery.com>
gcc/
200x-xx-xx  Nathan Sidwell  <nathan@codesourcery.com>
	    Richard Sandiford  <richard@codesourcery.com>

	* doc/invoke.texi: Document -mno-bitfield, -mno-rtd and -mno-short.
	* config/m68k/m68k.opt: Resort options.
	(mbitfield, mrtd, mshort): Remove RejectNegative properties.

Co-Authored-By: Richard Sandiford <richard@codesourcery.com>

From-SVN: r120717
2007-01-12 09:37:15 +00:00
Nathan Sidwell 7eb4f04449 200x-xx-xx Nathan Sidwell <nathan@codesourcery.com> Richard Sandiford <richard@codesourcery.com>
gcc/
200x-xx-xx  Nathan Sidwell  <nathan@codesourcery.com>
	    Richard Sandiford  <richard@codesourcery.com>

	* doc/invoke.texi: Document the macros that are defined by
	m68k's -mtune and -mhard-float options.
	* config/m68k/m68k-protos.h (m68k_cpp_cpu_ident) Declare.
	(m68k_cpp_cpu_family): Likewise.
	* config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Add a full set
	of __ucfv*__ macros.  Define __mcffpu__ if generating code for
	ColdFire FPUs.  Define __mcf_cpu_* and __mcf_family_* macros.
	* config/m68k/m68k.c (m68k_cpp_cpu_ident): New function.
	(m68k_cpp_cpu_family): Likewise.

Co-Authored-By: Richard Sandiford <richard@codesourcery.com>

From-SVN: r120716
2007-01-12 09:36:17 +00:00
Richard Sandiford 9321405c4a m68k.h (TARGET_CPU_CPP_BUILTINS): Treat all mc68* macros besides mc68000 as tuning macros.
gcc/
	* config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Treat all mc68*
	macros besides mc68000 as tuning macros.  Use a switch statement
	to set them and mcpu32.

From-SVN: r120715
2007-01-12 09:35:13 +00:00
Julian Brown b101567e04 200x-xx-xx Julian Brown <julian@codesourcery.com>
gcc/
200x-xx-xx  Julian Brown  <julian@codesourcery.com>

	* config/m68k/m68k.h: Use TARGET_68040 instead of TARGET_68040_ONLY.
	(TARGET_68040_ONLY): Rename to...
	(TARGET_68040): ...this.
	* config/m68k/m68k.c: Use TARGET_68040 instead of TARGET_68040_ONLY.
	* config/m68k/m68k.md: Likewise.

From-SVN: r120714
2007-01-12 09:34:17 +00:00
Julian Brown 900ec02dfd 200x-xx-xx Julian Brown <julian@codesourcery.com> Nathan Sidwell...
gcc/
200x-xx-xx  Julian Brown  <julian@codesourcery.com>
	    Nathan Sidwell  <nathan@codesourcery.com>
	    Richard Sandiford  <richard@codesourcery.com>

	* config.gcc (m680[012]0-*-*, m68k*-*-*): Set m68k_cpu_ident to
	the -mcpu= argument associated with the --with-cpu setting.
	Define M68K_DEFAULT_TUNE to the default -mtune= option,
	if different from the one implied by the -mcpu setting.
	Accept --with-cpu=FOO if FOO is listed in m68k-devices.def,
	using mcpu=FOO as the default CPU option.  Set target_cpu_default2.
	* doc/invoke.texi: Mention ColdFire in the introduction to the
	m68k options.  Document the new -march, -mcpu, -mtune, -mdiv,
	-mno-div and -mhard-float options.  Make -m68881 a synonym for
	-mhard-float.  Document the previously-undocumented -m5206e,
	-m528x, -m5307 and -m5407 options.  Tweak the existing option
	documentation for consistency.
	* doc/install.texi: Mention new --with-cpu arguments.
	* config/m68k/m68k.h (OPTION_DEFAULT_SPECS): Only use the
	default CPU if neither -mcpu nor -march are specified.
	(ASM_CPU_SPEC): Pass down -mcpu and -march options.
	(TARGET_CPU_CPP_BUILTINS): Set __mcfisa*__ macros from
	TARGET_ISA*.  Set the legacy __mcf*__ cpu macros in the same way,
	using m68k_tune to decide between families that implement the
	same ISA.  Use m68k_tune to set __mcfv4e__.
	(FL_BITFIELD, FL_68881, FL_COLDFIRE, FL_CF_HWDIV, FL_CF_MAC)
	(FL_CF_EMAC, FL_CF_EMAC_B, FL_CF_USP, FL_CF_FPU, FL_ISA_68000)
	(FL_ISA_68010, FL_ISA_68020, FL_ISA_68040, FL_ISA_A, FL_ISA_B)
	(FL_ISA_C, FL_ISA_MMU): New macros.
	(MASK_COLDFIRE): Delete.
	(TARGET_68010, TARGET_68020, TARGET_68040_ONLY, TARGET_COLDFIRE)
	(TARGET_ISAB): Redefine in terms of m68k_cpu_flags.
	(TARGET_68881, TARGET_COLDFIRE_FPU): Redefine in terms of m68k_fpu.
	(TARGET_HARD_FLOAT): Do not define here.
	(TARGET_ISAAPLUS, TARGET_ISAC): New macros.
	(TUNE_68000): New macro.
	(TUNE_68000_10): Redefine in terms of TUNE_68000 and TUNE_68010.
	(TUNE_68010, TUNE_68030, TUNE_68040, TUNE_68060, TUNE_CPU32)
	(TUNE_CFV2): Redefine in terms of m68k_tune.
	(uarch_type, target_device, fpu_type): New enums.
	(m68k_cpu, m68k_tune, m68k_fpu, m68k_cpu_flags): Declare.
	* config/m68k/m68k.c (TARGET_DEFAULT): Remove MASK_68881.
	(FL_FOR_isa_00, FL_FOR_isa_10, FL_FOR_isa_20, FL_FOR_isa_40)
	(FL_FOR_isa_cpu32, FL_FOR_isa_a, FL_FOR_isa_aplus, FL_FOR_isa_b)
	(FL_FOR_isa_c): New macros.
	(m68k_isa): New enum.
	(m68k_target_selection): New structure.
	(all_devices, all_isas, all_microarchs): New tables.
	(m68k_cpu_entry, m68k_arch_entry, m68k_tune_entry, m68k_cpu)
	(m68k_tune, m68k_fpu, m68k_cpu_flags): New variables.
	(MASK_ALL_CPU_BITS): Delete.
	(m68k_find_selection): New function.
	(m68k_handle_option): Handle -mcpu=, -march= and -mtune=.
	Map the legacy target options to a combination of the new ones.
	(override_options): Set m68k_cpu, m68k_tune, m68k_fpu and
	m68k_cpu_flags.  Handle M68K_DEFAULT_TUNE.  Use m68k_cpu_flags
	to derive default MASK_BITFIELD, MASK_CF_HWDIV and MASK_HARD_FLOAT
	settings.
	* config/m68k/m68k.opt (m5200, m5206e, m528x, m5307, m5407, mcfv4e)
	(m68010, m68020, m68020-40, m68020-60, m68030, m68040): Remove Mask
	properties.
	(m68881, msoft-float): Change mask from 68881 to HARD_FLOAT.
	(march=, mcpu=, mdiv, mhard-float, mtune=): New options.
	* config/m68k/m68k-devices.def: New file.

Co-Authored-By: Nathan Sidwell <nathan@codesourcery.com>
Co-Authored-By: Richard Sandiford <richard@codesourcery.com>

From-SVN: r120713
2007-01-12 09:32:59 +00:00
Richard Sandiford 0c004537ff 200x-xx-xx Richard Sandiford <richard@codesourcery.com> Nathan Sidwell <nathan@codesourcery.com>
gcc/
200x-xx-xx  Richard Sandiford  <richard@codesourcery.com>
	    Nathan Sidwell  <nathan@codesourcery.com>

	* config/m68k/m68k.h (ASM_CPU_SPEC, ASM_SPEC, EXTRA_SPECS)
	(SUBTARGET_EXTRA_SPECS): New macros.
	* config/m68k/linux.h (ASM_SPEC): Remove CPU flags;
	use %(asm_cpu_spec) instead.
	* config/m68k/m68k-none.h (ASM_SPEC): Likewise.
	* config/m68k/openbsd.h (ASM_SPEC): Likewise.
	* config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
	(EXTRA_SPECS): Rename to...
	(SUBTARGET_EXTRA_SPECS): ...this.

Co-Authored-By: Nathan Sidwell <nathan@codesourcery.com>

From-SVN: r120712
2007-01-12 09:29:14 +00:00
Nathan Sidwell 59fbf3cbc7 200x-xx-xx Nathan Sidwell <nathan@codesourcery.com> Richard Sandiford...
gcc/
200x-xx-xx  Nathan Sidwell  <nathan@codesourcery.com>
	    Richard Sandiford  <richard@codesourcery.com>
	    Julian Brown  <julian@codesourcery.com>

	* config.gcc (m68k-*-aout*, m68k-*-coff*, m68020-*-elf*, m68k-*-elf*)
	(m68k-*-uclinux*, m68k-*-linux*, m68k-*-rtems*): Set default_m68k_cpu
	to the configuration's default CPU.
	(m68010-*-netbsdelf*, m68k*-*-netbsdelf*, m68k*-*-openbsd*): Likewise.
	Remove default masks.
	(m680[012]0-*-*): Set the default with_cpu to the first part of
	the target name.
	(m68k*-*-*): Set the default with_cpu to m$default_m68k_cpu.
	(m68k*-*-linux): Extend the --with-cpu handling to...
	(m680[012]0-*-*, m68k*-*-*): ...these configurations.  Allow m68000
	and m68010.  Don't set target_cpu_default2.
	* doc/install.texi: Document --with-cpu for m68k.
	* config/m68k/m68k.h (OPTION_DEFAULT_SPECS): Define.
	* config/m68k/m68k-none.h (TARGET_CPU_DEFAULT, M68K_CPU_m68k)
	(M68K_CPU_m68000, M68K_CPU_m68010, M68K_CPU_m68020, M68K_CPU_m68030)
	(M68K_CPU_m68040, M68K_CPU_m68302, M68K_CPU_m68332, TARGET_DEFAULT)
	(ASM_CPU_DEFAULT_SPEC, CC1_CPU_DEFAULT_SPEC): Delete.
	(ASM_SPEC): Remove use of %(asm_cpu_default).
	(EXTRA_SPECS, SUBTARGET_EXTRA_SPECS, MULTILIB_DEFAULTS): Delete.
	* config/m68k/linux.h (TARGET_DEFAULT): Delete.
	(CPP_SPEC): Merge definitions.  Do not handle __HAVE_68881__ here.
	* config/m68k/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define
	__HAVE_FPU__ if TARGET_HARD_FLOAT.
	(TARGET_DEFAULT): Delete.
	(EXTRA_SPECS): Delete cpp_cpu_default_spec, cpp_cpu_spec,
	cpp_fpu_spec, asm_default_spec and netbsd_cpp_spec.
	(CPP_CPU_SPEC): Delete.
	(TARGET_VERSION): Merge definitions, using TARGET_68010 to pick
	the appropriate string.
	(CPP_CPU_DEFAULT_SPEC, ASM_DEFAULT_SPEC, CPP_FPU_SPEC): Delete.
	(CPP_SPEC): Define to NETBSD_CPP_SPEC.
	(ASM_SPEC): Don't use %(asm_default_spec).
	* config/m68k/m68k.c (TARGET_DEFAULT_TARGET_FLAGS): Remove
	TARGET_DEFAULT and add MASK_68881.
	* config/m68k/m68k.md: Remove mention of TARGET_DEFAULT from comments.

Co-Authored-By: Julian Brown <julian@codesourcery.com>
Co-Authored-By: Richard Sandiford <richard@codesourcery.com>

From-SVN: r120711
2007-01-12 09:28:34 +00:00
Richard Sandiford 3197c4892e config.gcc (m68010-*-netbsdelf*): Add MASK_68010.
gcc/
	* config.gcc (m68010-*-netbsdelf*): Add MASK_68010.
	(m68k*-*-netbsdelf*, m68k*-*-openbsd*, m68k*-linux*): Add
	MASK_68010 alongside MASK_68020.
	* doc/invoke.texi: Document -m68010.
	* config/m68k/m68k.opt (m68010): New.
	* config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Define mc68010
	if TUNE_68010.
	(TUNE_68010): New macro.
	* config/m68k/m68k-none.h (M68K_CPU_m68k, M68K_CPU_m68010)
	(M68K_CPU_m68020, M68K_CPU_m68030, M68K_CPU_m68040)
	(M68K_CPU_m68332): Add MASK_68010.
	* config/m68k/linux.h (TARGET_DEFAULT): Add MASK_68010 to
	fallback definition.
	* config/m68k/netbsd-elf.h (CPP_CPU_SPEC): Remove now-redundant
	defines.
	* config/m68k/m68k.c (MASK_ALL_CPU_BITS): Add MASK_68010.
	(m68k_handle_option): Handle OPT_m68010.  Add MASK_68010
	to all entries that use MASK_68020.
	(output_move_simode_const, output_move_himode, output_move_qimode)
	(output_move_stricthi, output_move_strictqi): Use TARGET_68010
	instead of TARGET_68020 to select clr behavior.  Remove comment
	about there being no TARGET_68010.
	* config/m68k/m68k.md: Likewise throughout.

From-SVN: r120710
2007-01-12 09:25:27 +00:00
Julian Brown 986e74d58e 200x-xx-xx Julian Brown <julian@codesourcery.com>
gcc/
200x-xx-xx  Julian Brown  <julian@codesourcery.com>

	* config/m68k/m68k.h (TARGET_ISAB): New macro.
	* config/m68k/m68k.c: Use TARGET_ISAB rather than TARGET_CFV4.
	* config/m68k/m68k.md: Likewise.

From-SVN: r120709
2007-01-12 09:23:35 +00:00
Julian Brown bb5bdf700e 200x-xx-xx Julian Brown <julian@codesourcery.com>
gcc/
200x-xx-xx  Julian Brown  <julian@codesourcery.com>

	* config/m68k/m68k.h (LEGITIMATE_INDEX_P, LEGITIMIZE_ADDRESS): Use
	TARGET_COLDFIRE_FPU instead of TARGET_CFV4E.

From-SVN: r120708
2007-01-12 09:22:22 +00:00
Julian Brown 9cf106c865 200x-xx-xx Julian Brown <julian@codesourcery.com>
gcc/
200x-xx-xx  Julian Brown  <julian@codesourcery.com>

	* config/m68k/m68k.h (TUNE_68040_60): New macro.
	* config/m68k/m68k.c (standard_68881_constant_p): Use it.
	* config/m68k/m68k.md: Likewise.

From-SVN: r120707
2007-01-12 09:20:49 +00:00
Julian Brown fe95f2f799 200x-xx-xx Julian Brown <julian@codesourcery.com> Richard Sandiford <richard@codesourcery.com>
gcc/
200x-xx-xx  Julian Brown  <julian@codesourcery.com>
	    Richard Sandiford  <richard@codesourcery.com>

	* config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Use TUNE_68030
	instead of TARGET_68030, TUNE_68040 instead of TARGET_68040,
	TUNE_68060 instead of TARGET_68060 and TUNE_CPU32 instead of
	TARGET_CPU32.
	(TARGET_CPU32): Rename to...
	(TUNE_CPU32): ...this.
	(TUNE_68000_10, TUNE_68030, TUNE_68040, TUNE_68060)
	(TUNE_CFV2): New macros.
	* config/m68k/netbsd-elf.h (LONG_DOUBLE_TYPE_SIZE): Simplify;
	remove conditions that are implied by TARGET_68020.
	* config/m68k/m68k.c (m68k_output_function_prologue): Use TUNE_68040
	instead of TARGET_68040 and TUNE_CPU32 instead of TARGET_CPU32.
	(m68k_output_function_epilogue): Likewise.
	(m68k_rtx_costs): Likewise.  Use TUNE_68060 instead of TARGET_68060
	and TUNE_CFV2 instead of TARGET_5200.  Use TUNE_68000_10 instead of
	"!TARGET_68020 && !TARGET_COLDFIRE" to choose between 68000 and
	non-68000 timings.  Refactor multiplication and division costs.
	(output_addsi3): Use TUNE_68040 instead of TARGET_68040 and
	TUNE_CPU32 instead of TARGET_CPU32.
	(standard_68881_constant_p): Use TUNE_68040 instead of TARGET_68040
	and TUNE_68060 instead of TARGET_68060.
	* config/m68k/m68k.md: Use TUNE_68040 instead of TARGET_68040,
	TUNE_68060 instead of TARGET_68060, and TUNE_CPU32 instead of
	TARGET_CPU32.
	(movsi_const0): Use TUNE_68000_10 rather than "!TARGET_68020
	&& !TARGET_COLDFIRE" to choose between moveq and clr.
	Likewise in the unnamed movsf pattern.
	(ashlsi_17_24, lshrsi_17_24): Guard with TUNE_68000_10 rather than
	"!TARGET_68020 && !TARGET_COLDFIRE".  Likewise the unnamed
	ashiftrt pattern.

Co-Authored-By: Richard Sandiford <richard@codesourcery.com>

From-SVN: r120706
2007-01-12 09:19:52 +00:00
Richard Sandiford 9c6de4a1df m68k.h (TARGET_CPU_CPP_BUILTINS): Increase amount of tabbing before backslashes.
gcc/
	* config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Increase amount
	of tabbing before backslashes.

From-SVN: r120705
2007-01-12 09:17:50 +00:00
John David Anglin 179cd3d3f8 pa-linux.h (ASM_OUTPUT_INTERNAL_LABEL): Undefine.
* pa-linux.h (ASM_OUTPUT_INTERNAL_LABEL): Undefine.
	* pa.h (ASM_OUTPUT_LABEL): Output colon when using GAS.
	(ASM_OUTPUT_INTERNAL_LABEL): Define.

From-SVN: r120700
2007-01-12 02:17:35 +00:00
Zdenek Dvorak b697aed40f tree-ssa-loop-ivopts.c (extract_cond_operands): Split from find_interesting_uses_cond.
* tree-ssa-loop-ivopts.c (extract_cond_operands): Split from
	find_interesting_uses_cond.
	(find_interesting_uses_cond): Use extract_cond_operands.
	(rewrite_use_compare): Use extract_cond_operands and
	force_gimple_operand_bsi.  Do not call update_stmt.
	(determine_use_iv_cost_condition): Use extract_cond_operands.
	Return cheaper of using original bound and changing the exit bound.

	* gcc.dg/tree-ssa/loop-22.c: New test.

From-SVN: r120697
2007-01-12 00:30:38 +00:00
Zdenek Dvorak 662c02b33c Move the changelog for gcc.dg/tree-ssa/loop-20.c to the correct place.
From-SVN: r120696
2007-01-12 00:21:24 +00:00
Zdenek Dvorak 820410e0d5 re PR tree-optimization/29516 (gfortran miscompiled)
PR tree-optimization/29516
	* tree-ssa-address.c (tree_mem_ref_addr, add_to_parts,
	most_expensive_mult_to_index, addr_to_parts,
	create_mem_ref, maybe_fold_tmr): Make the type of
	fields of TARGET_MEM_REF sizetype.
	(move_fixed_address_to_symbol, move_pointer_to_base):
	New functions.
	* tree.def (TARGET_MEM_REF): Add comment on types of
	the operands.
	* gcc.dg/tree-ssa/loop-20.c: New test.

From-SVN: r120695
2007-01-12 00:17:50 +00:00
Joseph Myers 14e765da4a c-common.c (vector_types_convertible_p): Treat opaque types as always convertible if they have the same size...
* c-common.c (vector_types_convertible_p): Treat opaque types as
	always convertible if they have the same size, but not otherwise.

From-SVN: r120688
2007-01-11 23:14:51 +00:00
Steven Bosscher 2a33a75f60 ifcvt.c (struct noce_if_info): Add comments to the fields.
* ifcvt.c (struct noce_if_info): Add comments to the fields.
	Remove the b_unconditional field.
	(noce_try_sign_mask): Do not look at b_unconditional.
	(noce_process_if_block): Do not use merge_if_blocks.  Update
	the CFG here.  Do not set b_unconditional.
	(cond_move_process_if_block): Likewise.
	(find_cond_trap): Likewise.
	(check_cond_move_block): Require simple jump insns at the end
	of the basic block.

From-SVN: r120686
2007-01-11 21:26:02 +00:00
Jan Hubicka 7faade0f77 re PR tree-optimization/1046 (gcc less efficient than jdk for recursion with -finline-functions)
PR tree-optimization/1046
	* tree-tailcall.c (suitable_for_tail_call_opt_p): Use TREE_ADDRESSABLE
	when alias info is not ready.
	(pass_tail_recursion): Do not require aliasing.
	* tree-ssa-copyrename.c (pass_rename_ssa_cop): Likewise.
	* tree-ssa-ccp.c (pass_ccp, pass_fold_builtins): Likewise.
	* tree-ssa-copy.c (pass_copy_prop): Likewise.
	* tree-ssa-forwprop.c (pass_forwprop): Likewise.
	* tree-ssa-dce.c (pass_dce, pass_dce_loop, pass_cd_dce): Likewise.
	* passes.c (init_optimization_passes): Execute rename_ssa_copies,
	ccp, forwprop, copy_prop, merge_phi, copy_prop, dce and tail recursion
	before inlining.
	* tree-ssa-operands.c (add_virtual_operand, get_indirect_ref_operand):
	When aliasing is not build, mark statement as volatile.

	* gcc.dg/tree-ssa/tailrecursion-4.c: Update dump file.
	* gcc.dg/tree-ssa/tailrecursion-1.c: Update dump file.
	* gcc.dg/tree-ssa/tailrecursion-2.c: Update dump file.
	* gcc.dg/tree-ssa/tailrecursion-3.c: Update dump file.
	* gcc.dg/tree-ssa/pr21658.c: Likewise.
	* gcc.dg/tree-ssa/pr15349.c: Likewise.
	* gcc.dg/tree-ssa/pr25501.c: Likewise.
	* gcc.dg/tree-ssa/vrp11.c: Make more complex so it still test
	transformation in question.
	* gcc.dg/tree-ssa/vrp05.c: Likewise.
	* gcc.dg/tree-ssa/pr20701.c: Likewise.
	* gcc.dg/always_inline3.c: Likewise.

From-SVN: r120681
2007-01-11 16:50:32 +00:00
Tom Tromey 78392049f6 PR preprocessor/15185, PR preprocessor/20989:
* doc/cppopts.texi <-MT>: Update description of algorithm for
	computing default target.
	<-M, -MD>: Reword "basename" text.

From-SVN: r120679
2007-01-11 16:26:55 +00:00
Roger Sayle 455f14dd4d builtins.c (expand_builtin_pow, [...]): Replace uses of the macro TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
* builtins.c (expand_builtin_pow, expand_builtin_powi,
	fold_builtin_cabs, fold_builtin_sqrt, fold_builtin_trunc,
	fold_builtin_floor, fold_builtin_ceil, fold_builtin_round,
	fold_builtin_int_int_roundingfn, fold_builtin_bitop,
	fold_builtin_bswap, real_constp, fold_builtin_pow,
	fold_builtin_powi, fold_builtin_signbit, fold_builtin_copysign,
	do_mpfr_arg1, do_mpfr_arg2, do_mpfr_arg3, do_mpfr_sincos): Replace
	uses of the macro TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW.
	* convert.c (convert_to_pointer): Likewise.
	* expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
	* fold-const.c (force_fit_type, fold_negate_expr, int_const_binop,
	const_binop, fold_convert_const_int_from_int,
	fold_convert_const_int_from_real,
	fold_convert_const_real_from_real, sign_bit_p,
	optimize_minmax_comparison, extract_muldiv_1, fold_div_compare,
	fold_sign_changed_comparison, fold_unary, fold_comparison,
	fold_binary, multiple_of_p, tree_Expr_non_zero_p,
	fold_negate_const, fold_abs_const, fold_not_const): Likewise.
	* print-tree.c (print_node_brief, print_node): Likewise.
	* stor-layout.c (place_field, layout_type): Likewise.
	* tree-chrec.c (keep_cast): Likewise.
	* tree.c (build_vector, build_real, build_real_from_int_cst,
	build_complex): Likewise.

From-SVN: r120678
2007-01-11 16:03:10 +00:00
Roger Sayle 95fd24b641 tree.h (TREE_CONSTANT_OVERFLOW): Obsolete.
* tree.h (TREE_CONSTANT_OVERFLOW): Obsolete.  For the time being,
	treat TREE_CONSTANT_OVERFLOW as a synonym of TREE_OVERFLOW.

From-SVN: r120677
2007-01-11 15:50:50 +00:00
Paolo Bonzini 8b1f719ae7 configure.ac (strict1_warn): Rename to strict_warn.
2007-01-11  Paolo Bonzini  <bonzini@gnu.org>

	* configure.ac (strict1_warn): Rename to strict_warn.
	(WERROR, --enable-werror, symlink hacks, stage1_cflags,
	cc_set_by_configure, quoted_cc_set_by_configure,
	stage_prefix_set_by_configure, quoted_stage_prefix_set_by_configure,
	all_boot_languages, all_stagestuff): Remove.
	(target_list): Remove bootstrap targets.
	* Makefile.in (quickstrap): Unconditionally make a synonym of all.
	(BOOT_LANGUAGES, STAGE1_CFLAGS, STAGE1_CHECKING,
	REMAKEFLAGS, FLAGS_TO_PASS, PREPEND_DOTDOT_TO_RELATIVE_PATHS,
	SUBDIR_FLAGS_TO_PASS, WERROR_FLAGS, STRICT2_WARN, LANG_STAGESTUFF,
	VOL_FILES, POSTSTAGE1_FLAGS_TO_PASS, STAGE2_FLAGS_TO_PASS,
	STAGEPROFILE_FLAGS_TO_PASS, STAGEFEEDBACK_FLAGS_TO_PASS, stage1_build,
	stage1_copy, stage2_build, stage2_copy, stageprofile_build,
	stageprofile_copy, stage3_build, stage3_copy, stagefeedback_build,
	stagefeedback_copy, stage4_build, clean_s1, clean_sw, bootstrap,
	bootstrap-lean, bootstrap2, bootstrap2-lean, bootstrap3,
	bootstrap3-lean, bootstrap4, bootstrap4-lean, unstage1, unstage2,
	unstage3, unstage4, unstageprofile, unstagefeedback, restage, restage2,
	restage3, restage4, restageprofile, restagefeedback, bubbleestrap,
	cleanstrap, unstrap, restrap, *compare, *compare3, *compare4,
	*compare-lean, *compare3-lean, *compare4-lean, stage1-start, stage1,
	stage2-start, stage2, stage3-start, stage3, stage4-start, stage4,
	stageprofile-start, stageprofile, stagefeedback-start, stagefeedback,
	risky-stage1, risky-stage2, risky-stage3, risky-stage4): Remove.
	(ORDINARY_FLAGS_TO_PASS): Rename to FLAGS_TO_PASS.
	(STAGECOPYSTUFF, STAGEMOVESTUFF): Consolidate into MOSTLYCLEANFILES.
	(mostlyclean): Adjust.
	(clean, distclean): Don't mention bootstrap stuff.
	* configure: Regenerate.
	* ada/config-lang.in, cp/config-lang.in, forttran/config-lang.in,
	java/config-lang.in, objc/config-lang.in, objcp/config-lang.in,
	treelang/config-lang.in (stagestuff): Remove.
	* doc/sourcebuild.texi (stage1, stage2, stage3, stage4,
	stageprofile, stagefeedback, stagestuff): Remove mention.

From-SVN: r120670
2007-01-11 10:49:30 +00:00
Nick Clifton 6e3a343d88 predicates.md (mcore_general_movesrc_operand): Accept CONSTs.
* config/mcore/predicates.md (mcore_general_movesrc_operand): Accept CONSTs.
  (mcore_general_movdst_operand): Do not accept CONST_INTs.
  (mcore_arith_K_S_operand): Run the test for the S constraint not the test for the M constraint.
  (mcore_addsub_operand): Do not accept integer values that are larger than 32 bits.
* config/mcore/mcore.md: Remove unused constraints from split.
  (andsi3): Use HOST_WIDE_INT instead of int to hold an INTVAL.
  (addsi3): Likewise.
  (allocate_stack): Likewise.
* config/mcore/mcore.c (mcore_print_operand): Restrict output of P operands to 32 bits.
  (mcore_const_costs): Use HOST_WIDE_INT instead of int to hold an INTVAL.
  (mcore_and_cost, mcore_modify_comparison, const_ok_for_mcore,
   mcore_const_ok_for_inline, mcore_const_trick_uses_not,
   try_constant_tricks, mcore_num_ones, mcore_num_zeros,
   mcore_output_bclri, mcore_output_andn, output_inline_const,
   mcore_output_move, mcore_output_movedouble): Likewise.
  (mcore_output_cmov): Use CONST_OK_FOR_M and CONST_OK_FOR_N.
  (output_inline_const): Likewise.
  (output_inline_const): Fix format strings used in sprintf statements.
* config/mcore/mcore-protos.h: Update prototypes for changed functions in mcore.c.
* config/mcore/mcore.h (CONST_OK_FOR_I): Cast values to HOST_WIDE_INT and not int.
  (CONST_OK_FOR_J, CONST_OK_FOR_K, CONST_OK_FOR_L, CONST_OK_FOR_M,
   CONST_OK_FOR_N): Likewise.
  (LEGITIMATE_CONSTANT_P): Also check CONSTANT_P.
  (GO_IF_LEGITIMATE_INDEX): Use HOST_WIDE_INT instead of int to hold an INTVAL.

From-SVN: r120669
2007-01-11 10:10:54 +00:00
Jan Hubicka ca15e36529 tree-vrp.c (remove_range_assertions): Release defs.
* tree-vrp.c (remove_range_assertions): Release defs.
	* tree-ssa-loop-ivopts.c (rmeove_statement): Likewise.
	* tree-ssa-dom.c (remove_stmt_or_phi): Likewise.

From-SVN: r120662
2007-01-11 01:20:40 +00:00
Paul Brook 26b53f802d arm.c (arm_rtx_costs_1): Handle mutiply-subtract.
2007-01-10  Paul Brook  <paul@codesourcery.com>

	gcc/
	* config/arm/arm.c (arm_rtx_costs_1): Handle mutiply-subtract.
	* config/arm/arm.md (mulsi3subsi): New insn.

From-SVN: r120651
2007-01-10 22:06:56 +00:00
Zdenek Dvorak 567b96ed38 tree-ssa-loop-manip.c (tree_unroll_loop): Make it a wrapper over ...
* tree-ssa-loop-manip.c (tree_unroll_loop): Make it a wrapper over ...
	(tree_transform_and_unroll_loop): New.
	* tree-flow.h (transform_callback, tree_transform_and_unroll_loop):
	Declare.

From-SVN: r120650
2007-01-10 21:32:36 +00:00
Robert Kennedy 6b074ef6a0 fold-const.c (fold_comparison): Fold comparisons like (x * 1000 < 0) to (x < 0).
./:	* fold-const.c (fold_comparison): Fold comparisons like (x *
	1000 < 0) to (x < 0).
testsuite/:
	* gcc.dg/fold-compare-2.c: New test case for fold_comparison.

From-SVN: r120649
2007-01-10 21:07:38 +00:00
Ian Lance Taylor ee3202e149 tree-pretty-print.c (dump_generic_node): Print parentheses when operands have the same priority.
* tree-pretty-print.c (dump_generic_node): Print parentheses when
	operands have the same priority.

From-SVN: r120648
2007-01-10 21:03:58 +00:00
Tom Tromey 08f0e79ed9 fold-const.c (fold_truthop): Don't check can_use_bit_fields_p.
gcc
	* fold-const.c (fold_truthop): Don't check can_use_bit_fields_p.
	(fold_binary): Likewise.
	* langhooks.c (lhd_can_use_bit_fields_p): Removed.
	* langhooks-def.h (lhd_can_use_bit_fields_p): Removed.
	(LANG_HOOKS_CAN_USE_BIT_FIELDS_P): Removed.
	(LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_CAN_USE_BIT_FIELDS_P.
	* langhooks.h (struct lang_hooks): Removed field
	'can_use_bit_fields_p'.
gcc/java
	* lang.c (java_can_use_bit_fields_p): Removed.
	(LANG_HOOKS_CAN_USE_BIT_FIELDS_P): Removed.

From-SVN: r120647
2007-01-10 19:28:39 +00:00
Ralf Corsepius 9a3e895398 Fix typo in last ChangeLog entry.
From-SVN: r120642
2007-01-10 16:22:07 +01:00
Ralf Corsepius 6534c5650c * config/bfin/t-bfin, config/bfin/t-bfin-elf: GCC_CFLAGS.
From-SVN: r120640
2007-01-10 16:18:18 +01:00
Razya Ladelsky 3e87758a6b function.c (get_last_funcdef_no): New function.
2007-01-10  Razya Ladelsky  <razya@il.ibm.com>

        * function.c (get_last_funcdef_no): New function.
        * function.h (get_last_funcdef_no): Declare.
        * tree-inline.c (initialize_cfun): Add initialization.
        (tree_function_versioning): Cleanup.

From-SVN: r120638
2007-01-10 10:21:50 +00:00
Jan Hubicka 9b718f81fd tree-inline.c (setup_one_parameter): Do not propagate into abnormal PHIs.
* tree-inline.c (setup_one_parameter): Do not propagate into abnormal
	PHIs.

From-SVN: r120637
2007-01-10 09:21:09 +00:00
Sa Liu e1f1d97f19 spu.h (STACK_SAVE_AREA): Use VOIDmode for SAVE_FUNCTION...
* spu.h (STACK_SAVE_AREA): Use VOIDmode for SAVE_FUNCTION, SImode
	for SAVE_NONLOCAL and Pmode for any other save level.
	* spu-protos.h (spu_restore_stack_block): Declare.
	* spu.md (save_stack_block): Remove.
	(restore_stack_block): Call spu_restore_stack_block.
	* spu.c (spu_restore_stack_block): New function.
	(spu_expand_epilogue): Remove old comment.

Co-Authored-By: Ben Elliston <bje@au.ibm.com>

From-SVN: r120633
2007-01-10 16:24:01 +11:00
Zdenek Dvorak 7e2ac86c34 re PR middle-end/30322 (((-i-1) + i) +1) is turned into ~i + (i+1) and never into 0 on the tree level)
PR tree-optimization/30322
	* tree-ssa-loop-ivopts.c (fold_affine_expr, iv_value): Removed.
	(cand_value_at): Return the value as aff_tree.
	(may_eliminate_iv): Convert the bound from aff_tree to tree.
	* tree-affine.c (aff_combination_add_cst, aff_combination_add_product,
	aff_combination_mult): New functions.
	(aff_combination_add): Use aff_combination_add_cst.
	(aff_combination_convert): Allow conversions to a wider type.
	(tree_to_aff_combination): Handle BIT_NOT_EXPR.
	* tree-affine.h (aff_combination_mult): Declare.

	* gcc.dg/tree-ssa/loop-21.c: New test.

From-SVN: r120630
2007-01-10 00:44:26 +00:00
Carlos O'Donell fe037b8a3d tm.texi: Update documentation to reflect reality of exec and start file search behaviours.
gcc/

2007-01-09  Carlos O'Donell  <carlos@codesourcery.com>

	* doc/tm.texi: Update documentation to reflect reality of exec
	and start file search behaviours. Update copyright year.
	* doc/invoke.texi: Explain how GCC_EXEC_PREFIX is used to find
	header file directories.

From-SVN: r120622
2007-01-09 21:08:19 +00:00
Uros Bizjak c648dedbde i386.md (*sinxf2): Rename to *sinxf2_i387.
* config/i386/i386.md (*sinxf2): Rename to *sinxf2_i387.
        (*cosxf2): Rename to cosxf2_i387.

        (*sindf2, *sinsf2): Extend operand 1 to XFmode.  Macroize patterns
        using X87MODEF12 mode macro. Rename patterns to
        *sin_extend<mode>xf2_i387.  Use SSE_FLOAT_MODE_P to disable patterns
        for SSE math.
        (*cosdf2, *cossf2): Ditto.
        (sincosdf3, sincossf3): Ditto.  Rewrite corresponding splitters
        to match extended input operands.

        (sincos<mode>3): New expander.

        (*sinextendsfdf2, *cosextendsfdf2, *sincosextendsfdf3): Remove
        insn patterns and corresponding splitters.

From-SVN: r120620
2007-01-09 13:46:17 +01:00
Kaz Kojima 269008262e t-linux (TARGET_LIBGCC2_CFLAGS): Delete.
gcc/
	* config/sh/t-linux (TARGET_LIBGCC2_CFLAGS): Delete.
	(SHLIB_MAPFILES, SHLIB_LINK, SHLIB_INSTALL): Likewise.
libgcc/
	* config/sh/t-linux: New.
	* config.host (sh*-*-linux*): Set tmake_file.

From-SVN: r120619
2007-01-09 10:50:23 +00:00
Nicolas Pitre 1ba008b772 re PR target/30173 (Error in ARM softfloat routine __adddf3)
2007-01-09  Nicolas Pitre  <nico@cam.org>

	PR target/30173
	* arm/ieee754-df.S (Lad_s): Also test the low word of X for zero.

From-SVN: r120613
2007-01-09 10:08:49 +00:00
Geoffrey Keating 157600d084 Index: ChangeLog
2007-01-08  Geoffrey Keating  <geoffk@apple.com>

	* target.h (struct gcc_target): New field library_rtti_comdat.
	* target-def.h (TARGET_CXX_LIBRARY_RTTI_COMDAT): New.
	(TARGET_CXX): Add TARGET_CXX_LIBRARY_RTTI_COMDAT.
	* doc/tm.texi (C++ ABI): Document TARGET_CXX_LIBRARY_RTTI_COMDAT.
	* config/darwin.h (TARGET_CXX_LIBRARY_RTTI_COMDAT): Define.

Index: testsuite/ChangeLog
2007-01-08  Geoffrey Keating  <geoffk@apple.com>

	* g++.dg/rtti/darwin-builtin-linkage.C: New.

Index: cp/ChangeLog
2007-01-08  Geoffrey Keating  <geoffk@apple.com>

	* rtti.c: Include target.h.
	(emit_support_tinfos): If ! targetm.cxx.library_rtti_comdat (),
	don't emit typeinfo for fundamental types as weak.
	* Make-lang.in (cp/rtti.o): Update and correct dependencies.

From-SVN: r120611
2007-01-09 07:48:38 +00:00
Geoffrey Keating b061615db8 * doc/invoke.texi (Optimize Options): Correct description of -O0.
From-SVN: r120608
2007-01-09 07:30:17 +00:00
Richard Guenther b8fca551db tree.h (force_fit_type_double): Export.
2007-01-08  Richard Guenther  <rguenther@suse.de>

	* tree.h (force_fit_type_double): Export.
	(force_fit_type): Remove.
	* fold-const.c (force_fit_type_double): New function.
	(force_fit_type): Remove.
	(int_const_binop): Use it.
	(fold_convert_const_int_from_int): Likewise.
	(fold_convert_const_int_from_real): Likewise.
	(fold_div_compare): Likewise.
	(fold_sign_changed_comparison): Likewise.
	(fold_unary): Likewise.
	(fold_negate_const): Likewise.
	(fold_abs_const): Likewise. 
	(fold_not_const): Likewise.
	* c-common.c (shorten_compare): Use force_fit_type_double.
	* convert.c (convert_to_pointer): Likewise.

From-SVN: r120597
2007-01-08 23:07:44 +00:00
Richard Guenther 2ac7cbb532 tree.h (build_int_cst_wide_type): Export.
2007-01-08  Richard Guenther  <rguenther@suse.de>

	* tree.h (build_int_cst_wide_type): Export.
	* tree.c (build_int_cst_wide_type): New function.
	(build_int_cst_wide): Fix comment.
	* builtins.c (fold_builtin_object_size): Use build_int_cst
	to build -1 or 0 of the correct type.  Use fit_double_type
	to check for overflow.
	* fold-const.c (optimize_bit_field_compare): Use build_int_cst_type
	to build the mask.
	(decode_field_reference): Likewise.
	(all_ones_mask_p): Likewise.
	(native_interpret_int): Use build_int_cst_wide_type.
	(fold_binary): Use build_int_cst_type to build an all-ones
	value.
	* stor-layout.c (set_sizetype): Use build_int_cst_wide_type.

	java/
	* lex.c (do_java_lex): Use build_int_cst_wide_type.
	* jcf-parse.c (get_constant): Likewise.

	cp/
	* cvt.c (cp_convert_to_pointer): Use build_int_cst_type.

	ada/
	* cuintp.c (build_cst_from_int): Use built_int_cst_type.
	* trans.c (gnat_to_gnu): Likewise.

From-SVN: r120596
2007-01-08 22:53:20 +00:00
Daniel Jacobowitz 1c61ff2946 * config/pa/t-pa64 (libgcc_stub.a): Use $(T).
From-SVN: r120595
2007-01-08 22:50:43 +00:00
Ben Elliston df1133a62c genautomata.c (STATS_OPTION): New option.
* genautomata.c (STATS_OPTION): New option.
	(stats_flag): New flag.
	(gen_automata_option): Handle it.
	(initiate_automaton_gen): Ditto.
	(write_automata): Output statistics only if stats_flag is
	set. Likewise, output time statistics only if time_flag is set.
	* doc/md.texi (Processor pipeline description): Document new flag.

From-SVN: r120594
2007-01-09 09:24:13 +11:00
Richard Guenther 2b60792f2b builtins.c (fold_builtin_int_roundingfn): Use fit_double_type.
2007-01-08  Richard Guenther  <rguenther@suse.de>

	* builtins.c (fold_builtin_int_roundingfn): Use fit_double_type.
	* tree.c (build_int_cst_type): Likewise.
	(size_in_bytes): Don't call force_fit_type on the result.
	(int_fits_type_p): Use fit_double_type.
	* fold-const.c (fit_double_type): New function.
	(force_fit_type): Use it.
	* tree.h (fit_double_type): Export.

From-SVN: r120593
2007-01-08 22:17:43 +00:00
Jan Hubicka 4e2603091d * ipa.c (function_and_variable_visibility): Fix return type.
From-SVN: r120590
2007-01-08 22:02:26 +00:00
Jan Hubicka fe1c75466e * tree-vectorizer.c (gate_increase_alignment): Fix return type.
From-SVN: r120589
2007-01-08 21:51:44 +00:00
Richard Guenther 7fb41a42a9 tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use type of offset to build the index.
2007-01-08  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use type
	of offset to build the index.
	* tree-pretty-print.c (dump_generic_node): Don't build negated
	const just for printing.
	* c-pretty-print.c (pp_c_integer_constant): Likewise.
	* builtins.c (fold_builtin_int_roundingfn): Check if result
	fits the type by using force_fit_type and comparing the result.
	* predict.c (predict_loops): Use compare_tree_int for comparison.
	* tree.c (build_int_cst): Fall back to integer_type_node for
	NULL_TREE type.
	(build_int_cst_wide): Assert type is non-null.

	fortran/
	* trans-io.c (transfer_array_desc): Use build_int_cst instead
	of build_int_cstu.

From-SVN: r120586
2007-01-08 18:29:18 +00:00
Roberto Costa f255541fb7 Better handling of COND_EXPRs in rhs
From-SVN: r120581
2007-01-08 13:52:42 +00:00
Jan Hubicka feb8476ac4 tree-ssa-forwprop.c (forward_propagate_into_cond, [...]): Release defs of propagated statement.
* tree-ssa-forwprop.c (forward_propagate_into_cond,
	tree_ssa_forward_propagate_single_use_va): Release defs of propagated
	statement.

From-SVN: r120580
2007-01-08 13:13:09 +00:00
Richard Guenther 31ab1cc9db re PR tree-optimization/23603 (VRP does not say range for a in a = b == c; is [0,1])
2007-01-08  Richard Guenther  <rguenther@suse.de>

        PR tree-optimization/23603
        * tree-vrp.c (set_value_range_to_truthvalue): New function.
        (extract_range_from_binary): Fall back to truthvalue instead of
        varying for TRUTH_*_EXPR.
        (extract_range_from_comparison): Fall back to truthvalue instead of
        varying.
        (vrp_visit_phi_node): Don't adjust new range bounds to +INF/-INF
        if all visited PHI values were constant.

        * gcc.dg/tree-ssa/vrp31.c: New testcase.
        * gcc.dg/tree-ssa/vrp32.c: Likewise.

From-SVN: r120578
2007-01-08 11:20:00 +00:00
Jan Hubicka 151e6f2437 cgraphunit.c (cgraph_process_new_functions): Reset reachable flag.
* cgraphunit.c (cgraph_process_new_functions): Reset reachable flag.
	(cgraph_analyze_function): break out from ...
	(cgraph_finalize_compilation_unit): ... here.
	(cgraph_expand_function): Remove forgoten commented out line.
	(cgraph_optimize): Analyze functions.

From-SVN: r120577
2007-01-08 11:18:40 +00:00
Jan Hubicka f4b3ca7277 tree-pas.h (TODO_remove_function): New flag.
* tree-pas.h (TODO_remove_function): New flag.
	(TODO_update*): Renumber.
	(pass_ipa_increase_alignment,
	pass_ipa_function_and_variable_visibility): New passes.
	* cgraphunit.c (cgraph_increase_alignment): Move to tree-vectorizer.c
	(cgraph_function_and_variable_visibility): Move to ipa.c
	(cgraph_optimize): Don't call cgraph_function_and_variable_visibility,
	cgraph_increase_alignment.
	* ipa-inline.c (cgraph_decide_inlining): Don't push timevar.
	(cgraph_decide_inlining_incrementally): Push TV_INTEGRATION before
	calling tree-inline.
	(cgraph_early_inlining): Do not call cgraph_remove_unreachable_nodes.
	(pass_ipa_inline, pass_early_ipa_inlining): Set TODO_remove_functions
	* tree-vectorizer.c (increase_alignment): Move here from cgraphunit.c
	(gate_increase_alignment): New function.
	(pass_ipa_increase_alignment): New pass.
	* ipa.c: Inline tree-pass.h and timevar.h
	(function_and_variable_visibility): Move here from cgraphunit.c
	* tree-optimize.c (pass_early_local_passes): Add TODO_remove_functions.
	* passes.c (init_optimization_passes): Add the two new passes.
	(execute_todo): Handle cgraph_remove_functions.

From-SVN: r120576
2007-01-08 11:13:14 +00:00
Nick Clifton 2fe2972995 * config/frv/predicates.md (reg_or_0_operand): Accept CONST_DOUBLEs.
From-SVN: r120574
2007-01-08 09:45:55 +00:00
Ralf Corsepius 152167d5d9 rtems.h, t-rtems: New.
* config/bfin/rtems.h, config/bfin/t-rtems: New.
	* config.gcc: Add bfin*-rtems*.

From-SVN: r120573
2007-01-08 10:33:47 +01:00
Mark Shinwell 00c8e9f613 c.opt: Add -flax-vector-conversions.
gcc/
	* c.opt: Add -flax-vector-conversions.
	* c-typeck.c (convert_for_assignment): Pass flag to
	vector_types_convertible_p to allow emission of note.
	(digest_init): Likewise.
	(comptypes_internal): Use vector_types_convertible_p.
	* c-opts.c: Handle -flax-vector-conversions.
	* c-common.c (flag_lax_vector_conversions): New.
	(vector_types_convertible_p): Unless -flax-vector conversions
	has been passed, disallow conversions between vectors with
	differing numbers of subparts and/or element types.  If such
	a conversion is disallowed, possibly emit a note on the first
	occasion only to inform the user of -flax-vector-conversions.
	The new last argument specifies this.
	* c-common.h (flag_lax_vector_conversions): New.
	(vector_types_convertible_p): Add extra argument.
	* config/i386/i386.c (ix86_init_mmx_sse_builtins): Use
	char_type_node for V*QI type vectors.
	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins):
	Update to satisfy new typechecking rules.
	* config/rs6000/altivec.h (vec_cmple): Use vec_cmpge.
	* doc/invoke.texi (C Dialect Options): Document
	-flax-vector-conversions.

	gcc/cp/
	* call.c (standard_conversion): Pass flag to
	vector_types_convertible_p to disallow emission of note.
	* typeck.c (convert_for_assignment): Pass flag to
	vector_types_convertible_p to allow emission of note.
	(ptr_reasonably_similar): Pass flag to vector_types_convertible_p
	to disallow emission of note.

	gcc/testsuite/
	* gcc.target/i386/20020531-1.c: Use "char" not "unsigned char"
	in __v8qi typedef.
	* gcc.target/powerpc/altivec-vec-merge.c (foo): Add casts.
	* gcc.dg/simd-1.c: Update dg-error directives to reflect new
	compiler behaviour.
	* gcc.dg/simd-5.c: Likewise.
	* gcc.dg/simd-6.c: Likewise.
	* g++.dg/conversion/simd1.C: Likewise.
	* g++.dg/conversion/simd3.C: Likewise.
	* g++.dg/ext/attribute-test-2.C (data): Add "vs" member.
	(main): Use it.

From-SVN: r120572
2007-01-08 09:25:07 +00:00
Mark Shinwell 46e3b90f7e re PR tree-optimization/29877 (out of SSA (TER) extends variable life of variable beyond original declared)
PR tree-optimization/29877
	gcc/
	* tree-ssa-ter.c (is_replaceable_p): Deem assignments with
	a register variable on the RHS to not be replaceable.

	gcc/testsuite/
	* gcc.dg/pr16194.c: Skip test entirely if we don't know the
	name of a hard register for the target concerned.  Adjust dg-error
	directives to cope with new behaviour of TER.

From-SVN: r120571
2007-01-08 08:33:42 +00:00
Chen Liqin 99fc25020d t-score-elf (MULTILIB_OPTIONS): Change.
* config/score/t-score-elf (MULTILIB_OPTIONS): Change.
	* config/score/predicates.md (const_uimm5, sr0_operand, const_simm12,
	const_simm15, const_pow2, const_npow2): Added.
	* config/score/misc.md (insv, extv, extzv, movmemsi, 
	move_lbu_a/b, mov_lhu_a/b etc): Added and fix some bug.
	* config/score/score.c (score_address_cost, score_select_cc_mode): 
	Added.
	Change CONST_OK_FOR_LETTER_P/EXTRA_CONSTRAINT define.
	Update score_rtx_costs for MACRO TARGET_RTX_COSTS.
	Update score_print_operand.
	* config/score/score.h (DATA_ALIGNMENT, SELECT_CC_MODE): Added.
	Adjust register allocate order and update some macro define.
	* config/score/score-mdaux.c (mdx_unaligned_load, mdx_unsigned_store,
	mdx_block_move_straight, mdx_block_move_loop_head,
	mdx_block_move_loop_body, mdx_block_move_loop_foot, mdx_block_move_loop,
	mdx_block_move): Added.
	(mdx_movsicc, mdp_select_add_imm, mdp_select, mds_zero_extract_andi,
	mdp_limm): Updated and fix some bug and typo.
	* config/score/score.md (movqi/hi/si, add/sub/zero/ext): Updated.
	(movsf, movdf, doloop_end): Added.

From-SVN: r120570
2007-01-08 04:47:33 +00:00
Kazu Hirata 7a085dce62 arm.c, [...]: Fix comment typos.
* config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
	config/arm/thumb2.md: Fix comment typos.
	* doc/extend.texi: Fix a typo.

From-SVN: r120566
2007-01-08 01:17:57 +00:00
Eric Christopher a6ccdbabfd configure.ac: Check for __stack_chk_fail for darwin.
2007-01-07  Eric Christopher  <echristo@apple.com>

        * configure.ac: Check for __stack_chk_fail for darwin.
        * configure: Regenerate.

From-SVN: r120559
2007-01-07 23:53:21 +00:00
Richard Guenther b881887e66 tree-vrp.c (extract_range_from_assert): CSE calls to compare_values where possible.
2007-01-07  Richard Guenther  <rguenther@suse.de>

	* tree-vrp.c (extract_range_from_assert): CSE calls to
	compare_values where possible.
	(extract_range_from_unary_expr): Likewise.

From-SVN: r120547
2007-01-07 15:21:45 +00:00
Anatoly Sokolov 696e990bdb avr-protos.h (call_insn_operand): Delete prototype.
* config/avr/avr-protos.h (call_insn_operand): Delete prototype.
	* config/avr/avr.c (call_insn_operand): Delete function.
	* config/avr/avr.md (*pushqi, *pushhi, *pushsi, *pushsf): Use REG_SP
	instead of register number. Use predicates.
	* config/avr/predicates.md (const0_operand, reg_or_0_operand, 
	call_insn_operand): Add.

From-SVN: r120546
2007-01-07 06:45:24 +03:00
Jan Hubicka 2dee695bfc tree-pass.h (pass_build_cgraph_edges): Declare.
* tree-pass.h (pass_build_cgraph_edges): Declare.
	* cgraphunit.c (record_refernece): Move to cgraphbuild.c
	(visited_nodes): Remove.
	(cgraph_create_edges): Move to cgraphbuild.c; rename to
	build_cgrpah_edges; make visited_nodes local.
	(cgraph_process_new_functions): DO not call initialize_inline_failed.
	(record_references_in_initializer): Move to cgraphbuild.c
	(initialize_inline_failed, rebuild_cgraph_edges,
	pass_rebuild_cgraph_edges): Move to cgraphbuild.c.
	(verify_cgraph_node): Make visited_nodes local.
	(cgraph_analyze_function): Do not call cgraph_create_edges and
	initialize_inline_failed.
	(cgraph_expand_function): Do not call cgraph_lower_function;
	assert that function is already lowered.
	* Makefile.in (cgraphbuild.o): New.
	* passes.c (init_optimization_passes): Add pass_build_cgraph_edges
	at the end of lowering passes.

From-SVN: r120527
2007-01-06 17:58:40 +00:00
Steven Bosscher dc1f5a1118 ifcvt.c (cond_move_convert_if_block): New function, code factored out from...
* ifcvt.c (cond_move_convert_if_block): New function, code
	factored out from...
	(cond_move_process_if_block): ...here.  Call the new function
	on the THEN and ELSE blocks.
	(merge_if_block): Do not copy global_live_at_end, merge_blocks
	already takes care of this.

From-SVN: r120524
2007-01-06 13:56:53 +00:00
Manuel López-Ibáñez 59c0753dd3 re PR c/19978 (overflow in expression of constants should not cause multiple warnings)
2007-01-05  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR c/19978
	* tree.h (TREE_OVERFLOW_P): New.
	* c-typeck.c (parser_build_unary_op): Warn only if result
	overflowed and operands did not.
	(parser_build_binary_op): Likewise.
	(convert_for_assignment): Remove redundant overflow_warning.
	* c-common.c (overflow_warning): Don't check or set TREE_OVERFLOW.

cp/
	* semantics.c (finish_unary_op_expr): Warn only if result
	overflowed and operands did not.

testsuite/
	* gcc.dg/multiple-overflow-warn-1.c: New.
	* gcc.dg/multiple-overflow-warn-2.c: New.
	* gcc.dg/overflow-warn-6.c: New.
	* g++.dg/warn/multiple-overflow-warn-1.C: New.

From-SVN: r120505
2007-01-05 21:57:01 +00:00
Manuel López-Ibáñez c2658540a3 c-typeck.c (store_init_value): Split over two lines to follow the GNU coding style.
2007-01-05  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	* c-typeck.c (store_init_value): Split over two lines to follow
	the GNU coding style.

From-SVN: r120504
2007-01-05 21:41:32 +00:00
Benjamin Kosnik c573f4d5c6 c-cppbuiltin.c (c_cpp_builtins): __GXX_EXPERIMENTAL_CPP0X__ to __GXX_EXPERIMENTAL_CXX0X__.
2007-01-05  Benjamin Kosnik  <bkoz@redhat.com>

	* c-cppbuiltin.c (c_cpp_builtins): __GXX_EXPERIMENTAL_CPP0X__ to
	__GXX_EXPERIMENTAL_CXX0X__.
	* doc/cpp.texi: Same.

From-SVN: r120502
2007-01-05 21:24:16 +00:00
Richard Guenther afe1a916d7 re PR c++/27826 (ICE in copy_to_mode_reg)
2007-01-05  Richard Guenther  <rguenther@suse.de>

	PR middle-end/27826
	* tree.c (get_narrower): Do not construct COMPONENT_REFs
	with mismatched types.  Instead explicitly build a
	conversion NOP_EXPR.

	* g++.dg/opt/pr27826.C: New testcase.

From-SVN: r120498
2007-01-05 21:04:23 +00:00
Ian Lance Taylor b3c6d2ea00 c-common.c (decl_with_nonnull_addr_p): New function.
./:	* c-common.c (decl_with_nonnull_addr_p): New function.
	(c_common_truthvalue_conversion): Call it.
	* c-typeck.c (build_binary_op): Likewise.
	* c-common.h (decl_with_nonnull_addr_p): Declare.
cp/:
	* typeck.c (build_binary_op): Warn about comparing a non-weak
	address to NULL.
testsuite/:
	* gcc.dg/Walways-true-1.c: New test.
	* gcc.dg/Walways-true-2.c: New test.
	* g++.dg/warn/Walways-true-1.C: New test.
	* g++.dg/warn/Walways-true-2.C: New test.

From-SVN: r120493
2007-01-05 19:05:46 +00:00
Jakub Jelinek 698ac9345a re PR c/30360 (Complex divide bug)
PR c/30360
	* libgcc2.c (__divdc3): Compare c and d against 0.0 instead of
	denom against 0.0.

	* gcc.dg/pr30360.c: New test.

From-SVN: r120486
2007-01-05 16:49:05 +01:00
Joel Brobecker 4b322f430a install.texi (Final install): Document the fact that the GNAT runtime should not be stripped.
* doc/install.texi (Final install): Document the fact that
        the GNAT runtime should not be stripped.

From-SVN: r120484
2007-01-05 14:40:05 +00:00
Jan Hubicka 9477eb38c6 tree-inline.c (fold_marked_statements): Update operand caches and EH after folding
* tree-inline.c (fold_marked_statements): Update operand caches
	and EH after folding

From-SVN: r120477
2007-01-05 12:18:21 +00:00
Ian Lance Taylor dfd0a3de8f * c-common.c (check_function_nonnull): Whitespace fix.
From-SVN: r120470
2007-01-05 06:16:56 +00:00
Jan Hubicka 59e504989c tree-optimize.c (execute_fixup_cfg): Correct previously mistakely comitted older version of patch.
* tree-optimize.c (execute_fixup_cfg): Correct previously mistakely
	comitted older version of patch.
	(pass_fixup_cfg): Add TODOs to verify flow and statements, dump
	function, celanup cfg and collect garbage.

From-SVN: r120469
2007-01-05 02:00:56 +00:00
Mike Stump a87948f7fb Makefile.in (mostlyclean): Don't remove libgcc anymore.
* Makefile.in (mostlyclean): Don't remove libgcc anymore.
	(clean): Likewise.

From-SVN: r120465
2007-01-05 00:38:22 +00:00
Eric Christopher e4b6bec2f1 libgcc2.c (__bswapsi2): Use SItype.
2007-01-04  Eric Christopher  <echristo@apple.com>

	    * libgcc2.c (__bswapsi2): Use SItype.
	      (__bswapdi2): Use DItype.
	    * libgcc2.h: Update for above.

From-SVN: r120454
2007-01-04 23:16:34 +00:00
Paul Brook d6c397b0ff arm.md (arm_mulsi3, [...]): Make conditional on !arm_arch6.
2007-01-04  Paul Brook  <paul@codesourcery.com>

	* config/arm/arm.md (arm_mulsi3, thumb_mulsi3, mulsi3_compare0,
	mulsi_compare0_scratch, mulsi3addsi, mulsi3addsi_compare0,
	mulsi3addsi_compare0_scratch, mulsidi3adddi, mulsidi3,
	umulsidi3, umulsidi3adddi, smulsi3_highpart,
	umulsi3_highpart): Make conditional on !arm_arch6.
	(arm_mulsi3_v6, thumb_mulsi3_v6, mulsi3_compare0_v6,
	mulsi_compare0_scratch_v6, mulsi3addsi_v6, mulsi3addsi_compare0_v6,
	mulsi3addsi_compare0_scratch_v6, mulsidi3adddi_v6, mulsidi3_v6,
	umulsidi3_v6, umulsidi3adddi_v6, smulsi3_highpart_v6,
	umulsi3_highpart_v6): New insns.

From-SVN: r120453
2007-01-04 23:13:55 +00:00
Roger Sayle bd7e4636d9 fold-const.c (fold_convert): When casting an expression to void...
* fold-const.c (fold_convert): When casting an expression to void,
	fold_ignored_result may discover a GIMPLE_MODIFY_STMT which doesn't
	have a type.  Instead of attempting to build a NOP_EXPR, return
	these "special" trees directly.

From-SVN: r120451
2007-01-04 23:00:00 +00:00
Joseph Myers 762c919f44 rs6000.c (rs6000_rtx_costs): Make adjustment for MULT inside MINUS as either argument.
* config/rs6000/rs6000.c (rs6000_rtx_costs): Make adjustment for
	MULT inside MINUS as either argument.  Use rs6000_cost->dmul -
	rs6000_cost->fp not 0 as adjustment for outer NEG.

From-SVN: r120442
2007-01-04 16:36:57 +00:00
Jan Hubicka 3a40c18a68 cgraph.c (cgraph_release_function_body): New function.
* cgraph.c (cgraph_release_function_body): New function.
	(cgraph_remove_node): Use it.
	* cgraph.h (cgraph_release_function_body): Declare.
	* cgraphunit.c (cgraph_expand_function): Use it.
	* ipa.c (cgraph_remove_unreahchable_nodes): Use it.
	* tree-ssa.c (delete_tree_ssa): Allow to be called before aliasing
	is initialized and while compilation of other function is running.
	* tree-optimize.c (execute_free_cfg_annotations): Move code to clear
	statement CFG annotations from here to ...
	* tree-cfg.c (delete_tree_cfg_annotations): ... here.

From-SVN: r120437
2007-01-04 11:30:10 +00:00
Zdenek Dvorak b06e8639fa cfgloop.h (enum li_flags): Make the constants powers of two.
* cfgloop.h (enum li_flags): Make the constants powers of two.

From-SVN: r120433
2007-01-04 09:53:29 +00:00
Jan Hubicka b8a00a4dcb tree-inline.c (copy_bb): Insert new statements to statements_to_fold set.
* tree-inline.c (copy_bb): Insert new statements to statements_to_fold
	set.
	(fold_marked_statements): New function.
	(optimize_inline_calls, tree_function_versioning): Fold new statements.
	* tree-inline.h (copy_body_data): Add statemetns_to_fold.

From-SVN: r120430
2007-01-04 08:56:05 +00:00
Daniel Jacobowitz fa9585134f Makefile.def (target_modules): Add libgcc.
./	* Makefile.def (target_modules): Add libgcc.
	(lang_env_dependencies): Remove default items.  Use no_c and no_gcc.
	* Makefile.tpl (clean-target-libgcc): Delete.
	(configure-target-[+module+]): Emit --disable-bootstrap dependencies
	on gcc even for bootstrapped modules.  Rewrite handling of
	lang_env_dependencies to loop over target_modules.
	* configure.in (target_libraries): Add target-libgcc.
	* Makefile.in, configure: Regenerated.
gcc/
	* config.gcc: Mention libgcc/config.host.
	* Makefile.in: Update comments mentioning libgcc.
	(LIBGCC, INSTALL_LIBGCC, GCC_PARTS, mklibgcc): Delete.
	(all.cross, start.encap, rest.encap, rest.cross): Update
	dependencies for libgcc move.
	(libgcc.mk, LIBGCC_DEPS, libgcov.a, libgcc.a, stmp-multilib)
	(clean-target, clean-target-libgcc): Delete.
	(srcdirify, GCC_EXTRA_PARTS): New macros.
	(libgcc-support, libgcc.mvars): New rules.
	(distclean): Remove mention of mklibgcc.
	(install): Don't reference INSTALL_LIBGCC.
	(install-common): Don't reference EXTRA_PARTS.
	(install-libgcc, install-multilib): Delete rules.
	* mklibgcc.in: Delete file.
	* doc/configfiles.texi: Don't mention mklibgcc.

	* config/i386/t-darwin (SHLIB_VERPFX): Delete (moved to libgcc).
	* config/i386/t-darwin64 (SHLIB_VERPFX): Likewise.
	* config/rs6000/t-darwin (SHLIB_VERPFX): Likewise.
	* config/rs6000/t-ppccomm (TARGET_LIBGCC2_CFLAGS, SHLIB_MAPFILES)
	(mklibgcc, ldblspecs): Likewise.

	* config/i386/t-nwld (libgcc.def, libc.def, libpcre.def)
	(posixpre.def): Use $(T).
	(SHLIB_EXT, SHLIB_NAME, SHLIB_SLIBDIR_QUAL, SHLIB_DEF, SHLIB_MAP)
	(SHLIB_SRC, SHLIB_INSTALL): Delete.
	(SHLIB_LINK): Make dummy.
	* config/t-slibgcc-darwin: Delete contents except for dummy SHLIB_LINK.

	* config/frv/t-linux (EXTRA_MULTILIB_PARTS): Clear.

	* config/alpha/t-crtfm: Use $(T) in rules for EXTRA_PARTS.
	* config/alpha/t-vms, config/alpha/t-vms64, config/fr30/t-fr30,
	config/i386/t-rtems-i386, config/ia64/t-ia64, config/rs6000/t-beos,
	config/rs6000/t-newas, config/sparc/t-elf: Likewise.

	* configure.ac (all_outputs): Remove mklibgcc.
	* configure: Regenerated.
libgcc/
	* Makefile.in, config/i386/t-darwin, config/i386/t-darwin64,
	config/i386/t-nwld, config/rs6000/t-darwin, config/rs6000/t-ldbl128,
	config/i386/t-crtfm, config/alpha/t-crtfm, config/ia64/t-ia64,
	config/sparc/t-crtfm, config/t-slibgcc-darwin,
	config/rs6000/t-ppccomm, config.host, configure.ac, empty.mk,
	shared-object.mk, siditi-object.mk, static-object.mk: New files.
	* configure: Generated.

Co-Authored-By: Paolo Bonzini <bonzini@gnu.org>

From-SVN: r120429
2007-01-04 04:22:37 +00:00
Josh Conner 7816b87eb1 re PR middle-end/29683 (Arg split between stack/regs can cause stack corruption)
2007-03-01  Josh Conner  <jconner@apple.com>

	PR middle-end/29683
	* calls.c (compute_argument_addresses): Set stack and stack_slot
	for partial args, too.
	(store_one_arg): Use locate.size.constant for the size when
	generating a save_area.

2007-03-01  Josh Conner  <jconner@apple.com>

	PR middle-end/29683
	* gcc.dg/pr29683.c: New.

From-SVN: r120425
2007-01-04 01:37:15 +00:00
Robert Kennedy 611021e16c tree-cfg.c (tree_merge_blocks): Release SSA_NAME phi results whose definitions are deleted due to basic block...
* tree-cfg.c (tree_merge_blocks): Release SSA_NAME phi results
	whose definitions are deleted due to basic block merging.

From-SVN: r120423
2007-01-04 01:20:08 +00:00
Paul Brook a15908a410 re PR target/16634 (arm-elf-gcc problems when generating code for __attribute__ ((interrupt ("IRQ"))))
2007-01-03  Paul Brook  <paul@codesourcery.com>

	PR target/16634
	gcc/
	* config/arm/arm.c (output_return_instruction): Pop PC in interrupt
	functions.
	(use_return_insn): Return 0 for Thumb interrupt functions.
	(print_multi_reg): Add rfe argument for IRQ returns.
	(arm_output_epilogue): Pop interrupt return address directly into PC.
	(arm_expand_prologue): Only adjust IRQ return address in Arm mode.

From-SVN: r120413
2007-01-04 00:09:48 +00:00
Paul Brook 5b3e666315 backport: thumb2.md: New file.
2007-01-03  Paul Brook  <paul@codesourcery.com>

	Merge from sourcerygxx-4_1.
	gcc/
	* config/arm/thumb2.md: New file.
	* config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Return True for
	Thumb-2.
	* config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Ditto.
	* config/arm/aout.h (ASM_OUTPUT_ADDR_VEC_ELT): Add !Thumb-2 assertion.
	(ASM_OUTPUT_ADDR_DIFF_ELT): Output Thumb-2 jump tables.
	* config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output Thumb-2 jump
	tables.
	(ASM_OUTPUT_ADDR_VEC_ELT): Add !Thumb-2 assertion.
	* config/arm/ieee754-df.S: Use macros for Thumb-2/Unified asm
	comptibility.
	* config/arm/ieee754-sf.S: Ditto.
	* config/arm/arm.c (thumb_base_register_rtx_p): Rename...
	(thumb1_base_register_rtx_p): ... to this.
	(thumb_index_register_rtx_p): Rename...
	(thumb1_index_register_rtx_p): ... to this.
	(thumb_output_function_prologue): Rename...
	(thumb1_output_function_prologue): ... to this.
	(thumb_legitimate_address_p): Rename...
	(thumb1_legitimate_address_p): ... to this.
	(thumb_rtx_costs): Rename...
	(thumb1_rtx_costs): ... to this.
	(thumb_compute_save_reg_mask): Rename...
	(thumb1_compute_save_reg_mask): ... to this.
	(thumb_final_prescan_insn): Rename...
	(thumb1_final_prescan_insn): ... to this.
	(thumb_expand_epilogue): Rename...
	(thumb1_expand_epilogue): ... to this.
	(arm_unwind_emit_stm): Rename...
	(arm_unwind_emit_sequence): ... to this.
	(thumb2_legitimate_index_p, thumb2_legitimate_address_p,
	thumb1_compute_save_reg_mask, arm_dwarf_handle_frame_unspec,
	thumb2_index_mul_operand, output_move_vfp, arm_shift_nmem,
	arm_save_coproc_regs, thumb_set_frame_pointer, arm_print_condition,
	thumb2_final_prescan_insn, thumb2_asm_output_opcode, arm_output_shift,
	thumb2_output_casesi): New functions.
	(TARGET_DWARF_HANDLE_FRAME_UNSPEC): Define.
	(FL_THUMB2, FL_NOTM, FL_DIV, FL_FOR_ARCH6T2, FL_FOR_ARCH7,
	FL_FOR_ARCH7A, FL_FOR_ARCH7R, FL_FOR_ARCH7M, ARM_LSL_NAME,
	THUMB2_WORK_REGS): Define.
	(arm_arch_notm, arm_arch_thumb2, arm_arch_hwdiv, arm_condexec_count,
	arm_condexec_mask, arm_condexec_masklen)): New variables.
	(all_architectures): Add armv6t2, armv7, armv7a, armv7r and armv7m.
	(arm_override_options): Check new CPU capabilities.
	Set new architecture flag variables.
	(arm_isr_value): Handle v7m interrupt functions.
	(user_return_insn): Return 0 for v7m interrupt functions.  Handle
	Thumb-2.
	(const_ok_for_arm): Handle Thumb-2 constants.
	(arm_gen_constant): Ditto.  Use movw when available.
	(arm_function_ok_for_sibcall): Return false for v7m interrupt
	functions.
	(legitimize_pic_address, arm_call_tls_get_addr): Handle Thumb-2.
	(thumb_find_work_register, arm_load_pic_register,
	legitimize_tls_address, arm_address_cost, load_multiple_sequence,
	emit_ldm_seq, emit_stm_seq, arm_select_cc_mode, get_jump_table_size,
	print_multi_reg, output_mov_long_double_fpa_from_arm,
	output_mov_long_double_arm_from_fpa, output_mov_double_fpa_from_arm,
	output_mov_double_fpa_from_arm, output_move_double,
	arm_compute_save_reg_mask, arm_compute_save_reg0_reg12_mask,
	output_return_instruction, arm_output_function_prologue,
	arm_output_epilogue, arm_get_frame_offsets, arm_regno_class,
	arm_output_mi_thunk, thumb_set_return_address): Ditto.
	(arm_expand_prologue): Handle Thumb-2.  Use arm_save_coproc_regs.
	(arm_coproc_mem_operand): Allow POST_INC/PRE_DEC.
	(arithmetic_instr, shift_op): Use arm_shift_nmem.
	(arm_print_operand): Use arm_print_condition.  Handle '(', ')', '.',
	'!' and 'L'.
	(arm_final_prescan_insn): Use extract_constrain_insn_cached.
	(thumb_expand_prologue): Use thumb_set_frame_pointer.
	(arm_file_start): Output directive for unified syntax.
	(arm_unwind_emit_set): Handle stack alignment instruction.
	* config/arm/lib1funcs.asm: Remove default for __ARM_ARCH__.
	Add v6t2, v7, v7a, v7r and v7m.
	(RETLDM): Add Thumb-2 code.
	(do_it, shift1, do_push, do_pop, COND, THUMB_SYNTAX): New macros.
	* config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __thumb2__.
	(TARGET_THUMB1, TARGET_32BIT, TARGET_THUMB2, TARGET_DSP_MULTIPLY,
	TARGET_INT_SIMD, TARGET_UNIFIED_ASM, ARM_FT_STACKALIGN, IS_STACKALIGN,
	THUMB2_TRAMPOLINE_TEMPLATE, TRAMPOLINE_ADJUST_ADDRESS,
	ASM_OUTPUT_OPCODE, THUMB2_GO_IF_LEGITIMATE_ADDRESS,
	THUMB2_LEGITIMIZE_ADDRESS, CASE_VECTOR_PC_RELATIVE,
	CASE_VECTOR_SHORTEN_MODE, ADDR_VEC_ALIGN, ASM_OUTPUT_CASE_END,
	ADJUST_INSN_LENGTH): Define.
	(TARGET_REALLY_IWMMXT, TARGET_IWMMXT_ABI, CONDITIONAL_REGISTER_USAGE,
	STATIC_CHAIN_REGNUM, HARD_REGNO_NREGS, INDEX_REG_CLASS,
	BASE_REG_CLASS, MODE_BASE_REG_CLASS, SMALL_REGISTER_CLASSES,
	PREFERRED_RELOAD_CLASS, SECONDARY_OUTPUT_RELOAD_CLASS,
	SECONDARY_INPUT_RELOAD_CLASS, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P,
	TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE, HAVE_PRE_INCREMENT,
	HAVE_POST_DECREMENT, HAVE_PRE_DECREMENT, HAVE_PRE_MODIFY_DISP,
	HAVE_POST_MODIFY_DISP, HAVE_PRE_MODIFY_REG, HAVE_POST_MODIFY_REG,
	REGNO_MODE_OK_FOR_BASE_P, LEGITIMATE_CONSTANT_P,
	REG_MODE_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P, GO_IF_LEGITIMATE_ADDRESS,
	LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS,
	GO_IF_MODE_DEPENDENT_ADDRESS, MEMORY_MOVE_COST, BRANCH_COST,
	ASM_APP_OFF, ASM_OUTPUT_CASE_LABEL, ARM_DECLARE_FUNCTION_NAME,
	FINAL_PRESCAN_INSN, PRINT_OPERAND_PUNCT_VALID_P,
	PRINT_OPERAND_ADDRESS): Adjust for Thumb-2.
	(arm_arch_notm, arm_arch_thumb2, arm_arch_hwdiv): New declarations.
	* config/arm/arm-cores.def: Add arm1156t2-s, cortex-a8, cortex-r4 and
	cortex-m3.
	* config/arm/arm-tune.md: Regenerate.
	* config/arm/arm-protos.h: Update prototypes.
	* config/arm/vfp.md: Enable patterns for Thumb-2.
	(arm_movsi_vfp): Add movw alternative.  Use output_move_vfp.
	(arm_movdi_vfp, movsf_vfp, movdf_vfp): Use output_move_vfp.
	(thumb2_movsi_vfp, thumb2_movdi_vfp, thumb2_movsf_vfp,
	thumb2_movdf_vfp, thumb2_movsfcc_vfp, thumb2_movdfcc_vfp): New.
	* config/arm/libunwind.S: Add Thumb-2 code.
	* config/arm/constraints.md: Update include Thumb-2.
	* config/arm/ieee754-sf.S: Add Thumb-2/Unified asm support.
	* config/arm/ieee754-df.S: Ditto.
	* config/arm/bpabi.S: Ditto.
	* config/arm/t-arm (MD_INCLUDES): Add thumb2.md.
	* config/arm/predicates.md (low_register_operand,
	low_reg_or_int_operand, thumb_16bit_operator): New.
	(thumb_cmp_operand, thumb_cmpneg_operand): Rename...
	(thumb1_cmp_operand, thumb1_cmpneg_operand): ... to this.
	* config/arm/t-arm-elf: Add armv7 multilib.
	* config/arm/arm.md: Update patterns for Thumb-2 and Unified asm.
	Include thumb2.md.
	(UNSPEC_STACK_ALIGN, ce_count): New.
	(arm_incscc, arm_decscc, arm_umaxsi3, arm_uminsi3,
	arm_zero_extendsidi2, arm_zero_extendqidi2): New
	insns/expanders.
	* config/arm/fpa.md: Update patterns for Thumb-2 and Unified asm.
	(thumb2_movsf_fpa, thumb2_movdf_fpa, thumb2_movxf_fpa,
	thumb2_movsfcc_fpa, thumb2_movdfcc_fpa): New insns.
	* config/arm/cirrus.md: Update patterns for Thumb-2 and Unified asm.
	(cirrus_thumb2_movdi, cirrus_thumb2_movsi_insn,
	thumb2_cirrus_movsf_hard_insn, thumb2_cirrus_movdf_hard_insn): New
	insns.
	* doc/extend.texi: Document ARMv7-M interrupt functions.
	* doc/invoke.texi: Document Thumb-2 new cores+architectures.

From-SVN: r120408
2007-01-03 23:48:10 +00:00
Jakub Jelinek f8e7718c6f unwind-dw2.c (SIGNAL_FRAME_BIT, [...]): Define.
* unwind-dw2.c (SIGNAL_FRAME_BIT, EXTENDED_CONTEXT_BIT): Define.
	(struct _Unwind_Context): Rename args_size to flags, remove
	signal_frame field, add a new args_size field and version field.
	(_Unwind_IsSignalFrame, _Unwind_SetSignalFrame,
	_Unwind_IsExtendedContext): New inline functions.
	(_Unwind_GetGR, _Unwind_SetGR, _Unwind_GetGRPtr, _Unwind_SetGRPtr):
	Assume by_value array is only present if _Unwind_IsExtendedContext.
	(_Unwind_GetIPInfo, execute_cfa_program, uw_frame_state_for): Use
	_Unwind_IsSignalFrame.
	(__frame_state_for): Initialize context.flags to EXTENDED_CONTEXT_BIT.
	(uw_update_context_1): Use _Unwind_SetSignalFrame.
	(uw_init_context_1): Initialize context->flags to
	EXTENDED_CONTEXT_BIT.
	* config/rs6000/linux-unwind.h (frob_update_context): Use
	_Unwind_SetSignalFrame.

From-SVN: r120406
2007-01-04 00:45:47 +01:00
Andrew Pinski 798d1cc9ee Fix PR number in my last changelog entry, I got the testsuite one correct.
From-SVN: r120405
2007-01-03 15:02:13 -08:00
Andrew Pinski d9c2d2969d re PR target/20353 (uclibc does not provide C99 math functions)
2007-01-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        PR middle-end/20353
        * gimplify.c (gimplify_modify_expr_complex_part): Move below
        tree_to_gimple_tuple.  Call tree_to_gimple_tuple when we need
        the value.

2007-01-03  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        PR middle-end/30353
        * gcc.c-torture/compile/complex-4.c: New test.

From-SVN: r120404
2007-01-03 15:00:40 -08:00
Kazu Hirata d60ab19691 * cgraphunit.c, tree-ssa-alias.c: Fix comment typos.
From-SVN: r120395
2007-01-03 08:42:27 +00:00
Kazu Hirata a590ac6560 alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
* alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
	* cfgbuild.c (find_basic_blocks): Likewise.
	* cfgrtl.c (rtl_create_basic_block): Likewise.
	* function.c (temp_slots_at_level): Likewise.
	* reg-stack.c (stack_regs_mentioned): Likewise.
	* regclass.c (allocate_reg_info): Likewise.
	* tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb,
	set_bb_for_stmt, move_block_to_fn): Likewise.
	* tree-complex.c (tree_lower_complex): Likewise.
	* vec.h (VEC_safe_grow_cleared): New.

From-SVN: r120386
2007-01-03 08:04:01 +00:00
Kazu Hirata 8a2fcf9128 i386.h (NON_STACK_REG_P, [...]): Remove.
* config/i386/i386.h (NON_STACK_REG_P, REGNO_OK_FOR_SIREG_P,
	REGNO_OK_FOR_DIREG_P, REWRITE_ADDRESS, ASM_OPERAND_LETTER,
	RET, AT_SP): Remove.
	* config/i386/i386.md (*sse_prologue_save_insn): Use return
	instead of RET.

From-SVN: r120383
2007-01-03 06:44:38 +00:00
Zdenek Dvorak 03cb2019ff loop-unswitch.c (unswitch_loop): Pass probabilities to loopify.
* loop-unswitch.c (unswitch_loop): Pass probabilities to loopify.
	* tree-ssa-loop-unswitch.c (tree_unswitch_loop): Pass probabilities
	to loop_version.
	* cfgloopmanip.c (scale_loop_frequencies): Export.
	(loopify): Scale the frequencies by prescribed coefficients.
	(set_zero_probability): New function.
	(duplicate_loop_to_header_edge): Improve updating of frequencies.
	(lv_adjust_loop_entry_edge, loop_version): Set probabilities
	and frequencies according to arguments.
	* tree-ssa-loop-manip.c (tree_unroll_loop): Set probabilities
	correctly.
	* cfg.c (scale_bbs_frequencies_int): Allow scaling the frequencies up.
	* modulo-sched.c (sms_schedule): Set probabilities for entering
	versioned loop correctly.
	* tree-vect-transform.c (vect_transform_loop): Ditto.
	* cfgloop.h (loopify, loop_version): Declaration changed.
	(scale_loop_frequencies): Declared.

	* gcc.dg/tree-ssa/update-unroll-1.c: New test.
	* gcc.dg/tree-ssa/update-unswitch-1.c: New test.

From-SVN: r120378
2007-01-03 02:29:00 +00:00
Jan Hubicka 7a388ee453 pr16194.c: We now output error on all three functions, not just first one.
* gcc.dg/pr16194.c: We now output error on all three functions, not just
	first one.

	* cgraph.c: Include tree-flow.h
	(cgraph_add_new-function): Handle IPA_SSA mode; execute
	early_local_passes.
	* cgraph.h (enum cgraph_state): Add CGRAPH_STATE_IPA_SSA.
	* tree-pass.h (pass_all_early_optimizations): Declare.
	* cgraphunit.c (cgraph_process_new_functions): Add IPA_SSA; execute
	early_local_passes.
	(cgraph_analyze_function): Do early_local_passes.
	* tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for):
	Do not add referenced vars.
	* tree-optimize.c (gate_all_optimizations): Do not execute when not in
	SSA form.
	(gate_all_early_local_passes): New gate.
	(pass_early_local_passes): Use new gate.
	(execute_early_local_optimizations): New functions.
	(gate_all_early_optimizations): New gate.
	(pass_all_early_optimizations): New pass.
	(execute_free_datastructures): Free SSA only when initialized.
	(gate_init_datastructures): Init only when optimizing.
	(tree_lowering_passes): Do early local passes when called late.
	* tree-profile.c (do_tree_profiling): Don't profile functions added
	late.
	(do_early_tree_profiling, pass_early_tree_profile): Kill.
	* tree-cfg.c (update_modified_stmts): Do not update when operands are
	not active.
	* passes.c (init_optimizations_passes): Reorder so we go into SSA
	during early_local_passes.
	* Makefile.in (cgraph.o): Add dependency on tree-flow.h.

From-SVN: r120373
2007-01-03 01:12:56 +00:00
Carlos O'Donell ce7b00a869 Makefile.in: Update copyright year.
gcc/

2007-01-02  Carlos O'Donell  <carlos@codesourcery.com>

	* Makefile.in: Update copyright year.

From-SVN: r120360
2007-01-02 22:20:41 +00:00
Carlos O'Donell b3e7b87f99 Makefile.in: Export GCC_EXEC_PREFIX before calling $(RUNTEST) in $(lang_checks) and...
gcc/

2007-01-02  Carlos O'Donell  <carlos@codesourcery.com>

	* Makefile.in: Export GCC_EXEC_PREFIX before calling $(RUNTEST)
	in $(lang_checks) and check-consistency targets.

From-SVN: r120359
2007-01-02 22:13:19 +00:00
Jan Hubicka ed1a2abdb1 tree-mudflap.c (mf_decl_cache_locals, [...]): Do not add referenced vars.
* tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for):
        Do not add referenced vars.
        * tree-cfg.c (update_modified_stmts): Do not update when SSA operands
        are not active.
        * passes.c (init_optimization_passes): Put mudflap_2 after
        free_datastructures.

From-SVN: r120358
2007-01-02 21:36:17 +00:00
Jan Hubicka de6bd996eb tree-optimize (execute_fixup_cfg): Set after_inlining flag.
2007-01-02  Jan Hubicka  <jh@suse.cz>

	* tree-optimize (execute_fixup_cfg): Set after_inlining flag.
	Set NOTHROW flag on call statements proved to be nothrow.
	Update statement of local calls so new pure/const functions are
	updated. Update_ssa when in ssa form. Mark PHI nodes of nonlocal
	goto receivers.
	(tree_rest_of_compilation): Register hooks and initialize bitmap
	early. Do not set after_inlining flag.

From-SVN: r120357
2007-01-02 21:33:45 +00:00
Steve Ellcey a063525a3a sbitmap.c (HOST_BITS_PER_LONG_LONG): Change to HOST_BITS_PER_LONGLONG
* sbitmap.c (HOST_BITS_PER_LONG_LONG):  Change to
	HOST_BITS_PER_LONGLONG

From-SVN: r120356
2007-01-02 21:23:55 +00:00
Manuel López-Ibáñez b405ac807c re PR c/19977 (overflow in non-static initializer should not be pedwarn)
2007-01-02  Manuel Lopez-Ibanez <manu@gcc.gnu.org>

	PR c/19977
	* c-typeck.c (store_init_value): Don't emit pedantic overflow
	warning for non-static initializers.

testsuite/
	* gcc/testsuite/gcc.dg/overflow-warn-3.c: Remove XFAIL.
	* gcc/testsuite/gcc.dg/overflow-warn-4.c: Remove XFAIL.

From-SVN: r120355
2007-01-02 20:07:44 +00:00
Steven Bosscher bd94cb6ec8 alpha.md, [...]: Always use set_unique_reg_note to add REG_EQUAL notes.
* config/alpha/alpha.md, arm/arm.c, darwin.c, frv/frv.md,
        m32r/m32r.c, m32r/m32r.c, mn10300/mn10300.md, pa/pa.c,
        rs6000/rs6000.c, s390/s390.md, sh/sh.md, sparc/sparc.c:
        Always use set_unique_reg_note to add REG_EQUAL notes.

From-SVN: r120353
2007-01-02 18:50:33 +00:00
Kazu Hirata 61465e7563 Revert:
2007-01-02  Kazu Hirata  <kazu@codesourcery.com>

	* alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
	* cfgbuild.c (find_basic_blocks): Likewise.
	* cfgrtl.c (rtl_create_basic_block): Likewise.
	* function.c (temp_slots_at_level): Likewise.
	* reg-stack.c (stack_regs_mentioned): Likewise.
	* regclass.c (allocate_reg_info): Likewise.
	* tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb,
	set_bb_for_stmt, move_block_to_fn): Likewise.
	* tree-complex.c (tree_lower_complex): Likewise.
	* vec.h (VEC_safe_grow_cleared): New.

From-SVN: r120351
2007-01-02 18:06:37 +00:00
Ian Lance Taylor fbc8d2d30e c-common.c (c_common_truthvalue_conversion): When warning about using an assignment as a truth value, set TREE_NO_WARNING.
./:	* c-common.c (c_common_truthvalue_conversion): When warning about
	using an assignment as a truth value, set TREE_NO_WARNING.
cp/:
	* semantics.c (maybe_convert_cond): Optionally warn when using an
	assignment as a condition.
	* typeck.c (convert_for_assignment): Optionally warn about
	assigning the result of an assignment to a bool.
testsuite/:
	* g++.dg/warn/Wparentheses-22.C: New test.
	* g++.dg/warn/Wparentheses-23.C: New test.

From-SVN: r120348
2007-01-02 17:49:07 +00:00
Manuel López-Ibáñez b1ed4cb43c re PR middle-end/7651 (Define -Wextra strictly in terms of other warning flags)
2007-01-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR middle-end/7651
	* c.opt (Wold-style-declaration): New.
	* doc/invoke.texi (C-only Warning Options): New.
	(Wold-style-declaration): Document it.
	(Wextra): Enabled by -Wextra.
	* c-opts.c (c_common_post_options): Enabled by -Wextra.
	* c-decl.c (declspecs_add_scspec): Replace -Wextra with
	-Wold-style-declaration.

testsuite/
	* gcc.dg/declspec-3.c: Replace -W with -Wold-style-declaration.
	* gcc.dg/declspec-3-Wextra.c: New.
	* gcc.dg/declspec-3-no.c: New

From-SVN: r120347
2007-01-02 17:33:25 +00:00
Kazu Hirata d887a68299 alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
* alias.c (init_alias_analysis): Use VEC_safe_grow_cleared.
	* cfgbuild.c (find_basic_blocks): Likewise.
	* cfgrtl.c (rtl_create_basic_block): Likewise.
	* function.c (temp_slots_at_level): Likewise.
	* reg-stack.c (stack_regs_mentioned): Likewise.
	* regclass.c (allocate_reg_info): Likewise.
	* tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb,
	set_bb_for_stmt, move_block_to_fn): Likewise.
	* tree-complex.c (tree_lower_complex): Likewise.
	* vec.h (VEC_safe_grow_cleared): New.

From-SVN: r120345
2007-01-02 17:03:22 +00:00
Douglas Gregor 06d40de8bb c-common.c (c_common_nodes_and_builtins): Since variants of void_type_node get built before it is given a name...
2007-01-02  Douglas Gregor  <doug.gregor@gmail.com>

	* c-common.c(c_common_nodes_and_builtins): Since variants of
	void_type_node get built before it is given a name, we need to
	give those variants the name, too. 
	(complete_array_type): We need to work with the canonical main
	type of the array, from which we will build the qualified version.
	* params.def (PARAM_VERIFY_CANONICAL_TYPES): New.
	* print-tree.c (print_node): Display canonical type information
	for each type.
	* stor-layout.c (layout_type): When we don't know the
	alignment of a type for which we're building an array, we end up
	guessing wrong, so make the type require structural equality.
	* tree.c (make_node_stat): When we build a new type, it is its
	own canonical type.
	(build_type_attribute_qual_variant): When building an attribute
	variant, its canonical type is the non-attribute variant. However,
	if the attributes are target-dependent and they differ, we need to
	use structural equality checks for this type.
	(build_qualified_type): A qualified type is not equivalent to its
	unqualified variant; set the canonical type appropriately.
	(build_distinct_type_copy): When building a distinct type from
	another type, the new type is its own canonical type.
	(build_variant_type_copy): When building a new type variant, we
	assume that it is equivalent to the original type.
	(build_pointer_type_for_mode): When building a pointer type, also
	build a canonical type pointer.
	(build_reference_type_for_mode): When building a reference type,
	also build a canonical type reference.
	(build_index_type): When we can't hash an index type (e.g.,
	because its maximum value is negative), the index type requires
	structural equality tests.
	(build_array_type): Build the canonical form of an array type.
	(build_function_type): Function types require structural equality,
	because they contain default arguments, attributes, etc. 
	(build_method_type_directly): Ditto for method types.
	(build_offset_type): Build the canonical offset type.
	(build_complex_type): Build the canonical vector type.
	(make_vector_type): Build the canonical vector type.
	* tree.h (TYPE_CANONICAL): New.
	(TYPE_STRUCTURAL_EQUALITY_P): New.
	(SET_TYPE_STRUCTURAL_EQUALITY): New.
	(struct tree_type): Added "canonical" field.
	* params.h (VERIFY_CANONICAL_TYPES): New.
	* doc/c-tree.texi (TYPE_CANONICAL): Document.
	(TYPE_STRUCTURAL_EQUALITY_P): Document.
	(SET_TYPE_STRUCTURAL_EQUALITY): Document.
	* doc/invoke.texi (verify-canonical-types): Document --param
	parameter for verifying canonical types.
	
2007-01-02  Douglas Gregor  <doug.gregor@gmail.com>

	* typeck.c (structural_comptypes): Renamed from "comptypes".
	(comptypes): Use canonical type information to perform fast type
	comparison. When VERIFY_CANONICAL_TYPES, verify that the
	canonical type comparison returns the same results as we would see
	from the current, structural check. Support COMPARE_STRUCTURAL
	when we need structural checks.
	* decl.c (typename_compare): Fix comment.
	(build_typename_type): TYPENAME_TYPE nodes require structural
	equality checks, because they resolve different based on the
	current class type.
	(make_unbound_class_template): UNBOUND_CLASS_TEMPLATE nodes
	require structural equality checks (for now).
	(build_ptrmemfunc_type): Build the canonical pointer to member
	function type.
	(compute_array_index_type): Whenever we build a new index type
	to represent the size of an array in a template, we need to mark
	this index type as requiring structural equality. This goes for
	arrays with value-dependent sizes with the current ABI, or all
	arrays with ABI-1.
	* tree.c (cplus_array_hash): New.
	(struct cplus_array_info): New.
	(cplus_array_compare): New.
	(cplus_array_htab): New.
	(build_cplus_array_type_1): Use a hash table to cache the array
	types we build. Build the canonical array type for each array
	type.
	(cp_build_qualified_type_real): When building a cv-qualified array
	type, use the hash table of array types and build canonical array
	types as necessary.
	(bind_template_template_parm): BOUND_TEMPLATE_TEMPLATE_PARM nodes
	use structural equality (for now).
	* cp-tree.h (COMPARE_STRUCTURAL): New.
	* pt.c (canonical_template_parms): New.
	(canonical_type_parameter): New.
	(process_template_parm): Find the canonical type parameter.
	(lookup_template_class): When we have named the primary template
	type, set the canonical type for our template class to the primary
	template type. If any of the template arguments need structural
	equality checks, the template class needs structural equality
	checks.
	(tsubst): When reducing the level of a template template
	parameter, we require structural equality tests for the resulting
	parameter because its template parameters have not had their types
	canonicalized. When reducing a template type parameter, find the
	canonical reduced type parameter.
	(any_template_arguments_need_structural_equality_p): New.

2007-01-02  Douglas Gregor  <doug.gregor@gmail.com>
	
	* objc-act.c (objc_build_volatilized_type): Keep track of
	canonical types.
	(objc_get_protocol_qualified_type): Ditto.

From-SVN: r120341
2007-01-02 14:23:26 +00:00
Joseph Myers eca0d5e8ce config.gcc (powerpc-*-eabispe*, [...]): Add rs6000/e500.h to tm_file.
* config.gcc (powerpc-*-eabispe*, powerpc-*-eabisimaltivec*,
	powerpc-*-eabisim*, powerpc-*-eabialtivec*, powerpc-*-eabi*,
	powerpc-*-rtems*, powerpc-wrs-vxworks, powerpc-wrs-vxworksae,
	powerpcle-*-eabisim*, powerpcle-*-eabi*): Add rs6000/e500.h to
	tm_file.
	* config/rs6000/e500.h: New.
	* config/rs6000/eabi.h (TARGET_SPE_ABI, TARGET_SPE, TARGET_E500,
	TARGET_ISEL, TARGET_FPRS, TARGET_E500_SINGLE, TARGET_E500_DOUBLE):
	Remove.
	* config/rs6000/linuxspe.h (TARGET_SPE_ABI, TARGET_SPE,
	TARGET_E500, TARGET_ISEL, TARGET_FPRS, TARGET_E500_SINGLE,
	TARGET_E500_DOUBLE): Remove.
	* config/rs6000/vxworks.h (TARGET_SPE_ABI, TARGET_SPE,
	TARGET_E500, TARGET_ISEL, TARGET_FPRS): Remove.
	* config/rs6000/rs6000.h (CHECK_E500_OPTIONS): Define.
	* config/rs6000/rs6000.c (rs6000_override_options): Use
	CHECK_E500_OPTIONS.

From-SVN: r120340
2007-01-02 13:08:01 +00:00
Joseph Myers 8ef65e3da8 rs6000.c (print_operand): Check (TARGET_SPE || TARGET_E500_DOUBLE), not TARGET_E500, for %y.
* config/rs6000/rs6000.c (print_operand): Check (TARGET_SPE ||
	TARGET_E500_DOUBLE), not TARGET_E500, for %y.
	(rs6000_generate_compare, rs6000_emit_sCOND, output_cbranch,
	rs6000_emit_cmove): Don't check TARGET_E500.
	* config/rs6000/rs6000.md (bunordered, bordered, sunordered,
	sordered): Don't check TARGET_E500.

From-SVN: r120339
2007-01-02 13:03:59 +00:00
Eric Christopher d8934cf1e3 mips.c (mips_regno_mode_ok_for_base_p): Use HARD_REGISTER_NUM_P.
2007-01-01  Eric Christopher  <echristo@apple.com>

        * config/mips/mips.c (mips_regno_mode_ok_for_base_p): Use
        HARD_REGISTER_NUM_P.

From-SVN: r120334
2007-01-02 06:34:09 +00:00
Roger Sayle cf06e5c146 fold-const.c (fold_binary): Fold "(X^C1) eq/ne C2" into "X eq/ne (C1^C2)".
* fold-const.c (fold_binary) <EQ_EXPR>: Fold "(X^C1) eq/ne C2" into
	"X eq/ne (C1^C2)".  Fold "(X^Z) eq/ne (Y^Z)" as "X eq/ne Y" when Z
	has no side-effects.  Fold "(X^C1) eq/ne (Y^C2)" as "(X^(C1^C2))
	eq/ne Y".

	* gcc.dg/fold-eqxor-4.c: New test case.

From-SVN: r120333
2007-01-02 04:32:07 +00:00
Mike Stump e68ea32e94 configure.ac: Remove support for building with Apple's gcc-3.1.
gcc:
	* configure.ac: Remove support for building with Apple's gcc-3.1.
config:
	* mh-ppc-darwin: Remove support for building with Apple's gcc-3.1.

From-SVN: r120331
2007-01-02 03:35:17 +00:00
Joseph Myers a446b4e815 re PR middle-end/30311 (revision 120211 failed to compile perlbench)
gcc:
	PR middle-end/30311
	* caller-save.c (add_stored_regs): Only handle SUBREGs if inner
	REG is a hard register.  Do not modify REG before calling
	subreg_nregs.
	* rtlanal.c (subreg_get_info): Don't assert size of XMODE is a
	multiple of the size of YMODE for certain lowpart cases.

gcc/testsuite:
	* gcc.c-torture/compile/pr30311.c: New test.

From-SVN: r120329
2007-01-02 00:38:21 +00:00
Andrew Pinski e7073e6440 Fix misspelling of GIMPLE_MODIFY_STMT.
This is what I get for copying manually the patch.

From-SVN: r120322
2007-01-01 14:27:27 -08:00
Andrew Pinski c0893ec0e1 re PR middle-end/30253 (ICE with statement expression inside a conditional)
2007-01-01  Andrew Pinski  <pinskia@gmail.com>

        PR middle-end/30253
        * gimplify (voidify_wrapper_expr): Update for
        GIMPLIFY_MODIFY_STMT.

2007-01-01  Andrew Pinski  <pinskia@gmail.com>

        PR middle-end/30253
        * gcc.c-torture/compile/statement-expression-1.c: New test.

From-SVN: r120321
2007-01-01 14:19:58 -08:00
Andreas Schwab ae1e2d4caa re PR target/29166 (broken unwind information for many life variables resulting in register corruption)
PR target/29166
	* config/ia64/ia64.c (ia64_compute_frame_size): Account space for
	save of BR0 in extra_spill_size instead of spill_size.
	(ia64_expand_prologue): Save BR0 outside of the gr/br/fr spill
	area.
	(ia64_expand_epilogue): Restore BR0 from its new location.

testsuite/:
	* g++.dg/eh/pr29166.C: New test.

From-SVN: r120319
2007-01-01 22:03:23 +00:00
Andrew Pinski 9bed0a3480 gimplify.c (gimplify_init_constructor <case VECTOR_TYPE>): Use a temporary variable if the left hand side is not a gimple register.
2007-01-01  Andrew Pinski  <pinskia@gmail.com>

        * gimplify.c (gimplify_init_constructor <case VECTOR_TYPE>):
        Use a temporary variable if the left hand side is not a gimple
        register.

From-SVN: r120318
2007-01-01 14:01:59 -08:00
Andrew Pinski a441d616ba gimplify.c (gimplify_return_expr): Make the temporary variable for the return expression, a gimple register variable.
2007-01-01  Andrew Pinski  <pinskia@gmail.com>

        * gimplify.c (gimplify_return_expr): Make the temporary variable
        for the return expression, a gimple register variable.

From-SVN: r120317
2007-01-01 13:58:19 -08:00
Jan Hubicka 95e2a53bfc emit-rtl.c (emit_copy_of_insn_after): Do not call copy_insn_1 for INSN_LIST.
* emit-rtl.c (emit_copy_of_insn_after): Do not call copy_insn_1 for
	INSN_LIST.

From-SVN: r120316
2007-01-01 21:53:31 +00:00
Mike Stump 5708d18d3e configure.ac (HAVE_GAS_LITERAL16): Add autoconf check for .literal16.
* configure.ac (HAVE_GAS_LITERAL16): Add autoconf check for
	.literal16.
	* config/darwin.c (machopic_select_rtx_section): Use
	HAVE_GAS_LITERAL16.
	(darwin_mergeable_constant_section): Likewise.
	* configure: Regenerate.
	* config.in: Regenerate.

From-SVN: r120315
2007-01-01 20:58:38 +00:00
Jan Hubicka 03c72655ba cgraphunit.c (cgraph_optimize): Call cgraph_add_new_functions before starting IPA passes.
* cgraphunit.c (cgraph_optimize): Call cgraph_add_new_functions
	before starting IPA passes.

Co-Authored-By: Andrew Pinski <pinskia@gmail.com>

From-SVN: r120314
2007-01-01 20:11:09 +00:00
Mike Stump f1aea409a4 Rotate ChangeLog file.
From-SVN: r120313
2007-01-01 19:54:50 +00:00
Richard Guenther e015f57888 re PR tree-optimization/30137 (Missed folding of pointer comparison)
2006-12-31  Richard Guenther  <rguenther@suse.de>

	PR middle-end/30137
	* fold-const.c (fold_comparison): Fold comparison of addresses
	of components.

	* testsuite/gcc.dg/pr30137-1.c: New testcase.
	* testsuite/gcc.dg/pr30137-2.c: Likewise.

From-SVN: r120301
2006-12-31 17:27:35 +00:00
Roger Sayle 870aa1ebe0 re PR middle-end/30322 (((-i-1) + i) +1) is turned into ~i + (i+1) and never into 0 on the tree level)
PR middle-end/30322
	* fold-const.c (fold_binary): Fold X + ~X and ~X + X into -1 when
	we don't care about trapping overflow.  Only convert -A - 1 into ~A
	when we don't care about trapping overflow.

	* gcc.dg/fold-plusnot-1.c: New test case.

From-SVN: r120300
2006-12-31 16:17:49 +00:00
Richard Guenther 72ff1a9609 re PR middle-end/30338 (infinite loop in maybe_canonicalize_comparison)
2006-12-31  Richard Guenther  <rguenther@suse.de>

	PR middle-end/30338
	* fold-const.c (fold_binary): Fix type-mismatch in folding
	of -1 - A to ~A.

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

From-SVN: r120297
2006-12-31 14:01:19 +00:00
Kazu Hirata 5305a4cb33 * tree-inline.c: Fix a comment typo.
From-SVN: r120288
2006-12-30 21:17:30 +00:00
Jan Hubicka 54e7d067d5 ipa-pure-const.c (check_operand): SSA_NAME is safe.
* ipa-pure-const.c (check_operand): SSA_NAME is safe.
	* ipa-type-escape.c (scan_for_refs): Look into SSA_NAMEs.

From-SVN: r120286
2006-12-30 12:15:16 +00:00
Jan Hubicka b730fa614c tree.h (DECL_CALL_CLOBBERED): Remove.
* tree.h (DECL_CALL_CLOBBERED): Remove.
	(tree_decl_common): Remove call_clobbered flag.
	* tree-flow.h (struct var_ann_d): Add call_clobbered flag.
	* tree-ssa-alias.c (mark_non_addressable, reset_cc_flags): Update.
	* tree-flow-inline.h (is_call_clobbered, mark_call_clobbered,
	clear_call_clobbered): Update.
	* tree-ssa.c (verify_call_clobbering): Update.

From-SVN: r120285
2006-12-30 12:03:47 +00:00
Jan Hubicka d586d6d1f6 tree-ssa-alias.c (create_structure_vars): When in SSA, update operand caches.
* tree-ssa-alias.c (create_structure_vars): When in SSA, update operand
	caches.
	* tree-ssa-operands.c (build_ssa_operands): Recompute addresses_taken
	bitmap.

From-SVN: r120284
2006-12-30 12:02:09 +00:00
Jan Hubicka 4b73962b7e emit-rt.c (emit_copy_of_insn_after): Fix bug causing exponential amount of copies of INSN_NOTEs list.
* emit-rt.c (emit_copy_of_insn_after): Fix bug causing exponential
	amount of copies of INSN_NOTEs list.

Co-Authored-By: Vladimir Yanovsky <volodyan@gmail.com>

From-SVN: r120283
2006-12-30 12:00:45 +00:00
Jan Hubicka f45e0ad1c7 cgraph.c (cgraph_exapnd_queue): Rename to...
* cgraph.c (cgraph_exapnd_queue): Rename to...
	(cgraph_new_nodes): ... this one.
	(cgraph_state): New global variable.
	(cgraph_add_new_function): Work in more cases.
	* cgraph.h (cgraph_expand_queue): Rename to ...
	(cgraph_new_nodes): ... this one.
	(cgraph_state): New enum and static variable.
	(cgraph_add_new_function): Update prototype.
	(cgraph_process_new_functions): New.
	* omp-low.c (expand_omp_parallel): Update.
	* cgraphunit.c (initialize_inline_failed): Declare early.
	(cgraph_process_new_functions): New function.
	(cgraph_assemble_pending_functions): Use it.
	(cgraph_expand_all_functions): Use it.
	(cgraph_optimize): Use it; set cgraph_state.
	* passes.c (execute_one_pass, execute_ipa_pass_list): Process new
	functions

From-SVN: r120282
2006-12-30 11:58:01 +00:00
Kazu Hirata 5fb233742c i386.h (NON_QI_REG_P): Remove.
* config/i386/i386.h (NON_QI_REG_P): Remove.
	* config/i386/predicates.md (non_q_regs_operand): Remove.

From-SVN: r120267
2006-12-29 16:07:37 +00:00
Kazu Hirata cb9444a7ab tree-cfg.c (last_stmt_ptr): Remove.
* tree-cfg.c (last_stmt_ptr): Remove.
	* tree-flow.h: Remove the prototype for last_stmt_ptr.

From-SVN: r120266
2006-12-29 16:05:57 +00:00
Ian Lance Taylor c6d86fcea5 c-common.c (c_define_builtins): New static function broken out of c_common_nodes_and_builtins.
* c-common.c (c_define_builtins): New static function broken out
	of c_common_nodes_and_builtins.
	(c_common_nodes_and_builtins): Call c_define_builtins unless only
	doing preprocessing.

From-SVN: r120264
2006-12-29 15:48:26 +00:00
Jan Hubicka 110cfe1cdc tree-inline.c (remap_ssa_name): New function.
* tree-inline.c (remap_ssa_name): New function.
	(remap_decl): Update SSA datastructures for DECLs.
	(copy_body_r): Deal with SSA_NAMEs; add referenced global vars.
	(copy_bb): Set SSA_NAME def stmts.
	(update_ssa_acorss_eh_edges): New function.
	(copy_edge_for_bb): Call it; mark new vars for renaming.
	(copy_phis_for_bb): New function.
	(initialize_cfun): Break out from ...
	(copy_cfg_body): ... here; maintain AUX map for both directions;
	call SSA updating workers; do not produce copy of cfun to be copied.
	(setup_one_parameter): Do propagation across SSA form.
	(declare_return_variable): Work on SSA; use return_slot instead of
	address of return slot of argument to avoid folding back and forth.
	(expand_call_inline): Update SSA from on return values.
	(optimize_inline_calls): Do sanity checking, dead blocks removal,
	update SSA form.
	(tree_function_verioning): Update initialize_cfun.

From-SVN: r120260
2006-12-29 11:10:31 +00:00
Marcin Dalecki 311c6da40f invoke.texi: Replace no longer supported -fno-strength-reduce with -fmerge-constants in...
2006-12-29  Marcin Dalecki  <martin@dalecki.de>

	* doc/invoke.texi: Replace no longer supported -fno-strength-reduce
	with -fmerge-constants in sample code.

From-SVN: r120253
2006-12-29 02:39:32 +01:00
Kazu Hirata 90a0f159e1 Makefile.in (OBJS-common): Remove conflict.o
* Makefile.in (OBJS-common): Remove conflict.o
	(conflict.o): Remove.
	* basic-block.h: Remove the prototypes for conflict.c.
	* conflict.c: Remove.

From-SVN: r120238
2006-12-28 06:44:53 +00:00
Daniel Berlin 97508a6b31 sbitmap.c (BITMAP_DEBUGGING): New macro.
2006-12-27  Daniel Berlin  <dberlin@dberlin.org>

	* sbitmap.c (BITMAP_DEBUGGING): New macro.
	(do_popcount): Ditto.
	(sbitmap_verify_popcount): New function.
	(sbitmap_alloc): Set popcount to NULL, remove set of bytes
	member.
	(sbitmap_alloc_with_popcount): New function.
	(sbitmap_resize): Remove uses of bytes member and update
	popcount.
	(sbitmap_realloc): Remove uses of bytes member.
	(sbitmap_copy): Copy popcount.
	(sbitmap_copy_n): New function.
	(sbitmap_zero): Update popcount cache.
	(sbitmap_ones): Ditto.
	(sbitmap_a_and_b): Ditto.
	(sbitmap_a_or_b): Ditto.
	(sbitmap_a_xor_b): Ditto.
	(sbitmap_union_of_diff_cg): Assert non-existence of popcount
	cache.
	(sbitmap_union_of_diff): Ditto.
	(sbitmap_not): Ditto.
	(sbitmap_difference): Ditto.
	(sbitmap_a_and_b_cg): Ditto.
	(sbitmap_a_xor_b_cg): Ditto.
	(sbitmap_a_or_b_cg): Ditto.
	(sbitmap_a_or_b_and_c_cg): Ditto.
	(sbitmap_a_and_b_or_c_cg): Ditto.
	(sbitmap_intersection_of_succs): Ditto.
	(sbitmap_intersection_of_preds): Ditto.
	(sbitmap_union_of_succs): Ditto.
	(sbitmap_union_of_preds): Ditto.
	(popcount_table): New.
	(sbitmap_elt_popcount): New function.
	(sbitmap_popcount): Ditto.

	* sbitmap.h (sbitmap): Remove bytes member.
	Add popcount member.
	(SET_BIT): Macro turned into function.
	(RESET_BIT): Ditto.
	(SBITMAP_SIZE_BYTES): New macro.
	(sbitmap_free): Free popcount too.
	(sbitmap_alloc_with_popcount): New prototype.
	(sbitmap_copy_n): Ditto.
	(sbitmap_verify_popcount): Ditto.

From-SVN: r120237
2006-12-28 06:23:06 +00:00
Ian Lance Taylor ae64e535a3 re PR debug/26964 (Duplicate debug info for enums in namespaces)
PR debug/26964
	* dwarf2out.c (gen_type_die): Don't write out a DIE for
	ENUMERAL_TYPE if it was already written out.

From-SVN: r120221
2006-12-27 21:48:05 +00:00
Kaveh R. Ghazi 5f641bd832 re PR middle-end/29335 (transcendental functions with constant arguments should be resolved at compile-time)
PR middle-end/29335
	* builtins.c (do_mpfr_arg1, do_mpfr_arg2, do_mpfr_arg3,
	do_mpfr_sincos): Ensure target base equals two.

From-SVN: r120211
2006-12-26 19:03:17 +00:00
Kazu Hirata 04b5b56c85 * tree-ssa-operands.c: Fix a comment typo.
From-SVN: r120210
2006-12-26 15:44:54 +00:00
Kazu Hirata 401fb5a0a8 * tree-vectorizer.h (VECT_SMODULO): Remove.
From-SVN: r120202
2006-12-25 23:36:53 +00:00
Andreas Tobler 664400c666 pa.c: Remove heap vector type defines.
2006-12-24  Andreas Tobler  <a.tobler@schweiz.org>

	* config/pa/pa.c: Remove heap vector type defines.

From-SVN: r120191
2006-12-24 21:57:35 +01:00
Jan Hubicka 497f1b8117 tree-ssa-operands.h (struct ssa_operand_memory_d): add ssa_operand_mem_size.
* tree-ssa-operands.h (struct ssa_operand_memory_d):
	add ssa_operand_mem_size.
	* tree-ssa-operands.c (operands_bitmap_obstack): New.               
	(ssa_operand_mem_size): Remove.
	(init_ssa_operands): Initialize obstack; use it.
	(fini_ssa_operands): Release obstack.
	(ssa_operand_alloc): Update.
	(finalize_ssa_vdefs, finalize_ssa_vuse_ops, copy_virtual_operands,
	get_mpt_for): Use obstack.
	* tree-ssa.c (delete_tree_ssa): Call fini_ssa_operands.
	* tree-outof-ssa.c: (remove_ssa_form): Don't call it here.

From-SVN: r120189
2006-12-24 10:23:25 +00:00
Jan Hubicka 7a223fd48d tree-mudflap.c (ml_decl_cache_locals, [...]): add newly referenced vars.
* tree-mudflap.c (ml_decl_cache_locals, md_build_check_statement_for):
	add newly referenced vars.

From-SVN: r120188
2006-12-24 10:17:15 +00:00
Kazu Hirata 9b1ae0a097 basic-block.h: Remove the prototype for expected_value_to_br_prob.
* basic-block.h: Remove the prototype for
	expected_value_to_br_prob.
	* rtl.h: Remove the prototypes for expand_builtin_expect_jump
	and purge_line_number_notes.

From-SVN: r120186
2006-12-24 01:47:56 +00:00
Zdenek Dvorak 6e42ce54f7 tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne, [...]): Use integer_zerop/integer_nonzerop instead of...
* tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne,
	assert_no_overflow_lt, assert_loop_rolls_lt,
	number_of_iterations_lt, number_of_iterations_le,
	number_of_iterations_cond, number_of_iterations_exit):
	Use integer_zerop/integer_nonzerop instead of
	null_or_integer_zerop/nonnull_and_integer_nonzerop.
	* tree.h (null_or_integer_zerop, nonnull_and_integer_nonzerop):
	Removed.
	* tree-scalar-evolution.c (simple_iv): Return zero for step of
	an invariant.
	* tree-ssa-loop-ivopts.c (alloc_iv): Do not set step of invariants
	to zero.
	(get_iv): Return NULL for non-scalar types.  Use zero as a step
	of an invariant.
	(determine_biv_step, find_interesting_uses_op,
	find_interesting_uses_cond, find_interesting_uses_stmt,
	add_old_ivs_candidates, determine_use_iv_cost_condition,
	rewrite_use_compare, remove_unused_ivs):
	Use integer_zerop instead of null_or_integer_zerop.
	(struct ifs_ivopts_data): Replace step_p field with step field.
	(idx_find_step): Use zero as a step of an invariant.  Modify
	step instead of *step_p.
	(find_interesting_uses_address): Use zero as a step of an invariant.
	Use integer_zerop instead of null_or_integer_zerop.
	(find_interesting_uses_outside): Call find_interesting_uses_op only
	for phi nodes for real operands.
	(add_candidate_1): Expect step to be non-NULL.
	* tree-ssa-loop-prefetch.c (idx_analyze_ref): Expect step to be
	non-NULL.

From-SVN: r120179
2006-12-23 23:05:52 +00:00
Andrew Pinski ebf5f54a1d vec.c: Don't include tree.h.
2006-12-23  Andrew Pinski  <pinskia@gmail.com>

        * vec.c: Don't include tree.h.
        * Makefile.in (vec.o): Update dependencies.
        (build/vec.o): Likewise.

From-SVN: r120178
2006-12-23 14:38:34 -08:00
Kazu Hirata 294340bf91 Makefile.in (final.o): Depend on vecprim.h.
* Makefile.in (final.o): Depend on vecprim.h.
	* final.c: Include vecprim.h.
	(insn_addresses_): Change the type to VEC(int,heap)*.
	* insn-addr.h (INSN_ADDRESSES_DEFN): Remove.
	(INSN_ADDRESSES, INSN_ADDRESSES_ALLOC, INSN_ADDRESSES_SIZE,
	INSN_ADDRESSES_NEW): Use VEC instead of VARRAY.

From-SVN: r120177
2006-12-23 22:10:10 +00:00
Kazu Hirata 8aceba8c95 common.opt (flag_force_mem): Remove.
* common.opt (flag_force_mem): Remove.
	* doc/invoke.texi (-fforce-mem): Remove.
	* opts.c (common_handle_option): Don't handle OPT_fforce_mem.

From-SVN: r120176
2006-12-23 21:54:59 +00:00
Marcin Dalecki 7fa982e563 cgraphunit.c (cgraph_optimize): Fixed obvious thinko in memory consumption reporting.
2006-12-23  Marcin Dalecki  <martin@dalecki.de>

       * cgraphunit.c (cgraph_optimize): Fixed obvious thinko in memory
       consumption reporting.

From-SVN: r120174
2006-12-23 19:10:48 +01:00
Manuel López-Ibáñez cb4af25a80 re PR middle-end/7651 (Define -Wextra strictly in terms of other warning flags)
2006-12-23  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR middle-end/7651
	* c.opt (Wmissing-parameter-type): New.
	* doc/invoke.texi (Wmissing-parameter-type): Document it.
	(Wextra): Enabled by -Wextra.
	* c-opts.c (c_common_post_options): Enabled by -Wextra.
	* c-decl.c (store_parm_decls_oldstyle): Replace Wextra with
	Wmissing-parameter-type.
	
testsuite/

	* gcc.dg/Wmissing-parameter-type.c: New.
	* gcc.dg/Wmissing-parameter-type-Wextra.c: New.
	* gcc.dg/Wmissing-parameter-type-no.c: New.

From-SVN: r120173
2006-12-23 17:45:33 +00:00
Eric Botcazou ea049a4199 dwarf2out.c (dbx_reg_number): Do leaf register remapping only if the function is leaf.
* dwarf2out.c (dbx_reg_number): Do leaf register remapping
	only if the function is leaf.
	(multiple_reg_loc_descriptor): Likewise.

From-SVN: r120170
2006-12-23 17:18:38 +00:00
Kazu Hirata 3c1dd4a384 * rtl.h (NOTE_EXPECTED_VALUE): Remove.
From-SVN: r120169
2006-12-23 16:01:47 +00:00
Jan Hubicka a5573239ec toplev.c (dump_memory_report): Break out from...
* toplev.c (dump_memory_report): Break out from...
	(finalize): Here.
	* toplev.h (dump_memory_report): Declare.
	(cmp_statistic): Rename to ...
	(final_cmp_statistic): ... this one
	(cmp_statistic): New.
	(dump_ggc_loc_staitsitcs): New FINAL parpameter.
	* common.opt (-fpre-ipa-mem-report, -fpost-ipa-mem-report): Declare.
	* varray.c (dump_varray_staitiscs): Do not segfault when no varray was
	allocated so far.

From-SVN: r120168
2006-12-23 14:30:36 +00:00
Mike Stump 5b42ae41cb t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Add -mmacosx-version-min=10.4.
* config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Add
        -mmacosx-version-min=10.4.
        (crt2.o): Add $(DARWIN_EXTRA_CRT_BUILD_CFLAGS).

From-SVN: r120167
2006-12-23 05:54:19 +00:00
Jan Hubicka 6ac5a24645 tree-flow-inline.h (var_ann): External variable annotations are unshared too.
* tree-flow-inline.h (var_ann): External variable annotations are
	unshared too.
	(tree_common_ann): Handle correctly unshared variables annotations.
	* tree-dfa.c (create_var_ann): External variable annotations are
	unshared too.

From-SVN: r120164
2006-12-23 00:27:44 +00:00
Kazu Hirata 2ac6615771 basic-block.h: Remove the prototype for commit_edge_insertions_watch_calls.
* basic-block.h: Remove the prototype for
	commit_edge_insertions_watch_calls.
 	* cfgrtl.c (commit_edge_insertion): Drop the last argument.
	Simplify.
	(commit_edge_insertions_watch_calls): Remove.
	(commit_edge_insertions): Adjust the call to
	commit_one_edge_insertion.

From-SVN: r120157
2006-12-22 23:59:34 +00:00
Zdenek Dvorak 6e682d7ef0 tree-ssa-loop-niter.c (zero_p, nonzero_p): Removed.
* tree-ssa-loop-niter.c (zero_p, nonzero_p): Removed.
	(number_of_iterations_ne, number_of_iterations_lt_to_ne,
	assert_no_overflow_lt, assert_loop_rolls_lt,
	number_of_iterations_lt, number_of_iterations_le,
	number_of_iterations_cond, tree_simplify_using_condition_1,
	number_of_iterations_exit, find_loop_niter, loop_niter_by_eval,
	implies_nonnegative_p, implies_ge_p, record_nonwrapping_iv,
	idx_infer_loop_bounds, n_of_executions_at_most, scev_probably_wraps_p):
	Do not use zero_p/nonzero_p.
	* tree-ssa-loop-manip.c (determine_exit_conditions): Ditto.
	* tree-ssa-loop-ivopts.c (niter_for_exit, determine_biv_step,
	find_interesting_uses_op, find_interesting_uses_cond,
	find_interesting_uses_address, find_interesting_uses_stmt,
	strip_offset_1, add_candidate_1, add_old_ivs_candidates,
	difference_cost, determine_use_iv_cost_condition,
	rewrite_use_compare, remove_unused_ivs): Ditto.
	* tree-ssa-address.c (tree_mem_ref_addr, create_mem_ref_raw): Ditto.
	* tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto.
	* tree-cfg.c (find_taken_edge_cond_expr): Ditto.
	* tree.h (zero_p): Declaration removed.
	(null_or_integer_zerop, nonnull_and_integer_nonzerop): New.

From-SVN: r120156
2006-12-22 21:38:52 +00:00
Manuel López-Ibáñez 2b0017242d re PR middle-end/7651 (Define -Wextra strictly in terms of other warning flags)
2006-12-22  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>

	PR middle-end/7651
	* c.opt (Wclobbered): New.
	* doc/invoke.texi (Wclobbered): Document it.
	(Wextra): Enabled by -Wextra.
	* c-opts.c (c_common_post_options): Enabled by -Wextra.
	* flow.c (rest_of_handle_life): Replace Wextra with Wclobbered.
	* function.c (setjmp_vars_warning): Only warn for Wclobbered.
	(setjmp_args_warning): Likewise.

testsuite/

	* gcc.dg/attr-returns_twice-1.c: Replace Wextra with Wclobbered.
	* gcc.dg/setjmp-1.c: Add explicit Wclobbered.

From-SVN: r120151
2006-12-22 15:54:05 +00:00
Kazu Hirata 24fc18b98c elfos.h, [...]: Fix comment typos.
* config/elfos.h, config/spu/spu.c, tree-ssa-operands.h,
	tree-ssa-ter.c: Fix comment typos.

From-SVN: r120149
2006-12-22 12:50:00 +00:00
Paolo Bonzini 46fd10da92 re PR rtl-optimization/29840 (build/genconditions ../../gcc/gcc/config/pa/pa.md > tmp-condmd.c: /bin/sh: 13354 Memory fault(coredump))
2006-12-22  Paolo Bonzini  <bonzini@gnu.org>

	PR rtl-optimization/29840

	* fwprop.c (forward_propagate_into): Reject artificial uses/defs.
	(fwprop_init): Add DF_HARD_REGS to df_init call.

From-SVN: r120147
2006-12-22 12:28:52 +00:00
Andrew Pinski bc0ebe76b3 tree-nested.c (create_tmp_var_for): Check for vector type when setting DECL_GIMPLE_REG_P.
2006-12-21  Andrew Pinski  <pinskia@gmail.com>

        * tree-nested.c (create_tmp_var_for): Check for vector type
        when setting DECL_GIMPLE_REG_P.

From-SVN: r120143
2006-12-21 23:25:00 -08:00
Roger Sayle 458e3389dc tree-pretty-print.c (dump_generic_node): Avoid outputing "(void) 0;" as the else branch of a COND_EXPR.
* tree-pretty-print.c (dump_generic_node): Avoid outputing "(void) 0;"
	as the else branch of a COND_EXPR.

From-SVN: r120140
2006-12-22 03:22:04 +00:00
Kazu Hirata dbb23ff705 * cgraphunit.c, varpool.c: Fix comment typos.
From-SVN: r120139
2006-12-22 01:30:17 +00:00
Kazu Hirata 2e226e6699 cgraphunit.c, [...]: Fix comment typos.
* cgraphunit.c, config/i386/i386.c, config/ia64/ia64.c, cse.c,
	output.h, toplev.c, tree-affine.h, tree-flow.h,
	tree-ssa-alias.c, tree-ssa-coalesce.c, tree-ssa-live.c,
	tree-ssa-live.h, tree-ssa-operands.c, tree-ssa-ter.c,
	tree-vrp.c, varpool.c: Fix comment typos.

From-SVN: r120137
2006-12-22 01:19:39 +00:00
Ulrich Weigand 10d55907ce spu.h (ARG_POINTER_CFA_OFFSET): Define.
* config/spu/spu.h (ARG_POINTER_CFA_OFFSET): Define.
	* config/spu/spu.c (spu_expand_prologue): Set RTX_FRAME_RELATED_P
	for insn setting up the frame pointer.  Do not set it for insns
	setting up scratch registers or storing the backchain.

From-SVN: r120125
2006-12-22 10:23:34 +11:00
Eric Botcazou e9d207d9ac re PR other/29639 (ext/bitmap_allocator/check_allocate_max_size.cc execution test)
PR other/29639
	* configure.ac (HAVE_LD_EH_GC_SECTIONS): Check that exception tables
	are kept for .gnu.linkonce.t sections if COMDAT groups are disabled.
	* configure: Regenerate.

From-SVN: r120121
2006-12-21 22:10:30 +00:00
Joseph Myers 5f7fc2b832 rtlanal.c (subreg_get_info): Do not make register size computations for mode sizes not divisible by the...
* rtlanal.c (subreg_get_info): Do not make register size
	computations for mode sizes not divisible by the number of
	registers.

From-SVN: r120119
2006-12-21 20:58:57 +00:00
Daniel Berlin 225a58a770 tree-ssa-structalias.c (build_constraint_graph): Insert complex offsetted constraints into rhsvar, not lhsvar.
2006-12-21  Daniel Berlin  <dberlin@dberlin.org>

	* tree-ssa-structalias.c (build_constraint_graph): Insert complex
	offsetted constraints into rhsvar, not lhsvar.

From-SVN: r120114
2006-12-21 17:32:01 +00:00
Jakub Jelinek 5075abae44 re PR middle-end/30262 (ICE with nested fn accessed var in asm "m" constraint)
PR middle-end/30262
	PR middle-end/30263
	* tree-nested.c (walk_asm_expr): New function.
	(walk_stmts): Use it for ASM_EXPR.

	* gcc.c-torture/execute/20061220-1.c: New test.
	* gcc.dg/gomp/asm-1.c: New test.

From-SVN: r120106
2006-12-21 14:13:15 +01:00
Jakub Jelinek 4a4cd49c06 re PR target/30230 (Incorrect ia64 EH info when an EH region ends in the middle of a bundle)
PR target/30230
	* config/ia64/ia64.c (ia64_add_bundle_selector_before): New function.
	(bundling): Use it.

	* g++.dg/eh/ia64-2.C: New test.

From-SVN: r120103
2006-12-21 13:59:06 +01:00
Nathan Sidwell 970af86771 re PR target/28966 (-maltivec -m32 causes the stack to be saved and restored even though there is no need for it)
gcc/
	PR target/28966
	PR target/29248
	* reload1.c (reload): Realign stack after it changes size.
gcc/testsuite/
	PR target/28966
	PR target/29248
	* gcc.dg/rs6000-leaf.c: New.

From-SVN: r120102
2006-12-21 09:03:18 +00:00