OSDN Git Service

PR tree-optimization/26213
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 8dbea4e..e9225a4 100644 (file)
@@ -1,3 +1,391 @@
+2006-02-10  Jeff Law  <law@redhat.com>
+
+       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.
+
+2006-02-08  Jason Merrill  <jason@redhat.com>
+
+       PR c++/25979
+       * tree.def: Elaborate on difference from MODIFY_EXPR.
+       * doc/c-tree.texi (INIT_EXPR): Likewise.
+       * gimplify.c (internal_get_tmp_var): Use INIT_EXPR.
+       (gimplify_decl_expr, gimplify_init_ctor_eval): Likewise.
+       (gimplify_target_expr): Likewise.
+       (gimplify_cond_expr): Remove target handling.
+       (gimplify_modify_expr): Don't clobber INIT_EXPR code here.
+       (gimplify_expr): Clobber it here.
+       (gimplify_modify_expr_rhs): Push assignment into COND_EXPR here.
+       Do return slot optimization if we have an INIT_EXPR.
+
+       PR tree-opt/24365
+       * tree-inline.c (declare_return_variable): Also clear 
+       DECL_COMPLEX_GIMPLE_REG_P as needed in the modify_dest case.
+
+       PR c++/16405
+       * gimplify.c (gimplify_modify_expr_rhs): Re-enable *& handling.
+
+       PR middle-end/22439
+       * gimplify.c (gimplify_one_sizepos): Fix typo.
+
+2006-02-08  Jeff Law  <law@redhat.com>
+
+       PR tree-optimization/21417
+       * tree-ssa-threadedge.c (thread_across_edge): Reject threading
+       across a backedge if the control statement at the end of the
+       block is data dependent on other statements in the same block.
+       (record_temporary_equivalences_from_stmts): Remove over-conservative
+       test for threading across backedges.
+
+       * tree-ssa-dce.c (remove_dead_statement): When removing a dead
+       control statement, handle all three special cases in the same
+       manner as they all have the same desired solution.  No longer
+       special case edge flag updating when the post dominator is
+       the exit block.
+
+2006-02-08  Roger Sayle  <roger@eyesopen.com>
+
+       * tree.def (CHAR_TYPE): Remove.
+       * dbxout.c (dbxout_type): Delete dead handling of CHAR_TYPE.
+       * dwarf2out.c (base_type_die, is_base_type): Likewise.
+       (gen_type_die) <ARRAY_TYPE>: Remove handling of CHAR_TYPE arrays.
+       (gen_string_type_die): Delete unreachable function.
+
+       * tree-pretty-print.c (dump_generic_node): Don't handle CHAR_TYPE.
+       * tree.c (build_int_cst_wide, type_contains_placeholder_1,
+       type_hash_eq, variably_modified_type_p, walk_type_fields): Likewise.
+       * tree.h (NUMERICAL_TYPE_CHECK, INTEGRAL_TYPE_P): Likewise.
+       * builtins.c (type_to_class): Likewise.
+       * fold-const.c (fold_convert, build_range_check,
+       merge_ranges): Likewise.
+       * expr.c (count_type_elements): Likewise.
+       * c-pretty-print.c (pp_c_type_specifier): Likewise.
+       * stor-layout.c (layout_type): Likewise.
+       * ipa-type-escape.c (type_to_consider): Likewise.
+       * gimplify.c (omp_firstprivatize_type_sizes,
+       gimplify_type_sizes): Likewise.
+       * explow.c (promote_mode): Likewise.
+       * tree-sra.c (is_sra_scalar_type): Likewise.
+       * varasm.c (output_constant): Likewise.
+       * tree-inline.c (remap_type_1): Likewise.
+       * convert.c (convert_to_pointer, convert_to_real,
+       convert_to_integer, convert_to_complex): Likewise.
+
+2006-02-08  Daniel Berlin  <dberlin@dberlin.org>
+
+       * df-scan.c (df_def_record_1): A set destination may
+       be a parallel regardless of mode.
+
+2006-02-08  Roger Sayle  <roger@eyesopen.com>
+
+       PR target/22209
+       * config/mips/mips.h (MIN_UNITS_PER_WORD): Don't define for libgcc.
+       * config/mips/_tilib.c: Remove.
+       * config/fixtfdi.c: New libgcc source file.
+       * config/fixunstfdi.c: New source file.
+       * config/floatditf.c: New source file.
+       * config/floatunditf.c: New souce file.
+       * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Include the new source
+       files above instead of config/mips/_tilib.c.
+       * config/mips/t-linux64 (LIB2FUNCS_EXTRA): Likewise.
+
+2006-02-08  Jeff Law  <law@redhat.com>
+
+       PR tree-optimization/26169
+       * tree-vrp.c (execute_vrp): Perform any queued SSA updates before
+       threading jumps.
+
+2006-02-08  Zdenek Dvorak <dvorakz@suse.cz>
+
+       * df.h (DF_REG_SIZE): Return the length of the initialized
+       part of the array.
+
+2006-02-08  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * gcc/config/m68k/lb1sf68.asm (__divsf3, __divdf3, __mulsf3,
+       __muldf3): Return a correctly signed zero.
+
+2006-02-08  Paolo Bonzini  <bonzini@gnu.org>
+
+       * passes.c (register_one_dump_file): Accept the current properties
+       instead of pass number.  Adjust call to dump_register.  Remove
+       duplicated code.
+       (register_dump_files): Now a wrapper around...
+       (register_dump_files_1): ... this one.  Do not modify the pass
+       structure.
+       (next_pass_1): Cosmetic fix.
+       (execute_todo): Keep second parameter only.  Use curr_properties
+       instead of fetching it from the pass structure.  Check and set
+       last_verified.
+       (execute_one_pass): Handle TODO_set_props.  Use curr_properties
+       instead of fetching it from the pass structure.  Fix calls to
+       execute_todo.  Update curr_properties and initialize .vcg RTL dump
+       after running the pass.  Reset last_verified.
+       * tree-dump.c (dump_files): Renumber consecutively.  Put .cgraph dump
+       at the beginning.
+       (FIRST_AUTO_NUMBERED_DUMP): New.
+       (dump_register): Remove "num" parameter, assign it within the
+       function.
+       (get_dump_file_name): Modify template for dumps.
+       * tree-dump.h (dump_register): Adjust prototype.
+       * tree-pass.h (enum tree_dump_index): Move cgraph at the beginning.
+       (PROP_trees): Add PROP_gimple_lomp.
+       (TODO_set_props): New.
+       * gimple-low.c (pass_lower_cf): Do not destroy PROP_gimple_lcf.
+       * tree-eh.c (pass_lower_eh): Do not destroy PROP_gimple_leh.
+       * cfgexpand.c (pass_expand): Destroy PROP_trees.
+
+2006-02-08  Jakub Jelinek  <jakub@redhat.com>
+
+       * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
+       (sparc64-*-linux*): Likewise.
+       * config/sparc/t-linux64 (SHLIB_MAPFILES): Removed.
+       * config/sparc/t-linux: New file.
+       * config/sparc/libgcc-sparc-glibc.ver (__fixtfdi, __fixunstfdi,
+       __floatditf): Export at GCC_LDBL_3.0 if -m32 -mlong-double-128.
+       (__divtc3, __multc3, __powitf2): Export at GCC_LDBL_4.0.0 if
+       -m32 -mlong-double-128.
+
+       * config.gcc (alpha*-*-linux*): Add alpha/t-linux to tmake_file.
+       * config/alpha/t-linux: New file.
+       * config/alpha/libgcc-alpha-ldbl.ver: New file.
+
+       * config/sparc/linux.h (TARGET_OS_CPP_BUILTINS): Define
+       __LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128.
+       (CPP_SUBTARGET_SPEC): Don't add -D__LONG_DOUBLE_128__ here.
+       * config/sparc/linux64.h (TARGET_OS_CPP_BUILTINS): Define
+       __LONG_DOUBLE_128__ if TARGET_LONG_DOUBLE_128 and TARGET_ARCH32.
+       (CPP_ARCH32_SPEC): Remove.
+
+2006-02-07  Uttam Pawar  <uttamp@us.ibm.com>
+
+       PR tree-optimization/26145
+       * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Free
+       bbs pointer.
+
+2006-02-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       PR target/26109
+       * pa.c (attr_length_indirect_call): Don't return length 8 for distances
+       >= 240000 when generating code for SOM runtime.
+       (output_indirect_call): Don't use "b,l" instruction for indirect calls
+       to $$dyncall when generating code for SOM runtime..
+
+2006-02-07  Dirk Mueller  <dmueller@suse.com>
+
+       PR c++/18150
+       * doc/invoke.texi (-Wsequence-point): Update documentation
+       that -Wsequence-point is implemented for C++ as well.
+
+2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       * config/sol26.h (CPP_SUBTARGET_SPEC): Accept -pthread.
+       * config/sol2.h (CPP_SUBTARGET_SPEC): Likewise.
+       (LIB_SPEC): Likewise.
+       * doc/invoke.texi (SPARC options): Document -pthread.
+
+2006-02-07  Geoffrey Keating  <geoffk@apple.com>
+
+       * config/i386/i386.c (ix86_delegitimize_address): Support Darwin
+       PIC addresses.
+
+2006-02-07  Roger Sayle  <roger@eyesopen.com>
+
+       * config/sparc/sparc.c (sparc_type_code): Don't handle CHAR_TYPE.
+       Correct comment describing BOOLEAN_TYPE.
+
+2006-02-07  Dirk Mueller  <dmueller@suse.com>
+
+       * c.opt: C++ frontend supports -Wdiv-by-zero.
+       * c-opts.c (c_common_handle_option): Remove dead case.
+
+2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       * configure.ac (TLS assembler check): Do not enable TLS by
+       default on SPARC/Solaris before version 10.
+       * configure: Regenerate.
+
+2006-02-07  David Edelsohn  <edelsohn@gnu.org>
+
+       * doc/invoke.texi (xl-compat): Document conversion and support
+       routine names.
+
+2006-02-07  Jeff Law  <law@redhat.com>
+
+       * tree-vrp.c (find_conditional_asserts): Update comments.
+       (simplify_stmt_for_jump_threading): New.
+       (identify_jump_threads, finalize_jump_threads): New.
+       (vrp_finalize): Call identify_jump_threads.
+       (execute_vrp): Call finalize_jump_threads.
+       * tree-ssa-dom.c (struct opt_stats_d): Remove num_iterations field.
+       (vrp_element, vrp_data, vrp_element_p): Remove.
+       (vrp_hash_elt, vrp_variables_stack): Remove.
+       (vrp_hash, vrp_eq, record_range): Remove.
+       (simplify_cond_and_lookup_avail_expr): Remove.
+       (extract_range_from_cond): Remove.
+       (thread_across_edge): Relocated into tree-ssa-threadedge.c.
+       (simplify_stmt_for_jump_threading): New.
+       (dom_thread_across_edge): New wrapper.
+       (tree_ssa_dominator_optimize): No longer initialize or
+       finalize any of the VRP datastructures.  Remove iteration
+       step and simplify as a result of removal of iteration step.
+       (pass_dominator): Perform a cfg cleanup after DOM.
+       (dom_opt_finalize_block): Use the new common routines
+       for threading jumps.  Simplify stack management slightly.
+       No longer need to unwind VRP state.
+       (record_equivalences_from_incoming_edge): No longer record
+       VRP information.
+       (eliminate_redundant_computations): No longer call
+       simplify_cond_and_lookup_avail_expr.
+       * tree-flow.h (potentially_threadable_block): Prototype.
+       (thread_across_edge): Likewise.
+       * Makefile.in (OBJS-common):  Add tree-ssa-threadedge.o
+       (tree-ssa-threadedge.o): Add dependencies.
+       * tree-ssa-threadedge.c: New file.
+       * passes.c (init_optimization_passes): Merge PHIs before
+       calling VRP.  Run VRP again late in the SSA optimization pipeline.
+
+2006-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       * df-core.c (df_set_blocks): Do not dereference function pointers.
+       (df_finish1): Likewise.
+       (df_hybrid_search_forward): Likewise.
+       (df_hybrid_search_backward): Likewise.
+       (df_iterative_dataflow): Likewise.
+       (df_analyze_problem): Likewise.
+       (df_compact_blocks): Likewise.
+       (df_dump): Likewise.
+       * df-scan.c (df_rescan_blocks): Likewise.
+       (df_record_entry_block_defs): Likewise.
+
+       * genconditions.c (write_conditions): Guard the definition of
+       'insn_conditions' with the check on GCC version.
+       (write_writer): Guard the traversal 'insn_conditions' with
+       the check on GCC version.
+
+2006-02-07  Richard Guenther  <rguenther@suse.de>
+
+       PR c++/26140
+       Revert
+       2006-01-30  Richard Guenther  <rguenther@suse.de>
+       PR c++/23372
+       * gimplify.c (gimplify_target_expr): Handle easy cases
+       without creating a temporary.
+
+2006-02-07  Pete Steinmetz  <steinmtz@us.ibm.com>
+
+        * sched-rgn.c (compute_dom_prob_ps, compute_trg_info): Eradicate
+       use of float in probability computations.  Use edge probabilities
+       in place of statically computed probabilities.
+       (min_spec_prob): New static variable.
+       (schedule_insns): Initialize it.
+       (GET_SRC_PROB): Removed.
+       * doc/invoke.texi (min-sched-prob): Renamed to min-spec-prob.
+
+2006-02-07  Alexandre Oliva  <aoliva@redhat.com>
+
+       PR debug/24444
+       * config/ia64/unwind-ia64.c: Revert last change.
+       * config/ia64/ia64.h (ARG_POINTER_CFA_OFFSET): Removed.
+       (INCOMING_FRAME_SP_OFFSET): Define.
+
 2006-02-06  Roger Sayle  <roger@eyesopen.com>
 
        * config/ia64/ia64.c (hfa_element_mode): Don't handle CHAR_TYPE.