X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2FChangeLog;h=f723b698dd09314f5cc592a1754c6ad600cf0784;hb=77318e00be94a02ab59a5fee430bd5b1b0de5880;hp=e9c077124bd6db2f0f959cd30e736eaf8c608e20;hpb=d76b3d0f6bd4b19b12ed14ecd6249551b982ae41;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e9c077124bd..f723b698dd0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,609 @@ +2010-06-28 Martin Jambor + + * tree-sra.c (convert_callers): New parameter, change fndecls of + recursive calls. + (modify_function): Pass the old decl to convert_callers. + +2010-06-28 Martin Jambor + + * ipa-cp.c (ipcp_init_cloned_node): Replace calls to + ipa_check_create_node_params and ipa_initialize_node_params with + checking asserts they are not necessary. + +2010-06-28 Jan Hubicka + + PR tree-optimization/44687 + * ipa-split.c (split_function): Use DECL_RESULT to store return value. + +2010-06-28 Martin Jambor + + PR c++/44535 + * gimple-fold.c (get_first_base_binfo_with_virtuals): New function. + (gimple_get_relevant_ref_binfo): Use get_first_base_binfo_with_virtuals + instead of BINFO_BASE_BINFO. + +2010-06-28 Michael Matz + + PR middle-end/44592 + * gimple-fold.c (gimplify_and_update_call_from_tree): Maintain + proper VDEF chain for intermediate stores in the sequence. + +2010-06-28 Jan Hubicka + + PR tree-optimization/44357 + * ipa-inline.c (add_new_edges_to_heap): Do not add edges to uninlinable + functions. + +2010-06-28 Philipp Tomsich + + * config.gcc (powerpc*-*-*): Handle titan. + * config/rs6000/rs6000.c (titan_cost): New costs. + (rs6000_override_options): Add "titan" to processor_target_table. + Add Titan to branch alignment logic. + Correctly set rs6000_cost for titan. + * config/rs6000/rs6000.md (cpu): Add titan. Include "titan.md". + * config/rs6000/titan.md: New file. + * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=titan. + +2010-06-28 Nathan Froyd + + * tree-browser.c (TB_history_stack): Convert to a VEC. + (TB_SET_HEAD): Adjust for new type of TB_history_stack. + (TB_history_prev): Likewise. + +2010-06-28 Nathan Froyd + + * vec.h (vec_heap_free): Add parentheses around free. + +2010-06-28 Steven Bosscher + + * system.h: Poison GCC_EXCEPT_H for front-end files. + + * langhooks.h (struct lang_hooks): Add eh_protect_cleanup_actions + langhook. + * langhooks-def.h (LANG_HOOKS_EH_PROTECT_CLEANUP_ACTIONS) New. + Define to NULL by default. + * except.h: Define GCC_EXCEPT_H. + (doing_eh): Remove prototype. + (init_eh, init_eh_for_function): Move prototypes to toplev.h. + (lang_protect_cleanup_actions): Remove. + * except.c (lang_protect_cleanup_actions): Remove. + (doing_eh): Remove. + (gen_eh_region): Don't check doing_eh here. + * toplev.h (init_eh, init_eh_for_function_): Moved from except.h. + * tree-eh.c (honor_protect_cleanup_actions): Use new langhook + instead of lang_protect_cleanup_actions. + * omp-low.c (maybe_catch_exception): Likewise. + * Makefile.in: Update dependencies. + +2010-06-28 Bingfeng Mei + + * cgraph.h (struct varpool_node): new used_from_object_file flag. + (struct cgraph_local_info): new used_from_object_file flag. + * cgraph.c (dump_cgraph_node): dump used_from_object_file flag. + (cgraph_clone_node): initialize used_from_object_file. + (cgraph_create_virtual_clone): initialize used_from_object_file. + * lto-symbtab.c (lto_symtab_merge_decls_1): Set + used_from_object_file flags for symbols of LDPR_PREVAILING_DEF + when compiling with -fwhole-program. + (lto_symtab_resolve_symbols) Use LDPR_PREVAILING_DEF_IRONLY for + internal resolver. + * ipa.c (function_and_variable_visibility): Set externally_visible + flag of varpool_node if used_from_object_file flag is set. + (cgraph_externally_visible_p): check used_from_object_file flag. + * doc/invoke.texi (-fwhole-program option): Change description of + externally_visible attribute accordingly. + * doc/extend.texi (externally_visible): Ditto. + +2010-06-27 Jan Hubicka + + * params.def (max-inline-insns-auto): Default to 40. + * doc/invoke.texi (max-inline-insns-auto): Document the change. + +2010-06-27 Jan Hubicka + + PR middle-end/44671 + PR middle-end/44686 + * tree.c (build_function_decl_skip_args): Clear DECL_BUILT_IN on signature + change. + * ipa-split.c (split_function): Always clear DECL_BUILT_IN. + * ipa-prop.c (ipa_modify_formal_parameters): Likewise. + +2010-06-27 Anatoly Sokolov + + * target.h (struct gcc_target): Add register_move_cost field. + * target-def.h (TARGET_REGISTER_MOVE_COST): New. + (TARGET_INITIALIZER): Use TARGET_REGISTER_MOVE_COST. + * targhooks.c (default_register_move_cost): New function. + * targhooks.h (default_register_move_cost): Declare function. + * defaults.h (REGISTER_MOVE_COST): Delete. + * ira-int.h (ira_register_move_cost): Update comment. + * ira.c: (ira_register_move_cost): Update comment. + * reload.h (register_move_cost): Declare. + * reginfo.c (register_move_cost): New function. + (move_cost): Update comment. + (init_move_cost, memory_move_secondary_cost): Replace + REGISTER_MOVE_COST with register_move_cost. + * postreload.c (reload_cse_simplify_set): (Ditto.). + * reload.c (find_valid_class, find_reloads): (Ditto.). + * reload1.c (choose_reload_regs): (Ditto.). + * doc/tm.texi (TARGET_REGISTER_MOVE_COST): New. + (REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Update documentation. + * doc/md.texi (can_create_pseudo_p): Update documentation. + + * config/i386/i386.h (MEMORY_MOVE_COST): Remove macro. + * config/i386/i386-protos.h (int ix86_memory_move_cost): Remove. + * config/i386/i386.h (ix86_memory_move_cost): Make static. + (TARGET_MEMORY_MOVE_COST): Define. + + * config/ia64/ia64.h (MEMORY_MOVE_COST): Remove macro. + * config/ia64/ia64-protos.h (int ia64_memory_move_cost): Remove. + * config/ia64/ia64.h (ia64_memory_move_cost): Make static. + (TARGET_MEMORY_MOVE_COST): Define. + +2010-06-27 Richard Guenther + + PR tree-optimization/44683 + * tree-ssa-dom.c (record_edge_info): Record equivalences for the + false edge from the inverted condition. + +2010-06-27 Richard Guenther + + PR middle-end/44684 + * tree-ssa-alias.c (refs_may_alias_p_1): Allow SSA name refs. + (stmt_may_clobber_ref_p_1): Do not bother to call the oracle + for register LHS. Or non-store assignments. + +2010-06-26 Eric Botcazou + + * config/sparc/sparc.c (sparc_emit_set_const32): Make static. + (sparc_emit_set_const64): Likewise. Remove disabled code. + * config/sparc/sparc-protos.h (sparc_emit_set_const32): Delete. + (sparc_emit_set_const64): Likewise. + +2010-06-26 Catherine Moore + + * config/mips/mips.md (alu_type): New attribute. + (type): Infer type from alu_type. + (*add3, *add3_mips16, *addsi3_extended, + *baddu_si_eb, *baddu_si_el, *baddu_di, sub3, + *subsi3_extended, negsi2, negdi2, *low, + *low_mips16, *ior3, *ior3_mips16, + xor3, *nor3, + *zero_extend_trunc, + *zero_extendhi_truncqi): Set alu_type instead of type. + +2010-06-26 Douglas B Rupp + + * config/alpha/alpha.c (alpha_need_linkage): Adjust + splay_tree_new_ggc call. + (alpha_use_linkage): Likewise. + +2010-06-26 Joseph Myers + + * collect2.c (main): Remove SWITCHES_NEED_SPACES conditional. + * doc/tm.texi (SWITCHES_NEED_SPACES): Don't document. + * gcc.c (SWITCHES_NEED_SPACES, switches_need_spaces): Remove. + (static_specs): Remove switches_need_spaces. + (process_command, do_self_spec): Hardcode handling "-o" instead of + checking switches_need_spaces. + * system.h (SWITCHES_NEED_SPACES): Poison. + +2010-06-26 Richard Guenther + + PR tree-optimization/44393 + * tree-loop-distribution.c (generate_loops_for_partition): Fix + stmt removal and VOP renaming. + (generate_memset_zero): Remove redundant stmt updating. + * tree-flow.h (mark_virtual_ops_in_bb): Remove. + * tree-cfg.c (mark_virtual_ops_in_bb): Likewise. + +2010-06-26 Jan Hubicka + + * ipa-split.c (consider_split): PHI in entry block is OK as long as all + edges comming from header are equivalent. + (visit_bb): Handle PHIs correctly. + * tree-inline.c (copy_phis_for_bb): Be able to copy + PHI from entry edge. + (copy_cfg_body): Produce edge from entry BB before copying + PHIs. + +2010-06-26 Richard Guenther + + PR middle-end/44674 + * tree-ssa-alias.c (refs_may_alias_p_1): Allow all kind of + decls. Handle LABEL_DECLs like FUNCTION_DECLs. + +2010-06-26 Joseph Myers + + * gcc.c (n_switches_alloc, n_infiles_alloc, alloc_infile, + add_infile, alloc_switch): New. + (process_command): Remove variable lang_n_infiles. Process + options in a single pass. Use new functions for allocating + infiles and switches arrays. Properly skip operands of + -Xpreprocessor and -Xassembler. + +2010-06-26 Jan Hubicka + + PR middle-end/44671 + * cgraphunit.c (cgraph_function_versioning): Remove wrong + cgraph_make_decl_local call; fix typo copying RTL data. + +2010-06-25 DJ Delorie + + * config/m32c/m32c-protos.h (m32c_note_pragma_address): Declare. + (m32c_output_aligned_common): Likewise. + * config/m32c/m32c.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): New. + (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New. + * config/m32c/m32c-pragma.c (m32c_pragma_address): New. + (m32c_register_pragmas): Register it. + * config/m32c/m32c.c (m32c_get_pragma_address): New. + (m32c_insert_attributes): Set #pragma address decls volatile. + (pragma_entry_eq): New. + (pragma_entry_hash): New. + (m32c_note_pragma_address): New. + (m32c_get_pragma_address): New. + (m32c_output_aligned_common): New. + * doc/extend.texi: Document the new pragma. + + * config/m32c/m32c.c (m32c_illegal_subreg_p): Reject illegal MEMs + also. + * config/m32c/predicates.md (m32c_any_operand): Check the code + instead of memory_operand so as to allow matching volatile MEMs. + (m32c_nonimmediate_operand): Likewise. + (mra_operand): Allow volatiles. + +2010-06-25 Alexandre Oliva + + PR debug/44610 + * simplify-rtx.c (delegitimize_mem_from_attrs): Don't use a base + address if the offset is unknown. + +2010-06-25 Douglas B Rupp + + * dwarf2out.c (dwarf2out_vms_debug_main_pointer): New function. + * dwarf2out.h (dwarf2out_vms_debug_main_pointer): Declare new function. + * config/ia64/ia64-protos.h (ia64_start_function): Declare. + * config/ia64/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Move contents + to ia64_start_function. Invoke it. + * config/ia64/ia64.c (ia64_start_function): Call new function + dwarf2out_vms_debug_main_pointer. + +2010-06-25 Sebastian Pop + + * tree-if-conv.c (insert_gimplified_predicates): Do not insert + statements computing the true predicate. + +2010-06-25 Sebastian Pop + + * tree-if-conv.c (init_bb_predicate): Initialize the predicate + to boolean_true_node. + (reset_bb_predicate): New. + (predicate_bbs): Call reset_bb_predicate. + +2010-06-25 Sebastian Pop + + * tree-if-conv.c (combine_blocks): Remove FIXME comment. + (tree_if_conversion): Returns true when something has been changed. + (main_tree_if_conversion): Return TODO_cleanup_cfg when if-conversion + changed something. + +2010-06-25 Sebastian Pop + + * Makefile.in (tree-if-conv.o): Depends on DBGCNT_H. + * dbgcnt.def (if_conversion_tree): New DEBUG_COUNTER. + * tree-if-conv.c: Include dbgcnt.h. + (tree_if_conversion): Use if_conversion_tree to count the number of + if-convertible loops. + +2010-06-25 Changpeng Fang + + * common.opt (fprefetch-loop-arrays): Re-define + -fprefetch-loop-arrays as a tri-state option with the initial + value of -1. + * tree-ssa-loop.c (gate_tree_ssa_loop_prefetch): Invoke prefetch + pass only when flag_prefetch_loop_arrays > 0. + * toplev.c (process_options): Note that, with tri-states, + flag_prefetch_loop_arrays>0 means prefetching is enabled. + * config/i386/i386.c (override_options): Enable prefetching at -O3 + for a set of CPUs that sw prefetching is helpful. + (software_prefetching_beneficial_p): New. Return TRUE if software + prefetching is beneficial for the given CPU. + +2010-06-25 H.J. Lu + + PR rtl-optimization/44326 + * implicit-zee.c (find_removable_zero_extends): Replace + INSN_P with NONDEBUG_INSN_P. + +2010-06-25 Martin Jambor + + * ipa-prop.h (struct ipa_param_descriptor): Removed the modified flag. + (struct ipa_node_params): Removed the modification_analysis_done flag. + (ipa_is_param_modified): Removed. + (ipa_analyze_node): Declare. + (ipa_compute_jump_functions): Remove declaration. + (ipa_count_arguments): Likewise. + (ipa_detect_param_modifications): Likewise. + (ipa_analyze_params_uses): Likewise. + * ipa-prop.c (struct param_analysis_info): New type. + (visit_store_addr_for_mod_analysis): Removed. + (visit_load_for_mod_analysis): Renamed to visit_ref_for_mod_analysis, + moved down in the file. + (ipa_detect_param_modifications): Merged into ipa_analyze_params_uses. + (ipa_count_arguments): Made static. + (mark_modified): New function. + (is_parm_modified_before_call): New function. + (compute_pass_through_member_ptrs): New parameter parms_info, call + is_parm_modified_before_call instead of ipa_is_param_modified. + (ipa_compute_jump_functions_for_edge): New parameter parms_info, pass + it to compute_pass_through_member_ptrs. + (ipa_compute_jump_functions): New parameter parms_info, pass it to + ipa_compute_jump_functions_for_edge. Call ipa_initialize_node_params + on the callee if it is analyzed. Made static. + (ipa_analyze_indirect_call_uses): New parameter parms_info, call + is_parm_modified_before_call instead of ipa_is_param_modified. + (ipa_analyze_call_uses): New parameter parms_info, pass it to + ipa_analyze_indirect_call_uses. + (ipa_analyze_stmt_uses): New parameter parms_info, pass it to + ipa_analyze_call_uses. + (ipa_analyze_params_uses): New parameter parms_info, pass it to + ipa_analyze_stmt_uses. Also perform the used analysis. Made static. + (ipa_analyze_node): New function. + (ipa_print_node_params): Do not dump the modified flag. + (ipa_write_node_info): Assert uses_analysis_done rather than streaming + it. Do not stream the modified parameter flag. + (ipa_read_node_info): Set uses_analysis_done to 1 instead of streaming + it. Do not stream the modified parameter flag. + * ipa-cp.c (ipcp_analyze_node): Removed. + (ipcp_init_stage): Iterate only once over the nodes, analyze each one + with only a call to ipa_analyze_node. + * ipa-inline.c (inline_indirect_intraprocedural_analysis): Analyze the + node with only a call to ipa_analyze_node. + +2010-06-25 Manuel López-Ibáñez + + * doc/invoke.texi (-Wsuggest-attribute): Add item for noreturn. + +2010-06-25 Jan Hubicka + + * tree-pass.h (pass_split_functions): Declare. + * opts.c (decode_options): Enable function splitting at -O2 + * timevar.def (TV_IPA_FNSPLIT): New macro. + * ipa-split.c: New file. + * common.opt (-fpartial-inlining): New flag. + * Makefile.in (ipa-split.o): New object file. + * passes.c (init_optimization_passes): Add ipa-split. + * params.def (partial-inlining-entry-probability): New parameters. + * doc/invoke.texi (-fpartial-inlining): New. + +2010-06-25 Manuel López-Ibáñez + + PR 44665 + * tree-inline.c (gimple_expand_calls_inline): Fix typo in comment. + * gimplify.c (is_gimple_reg_rhs_or_call): Likewise. + (gimplify_expr): Likewise. + +2010-06-25 Martin Jambor + + * ipa-prop.c (determine_cst_member_ptr): Ignore non-clobbering + statements instead of bailing out on them. + (ipa_analyze_indirect_call_uses): Do not require that loads from the + parameter are in the same BB as the condition. Update comments. + +2010-06-25 Jakub Jelinek + + PR middle-end/43866 + * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): If stmt is always + true or always false, return NULL_TREE. + (tree_unswitch_single_loop): Optimize conditions even when reaching + max-unswitch-level parameter. If num > 0, optimize first all conditions + using entry checks, then do still reachable block discovery and consider + only conditions in still reachable basic blocks in the loop. + + PR tree-optimization/44539 + * tree-cfgcleanup.c (fixup_noreturn_call): Call update_stmt even when + the call doesn't have LHS, but has VDEF. + +2010-06-25 Joseph Myers + + * config/pa/pa.h (MODIFY_TARGET_NAME): Remove. + * doc/tm.texi (MODIFY_TARGET_NAME): Don't document. + * gcc.c (enum add_del, struct modify_target, modify_target): + Remove. + (process_command): Remove code conditional on MODIFY_TARGET_NAME. + * system.h (MODIFY_TARGET_NAME): Poison. + +2010-06-25 Alan Modra + + * doc/invoke.texi: Delete mcmodel=medium from powerpc options. + * config/rs6000/rs6000.h (enum rs6000_cmodel): Delete CMODEL_MEDIUM. + * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set + CMODEL_LARGE as default. + * config/rs6000/rs6000.c (rs6000_handle_option): Remove mcmodel=medium. + (offsettable_ok_by_alignment): Delete. + (rs6000_emit_move): Remove mcmodel=medium optimization. + +2010-06-25 Bernd Schmidt + + With large parts from Jim Wilson: + PR target/43902 + * tree-pretty-print.c (dump_generic_node, op_code_prio): Add + WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR. + * optabs.c (optab_for_tree_code): Likewise. + (expand_widen_pattern_expr): Likewise. + * tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken + out of execute_optimize_widening_mul. + (convert_plusminus_to_widen): New function. + (execute_optimize_widening_mul): Use the two new functions. + * expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS. + Remove code to generate widening multiply-accumulate. Add support + for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR. + * gimple-pretty-print.c (dump_ternary_rhs): New function. + (dump_gimple_assign): Call it when appropriate. + * tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes. + * cfgexpand.c (gimple_assign_rhs_to_tree): Likewise. + (expand_gimple_stmt_1): Likewise. + (expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and + WIDEN_MULT_MINUS_EXPR. + * tree-ssa-operands.c (get_expr_operands): Likewise. + * tree-inline.c (estimate_operator_cost): Likewise. + * gimple.c (extract_ops_from_tree_1): Renamed from + extract_ops_from_tree. Add new arg for a third operand; fill it. + (gimple_build_assign_stat): Support operations with three operands. + (gimple_build_assign_with_ops_stat): Likewise. + (gimple_assign_set_rhs_from_tree): Likewise. + (gimple_assign_set_rhs_with_ops_1): Renamed from + gimple_assign_set_rhs_with_ops. Add new arg for a third operand. + (get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS. + (get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and + WIDEN_MULT_MINUS_EXPR. + * gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS. + (extract_ops_from_tree_1): Adjust declaration. + (gimple_assign_set_rhs_with_ops_1): Likewise. + (gimple_build_assign_with_ops): Pass NULL for last operand. + (gimple_build_assign_with_ops3): New macro. + (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3, + gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline + functions. + * tree-cfg.c (verify_gimple_assign_ternary): New static function. + (verify_gimple_assign): Call it. + * doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS. + (Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new + functions for dealing with three-operand statements. + * tree.c (commutative_ternary_tree_code): New function. + * tree.h (commutative_ternary_tree_code): Declare it. + * tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for ternary + statements. + (gimple_assign_nonzero_warnv_p): Likewise. + * tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS. + * tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function. + (ccp_fold): Use it. Handle GIMPLE_TERNARY_RHS. + * tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY. + (struct hashtable_expr): New member ternary in the union. + (initialize_hash_element): Handle GIMPLE_TERNARY_RHS. + (hashable_expr_equal_p): Fix indentation. Handle EXPR_TERNARY. + (iterative_hash_hashable_expr): Likewise. + (print_expr_hash_elt): Handle EXPR_TERNARY. + * gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS. + * tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break + statements. Handle GIMPLE_TERNARY_RHS. + +2010-06-25 Jan Hubicka + + * doc/invoke.texi (-Wsuggest-attribute): Add noreturn. + +2010-06-25 Shujing Zhao + + PR c/44517 + * c-parser.c (c_parser_parms_list_declarator): Return NULL if one of + parameters are not good. + (c_parser_parameter_declaration): Error unknown type name if the type + name can't start declaration specifiers. + +2010-06-25 Joseph Myers + + * gcc.c (translate_options): Don't mention +e in comment. + (process_command): Don't handle +e specially. + +2010-06-25 Bernd Schmidt + + * ira.c (allocno_pool, copy_pool, allocno_live_range_pool): Delete. + + * ira-build.c (merge_hard_reg_conflicts): New function. + (create_cap_allocno, copy_info_to_removed_store_destinations, + propagate_some_info_from_allocno, propagate_allocno_info): Use it. + (move_allocno_live_ranges, copy_allocno_live_ranges): New functions. + (remove_unnecessary_allocnos, remove_low_level_allocnos) + copy_nifo_to_removed_store_destination): Use them. + * ira-lives.c (make_hard_regno_born): New function, split out of + make_regno_born. + (make_allocno_born): Likewise. + (make_hard_regno_dead): New function, split out of make_regno_dead. + (make_allocno_dead): Likewise. + (inc_register_pressure): New function, split out of set_allocno_live. + (dec_register_pressure): New function, split out of clear_allocno_live. + (mark_pseudo_regno_live): New function, split out of mark_reg_live. + (mark_hard_reg_live): Likewise. Use inc_register_pressure. + (mark_pseudo_regno_dead): New function, split out of mark_reg_dead. + (mark_hard_reg_dead): Likewise. Use dec_register_pressure. + (make_pseudo_conflict): Use mark_pseudo_regno_dead and + mark_pseudo_regno_live. + (process_bb_node_lives): Use mark_pseudo_regno_live, + make_hard_regno_born and make_allocno_dead. + (make_regno_born, make_regno_dead, mark_reg_live, mark_reg_dead, + set_allocno_live, clear_allocno_live): Delete functions. + + * ira-int.h (ira_parent_allocno, ira_parent_or_cap_allocno): Declare. + * ira-build.c (ira_parent_allocno, ira_parent_or_cap_allocno): New + functions. + (ira_flattening): Use ira_parent_allocno. + * ira-conflicts.c (process_regs_for_copy, propagate_copies) + build_allocno_conflicts): Use ira_parent_or_cap_allocno. + + * ira-color.c (assign_hard_reg): Improve formatting of multi-line for + statement. + + * ira-int.h (SET_MINMAX_SET_BIT, CLEAR_MINMAX_SET_BIT, + TEST_MINMAX_SET_BIT, minmax_set_iterator, minmax_set_iter_init, + minmax_set_iter_cond, minmax_set_iter_next, + FOR_EACH_BIT_IN_MINMAX_SET): Renamed from SET_ALLOCNO_SET_BIT, + CLEAR_ALLOCNO_SET_BIT, TEST_ALLOCNO_SET_BIT, ira_allocno_set_iterator, + ira_allocno_set_iter_init, ira_allocno_set_iter_cond, + ira_allocno_set_iter_Next and FOR_EACH_ALLOCNO_IN_ALLOCNO_SET. All + uses changed. + + * ira-int.h (struct live_range, live_range_t): Renamed from struct + ira_allocno_live_range and allocno_live_range_t; all uses changed. + * ira-build.c (live_range_pool): Renamed from allocno_live_range_pool. + All uses changed. + +2010-06-24 Richard Earnshaw + + * thumb2.md (thumb2_tlobits_cbranch): Delete. + (peephole2 to convert zero_extract/compare of single bit to + lshift/compare): New. + +2010-06-24 Anatoly Sokolov + + * fold-const.c (const_binop): Remove 'notrunc' argement. Adjust + recursive call and call to 'int_const_binop'. + (build_range_check, fold_cond_expr_with_comparison, unextend, + fold_truthop, extract_muldiv_1, fold_comparison, fold_binary_loc, + multiple_of_p): Adjust call to const_binop. + +2010-06-24 Uros Bizjak + + * config/i386/i386.md (XFmode push splitter): Use GET_MODE_SIZE to + determine size of XFmode operand. + (XFmode extended DFmode push splitter): Ditto. + (XFmode extended SFmode push splitter): Ditto. + +2010-06-24 H.J. Lu + + PR target/44588 + * config/i386/i386.md (extract_code): New. + (divmodqi4): Likewise. + (divmodhiqi3): Likewise. + (udivmodhiqi3): Likewise. + (divqi3): Remvoved. + +2010-06-24 Jakub Jelinek + + PR middle-end/44492 + * recog.h (struct recog_data): Add is_asm field. + * recog.c (asm_operand_ok, constrain_operands): If neither < nor > is + present in constraints of inline-asm operand and memory operand + contains {PRE,POST}_{INC,DEC,MODIFY}, return 0. + (extract_insn): Initialize recog_data.is_asm. + * doc/md.texi (Constraints): Document operand side-effect rules. + +2010-06-24 Andi Kleen + + * c-parser.c (c_parser_conditional_expression): Call + warn_for_omitted_condop. + * doc/invoke.texi: Document omitted condop warning. + 2010-06-24 Nick Clifton * loop-unswitch.c (compare_and_jump_seq): Assert that the last @@ -13,7 +619,7 @@ 2010-06-23 Uros Bizjak - * config/i386/i386 (mov): Macroize expander from mov{sf,df,xf} + * config/i386/i386.md (mov): Macroize expander from mov{sf,df,xf} using X87MODEF mode iterator. (pushsf splitter): Macroize splitter using P mode iterator. (*swap): Macroize insn from *swap{sf,df} using MODEF