OSDN Git Service

PR c++/15463
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index c734004..673dae6 100644 (file)
@@ -1,5 +1,150 @@
+2004-05-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
+
+       PR c++/15463
+       * loop-iv.c (iv_number_of_iterations):  Use trunc_int_for_mode on
+       result of inverse.
+
+       PR rtl-optimization/15274
+       * loop-iv.c (determine_max_iter, shorten_into_mode,
+       iv_number_of_iterations): Handle constants correctly.
+       * rtl.h (get_mode_bounds): Declaration changed.
+       * stor-layout.c (get_mode_bounds): Return a constant suitable for
+       the target mode.
+
+       PR rtl-optimization/14692
+       * loop-unswitch.c (may_unswitch_on): Try folding the result.
+       (unswitch_single_loop): Work correctly when may_unswitch_on
+       returns a folded constant.
+
+       * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
+       * simplify-rtx.c (simplify_const_relational_operation): Optimize
+       comparisons with mode bounds.
+
+       * function.c (struct temp_slot): Add new field prev.
+       (free_after_compilation, init_temp_slots): Free new fields.
+       (cut_slot_from_list, insert_slot_to_list,
+       temp_slots_at_level, max_slot_level, move_slot_to_level,
+       make_slot_available): New functions.
+       (assign_stack_temp_for_type, combine_temp_slots,
+       find_temp_slot_from_address, preserve_temp_slots,
+       preserve_rtl_expr_result, free_temp_slots,
+       free_temps_for_rtl_expr, pop_temp_slots): Work with
+       the new structure of lists.
+       (mark_all_temps_used): Removed.
+       * function.h (struct function): Field x_temp_slots
+       replaced by x_used_temp_slots and x_avail_temp_slots.
+       (temp_slots): Replaced by ...
+       (used_temp_slots, avail_temp_slots): New.
+       * tree.h (mark_all_temps_used): Declaration removed.
+
+       * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
+       simplify_using_assignment): Take the expression out of
+       the expr_list wrapper.
+
+       * loop-iv.c (iv_number_of_iterations): Improve clasification of
+       infinite loops.
+
+2004-05-19  Roger Sayle  <roger@eyesopen.com>
+
+       * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction
+       costs should be based on code size when optimizing for size.
+
+2004-05-19  Paolo Bonzini  <bonzini@gnu.org>
+
+       * fold-const.c: Remove non-printable character 160.
+
+2004-05-19  Nick Clifton  <nickc@redhat.com>
+
+       * doc/invoke.texi (ARM Options): Fix typo.
+       Remove descrption of -mshort-load-bytes and
+       -mno-short-load-bytes.
+
+       * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add
+       missing parenthesis.
+       * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise.
+       * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise.
+
+2004-05-19  Steven Bosscher  <stevenb@suse.de>
+
+       * expr.c (store_constructor): Build loop start and end by hand
+       instead of via loop functions from stmt.c.
+       (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
+       Remove the code to expand them.
+
+       * stmt.c (loop_stack): Remove this and everything related.
+       (struct nesting, enum nesting_desc): Update.
+       (expand_fixup): Likewise.
+       (expand_loop_start, expand_start_loop_continue_elsewhere,
+       expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
+       expand_end_null_loop, expand_continue_loop, expand_exit_loop,
+       expand_exit_loop_if_false, expand_exit_loop_top_cond,
+       expand_exit_something): Remove.
+       * tree.h: Remove prototypes.
+
+2004-05-18  Mike Stump  <mrs@apple.com>
+           Devang Patel  <dpatel@apple.com>
+
+       * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
+       if this label is for eh.
+       * config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
+       * config/darwin.c (darwin_emit_unwind_label): Likewise.
+       * dwarf2out.c (output_call_frame_info): Likewise.
+       * output.h (default_emit_unwind_label): Likewise.
+       * target.h (unwind_label): Likewise.
+       * varasm.c (default_emit_unwind_label): Likewise.
+
+       * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
+       DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION,
+       DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION,
+       DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION,
+       DEBUG_RANGES_SECTION): Define.
+
+2004-05-18  Zack Weinberg  <zack@codesourcery.com>
+
+       * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
+       (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
+       (cgraph_varpool_node):
+       Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
+       (cgraph_function_possibly_inlined_p): Use the decl itself for
+       the key, not DECL_ASSEMBLER_NAME.
+       (change_decl_assembler_name): No need to muck with the hash tables.
+       (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
+       Delete.
+       * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
+       for the key, not DECL_ASSEMBLER_NAME.
+       * cgraph.h: Remove prototypes of deleted functions.
+       * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
+       (mark_decl_referenced): New function.
+       * tree.h: Prototype mark_decl_referenced.
+       * final.c (output_addr_const) <case SYMBOL_REF>: Call
+       mark_decl_referenced before assemble_name.
+       * c-decl.c (finish_decl): Use mark_decl_referenced.
+
+2004-05-18  Andrew Pinski  <pinskia@physics.uc.edu>
+           Jeff Law <law@redhat.com>
+
+       * tree-ssa-phiopt.c (abs_replacement): New function.
+       (empty_block_p): New function extracted from...
+       (candidate_bb_for_phi_optimization): Break out empty block test.
+       (conditional_replacement): Use empty_block_p.
+       (value_replacement): Similarly.
+
+       * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
+       * tree-ssa-phiopt.c: Include flags.h.
+       (conditional_replacement): Remove argument names from prototype.
+       Minor formatting and comment fixes.
+       (tree_ssa_phiopt): If conditional_replacement returns false, then
+       call value_replacement.
+       (value_replacement): New function.
+
 2004-05-18  Jeff Law  <law@redhat.com>
 
+       * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
+       from conditional_replacement.
+       (candidate_bb_for_phi_optimization): Similarly.
+       (conditional_replacement): Use replace_phi_with_stmt and
+       candidate_bb_for_phi_optimization.
+
        * tree-ssa-phiopt.c: Fix various formatting issues.
 
 2004-05-18  Steven Bosscher  <stevenb@suse.de>