OSDN Git Service

2006-02-15 Paolo Bonzini <bonzini@gnu.org>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 2e64fe3..a5ed744 100644 (file)
@@ -1,3 +1,385 @@
+2006-02-15  Paolo Bonzini  <bonzini@gnu.org>
+
+       * cfg.c (dump_flow_info): Get dump flags as an additional parameter.
+       (debug_flow_info): Pass it.
+       * alias.c (rest_of_handle_cfg): Adjust calls to dump_flow_info.
+       * bb-reorder.c (reorder_basic_blocks): Likewise.
+       * cfgcleanup.c (rest_of_handle_jump2): Likewise.
+       * cse.c (rest_of_handle_cse, rest_of_handle_cse2): Likewise.
+       * flow.c (life_analysis, recompute_reg_usage): Likewise.
+       * gcse.c (gcse_main, bypass_jumps): Likewise.
+       * ifcvt.c (rest_of_handle_if_conversion): Likewise.
+       * local-alloc.c (rest_of_handle_local_alloc): Likewise.
+       * loop-init.c (rtl_loop_init, rtl_loop_done): Likewise.
+       * profile.c (compute_branch_probabilities, branch_prob): Likewise.
+       * rtl.h (dump_flow_info): Adjust prototype.
+       * tracer.c (rest_of_handle_tracer, tracer): Likewise.
+       * var-tracking.c (variable_tracking_main): Likewise.
+       * passes.c (execute_todo): Obey TDF_BLOCKS for RTL.
+       * tree-dump.c (enable_rtl_dump_file): Enable the details and blocks
+       options.
+
+2006-02-15  Marcin Dalecki <martin@dalecki.de>
+
+       * tree-ssa-dom.c (dom_thread_across_edge): fix tag expression
+       construction.
+
+2006-02-14  Zdenek Dvorak <dvorakz@suse.cz>
+
+       PR tree-optimization/26209
+       * tree-ssa-loop.c (pass_scev_cprop): Add TODO_cleanup_cfg.
+       * tree-cfgcleanup.c (cleanup_control_flow): Remove dead
+       eh edges.
+       * tree-cfg.c (replace_uses_by): Do not alter cfg.
+
+2006-02-14  Roger Sayle  <roger@eyesopen.com>
+
+       PR middle-end/23670
+       * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Optimize (X&Y)|Y into
+       (X,Y) and the corresponding symmetry related transformations.
+       (fold_binary) <BIT_AND_EXPR>: Likewise, optimize (X|Y)&Y into
+       (X,Y) and its symmetry related transformations.
+
+2006-02-14  Roger Sayle  <roger@eyesopen.com>
+
+       * dojump.c (do_compare_rtx_and_jump): Also handle multi-word GTU
+       and GEU.
+
+2006-02-14  Adam Nemet  <anemet@caviumnetworks.com>
+
+       * simplify-rtx.c (simplify_subreg): Combine SUBREG and TRUNCATE.
+
+2006-02-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
+
+       PR bootstrap/26053
+       * configure.ac (HAVE_COMDAT_GROUP): Don't assume non-GNU linkers
+       support COMDAT group.
+       * configure: Regenerate.
+
+2006-02-14  Roger Sayle  <roger@eyesopen.com>
+
+       PR middle-end/26279
+       PR middle-end/26280
+       PR middle-end/26283
+       * dojump.c (do_compare_rtx_and_jump): Handle multi-word LE.
+
+2006-02-14  Daniel Berlin  <dberlin@dberlin.org>
+
+       Fix PR tree-optimization/26260
+
+       * doc/invoke.texi (max-fields-for-field-sensitive): Document
+       param.
+       * params.h (MAX_FIELDS_FOR_FIELD_SENSITIVE): New.
+       * params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Ditto.
+       * tree-ssa-structalias.c (create_variable_info_for): Use
+       MAX_FIELDS_FOR_FIELD_SENSITIVE.
+       
+2006-02-14  Zdenek Dvorak <dvorakz@suse.cz>
+
+       * doc/invoke.texi (-fprefetch-loop-arrays, -fprefetch-loop-arrays-rtl):
+       Document.
+       * tree-ssa-loop-niter.c (number_of_iterations_ne,
+       number_of_iterations_lt, number_of_iterations_cond): Remember the shape
+       of the ending condition.
+       * tree-ssa-loop-manip.c: Include params.h.
+       (build_if_stmt, can_unroll_loop_p, determine_exit_conditions,
+       tree_unroll_loop): New functions.
+       * tree-pass.h (pass_loop_prefetch): Declare.
+       * loop.c (rest_of_handle_loop_optimize): Test for
+       -fprefetch-loop-arrays-rtl.
+       * tree-scalar-evolution.h (affine_iv): Moved to tree-flow.h.
+       * timevar.def (TV_TREE_PREFETCH): New timevar.
+       * tree-ssa-loop.c (tree_ssa_loop_prefetch, gate_tree_ssa_loop_prefetch,
+       pass_loop_prefetch): New.
+       * tree-cfgcleanup.c: Include tree-scalar-evolution.h.
+       (cleanup_tree_cfg_loop): Call scev_reset.
+       * common.opt (fprefetch-loop-arrays-rtl): Add.
+       * tree-ssa-loop-prefetch.c: New file.
+       * tree-outof-ssa.c (struct value_expr_d): Add expr_vars field.
+       (new_temp_expr_table): Initialize expr_vars.
+       (free_temp_expr_table): Cleanup expr_vars.
+       (check_replaceable, find_replaceable_in_bb): Prevent accumulating
+       expressions from being merged into one.
+       * tree-flow.h (affine_iv): Moved from tree-scalar-evolution.h.
+       (struct tree_niter_desc): Add control, bound and cmp fields.
+       (tree_ssa_prefetch_arrays, can_unroll_loop_p, tree_unroll_loop):
+       Declare.
+       * Makefile.in (tree-ssa-loop-prefetch.o): Add.
+       (tree-cfgcleanup.o): Add SCEV_H dependency.
+       (tree-ssa-loop-manip.o): Add PARAMS_H dependency.
+       * passes.c (init_optimization_passes): Add pass_loop_prefetch.
+
+2006-02-14  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/26258
+       * tree-ssa-structalias.c (find_func_aliases): Handle aggregates
+       in PHI argument processing.
+
+2006-02-13  Adam Nemet  <anemet@caviumnetworks.com>
+
+       * simplify-rtx.c (simplify_unary_operation_1) <TRUNCATE>: Return
+       new expression in the requested machine mode.
+
+2006-02-13  Roger Sayle  <roger@eyesopen.com>
+
+       * optabs.c (expand_abs): Don't call do_jump_by_parts_greater_rtx
+       directly, instead let do_compare_rtx_and_jump handle this for us.
+       * expr.c (expand_expr_real_1): Likewise.
+       * dojump.c (do_jump_by_parts_greater_rtx): Make static.  Move
+       before do_jump_by_parts_greater.
+       (do_jump_by_parts_greater): Move after do_jump_by_parts_greater_rtx.
+       * expr.h (do_jump_by_parts_greater_rtx): Delete prototype.
+
+2006-02-13  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       * pa/quadlib.c: Use defines instead of enum qfcmp_magic.
+
+2006-02-13  Zdenek Dvorak <dvorakz@suse.cz>
+
+       PR rtl-optimization/26235
+       * loop-invariant.c (hash_invariant_expr_1): Handle 'i' and 'n' formats.
+       (invariant_expr_equal_p): Handle 'i' and 'n' formats.  Fail on unknown
+       format.
+
+2006-02-13  Jeff Law  <law@redhat.com>
+
+       * tree-vrp.c (extract_range_from_binary_expr): Remove handling of
+       TRUTH_XOR_EPR.
+
+2006-02-13  Jakub Jelinek  <jakub@redhat.com>
+
+       PR middle-end/26092
+       * gimplify.c (gimplify_call_expr): Don't call get_callee_fndecl
+       twice if decl is a builtin.  When trying again, call get_callee_fndecl
+       first to verify it is still a builtin.
+
+2006-02-13  Geoffrey Keating  <geoffk@apple.com>
+
+       * dwarf2out.c (base_type_die): Don't add AT_name here.
+       (subrange_type_die): Don't add AT_name here.
+       (modified_type_die): Rearrange code flow.  Do add AT_name here.
+
+2006-02-13  Zdenek Dvorak <dvorakz@suse.cz>
+
+       PR rtl-optimization/26247
+       PR rtl-optimization/26248
+       * loop-invariant.c (may_assign_reg_p): Do not allow VOIDmode.
+
+2006-02-13  Richard Sandiford  <richard@codesourcery.com>
+
+       * config/floatunditf.c: Use if __LDBL_MANT_DIG__ == 113.
+       * config/fixtfdi.c: Likewise.
+       * config/fixunstfdi.c: Likewise.
+       * config/floatditf.c: Likewise.
+
+2006-02-13  Roger Sayle  <roger@eyesopen.com>
+
+       PR middle-end/24427
+       * fold-const.c (fold_binary) <BIT_IOR_EXPR>: Transform (X&C1)|C2
+       into (X,C2) if C1 is a subset of the bits of C2.  Transform
+       (X&C1)|C2 into X|C2 if C1|C2 == ~0.  Canonicalize (X&C1)|C2 as
+       (X&(C1&~C2))|C2.
+       <BIT_AND_EXPR>: Canonicalize (X|C1)&C2 as (X&C2)|(C1&C2).
+
+2006-02-13  Josh Conner  <jconner@apple.com>
+
+       PR target/25376
+       * varasm.c (function_section): Check for section name before
+       calling select_section on targets that define
+       USE_SELECT_SECTION_FOR_FUNCTIONS.  On other targets, use
+       unlikely_text_section instead of hot_function_section if
+       first_function_block_is_cold.
+
+2006-02-13  J"orn Rennecke <joern.rennecke@st.com>
+
+       PR middle-end/25335
+       * reload1.c (gen_reload): Also use find_replacement in UNARY_P case.
+
+2006-02-12  Zdenek Dvorak <dvorakz@suse.cz>
+
+       PR rtl-optimization/26222
+       * function.c (assign_stack_temp_for_type): Do not reuse stack slots
+       after tree->rtl expansion.
+       * loop-invariant.c (move_invariant_reg): Use force_operand on rhs
+       before passing it to emit_move_insn.
+
+2006-02-12  Gabriel Dos Reis  <gdr@integrable-solutions.net>
+
+       * doc/invoke.texi (-Write-strings): Document that it is enabled by
+       default. 
+       * c.opt (-Wwrite-strings): Declare variable warn_write_strings.
+       Clarify documentation.
+       * c-common.h (warn_write_strings): Remove.
+       * c-common.c (warn_write_strings): Likewise.
+       * c-opts.c (c_common_init_options): Enable -Wwrite-strings by
+       default for C++.
+
+2006-02-12  Roger Sayle  <roger@eyesopen.com>
+
+       PR middle-end/25724
+       * dojump.c (do_jump): Call do_compare_rtx_and_jump.
+       (do_jump_parts_zero_rtx): New function renamed from
+       do_jump_parts_equality_rtx.  Made static.  Add a mode argument.
+       (do_jump_parts_equality_rtx): New function split out from
+       do_jump_parts_equality.  Old implementation renamed as above.
+       Call do_jump_parts_zero_rtx if either operand is zero.
+       (do_jump_parts_equality): Call do_jump_parts_equality_rtx to
+       do all of the heavy lifting.
+       (do_compare_rtx_and_jump): Handle multi-word comparisons by
+       calling either do_jump_by_parts_greater_rtx or
+       do_jump_by_parts_equality_rtx.
+       * expr.h (do_jump_by_parts_equality_rtx): Remove prototype.
+       * expmed.c (do_cmp_and_jump): Now multi-word optimization has
+       moved to do_compare_rtx_and_jump, call it directly.
+       * stmt.c (do_jump_if_equal): Remove static prototype.  Add a
+       mode argument.  Call do_compare_rtx_and_jump.
+       (emit_case_nodes): Update calls to do_jump_if_equal.
+
+2006-02-12  Zdenek Dvorak <dvorakz@suse.cz>
+
+       PR rtl-optimization/26225
+       * loop-invariant.c (may_assign_reg_p): Do not allow BLKmode operands.
+
+2006-02-12  Zdenek Dvorak <dvorakz@suse.cz>
+
+       PR rtl-optimization/26232
+       * loop-invariant.c (find_invariant_insn): Ignore insns that set CC0.
+
+2006-02-11  Jason Merrill  <jason@redhat.com>
+
+       PR tree-opt/24365
+       * tree-inline.c (declare_return_variable): Just don't use the
+       modify target if it's a gimple complex reg and the return slot
+       isn't.
+
+2006-02-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * doc/contrib.texi: Update my entry.
+
+2006-02-10  Geoffrey Keating  <geoffk@apple.com>
+
+       * config/i386/darwin.h (DBX_REGISTER_NUMBER): Define.
+
+2006-02-10  Diego Novillo  <dnovillo@redhat.com>
+
+       * tree-inline.c (estimate_num_insns_1): Make OpenMP directives
+       expensive.
+
+2006-02-10  Zdenek Dvorak <dvorakz@suse.cz>
+
+       * doc/invoke.texi (-floop-optimize2): Removed.
+       * toplev.c (process_options): Remove handling of flag_loop_optimize2.
+       * loop-init.c (gate_handle_loop2): Do not test flag_loop_optimize2.
+       Test flag_branch_on_count_reg only if HAVE_doloop_end.
+       * common.opt (floop-optimize2): Removed.
+       (fmove-loop-invariants): Enabled by default.
+
+2006-02-10  Sebastian Pop  <pop@cri.ensmp.fr>
+
+       * tree-if-conv.c (combine_blocks): Free the result of
+       get_loop_exit_edges.
+
+2006-02-10  Jeff Law  <law@redhat.com>
+
+       * fold-const.c (tree_expr_nonzero_p): Fix thinko.
+
+       PR tree-optimization/26213
+       * tree-ssa-threadedge.c (simplify_control_stmt_condition): Do not
+       loop trying to follow SSA_NAME_VALUE chains.
+
+2006-02-10  Richard Guenther  <rguenther@suse.de>
+
+       * tree-dfa.c (get_ref_base_and_extent): When computing maxsize
+       deal with structures that end in implicitly variable sized arrays.
+
+2006-02-09  Zdenek Dvorak <dvorakz@suse.cz>
+
+       PR rtl-optimization/24762
+       * df-scan.c (df_bb_refs_record): Record correct registers defined on
+       eh edges.
+
+2006-02-09  Zdenek Dvorak <dvorakz@suse.cz>
+
+       * tree-ssa-loop-ivopts.c (struct loop_data, loop_data): Removed.
+       (struct ivopts_data): Add regs_used field.
+       (tree_ssa_iv_optimize_init): Do not allocate aux fields for loops.
+       (ivopts_global_cost_for_size, determine_set_costs): Use data->regs_used
+       instead of loop_data->regs_used;
+       (free_loop_data): Do not free aux fields for loops.
+       (tree_ssa_iv_optimize): Do not pass loops to tree_ssa_iv_optimize_init
+       and tree_ssa_iv_optimize_finalize.
+
+2006-02-09  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * config/sh/sh.h (FUNCTION_VALUE): Don't handle CHAR_TYPE.
+
+2006-02-09  J"orn Rennecke <joern.rennecke@st.com>
+
+       PR target/26141
+       * sh.c (sh_gimplify_va_arg_expr): Don't change the result type when
+       computing the effective result type.
+
+2006-02-09  J"orn Rennecke <joern.rennecke@st.com>
+
+       PR inline-asm/16194
+       * tree.h (decl_overlaps_hard_reg_set_p) Don't declare.
+       (tree_overlaps_hard_reg_set): Declare.
+       * stmt.c (decl_overlaps_hard_reg_set_p): Now static.  Change return
+       type and signature to match function type expected by walk_tree.
+       (tree_overlaps_hard_reg_set): New function.
+       (decl_conflicts_with_clobbers_p): Rename to:
+       (tree_conflicts_with_clobbers_p).  Take HARD_REG_SET * argument.
+       Use tree_overlaps_hard_reg_set.  Changed caller.
+       * doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Replace
+       decl_overlaps_hard_reg_set_p with tree_overlaps_hard_reg_set.
+       * cris.c (cris_md_asm_clobbers): Likewise.
+
+2006-02-09  Bernd Schmidt  <bernd.schmidt@analog.com>
+
+       * reload1.c (emit_input_reload_insns): Delete code that tries to
+       inherit using find_equiv_reg.
+
+2006-02-09  Gabriel Dos Reis  <gdr@integrable-solutions.net>
+
+       * c-common.h (flag_const_strings): Don't declare.
+       * c-common.c (flag_const_strings): Remove.
+       * c.opt (fconst_strings): Remove.
+       * c-opts.c (c_common_handle_option): Remove <OPT_fconst_strings>.
+       <OPT_Wwrite_strings>: Don't set flag_const_strings.
+       (c_common_init_options): Don't set flag_const_strings.
+       * doc/invoke.texi (-fno-const-strings): Remove documentation.
+
+2006-02-09  Richard Earnshaw  <richard.earnshaw@arm.com>
+
+       * arm.md (tlobits_cbranch): New pattern.
+       * arm.h (arm_select_cc_mode): For thumb, only return CC_Nmode if
+       testing a single bit.
+
+2006-02-09  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       PR tree-opt/26179
+       * tree-ssa-pre.c (create_component_ref_by_pieces):
+       Handle RETURN_DECL like VAR_DECL.
+
+2006-02-09  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       PR middle-end/26134
+       * fold-const.c (fold_indirect_ref_1): Fold 
+       "*(foo *)&complexfoo" to "__real__ complexfoo"
+       and "((foo*)&complexfoo)[1]" to "__imag__ complexfoo".
+
+2006-02-09  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       * tree-flow-inline.h (var_can_have_subvars): 
+       Volatile variables should not have subvariables.
+
+2006-02-09  Diego Novillo  <dnovillo@redhat.com>
+
+       PR 26180
+       * tree-vrp.c (vrp_int_const_binop): Detect overflow when
+       multiplying unsigned values.
+       Tidy comments.
+
 2006-02-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
 
        * config/sparc/sparc.c (tls_call_delay): Fix oversight.