+2005-05-30 Kazu Hirata <kazu@cs.umass.edu>
+
+ * tree-outof-ssa.c (_elim_graph): Change the type of edge_list
+ to VEC(int,heap)*.
+ (new_elim_graph, clear_elim_graph, delete_elim_graph,
+ elim_graph_add_edge, elim_graph_remove_succ_edge,
+ FOR_EACH_ELIM_GRAPH_SUCC, FOR_EACH_ELIM_GRAPH_PRED): Use VEC
+ instead of VARRAY.
+
+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):
+ See through ADDR_EXPR in finding place to propagate into.
+
2005-05-26 Kazu Hirata <kazu@cs.umass.edu>
* c-common.c, c-parser.c, cfgbuild.c, cfghooks.c, cfghooks.h,