X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2FChangeLog;h=0c7b1026afadf5dc3f82566a36de6ce7cd52746a;hp=a5272799e0dd575a05e88299bc92894cc751f1bd;hb=dfe00703840c15c16d384456389e5822c216d928;hpb=3086067c9aee542a6d8a3c6778004916158e8b42 diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a5272799e0d..0c7b1026afa 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,655 @@ +2007-10-20 Alan Modra + + PR target/33812 + * config/rs6000/rs6000.c (rs6000_emit_epilogue): Revert 2007-05-16 + change for vrsave, ie restore after frame pop. + +2007-10-19 David S. Miller + + * config/sparc/niagara2.md: Fix copyright notice. + +2007-10-19 Sebastian Pop + + PR tree-optimization/23820 + PR tree-optimization/24309 + PR tree-optimization/33766 + * testsuite/gcc.dg/tree-ssa/pr23820.c: New. + * testsuite/gcc.dg/tree-ssa/pr24309.c: New. + * testsuite/gcc.dg/tree-ssa/pr33766.c: New. + * testsuite/gcc.dg/tree-ssa/ltrans-3.c: XFAILed. + * tree-loop-linear.c (perfect_loop_nest_depth): New. + (linear_transform_loops): Use perfect_loop_nest_depth. + * lambda-code.c (perfect_nest_p): Outer loops in perfect nests + should have a single condition: their exit. + +2007-10-19 Richard Guenther + + PR middle-end/33816 + PR middle-end/32921 + * stor-layout.c (layout_type): Assert that aggregates do not + have their alias sets set. + * alias.c (get_alias_set): Return alias set zero for incomplete + types, return the alias set of the element for incomplete array + types, but do not remember these. + +2007-10-19 Richard Guenther + + Revert + 2007-10-19 Richard Guenther + + PR middle-end/32921 + * tree.c (build_array_type): Do not re-layout unbound array + types. + +2007-10-19 Richard Guenther + + PR middle-end/32921 + * tree.c (build_array_type): Do not re-layout unbound array + types. + +2007-10-19 Richard Sandiford + + * config/mips/mips.c (mips_canonicalize_comparison): Check + mips_relational_operand_ok_p before trying to rewrite the test. + Only calculate PLUS_ONE if needed. + (mips_emit_int_relational): Don't call mips_relational_operand_ok_p + here. + +2007-10-19 Richard Sandiford + + * config/mips/mips.c (mips16e_build_save_restore): Fix *OFFSET_PTR + calculation. + +2007-10-19 Richard Sandiford + + * config/mips/mips.c (mips_call_tls_get_addr): Don't claim that + the call uses the incoming value of $2. + +2007-10-19 Richard Sandiford + + * config/mips/mips.c (mips_call_tls_get_addr): Use gen_const_mem + rather then gen_rtx_MEM. + (mips_setup_incoming_varargs): Use gen_frame_mem rather than + gen_rtx_MEM. + (mips_set_return_address): Likewise. + (mips_restore_gp): Likewise. + +2007-10-19 Richard Sandiford + + * config/mips/mips.c (gpr_mode): Delete. + (mips16e_build_save_restore): Use word_mode and UNITS_PER_WORD + instead of gpr_mode. + (mips_for_each_saved_reg): Likewise. + (mips_expand_prologue, mips_expand_epilogue): Likewise. + (override_options): Don't initialize gpr_mode. + * config/mips/mips.md (eh_return): Use word_mode instead of gpr_mode. + +2007-10-19 Richard Sandiford + + * config/mips/mips.c (mips_hard_regno_nregs): Put the UNITS_PER_WORD + case last. + (mips_class_max_nregs): Calculate the smallest consituent register + size and use that to determine an upper bound on the number of + registers. + +2007-10-19 Richard Sandiford + + * config/mips/mips.c (mips16_copy_fpr_return_value): New function, + split out from... + (mips_expand_epilogue): ...here. + (mips_mdebug_abi_name): New function, split out from... + (mips_file_start): ...here. + (mips_hard_regno_mode_ok_p): New function, split out from... + (override_options): ...here. + (mips_expand_builtin_1): New function, split out from... + (mips_expand_buitin): ...here. Abort if we don't recognize + the function. + +2007-10-19 Richard Sandiford + + * config/mips/mips.c (build_mips16_function_stub): Load the + target address into $1 before transfering the arguments. + Don't use ".set noreorder". + (build_mips16_call_stub): Likewise. + +2007-10-19 Richard Sandiford + + * config/mips/mips.c (mips_output_32bit_xfer): New function. + (mips_output_64bit_xfer): Likewise. + (mips16_fp_args): Rename to... + (mips_output_args_xfer): ...this and replace the FROM_FP_P argument + with a DIRECTION argument. Use mips_output_32bit_xfer and + mips_output_64bit_xfer. + (build_mips16_function_stub): Update accordingly. + (mips16_fpret_double): Delete. + (build_mips16_call_stub): Update after above changes. + Use mips_output_32bit_xfer. Use mips_output_64bit_xfer instead + of mips16_fpret_double. Use GP_REG_RETURN. + +2007-10-19 Richard Sandiford + + * config/mips/mips.c (mips16_fp_args): Remove the FILE argument and + use asm_out_file instead. + (build_mips16_function_stub): Likewise. + (build_mips16_call_stub, mips_output_function_prologue): Update + accordingly. + +2007-10-18 David S. Miller + + Add Niagara-2 support. + * doc/invoke.texi: Document -m{cpu,tune}=niagara2. + * config.gcc: Add niagara2 to cpu and tune lists for sparc. + * config/sparc/sparc.md (sparc_cpu_attr): Add niagara2. + (include): Add inclusion of niagara2.md + * config/sparc/sparc.c (niagara2_costs): New. + (sparc_override_options): Add niagara2 entry to cpu_default[] + and cpu_table[]. Set align_functions to 32 on Niagara2. Use + niagara2_costs when PROCESSOR_NIAGARA2. Handle Niagara2 for + PARAM_SIMULTANEOUS_PREFETCHES and PARAM_L1_CACHE_LINE_SIZE. + (sparc_initialize_trampoline): Handle niagara2 like niagara. + (sparc64_initialize_trampoline): Likewise. + (sparc_use_sched_lookahead): Likewise. + (sparc_issue_rate): Likewise. + * config/sparc/sol2-bi.h: Handle TARGET_CPU_niagara2 and + mcpu=niagara2 + * config/sparc/sparc.h (TARGET_CPU_niagara2): Define. + ({CPP,ASM}_CPU64_DEFAULT_SPEC): Set appropriately for + TARGET_CPU_niagara2. + (PROCESSOR_NIAGARA2): New. + (REGISTER_MOVE_COST): Handle PROCESSOR_NIAGARA2. + (BRANCH_COST): Likewise. + * config/sparc/linux64.h: Handle TARGET_CPU_niagara2. + * config/sparc/sol2.h: Likewise. + * config/sparc/niagara2.md: New file. + +2007-10-18 Richard Sandiford + + * config/mips/mips.c (mips_frame_info): Remove gp_reg_size and + and fp_reg_size. + (mips_compute_frame_info): Remove associated code. + (mips16e_build_save_restore): Check num_fp instead of fp_reg_size. + +2007-10-18 Richard Sandiford + + * config/mips/mips-protos.h (compute_frame_size): Delete. + * config/mips/mips.h: Update comments. + * config/mips/mips.c (mips_frame_info): Remove initialized. + (compute_frame_size): Rename to... + (mips_compute_frame_info): ...this and make static. Remove the + SIZE argument and return no value. Remove the setting of initialized. + Update rest of file accordingly. + (mips_set_return_address): Don't call compute_frame_size. + (mips_can_use_return_insn): Don't check df_regs_ever_live_p (31). + Don't call compute_frame_size. + +2007-10-18 Richard Sandiford + + * config/mips/mips-protos.h (mips_frame_pointer_required): Declare. + * config/mips/mips.h (FRAME_POINTER_REQUIRED): Use + mips_hard_frame_pointer_required. + (CAN_ELIMINATE): Rely on FRAME_POINTER_REQUIRED to check for + large MIPS16 frames. + * config/mips/mips.c (mips_frame_pointer_required): New function. + +2007-10-18 Richard Sandiford + + * config/mips/mips.c (mips_frame_info): Add arg_pointer_offset + and hard_frame_pointer_offset. + (mips_debugger_offset): Use hard_frame_pointer_offset. + (mips16e_collect_argument_save_p): Likewise. + (compute_frame_size): Initialize arg_pointer_offset and + hard_frame_pointer_offset. + (mips_initial_elimination_offset): Use them. + (mips_output_function_prologue): Use hard_frame_pointer_offset. + (mips_expand_prologue, mips_expand_epilogue): Likewise. + +2007-10-18 Richard Sandiford + + * config/mips/mips.h (STARTING_FRAME_OFFSET): Remove rtl + profiling code. + * config/mips/mips.c (mips_frame_info): Give num_gp and num_fp type + "unsigned int" rather than "int" and put them with the other + register-related fields. Put expanded comments above fields + rather than to their right. + (mips16e_mask_registers): Replace the GP_REG_SIZE_PTR argument + with a NUM_REGS_PTR argument. + (mips16e_save_restore_pattern_p): Update accordingly. + (compute_frame_size): Clarify frame diagram. Rewrite. + +2007-10-18 Richard Sandiford + + * config/mips/mips-ftypes.def: New file. + * config/mips/mips.c (MIPS_FTYPE_NAME1, MIPS_FTYPE_NAME2) + (MIPS_FTYPE_NAME3, MIPS_FTYPE_NAME4): New macros. + (mips_function_type): Redefine using mips-ftypes.def. + (dsp_bdesc): Use POINTER rather than PTR in the MIPS_*_FTYPE_* names. + (mips_builtin_vector_type): New function. + (MIPS_ATYPE_VOID, MIPS_ATYPE_INT, MIPS_ATYPE_POINTER, MIPS_ATYPE_SI) + (MIPS_ATYPE_USI, MIPS_ATYPE_DI, MIPS_ATYPE_SF, MIPS_ATYPE_DF) + (MIPS_ATYPE_V2SF, MIPS_ATYPE_V2HI, MIPS_ATYPE_V4QI, MIPS_FTYPE_ATYPES1) + (MIPS_FTYPE_ATYPES2, MIPS_FTYPE_ATYPES3, MIPS_FTYPE_ATYPES4): New + macros. + (mips_build_function_type): New function. + (mips_init_builtins): Use it to create types lazily. + +2007-10-18 Richard Sandiford + + * config/mips/mips.h (set_volatile): Delete. + * config/mips/mips.c (set_volatile): Delete. + (mips_print_operand_punctuation): New function, split out from + print_operand. Remove '%{', '%}', '%~', '%&' and '%!'. + Use the same character ordering in the code and the comments. + Use a recursive call to handle '*'. Abort on unknown characters. + (mips_init_print_operand_punct): New function, split out from + override_options. + (mips_print_int_branch_condition): New function, split out from + print_operand. Use GET_RTX_NAME. Use output_operand_lossage + to report unexpected codes. + (mips_print_float_branch_condition): New function, split out from + print_operand. Use output_operand_lossage to report unexpected codes. + (print_operand): Rework to use a case statement. Use the + same letter ordering in the code and the comments. Use + output_operand_lossage to report unexpected codes and + reverse_condition to handle inverted branch conditions. + (override_options): Use mips_init_print_operand_punct. + +2007-10-18 Richard Sandiford + + * config/mips/mips.h: Move variable declarations to end of file and + enclose them all in #ifndef USED_FOR_TARGET. + * config/mips/mips.c: Reorder functions into more logical groups, + and so that callees appear before callers. Put the targetm + initializer at the end of the file. Remove forward static + declarations where possible. + (mips_init_builtins): Add "static" to definition. + (mips_expand_builtin, mips_mode_rep_extended): Likewise. + +2007-10-18 Richard Sandiford + + * config/mips/mips.c (TARGET_MIN_ANCHOR_OFFSET): Delete. + (TARGET_MAX_ANCHOR_OFFSET): Delete. + (mips_cannot_force_const_mem): Don't check TARGET_HAVE_TLS. + (mips_set_mips16_mode): Initialize min_anchor_offset and + max_anchor_offset directly to constants. + +2007-10-18 Richard Sandiford + + * config/mips/mips.c: Delete trailing whitespace. + +2007-10-18 Richard Sandiford + + * config/mips/mips.c (mips_expand_call): Use FAKE_CALL_REGNO. + (mips_avoid_hazard): Allow multiple sets for HAZARD_DELAY, + and pick the first. + * config/mips/mips.md (load_call): Don't make the unspec + depend on FAKE_CALL_REGNO. Set FAKE_CALL_REGNO. + +2007-10-18 David Daney + + * config/mips/linux-unwind.h (mips_fallback_frame_state): Use new + reg_offset variable to calculate register locations. + +2007-10-18 Richard Guenther + + * tree-ssa.c (uid_ssaname_map_eq): New function. + (uid_ssaname_map_has): Likewise. + (init_tree_ssa): Allocate default_defs as uid_ssaname map. + * tree-flow.h (struct gimple_df): Make default_defs a + uid_ssaname map. + * tree-dfa.c (gimple_default_def): Deal with it. + (set_default_def): Likewise. + +2007-10-18 Richard Guenther + + * tree-flow.h (struct gimple_df): Make referenced_vars + a uid_decl_map. + (uid_decl_map_eq): Declare. + (uid_decl_map_hash): Likewise. + * tree-ssa.c (uid_decl_map_eq): New function. + (uid_decl_map_hash): Likewise. + (init_tree_ssa): Make referenced_vars a uid_decl_map. + * tree-flow-inline.h (first_referenced_var): Deal with + the referenced_vars representation change. + (next_referenced_var): Likewise. + * tree-dfa.c (referenced_var_lookup): Likewise. + (referenced_var_check_and_insert): Likewise. + (remove_referenced_var): Likewise. + +2007-10-18 Daniel Jacobowitz + + * config/mips/mips.c (mips_dwarf_register_span): New. + (TARGET_DWARF_REGISTER_SPAN): Define. + +2007-10-18 Chen Liqin + + * config.gcc : update score-*-elf(extra_objs). + * config/score/mac.md : Remove. + * config/score/misc.md : Remove. + * config/score/score7.md : Remove. + * config/score/score-mdaux.h : Remove. + * config/score/score-mdaux.c : Remove. + * config/score/score-version.h : Remove. + * config/score/score-generic.md : New. + * config/score/score3.h : New. + * config/score/score3.c : New. + * config/score/score7.h : New. + * config/score/score7.c : New. + * config/score/mul-div.S : add flush_cache score3 support. + * config/score/elf.h : Fix some typos. + * config/score/score.md : merge score3 and score7 pattern. + * config/score/score.c : use to seperate which target it used. + * config/score/score.h : use to seperate the target macro. + * config/score/score.opt : remove -mmac option , add -mscore3, + -mscore3d and -march OPTION support. + +2007-10-17 Andrew Pinski + + * cfgexpand.c (expand_stack_vars): Add checking to make sure + that the offset of a variable is not greater than the size + of the paritition. + +2007-10-17 Anatoly Sokolov + + * config/avr/avr.c (avr_mcu_types): Add support for atmega48p, + atmega88p, atmega168p and atmega328p devices. + * config/avr/avr.h (LINK_SPEC): (Ditto.). + (CRT_BINUTILS_SPECS): (Ditto.). + * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.). + +2007-10-17 Maxim Kuvyrkov + + * sched-ebb.c: Surround code with '#ifdef INSN_SCHEDULING'. + * ddg.c: Ditto. + * sched-deps.c: Ditto. Remove nested #ifdef's INSN_SCHEDULING. + * sched-int.h: Surround declarations with '#ifdef INSN_SCHEDULING'. + (print_insn): Move declaration to ... + * rtl.h (print_insn): ... here. + +2007-10-17 Maxim Kuvyrkov + + * config/m68k/m68k.h (m68k_sched_cpu, m68k_sched_attr_opx_type, + m68k_sched_attr_opy_type, m68k_sched_attr_size, m68k_sched_attr_op_mem, + m68k_sched_branch_type): Move declarations to ... + * config/m68/m68k-protos.h: ... here. + +2007-10-17 Maxim Kuvyrkov + + * genattrtab.c (main): Rearrange output of insn-attrtab.c headers. + +2007-10-17 Eric B. Weddington + + * config/avr/avr.c (avr_mcu_types): Add attiny48. + * config/avr/avr.h (LINK_SPEC): Likewise. + (CRT_BINUTILS_SPECS): Likewsie. + * config/avr/t-avr (MULTILIB_MATCHES): Likewise. + +2007-10-17 Eric B. Weddington + + * config/avr/avr.c (avr_mcu_types): Add attiny43u. + * config/avr/avr.h (CRT_BINUTILS_SPECS): Likewsie. + * config/avr/t-avr (MULTILIB_MATCHES): Likewise. + +2007-10-17 Uros Bizjak + + PR middle-end/33794 + * reg-stack.c (move_for_stack_reg): Swap input argument of + UNSPEC_TAN insn to the top of the stack. + +2007-10-17 Uros Bizjak + + PR target/32961 + * config/i386/i386.c (ix86_expand_builtin) [IX86_BUILTIN_PSLLWI128, + IX86_BUILTIN_PSLLDI128, BUILTIN_PSLLQI128, IX86_BUILTIN_PSRAWI128, + IX86_BUILTIN_PSRADI128, IX86_BUILTIN_PSRLWI128, + IX86_BUILTIN_PSRLDI128, IX86_BUILTIN_PSRLQI128]: Do not require + immediate shift value. + config/i386/emmintrin.h (_mm_slli_epi16, _mm_slli_epi32, + _mm_slli_epi64, _mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16, + _mm_srli_epi32, _mm_srli_epi64): Remove 'const' from count argument. + Remove macros for !__OPTIMIZE__ case. + +2007-10-17 Daniel Berlin + + * tree-ssa-structalias.c (rewrite_constraints): Don't test for + directness anymore. + (perform_var_substitution): Only DFS from real nodes. Don't test + for directness. + (unite_pointer_equivalences): Fix broken test. + +2007-10-17 Alan Modra + + * config/rs6000/rs6000.c (rs6000_emit_epilogue): Correct + altivec sp_offset. Rearrange sp_offset assignments to + correspond to stack adjustments. Use frame_reg_rtx for + SPE register restores. Correct SPE stack adjustment. + +2007-10-17 Manuel Lopez-Ibanez + + * builtins.c (gimplify_va_arg_expr): Use inform for help message. + * toplev.c (check_global_declaration_1): Use appropriate warning + option instead of unnamed warning. + * stor-layout.c (layout_decl): Likewise. + * c-typeck.c (build_conditional_expr): Likewise. + (build_compound_expr): Fix wrong comment. + (build_binary_op): Use appropriate warning option instead of + unnamed warning. + * cfgexpand.c (tree_expand_cfg): Likewise. + * tree-optimize.c (tree_rest_of_compilation): Likewise. + * tree-cfg.c (remove_useless_stmts_warn_notreached): Likewise. + (execute_warn_function_return): Likewise. + * stmt.c (warn_if_unused_value): Likewise. + +2007-10-16 Eric B. Weddington + + * config/avr/avr.c (avr_mcu_types): Add at90pwm216, at90pwm316. + * config/avr/avr.h (LINK_SPEC): Likewise and remove regex for + similar devices. + (CRT_BINUTILS_SPECS): Likewsie. + * config/avr/t-avr (MULTILIB_MATCHES): Likewise. + +2007-10-16 Amruth Laxman + + PR target/33594 + * config/sparc/sparc.h (LOCAL_ALIGNMENT): Define. + +2007-10-16 Eric Botcazou + + * dce.c (init_dce): Only initialize the obstacks for the fast pass. + (fini_dce): Only release them for the fast pass. + (end_ud_dce): Delete. + (rest_of_handle_ud_dce): Do not modify df_in_progress. + Call fini_dce instead of end_ud_dce. + (rest_of_handle_fast_dce): Do not modify df_in_progress. + (run_fast_df_dce): Reset df_in_progress to false on exit. + +2007-10-16 Paolo Bonzini + Maxim Kuvyrkov + + * target.h (unspec_may_trap_p): New target hook. + * target-def.h (TARGET_UNSPEC_MAY_TRAP_P): New macro. + * targhooks.c (default_unspec_may_trap_p): Default implementation of + the hook. + * targhooks.h (default_unspec_may_trap_p): Declare it. + * doc/tm.texi (TARGET_UNSPEC_MAY_TRAP_P): Document new hook. + * rtlanal.c (may_trap_p_1): Use new hook. Make global. + * rtl.h (may_trap_p_1): Declare. + + * config/ia64/ia64.c (ia64_unspec_may_trap_p): New function to + override default hook implementation. + (TARGET_UNSPEC_MAY_TRAP_P): Override default implementation of the + hook. + +2007-10-16 Manuel Lopez-Ibanez + + * doc/invoke.texi (Wextra): Move it just after Wall, list the + options enabled by Wextra and mention Wuninitialized. + +2007-10-15 Nigel Stephens + + * config/mips/mips.h (LOCAL_ALIGNMENT): Define. + +2007-10-15 Jakub Jelinek + + PR tree-optimization/33136 + * opts.c (decode_options): Don't enable flag_ipa_type_escape. + +2007-10-15 Alexandre Oliva + + PR tree-optimization/33735 + PR tree-optimization/33572 + * tree-inline.c (update_ssa_across_abnormal_edges): Revert + 2007-10-09's change. + * except.c (duplicate_eh_regions): Don't look for prev_try + beyond ERT_ALLOWED_EXCEPTIONS with an empty list. + +2007-10-15 Alexandre Oliva + + PR middle-end/33706 + * tree-inline.c (copy_bb): Use bsi_replace to replace a + __builtin_va_arg_pack-containing call stmt. + +2007-10-15 Razya Ladelsky + + * matrix-reorg.c (gate_matrix_reorg): Don't comment out whole + program flag. + +2007-10-15 Jakub Jelinek + + PR tree-optimization/33619 + * tree-ssa-ter.c (is_replaceable_p): Return false for all + calls. + +2007-10-15 David Edelsohn + + * config.gcc (powerpc-ibm-aix5*): Install altivec.h. + +2007-10-15 Richard Guenther + + * fold-const.c (extract_array_ref): Remove. + (fold_comparison): Handle POINTER_PLUS_EXPR with the + generic address expression comparison folding. Remove + the folding that used extract_array_ref. + +2007-10-15 Maxim Kuvyrkov + + PR target/33133 + * haifa-sched.c (process_insn_forw_deps_be_in_spec): Check if + speculation type of insn can be changed before trying to do that. + +2007-10-15 Eric Botcazou + + * dse.c (struct insn_info): Add 'frame_read' field. + (scan_insn): For the call to a const function, set frame_read if + reload has been run. + If the insn reads the frame, kill the frame related stores. + (scan_reads_nospill): Likewise. + +2007-10-14 Jason Merrill + + * tree-eh.c (optimize_double_finally): Don't assume that the + cleanup we're duplicating is only one statement. + +2007-10-14 Kazu Hirata + + * config/fixed-bit.c, config/i386/cpuid.h, config/i386/i386.c, + config/i386/i386.md, config/i386/sse.md, function.c, jump.c, + modulo-sched.c, ra-conflict.c, toplev.c, tree-eh.c, tree-sra.c, + tree-ssa-dse.c, tree-vect-analyze.c, tree-vect-patterns.c, + tree-vect-transform.c: Fix comment typos. + * doc/extend.texi: Fix a typo. + + * c-common.h: Remove the prototype for c_expand_body. + * c-tree.h: Remove the prototype for c_disregard_inline_limits. + * tree.h: Remove the prototype for fold_build_call_expr. + + * c-objc-common.h (LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN): + Remove. + * c-tree.h: Remove the prototype for c_cannot_inline_tree_fn. + +2007-10-13 David Edelsohn + + * config/rs6000/aix53.h: New file. + * config/rs6000/aix{41,43,51,52}.h (TARGET_ALTIVEC): Define to 0. + (TARGET_ALTIVEC_ABI): Same. + * config/rs6000/aix.h (TARGET_ALTIVEC): Delete. + (TARGET_ALTIVEC_ABI): Delete. + * config.gcc (powerpc-ibm-aix5*): Rename to aix5.2. Add new + stanza defaulting to aix5.3. + +2007-10-12 Nathan Froyd + + * config/i386/i386.md (SI_REG, DI_REG): New constants. + (strmov): Use defined constants. + (cmpstrnsi): Likewise. + * config/i386/i386.c (decide_alg): Use defined constants. + (ix86_expand_strlen): Likewise. + +2007-10-12 Richard Sandiford + + * dse.c (find_shift_sequence): Reinstate "<= UNITS_PER_WORD" condition. + * var-tracking.c (micro_operation_def): Update comment on u.loc. + (mode_for_reg_attrs, var_lowpart): New functions. + (add_uses): Consider recording a lowpart of LOC for MO_USE. + (add_stores): Likewise MO_SET and MO_COPY. If the source of a set + or copy is known, set LOC to the SET that performs the set, instead + of the destination. + (find_src_status, find_src_set_src): Remove LOC parameter. + Replace INSN with the source value. + (compute_bb_dataflow, emit_notes_in_bb): Check for a SET u.loc when + handling MO_SET and MO_COPY. Update the calls to find_src_status + and find_src_set_src. + +2007-10-12 Nathan Froyd + + PR 11001 + * config/i386/i386.md (strmov): Check for esi and edi usage. + * config/i386/i386.c (decide_alg): Check whether we can use a + rep prefix and adjust algorithm choice accordingly. + (ix86_expand_strlen): Check for eax, ecx, and edi usage. + +2007-10-12 Kaveh R. Ghazi + + * config/c4x/c4x.md (mulqi3, mulhi3): Use optab_libfunc. + +2007-10-12 Kenneth Zadeck + + * global.c (build_insn_chain): Formatting fixes. + +2007-10-12 Richard Guenther + + * tree-ssa-forwprop.c (forward_propagate_into_cond): For + combining both operands require either both have single uses + or combining to a constant. + +2007-10-12 Richard Guenther + + PR middle-end/26198 + * tree-ssa-forwprop.c (can_propagate_from): Do not propagate from + a rhs with side-effects or which is a load. + (forward_propagate_into_cond): Also try combining both operands. + +2007-10-12 Uros Bizjak + + PR tree-optimization/33742 + * tree-vect-transform.c (vectorizable_operation): Return false + if get_vectype_for_scalar_type for scalar_dest can't be determined. + (vectorizable_call): Same for rhs_type and lhs_type. + +2007-10-12 Jakub Jelinek + + PR tree-optimization/33645 + * tree-ssa-live.c (mark_all_vars_used): Add data argument, + pass it to walk_tree. + (mark_all_vars_used_1): Pass data through to mark_all_vars_used. + When calling set_is_used on a VAR_DECL, if data is not NULL and + its DECL_UID is in the bitmap, call mark_all_vars_used on its + DECL_INITIAL after clearing the bit in bitmap. + (remove_unused_locals): Adjust mark_all_vars_used callers. + Instead of removing unused global vars from unexpanded_var_list + immediately record them in bitmap, call mark_all_vars_used on + all used global vars from unexpanded_var_list and only purge + global vars that weren't found used even during that step. + 2007-10-11 John David Anglin * gthr-posix.h (__gthread_active_init): Create detached instead of @@ -16,7 +668,7 @@ 2007-10-11 Uros Bizjak - * config/i386/i386.md (AX_REG, BX_REG, CX_REG): New constants. + * config/i386/i386.md (AX_REG, DX_REG, CX_REG): New constants. * config/i386/i386.c (ix86_function_arg_regno_p, function_arg_32, function_value_32, function_value_64, function_value_ms_64, setup_incoming_varargs_64, ix86_expand_prologue, ix86_expand_call,