OSDN Git Service

* cgraphunit.c, ipa-inline.c, loop-iv.c, modulo-sched.c,
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 1657e7d..773b2d5 100644 (file)
@@ -1,3 +1,291 @@
+2005-05-29  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * cgraphunit.c, ipa-inline.c, loop-iv.c, modulo-sched.c,
+       opts.c, postreload-gcse.c, tree-browser.def, tree-eh.c,
+       tree-ssa-copyrename.c, tree-vect-analyze.c: Fix typos and
+       follow spelling conventions in error/dump messages.
+
+2005-05-29  Roger Sayle  <roger@eyesopen.com>
+           Richard Henderson  <rth@redhat.com>
+
+       * ifcvt.c (noce_emit_move_insn): Construct a SET pattern directly
+       if the RHS isn't suitable for calling emit_move_insn.
+
+2005-05-29  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * tree-ssa-ccp.c (ccp_fold): Return immediately after calling
+       fold_unary and fold_binary.
+
+2005-05-29  Roger Sayle  <roger@eyesopen.com>
+
+       * reg-stack.c (propagate_stack): Always copy the source stack to
+       the destination.  This routine is now only called when this is safe.
+       (better_edge): New function split out from convert_regs_1 to
+       determine which of two edges is better to propagate across.
+       (convert_regs_1):  We need only search for a best edge if the
+       stack layout hasn't been defined yet.  Use better_edge to help
+       find beste.  No longer traverse unnecessary edges.
+
+2005-05-29  Keith Besaw  <kbesaw@us.ibm.com>
+
+       * tree-ssa-alias.c (new_type_alias): New procedure to
+       create a type memory tag for a pointer with a may-alias
+       set determined from a variable declaration.
+       * tree-flow.h: export declaration of new_type_alias
+       * tree-optimize.c (init_tree_optimization_passes): document
+       that pass_may_alias cannot be called after pass_vectorize.
+       * tree-vect-transform (vect_create_data_ref_ptr): Call
+       new_type_alias when an type memory tag isn't available
+       for a reference.
+       (vectorizable_store): Use copy_virtual_operands to update
+       virtual defs in place (so that loop_version can be called).
+       Call mark_for_renaming for the virtual defs in case peeling
+       is done and virtual uses outside the loop need to be updated.
+
+2005-05-29  Dorit Naishlos  <dorit@il.ibm.com>
+
+       PR tree-optimization/21639
+       * tree-complex.c (pass_lower_vector_s): Remove TODO_ggc_collect.
+
+2005-05-29  Jan Hubicka  <jh@suse.cz>
+
+       PR tree-optimization/21562
+       * cfgexpand.c (construct_init_block): Deal properly with the case
+       of entry edge not pointing to very first basic block.
+
+2005-05-28  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * tree-ssa-ccp.c (ccp_fold): Remove code that produces
+       non-gimple min invariant.
+
+       * Makefile.in (OBJS-common): Add tree-cfgcleanup.o.
+       * tree-flow.h: Add prototypes for start_recording_case_labels
+       and end_recording_case_labels.
+       * tree-cfg.c (start_recording_case_labels,
+       end_recording_case_labels): Export.
+       (cleanup_tree_cfg_loop, modified_noreturn_calls,
+       cleanup_control_flow, cleanup_control_expr_graph,
+       remove_fallthru_edge, phi_alternatives_equal,
+       tree_forwarder_block_p, has_abnormal_incoming_edge_p,
+       remove_forwarder_block, cleanup_forwarder_blocks,
+       remove_forwarder_block_with_phi, merge_phi_nodes,
+       gate_merge_phi, pass_merge_phi): Move to ...
+       * tree-cfgcleanup.c: ... here.
+
+       * basic-block.h: Remove forward declaration of bb_ann_d.
+
+2005-05-28  Jan Hubicka  <jh@suse.cz>
+
+       * tree-ssa-threadupdate.c: (create_edge_and_update_destination_phis):
+       Update profile.
+       * value-prof.c (tree_divmod_fixed_value_transform): Be more verbose in
+       debug output.
+       (tree_mod_subtract): Fix profile updating code.
+       (tree_divmod_values_to_profile): Do not produce useless value profilers
+       for divisions.
+
+2005-05-28  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * tree-ssa-dom.c (vrp_element_p): Define.
+       (vrp_hash_elt): Change the type of records to
+       VEC(vrp_element_p,heap).
+       (vrp_free): New.
+       (tree_ssa_dominator_optimize): Pass vrp_free to htab_create.
+       Update uses of VRP records.
+       (simplify_cond_and_lookup_avail_expr, record_range): Update
+       uses of VRP records.
+
+       * tree-inline.c (cfun_stack): Change the type to
+       VEC(function_p,heap).
+       (push_cfun, pop_cfun): Use VEC instead of VARRAY.
+
+2005-05-27  Ian Lance Taylor  <ian@airs.com>
+
+       * c-decl.c (add_stmt): Add C frontend specific version.
+       (stmts_are_full_exprs_p): Remove.
+       * c-common.h (STMT_IS_FULL_EXPR_P): Remove.
+       (stmts_are_full_exprs_p): Don't declare.
+       * c-semantics.c (add_stmt): Remove.
+
+2005-05-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * config/mips/mips-protos.h (mips_declare_object): Add printf
+       attribute.
+       * config/mips/mips.c (mips_declare_object_name): Fix format
+       argument.
+
+2005-05-27  Roger Sayle  <roger@eyesopen.com>
+
+       * reg-stack.c (compensate_edge): Remove original prototype.
+       (propagate_stack): New function to copy the stack layout
+       at the start of a basic block from the layout at the end of
+       one of its predecessors.
+       (compensate_edge): Assume that both source and destination
+       blocks have already had their stack layouts defined.
+       (compensate_edges): Traverse all non-entry edges in the CFG
+       and call compensate_edge on each in turn.
+       (convert_regs_1): Change return type to void.  Call
+       propagate_stack instead of compensate_edge.
+       (convert_regs_2): Change return type to void.  Update call
+       to convert_regs_1 to ignore the (now void) return value.
+       (convert_regs): Update calls to convert_regs_2 to ignore
+       the (now void) return value.  After all the basic blocks have
+       been processed, call compensate_edges to actually emit new
+       insns.
+       (reg_to_stack): Initialize the aux info for each basic block
+       with FOR_EACH_BB instead of which FOR_EACH_BB_REVERSE.
+
+2005-05-28  Jan Hubicka  <jh@suse.cz>
+
+       * except.c (can_throw_internal_1, can_throw_external_1): Add 
+       "is_resx" argument.
+       (can_throw_external, can_throw_internal): Bring into sync wrt
+       dealing resx.
+       * except.h (can_throw_internal_1, can_throw_external_1): Update
+       prototype.
+       * tree-eh.c (tree_can_throw_internal, tree_can_throw_external):
+       Deal properly with resx.
+
+2005-05-27  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * basic-block.h (basic_block_def): Add phi_nodes and
+       predictions.  Remove tree_annotations.
+       * predict.c (tree_predicted_by_p, tree_predict_edge,
+       combine_predictions_for_bb): Adjust references to predictions.
+       * tree-cfg.c (init_empty_tree_cfg, create_bb): Don't call
+       create_block_annotation.
+       (create_block_annotation, free_blocks_annotatios,
+       clear_blocks_annotations): Remove.
+       (dump_cfg_stats): Don't print out the memory spent on
+       bb_ann_d.
+       (delete_tree_cfg_annotations): Don't call free_blocks_annotations.
+       * tree-flow-inline.h (bb_ann): Remove.
+       (phi_nodes, set_phi_nodes): Update references to phi_nodes.
+       * tree-flow.h (bb_ann_d): Remove.
+       * tree-if-conv.c (process_phi_nodes): Update a reference to
+       phi_nodes.
+       * tree-phinodes.c (reserve_phi_args_for_new_edge,
+       create_phi_node, remove_phi_node): Likewise.
+       * tree-pretty-print.c (dump_generic_bb_buff): Don't call bb_ann.
+       * tree-ssa-dom.c (threaded_blocks): New.
+       (tree_ssa_dominator_optimize): Initialize, clear, and free
+       threaded_blocks. Update a call to thread_through_all_blocks.
+       (thread_across_edge): Use threaded_blocks instead of setting
+       incoming_edge_threaded.
+       * tree-ssa-threadupdate.c (threaded_through_all_blocks): Take
+       a bitmap of blocks that are threaded through.
+       * tree.h: Move the prototype of threaded_through_blocks to
+       tree-flow.h.
+
+       * domwalk.c (walk_dominator_tree, init_walk_dominator_tree,
+       fini_walk_dominator_tree): Use VEC instead of VARRAY.
+       * domwalk.h (dom_walk_data): Change the type of
+       block_data_stack and free_block_data to VEC(void_p,heap)*.
+       * tree-ssa-dse.c (dse_initialize_block_local_data,
+       dse_optimize_stmt, dse_record_phis, dse_finalize_block): Use
+       VEC instead of VARRAY.
+
+2005-05-27  Jan Hubicka  <jh@suse.cz>
+
+       * cgraph.c: Include tree-gimple.h
+       (cgraph_edge): Rename expr to stmt.
+       (cgraph_create_edge): Likewise.
+       (cgraph_clone_node): Likewise.
+       * cgraph.h (cgraph_node): Use call_stmt instead of call_expr.
+       * cgraphunit.c (record_call_1): Rename to ...
+       (record_reference): ... this one; do not build edges.
+       (cgraph_varpool_analyze_pending_decls): Call record_reference directly.
+       (current_basic_block): Kill.
+       (cgraph_create_edges): Rewrite to work on gimple statements nicely.
+       (verify_cgraph_node): Likewise.
+       * tree-inline.c (copy_body_r): Do not mess up with cgraph edges.
+       (copy_bb): Mess up with cgraph edges here; simplify EH handling.
+       (copy_edges_for_bb): Simplify EH handling.
+       (expand_call_inline): Pass statement to cgraph_edge and
+       cgraph_create_edge.
+
+2005-05-27  Richard Guenther  <rguenth@gcc.gnu.org>
+
+       * tree-inline.c (copy_body_r): Manually fold *& to deal
+       with ADDR_EXPRs with mismatched types for now.
+
+       * gimplify.c (fold_indirect_ref_rhs): New function.
+       (gimplify_modify_expr_rhs): Use it instead of pessimistic
+       fold_indirect_ref.
+
+       * fold-const.c (fold_indirect_ref_1): Add type argument;
+       make sure the resulting expression is of this type.
+       (build_fold_indirect_ref, fold_indirect_ref): Adjust callers.
+
+2005-05-27  Kazu Hirata  <kazu@cs.umass.edu>
+
+       PR tree-optimization/21658
+       * tree-ssa-ccp.c (ccp_fold): Call fold_binary instead of
+       fold_binary_to_constant.  Likewise, call fold_unary instead of
+       fold_unary_to_constant.
+
+2005-05-27  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * vec.h: Implement integral type vector specialization.
+       (VEC_T): Define a non-GTY structure.
+       (VEC_T_GTY): Define a GTY structure.
+       (VEC_TA): Rename to ...
+       (VEC_TA_GTY): ... here.
+       (DEF_VEC_I, DEF_VEC_ALLOC_I): New.
+       (DEF_VEC_P, DEF_VEC_ALLOC_P): Adjust.
+       (DEF_VEC_FUNC_P, DEF_VEC_ALLOC_FUNC_P): New, broken out of
+       DEF_VEC_P and DEF_VEC_ALLOC_P.
+       (DEF_VEC_O, DEF_VEC_ALLOC_O): Adjust.
+       (DEF_VEC_FUNC_O, DEF_VEC_ALLOC_FUNC_O): New, broken out of
+       DEF_VEC_O and DEF_VEC_ALLOC_O.
+       * global.c: Use DEF_VEC_I, DEF_VEC_ALLOC_I.
+       * lambda-code.c: Likewise.
+       * tree-into-ssa.c: Likewise.
+       * tree-ssa-live.c: Likewise.
+
+2005-05-27  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * tree-into-ssa.c (update_ssa): Ensure that the operand cache
+       is up-to-date.
+       * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
+       update_stmt_if_modified before calling update_ssa.
+
+2005-05-27  Ralf Corsepius  <ralf.corsepius@rtems.org>
+
+       * config/rs6000/t-rtems: Remove roe multilib variant.
+
+2005-05-26  Roger Sayle  <roger@eyesopen.com>
+
+       PR tree-optimization/9814
+       * ifcvt.c (noce_emit_move_insn): If we fail to recognize the move
+       instruction, add the necessary clobbers by re-expanding the RTL
+       for arithmetic operations via optab.c's expand_unop/expand_binop.
+       (noce_try_bitop): New function to optimize bit manipulation idioms
+       of the form "if (x & C) x = x op C" and "if (!(x & C) x = x op C".
+       (noce_process_if_block): Call noce_try_bitop.
+
+2005-05-26  Roger Sayle  <roger@eyesopen.com>
+
+       * reg-stack.c (convert_regs_entry, convert_regs_exit,
+       convert_regs_1, convert_regs_2, convert_regs): Delete prototypes.
+       (reg_to_stack): Move to end of the file.  Initialize the per
+       basic block information here, instead of...
+       (convert_regs_entry): Here.
+       (convert_regs): Change unused return type to void.
+
+2005-05-27  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * c-pch.c, timevar.c, timevar.h, unwind-compat.c,
+       unwind-dw2-fde-compat.c, unwind-dw2-fde.c, config/mmix/mmix.h,
+       config/rs6000/eabispe.h, config/rs6000/lynx.h,
+       config/sh/elf.h, config/sh/symbian-pre.h,
+       config/sparc/sparc-protos.h: Update copyright.
+
+2005-05-26  Mike Stump  <mrs@apple.com>
+
+       * darwin.h (ASM_OUTPUT_LABELREF): Handle quoted non-lazy pointers
+       for Objective-C++.
+       
 2005-05-26  Richard Guenther  <rguenth@gcc.gnu.org>
 
        * tree-ssa-forwprop.c (forward_propagate_addr_expr):