Commit Graph

31400 Commits

Author SHA1 Message Date
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