OSDN Git Service

* cfgloop.c (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 7eed832..c5f2f22 100644 (file)
@@ -1,3 +1,118 @@
+2005-03-01  Zdenek Dvorak  <dvorakz@suse.cz>
+
+       * cfgloop.c (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
+       flow_loop_pre_header_scan, flow_loop_pre_header_find,
+       flow_loop_scan): Removed.
+       (flow_loop_dump): Do not dump removed fields.
+       (flow_loop_free): Do not free removed fields.
+       (flow_loops_find): Flags argument removed.  Do not call flow_loop_scan.
+       (loop_exit_edge_p): New function.
+       * cfgloop.h (struct loop): Removed fields pre_header, pre_header_edges,
+       num_pre_header_edges, entry_edges, num_entries, exit_edges,
+       num_exits, exits_doms.
+       (LOOP_TREE, LOOP_PRE_HEADER, LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES,
+       LOOP_EDGES, LOOP_ALL): Removed.
+       (flow_loop_scan): Declaration removed.
+       (loop_exit_edge_p, mark_loop_exit_edges): Declare.
+       * cfgloopmanip.c (create_loop_notes): Do not pass flags to
+       flow_loops_find.
+       * ifcvt.c (mark_loop_exit_edges): Moved to cfgloopanal.c.
+       (if_convert): Call flow_loops_find and flow_loops_free
+       when calling mark_loop_exit_edges.
+       * cfgloopanal.c (mark_loop_exit_edges): Moved from
+       ifcvt.c.  Removed the flow_loops_find, flow_loops_free and
+       free_dominance_info calls.
+       * loop-init.c (flow_loops_find): Ditto.
+       * passes.c (rest_of_handle_branch_prob): Ditto.
+       * lambda-code.c (perfect_nestify): Do not call flow_loops_find.
+       * loop-unroll.c (analyze_insns_in_loop): Do not use
+       EDGE_LOOP_EXIT.
+       * predict.c (predict_loops): Do not call flow_loop_scan.
+       Use get_loop_exit_edges.
+       (tree_estimate_probability): Do not pass flags to flow_loops_find.
+       * tree-if-conv.c (bb_with_exit_edge_p): Take loop as argument.
+       Do not use EDGE_LOOP_EXIT.
+       (tree_if_convert_cond_expr, if_convertible_modify_expr_p): Pass loop
+       to bb_with_exit_edge_p.
+       (if_convertible_loop_p): Do not call flow_loop_scan.  Use
+       loop->single_exit.  Do not use EDGE_LOOP_EXIT.  Pass loop
+       to bb_with_exit_edge_p.
+       (combine_blocks): Pass loop to bb_with_exit_edge_p.  Do not use
+       EDGE_LOOP_EXIT.
+       * tree-loop-linear.c (linear_transform_loops): Do not call
+       flow_loop_scan.  Use loop->single_exit.
+       * tree-vect-analyze.c (vect_analyze_operations): Use loop->single_exit.
+       (vect_analyze_loop_form): Do not call flow_loop_scan.
+       * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Use
+       loop->single_exit.
+       (vect_do_peeling_for_loop_bound): Use loop_preheader_edge and
+       loop->single_exit.
+       * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop,
+       slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
+       slpeel_tree_duplicate_loop_to_edge_cfg,
+       slpeel_verify_cfg_after_peeling, slpeel_tree_peel_loop_to_edge):
+       Use loop_preheader_edge and loop->single_exit.  Do not call
+       flow_loop_scan.
+
+2005-03-01  Nick Clifton  <nickc@redhat.com>
+
+       * config/arm/arm.c (thumb_find_work_register): Check all of the
+       argument registers to see if they are free, and a couple of
+       special cases where the last argument register but can be proved
+       to be available during the function's prologue.
+       (print_multi_reg, arm_compute_save_reg0_reg12_mask,
+       output_return_instruction, emit_multi_reg_push, thumb_pushpop,
+       thumb_unexpanded_epilogue): Use unsigned long as the type for the
+       register bit-mask.
+       (thumb_compute_save_reg_mask): Likewise.  Also use
+       thumb_find_work_register() to ensure that there is agreement about
+       which work register is going to be used in the prologue.
+       (thumb_output_function_prologue): Use unsigned long as the type
+       for the register bit-mask.  Also delay pushing the link register if
+       other high registers are going to be pushed.
+       (thumb_compute_save_reg_mask, emit_multi_reg_push,
+       print_multi-reg, number_of_first_bit_set, thumb_pushpop): Remove
+       redundant prototypes.
+
+2005-02-28  John David Anglin  <dave.anglin#nrc-cnrc.gc.ca>
+
+       PR target/19819
+       * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow allow hard registers during
+       and after reload in REG+REG indexed addresses without REG_POINTER
+       set in the base and not set in the index.
+
+2005-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * config/sh/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
+       Don't undefine here.
+       (HANDLE_PRAGMA_PACK_PUSH_POP): Delete.
+       (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC): Likewise.
+       (TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
+       (LIB_SPEC, LINK_EH_SPEC, STARTFILE_SPEC, ENDFILE_SPEC,
+       LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED, TARGET_C99_FUNCTIONS):
+       Delete.
+       * config.gcc (sh*-*-linux*): Use config/linux.h.
+
+2005-02-28  Dale Johannesen  <dalej@apple.com>
+           Stan Shebs  <shebs@apple.com>
+
+       Rewrite of 64-bit Darwin structure-by-value pass/return.
+       * config/rs6000/rs6000.h (CUMULATIVE_ARGS): New fields
+       intoffset, use_stack, named.
+       * config/rs6000/rs6000.c (rs6000_darwin64_function_arg):  Remove.
+       (rs6000_darwin64_record_arg_advance_flush):  New.
+       (rs6000_darwin64_record_arg_advance_recurse): New.
+       (rs6000_darwin64_record_arg_flush):  New.
+       (rs6000_darwin64_record_arg_recurse):  New.
+       (rs6000_darwin64_record_arg):  New.
+       (rs6000_return_in_memory):  Remove AGGREGATE_TYPE_P check.
+       (function_arg_boundary):  Handle 128-bit aligned structs.
+       (function_arg_advance):  Rewrite darwin64 struct handling.
+       (function_arg):  Call rs6000_darwin64_record_arg.
+       (function_arg_partial_nregs):  Handle darwin64 structs.
+       (rs6000_darwin64_function_value):  Remove.
+       (rs6000_function_value):  Call rs6000_darwin64_record_arg.
+
 2005-02-28  Roger Sayle  <roger@eyesopen.com>
 
        PR tree-optimization/20216