X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2FChangeLog;h=4fae499454da8f23e2ceb732ed84d0598f2eb227;hb=6fa78c7b5c8339560e02cf1270e974214ca75496;hp=6be20982096b31de4d454f2696af8ef339efe541;hpb=69b3e376aa8c414ac8a22b9885c31dc61b72c104;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6be20982096..4fae499454d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,655 @@ +2007-01-18 Jan Hubicka + + * 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. + +2007-01-18 Uros Bizjak + + * 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_extendxf4_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. + (tan2): Rename from tansf2 and tandf2 and macroize insn + patterns using X87MODEF12 mode macro. Use fptan_extendxf4_i387 + and truncate result to requested mode. Use SSE_FLOAT_MODE_P to + disable patterns for SSE math. + (sincos3): Use truncxf2_i387_noop for truncation. + (fyl2x_extendxf3_i387): Use X87MODEF12 for operand 1. + +2007-01-18 Dirk Mueller + Richard Guenther + + 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. + +2007-01-18 Jan Hubicka + + * 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. + +2007-01-18 Steven Bosscher + + * 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. + +2007-01-18 Ben Elliston + + * genautomata.c (write_automata): Include xstrerror output in the + error message if writing the DFA description file fails. + +2007-01-17 H.J. Lu + + * 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. + +2007-01-18 Ben Elliston + + * genpreds.c (write_insn_preds_c): Only write out the function + body for regclass_for_constraint if we have register constraints. + +2007-01-17 Tom Tromey + + * 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. + +2007-01-17 Anatoly Sokolov + + * 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__. + +2007-01-17 Ian Lance Taylor + + * 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. + +2007-01-17 Jan Hubicka + + * ipa-type-escape.c (look_for_casts): Revamp using handled_component_p. + +2007-01-17 Eric Christopher + + * config.gcc: Support core2 processor. + +2007-01-16 Jan Hubicka + + * 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. + +2007-01-16 Jan Hubicka + + * 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. + +2007-01-16 Janis Johnson + + * config/dfp-bit.c (dfp_compare_op): Return separate value for NaN. + (DFP_NE, DFP_LE, DFP_GE): Return false for NaN. + +2007-01-16 David Edelsohn + + * 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. + +2007-01-16 Dorit Nuzman + Tehila Meyzels + + * 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. + +2007-01-16 Jan Hubicka + + * tree-ssanames.c (release_dead_ssa_names): Remove invalidated + cgraph edges too. + +2007-01-15 Eric Christopher + + * 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. + +2007-01-15 Eric Christopher + + * config/darwin.h: Update copyright. + (TARGET_OPTION_TRANSLATE_TABLE): Add umbrella. + (LINK_COMMAND_SPEC): Add -u. + (LINK_SPEC): Fix umbrella for above. + +2007-01-15 Joseph S. Myers + + * config/soft-fp/op-common.h, config/soft-fp/op-4.h: Update from + glibc CVS. + +2007-01-15 Tom Tromey + + * 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. + +2007-01-15 Jan Hubicka + + * 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. + +2007-01-15 Uros Bizjak + + * config/i386/i386.md (fyl2xxf3_i387): Rename from fyl2x_xf3. + (fyl2x_extendxf3_i387): New insn pattern. + (log2): Rename from logsf2 and logdf2 and macroize insn + patterns using X87MODEF12 mode macro. Extend operand 1 + to XFmode. Use SSE_FLOAT_MODE_P to disable patterns for SSE math. + (log102): Ditto. + (log22): Ditto. + (log1p2): Ditto. + (logb2): Ditto. + (fyl2xp1xf3_i387): Rename from fyl2xp1_xf3. + (fyl2xp1_extendxf3_i387): New insn pattern. + (*fxtractxf3_i387): Rename from *fxtractxf3. + (fxtract_extendxf3_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(). + +2007-01-14 Zdenek Dvorak + + * 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. + +2007-01-14 Dorit Nuzman + + * 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. + +2007-01-14 Uros Bizjak + + PR target/30413 + * config/i386/i386.c (print_operand) ['z']: Output 'b' for + operands of size 1. + +2007-01-14 Jan Hubicka + + * 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. + +2007-01-14 Jan Hubicka + + * 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. + +2007-01-13 Zdenek Dvorak + + * ipa-reference.c (analyze_function): Consider also addresses taken + in phi nodes. + +2007-01-12 Roger Sayle + + * c-typeck.c (null_pointer_constant_p): Replace use of + TREE_CONSTANT_OVERFLOW with TREE_OVERFLOW. + (build_c_cast): Likewise. + +2007-01-12 Roger Sayle + + * 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) : 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. + +2007-01-12 Andrew Pinski + + * configure.ac: Set insn to "nop" for spu-*-* also. + * configure: Regenerate. + +2007-01-12 Olga Golovanevsky + + * builtins.def : Add BUILT_IN_FREE. + +2007-01-12 Jan Hubicka + + PR tree-optimization/30443 + * tree-inline.c (tree_function_versioning): Do not optimize when + cloning for inlining. + +2007-01-12 Zdenek Dvorak + + * 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. + +2007-01-12 Richard Sandiford + + * doc/invoke.texi: Avoid use of @headitem. + +2007-01-12 Richard Sandiford + + * cse.c (cse_insn): Move HAVE_CC0 code after declarations. + +2007-01-12 Richard Sandiford + + * doc/install.texi: Fix m68k-*-* anchor and add m68k-*-* to the + list of targets. + +2007-01-12 Nathan Sidwell + Richard Sandiford + + * doc/invoke.texi: Document -mno-bitfield, -mno-rtd and -mno-short. + * config/m68k/m68k.opt: Resort options. + (mbitfield, mrtd, mshort): Remove RejectNegative properties. + +2007-01-12 Nathan Sidwell + Richard Sandiford + + * 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. + +2007-01-12 Richard Sandiford + + * 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. + +2007-01-12 Julian Brown + + * 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. + +2007-01-12 Julian Brown + Nathan Sidwell + Richard Sandiford + + * 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. + +2007-01-12 Richard Sandiford + Nathan Sidwell + + * 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. + +2007-01-12 Nathan Sidwell + Richard Sandiford + Julian Brown + + * 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. + +2007-01-12 Richard Sandiford + + * 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. + +2007-01-12 Julian Brown + + * config/m68k/m68k.h (TARGET_ISAB): New macro. + * config/m68k/m68k.c: Use TARGET_ISAB rather than TARGET_CFV4. + * config/m68k/m68k.md: Likewise. + 2007-01-12 Julian Brown * config/m68k/m68k.h (LEGITIMATE_INDEX_P, LEGITIMIZE_ADDRESS): Use @@ -267,10 +919,10 @@ 2007-01-10 Razya Ladelsky * function.c (get_last_funcdef_no): New function. - * function.h (get_last_funcdef_no): Declare. + * function.h (get_last_funcdef_no): Declare. * tree-inline.c (initialize_cfun): Add initialization. (tree_function_versioning): Cleanup. - + 2007-01-10 Jan Hubicka * tree-inline.c (setup_one_parameter): Do not propagate into abnormal @@ -311,7 +963,6 @@ * 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_extendxf2_i387. Use SSE_FLOAT_MODE_P to disable patterns @@ -319,9 +970,7 @@ (*cosdf2, *cossf2): Ditto. (sincosdf3, sincossf3): Ditto. Rewrite corresponding splitters to match extended input operands. - (sincos3): New expander. - (*sinextendsfdf2, *cosextendsfdf2, *sincosextendsfdf3): Remove insn patterns and corresponding splitters. @@ -360,7 +1009,7 @@ (fold_sign_changed_comparison): Likewise. (fold_unary): Likewise. (fold_negate_const): Likewise. - (fold_abs_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. @@ -532,9 +1181,9 @@ * 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, + * 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): + * 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.