X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2FChangeLog;h=5fd061871cb90e8d263016d437511a1d6999916d;hp=d02d73306858c32a73bf51ff612827d62f6d81ac;hb=eee267bf65f9fffaf3cdd6cf9a49167d9d107851;hpb=df5e9c68a7cd2b9536ef01240a804d168e81b807 diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d02d7330685..5fd061871cb 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,379 @@ +2006-11-20 J"orn Rennecke + + * config.gcc (sh*-superh-elf): Add t-superh to tmake_file. + Add sh/superh.h to tm_file. + +2006-11-20 Carlos O'Donell + Mark Mitchell + + * cppdefault.c: Define cpp_PREFIX, cpp_PREFIX_len, and + gcc_exec_prefix. + (cpp_relocated): New function. + * cppdefault.h: Declare cpp_PREFIX, cpp_PREFIX_len, gcc_exec_prefix + and cpp_relocated. + * Makefile.in (PREPROCESSOR_DEFINES): Add -DPREFIX option. + * c-incpath.c (add_standard_paths): Call cpp_relocated. If relocated, + replace configured prefix with gcc_exec_prefix. + +2006-11-20 Bernd Schmidt + + * config/bfin/bfin.h (LEGITIMATE_CONSTANT_P): Call + bfin_legitimate_constant_p. + * config/bfin/bfin.md (movsi expander): Check return value of + expand_mvoe. + * config/bfin/bfin-protos.h (bfin_legitimate_constant_p): Declare. + (expand_move): Adjust prototype. + * config/bfin/bfin.c (expand_move): Now returns bool. Handle + invalid constants specially. + (bfin_cannot_force_const_mem, bfin_legitimate_constant_p): New + functions. + (TARGET_CANNOT_FORCE_CONST_MEM): New macro. + + * config/bfin/bfin.md (call_symbol, call_value_symbol, sibcall_symbol, + sibcall_value_symbol): Allow these patterns if + TARGET_LEAF_ID_SHARED_LIBRARY. + * config/bfin/bfin.c (bfin_expand_call): Allow them here as well. + (override_options): Turn on id shared library flags if -msep-data, + but disallow the combination of these options on the command line. + * config/bfin/bfin.h (TARGET_LEAF_ID_SHARED_LIBRARY, MASK_SEP_DATA + MASK_LEAF_ID_SHARED_LIBRARY, TARGET_SEP_DATA): New macros. + (DRIVER_SELF_SPECS): -mleaf-id-shared-library implies + -mid-shared-library. + (TARGET_SWITCHES): Add -mleaf-id-shared-library and -msep-data. + * doc/invoke.texi (Blackfin Options): Document new switches. + + * config/bfin/bfin.c (bfin_function_ok_for_sibcall): Handle some + edge cases with local functions and TARGET_ID_SHARED_LIBRARY. + + * tree-ssa-loop-ivopts.c (get_address_cost): Do not artificially + inflate costs for addresses with an out-of-bounds address. + +2006-11-19 Andrew Pinski + + PR rtl-opt/29879 + * fwprop.c (loops): Remove. + (forward_propagate_into): Use current_loops instead of + loops. + (fwprop_init): Call loop_optimizer_init instead of + flow_loops_find. + (fwprop_done): Call loop_optimizer_finalize instead of + flow_loops_free. + (fwprop): Use current_loops instead of loops. + +2006-11-19 Gabriel Dos Reis + + PR c++/8586 + * c-opts.c (c_common_handle_option): Enable -Wwrite-strings if -Wall. + +2006-11-19 John David Anglin + + PR target/29114 + * pa.c (emit_move_sequence): Don't split constants with PLUS for modes + larger than BITS_PER_WORD. + +2006-11-18 John David Anglin + + PR fortran/27885 + PR middle-end/28176 + * stor-layout.c (set_sizetype): Limit precision of *bitsizetypes types + to MAX_FIXED_MODE_SIZE. + +2006-11-18 Kaveh R. Ghazi + + * builtins.c (integer_valued_real_p): Handle fmin/fmax. + (fold_builtin_fmin_fmax): New. + (fold_builtin_1): Use it. + + * fold-const.c (fold_strip_sign_ops): Handle copysign. + +2006-11-18 Richard Guenther + + * config/i386/i386.c (ix86_builtins): New array for ix86 + builtin function decls. + (def_builtin): New function. + (def_builtin_const): Likewise. + (ix86_init_mmx_sse_builtins): Mark sqrt and cvt builtins const. + +2006-11-18 Vladimir Makarov + + * doc/invoke.texi (core2): Add item. + + * config/i386/i386.h (TARGET_CORE2, TARGET_CPU_DEFAULT_core2): New + macros. + (TARGET_CPU_CPP_BUILTINS): Add code for core2. + (TARGET_CPU_DEFAULT_generic): Change value. + (TARGET_CPU_DEFAULT_NAMES): Add core2. + (processor_type): Add new constant PROCESSOR_CORE2. + + * config/i386/i386.md (cpu): Add core2. + + * config/i386/i386.c (core2_cost): New initialized variable. + (m_CORE2): New macro. + (x86_use_leave, x86_push_memory, x86_movx, x86_unroll_strlen, + x86_deep_branch, x86_partial_reg_stall, x86_use_simode_fiop, + x86_use_cltd, x86_promote_QImode, x86_sub_esp_4, x86_sub_esp_8, + x86_add_esp_4, x86_add_esp_8, x86_integer_DFmode_moves, + x86_partial_reg_dependency, x86_memory_mismatch_stall, + x86_accumulate_outgoing_args, x86_prologue_using_move, + x86_epilogue_using_move, x86_arch_always_fancy_math_387, + x86_sse_partial_reg_dependency, x86_rep_movl_optimal, + x86_use_incdec, x86_four_jump_limit, x86_schedule, + x86_pad_returns): Add m_CORE2. + (override_options): Add entries for Core2. + (ix86_issue_rate): Add case for Core2. + +2006-11-18 Aldy Hernandez + + * doc/invoke.texi: Fix mno-isel typo. + +2006-11-18 Joseph Myers + + * config/rs6000/spe.md (movv4hi_internal): Add alternative for + easy vector constant loads. + +2006-11-18 Joseph Myers + + * config/rs6000/rs6000.h (TARGET_NO_LWSYNC): Define. + * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define + __NO_LWSYNC__ if TARGET_NO_LWSYNC. + * config/rs6000/sync.md (lwsync): Emit plain sync if + TARGET_NO_LWSYNC. + +2006-11-17 DJ Delorie + + * reload1.c (reloads_unique_chain): New. + (reloads_conflict): Call it. + +2006-11-17 Bob Wilson + + * config/xtensa/predicates.md (addsubx_operand): New. + * config/xtensa/xtensa.c (xtensa_emit_branch): New. + (xtensa_emit_bit_branch): New. + (xtensa_emit_movcc): New. + * config/xtensa/xtensa.md (any_minmax): New code macro. + (minmax): New code attribute. + (any_cond, any_scc, any_scc_sf): New code macros. + (*addx2, *addx4, *addx8): Delete. + (*addx): New. + (*subx2, *subx4, *subx8): Delete. + (*subx): New. + (sminsi3, uminsi3, smaxsi3, umaxsi3): Use any_minmax macro. + (beq, bne, bgt, bge, blt, ble, bgtu, bgeu, bltu, bleu): Use any_cond. + (*btrue, *bfalse, *ubtrue, *ubfalse): Use xtensa_emit_branch. + (*bittrue, *bitfalse): Use xtensa_emit_bit_branch. + (seq, sne, sgt, sge, slt, sle): Use any_scc macro. + (movsicc_internal0, movsicc_internal1): Use xtensa_emit_movcc. + (movsfcc_internal0, movsfcc_internal1): Likewise. + (seq_sf, slt_sf, sle_sf): Use any_scc_sf macro. + * config/xtensa/xtensa-protos.h: (xtensa_emit_branch): New. + (xtensa_emit_bit_branch): New. + (xtensa_emit_movcc): New. + (function_arg_boundary): Add missing prototype. + +2006-11-17 Bob Wilson + + * config/xtensa/xtensa.md (tstsi): Delete + +2006-11-17 Bob Wilson + + * config/xtensa/xtensa.md (entry): Do not emit .frame directive. + +2006-11-17 Bob Wilson + + * config/xtensa/elf.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define. + +2006-11-17 Bob Wilson + + * config/xtensa/lib1funcs.asm (__umulsidi3): Restore a0 on exit. + +2006-11-17 Zdenek Dvorak + + * tree-vrp.c (execute_vrp): Do not update current_loops. + * loop-unswitch.c (unswitch_loop): Do not use loop_split_edge_with. + * doc/loop.texi: Remove documentation for cancelled functions. + * tree-ssa-loop-im.c (loop_commit_inserts): Removed. + (move_computations, determine_lsm): Use bsi_commit_edge_inserts + instead. + * cfgloopmanip.c (remove_bbs): Do not update loops explicitly. + (remove_path): Ensure that in delete_basic_blocks, the loops + are still allocated. + (add_loop): Work on valid loop structures. + (loopify): Modify call of add_loop. + (mfb_update_loops): Removed. + (create_preheader): Do not update loops explicitly. + (force_single_succ_latches, loop_version): Do not use + loop_split_edge_with. + (loop_split_edge_with): Removed. + * tree-ssa-loop-manip.c (create_iv, determine_exit_conditions): + Do not use bsi_insert_on_edge_immediate_loop. + (split_loop_exit_edge, tree_unroll_loop): Do not use + loop_split_edge_with. + (bsi_insert_on_edge_immediate_loop): Removed. + * tree-ssa-loop-ch.c (copy_loop_headers): Use current_loops. Do not + use loop_split_edge_with. + * cfghooks.c: Include cfgloop.h. + (verify_flow_info): Verify that loop_father is filled iff current_loops + are available. + (redirect_edge_and_branch_force, split_block, delete_basic_block, + split_edge, merge_blocks, make_forwarder_block, duplicate_block): + Update cfg. + * cfgloopanal.c (mark_irreducible_loops): Work if the function contains + no loops. + * modulo-sched.c (generate_prolog_epilog, canon_loop): Do not use + loop_split_edge_with. + (sms_schedule): Use current_loops. + * tree-ssa-dom.c (tree_ssa_dominator_optimize): Use current_loops. + * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Set + current_loops. + (rtl_loop_init, rtl_loop_done): Do not set current_loops. + * tree-ssa-sink.c (execute_sink_code): Use current_loops. + * ifcvt.c (if_convert): Ditto. + * predict.c (predict_loops): Do not clear current_loops. + (tree_estimate_probability): Use current_loops. + (propagate_freq): Receive head of the region to propagate instead of + loop. + (estimate_loops_at_level): Do not use shared to_visit bitmap. + (estimate_loops): New function. Handle case current_loops == NULL. + (estimate_bb_frequencies): Do not allocate tovisit. Use + estimate_loops. + * tree-ssa-loop.c (current_loops): Removed. + (tree_loop_optimizer_init): Do not return loops. + (tree_ssa_loop_init, tree_ssa_loop_done): Do not set current_loops. + * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard1, + slpeel_update_phi_nodes_for_guard2, slpeel_tree_peel_loop_to_edge): + Do not update loops explicitly. + * function.h (struct function): Add x_current_loops field. + (current_loops): New macro. + * tree-if-conv.c (combine_blocks): Do not update loops explicitly. + * loop-unroll.c (split_edge_and_insert): New function. + (unroll_loop_runtime_iterations, analyze_insns_in_loop): Do not + use loop_split_edge_with. + * loop-doloop.c (add_test, doloop_modify): Ditto. + * tree-ssa-pre.c (init_pre, fini_pre): Do not set current_loops. + * cfglayout.c (copy_bbs): Do not update loops explicitly. + * lambda-code.c (perfect_nestify): Do not use loop_split_edge_with. + * tree-vect-transform.c (vect_transform_loop): Do not update loops + explicitly. + * cfgloop.c (flow_loops_cfg_dump): Do not dump dfs_order and rc_order. + (flow_loops_free): Do not free dfs_order and rc_order. + (flow_loops_find): Do not set dfs_order and rc_order in loops + structure. Do not call loops and flow info verification. + (add_bb_to_loop, remove_bb_from_loops): Check whether the block + already belongs to some loop. + * cfgloop.h (struct loops): Remove struct cfg. + (current_loops, loop_split_edge_with): Declaration removed. + (loop_optimizer_init, loop_optimizer_finalize): Declaration changed. + * tree-flow.h (loop_commit_inserts, bsi_insert_on_edge_immediate_loop): + Declaration removed. + * Makefile.in (cfghooks.o): Add CFGLOOP_H dependency. + * basic-block.h (split_edge_and_insert): Declare. + * tree-cfg.c (remove_bb): Do not update loops explicitly. + +2006-11-17 Zdenek Dvorak + + PR tree-optimization/29801 + * tree-ssa-ccp.c (get_symbol_constant_value): New function. + (get_default_value): Use get_symbol_constant_value. + (set_lattice_value): ICE when the value of the constant is + changed. + (visit_assignment): Ignore VDEFs of read-only variables. + +2006-11-17 Zdenek Dvorak + + * tree-vect-transform.c (vect_create_epilog_for_reduction): Fix + formating. + (vect_generate_tmps_on_preheader, vect_update_ivs_after_vectorizer, + vect_gen_niters_for_prolog_loop): Fold the emited expressions. + +2006-11-17 Zdenek Dvorak + + * tree-ssa-alias.c (new_type_alias): Do not use offset of expr to + select subvars of var. + +2006-11-17 Jakub Jelinek + + PR middle-end/29584 + * tree-ssa-forwprop.c (simplify_switch_expr): Don't + optimize if DEF doesn't have integral type. + +2006-11-16 Mike Stump + + * config/darwin.h (LINK_COMMAND_SPEC): Don't do dwarf stuff on + pre-darwin9 system, unless the user asks for it directly. + (PREFERRED_DEBUGGING_TYPE): Likewise. + * config/i386/darwin.h (PREFERRED_DEBUGGING_TYPE): Likewise. + * config.gcc: Add suppport for darwin9.h. + * config/darwin9.h: Add. + * doc/install.texi (Specific): Clarify darwin documentation. + +2006-11-16 Richard Earnshaw + + * arm.h (CONSTANT_ALIGNMENT): Don't over-align strings when + optimizing for size. + +2006-11-16 Mike Stump + + * Makefile.in (targhooks.o): Add $(OPTABS_H). + +2006-11-16 Dirk Mueller + + * tree-vrp.c (get_value_range): Use XCNEW instead + of XNEW and memset. + (insert_range_assertions): Use XCNEWVEC instead + of XNEWVEC and memset. + (vrp_initialize): Same. + (vrp_finalize): Same. + * tree-ssa-ccp.c (ccp_initialize): Same. + * predict.c (tree_bb_level_predictions): Same. + * calls.c (expand_call): Same. + * tree-ssa-copy.c (init_copy_prop): Same. + (fini_copy_prop): Same. + * tree-ssa-alias.c (get_ptr_info): Use GGC_CNEW instead + of GGC_NEW and memset. + +2006-11-16 Eric Botcazou + + PR middle-end/26306 + * gimplify.c (gimplify_expr): Only force a load for references to + non-BLKmode volatile values. + * doc/implement-c.texi (Qualifiers implementation): Document the + interpretation of what a volatile access is. + * doc/extend.texi (C++ Extensions): Rework same documentation. + +2006-11-16 Joseph Myers + + * config/rs6000/spe.md (frob_di_df_2): Handle non-offsettable + memory operand. + +2006-11-16 Richard Earnshaw + + * arm.md (abssi2): Allow Thumb as well. Use an SImode scratch for + Thumb. + (arm_neg_abssi2): Renamed from neg_abssi2. + (thumb_abssi2, thumb_neg_abssi2): New patterns with splitters. + +2006-11-16 Uros Bizjak + + * config/i386/i386.c (ix86_function_sseregparm): Fix comment: + number of arguments passed to local functions in SSE registers is 3. + + * doc/invoke.texi (Function Attributes) [sseregparm]: Correct + number of arguments passed in SSE registers to 3. + +2006-11-16 Maxim Kuvyrkov + + PR target/29201 + * cfgrtl.c (rtl_delete_block): Move the code for getting last insn of + bb to ... + (get_last_bb_insn): ... new global function. + (basic_block.h): Declare it. + * haifa-sched.c (create_recovery_block): Use it. + +2006-11-15 H.J. Lu + + PR middle-end/29862 + * real.c (mpfr_from_real): Call mpfr_set_str before gcc_assert. + 2006-11-15 Paul Brook * config/arm/unwind-arm.c (_Unwind_GetDataRelBase, @@ -20,8 +396,8 @@ * config/i386/i386.opt: New target option -mx87regparm. - * config/i386/i386.h (struct ix86_args): Add x87_nregs, x87_regno, - float_in_x87: Add new variables. mmx_words, sse_words: Remove. + * config/i386/i386.h (struct ix86_args): Add x87_nregs, x87_regno + and float_in_x87 variables. mmx_words, sse_words: Remove. (X87_REGPARM_MAX): Define. * config/i386/i386.c (override_options): Error out for