OSDN Git Service

PR c++/15463
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index dfd8492..673dae6 100644 (file)
@@ -1,3 +1,307 @@
+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>
+
+       * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
+       s390_expand_cmpmem): Do not use expand_start_loop and
+       expand_end_loop, instead build the loop manually.
+
+2004-05-18  Alan Modra  <amodra@bigpond.net.au>
+
+       * config/rs6000/rs6000.md (ctrsi_internal3): Delete.
+       (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.
+
+2004-05-17  Jeff Law  <law@redhat.com>
+
+       * toplev.h (flag_delete_null_pointer_checks): Move from here to...
+       * flags.h (flag_delete_null_pointer_checks): Here.
+       * tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
+       * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
+       (add_phi_arg, remove_phi_arg_num): Similarly.
+       * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
+       property into PHI nodes.
+       * tree-ssa-dom.c: Remove redundant inclusion of flags.h.
+       (record_equivalences_from_phis): If all PHI arguments are known to be
+       nonzero, then the result must be nonzero as well.
+       (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
+       (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
+       appropriately.  Walk the USE-DEF chains and propagate nonzero property
+       as appropriate.
+       * tree.h (PHI_ARG_NONZERO): Define.
+       (phi_arg_d): Add nonzero flag.
+
+2004-05-17  Zack Weinberg  <zack@codesourcery.com>
+
+       * f: Entire directory removed
+
+       * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
+       (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
+       (g77_integer_type_node, g77_uinteger_type_node)
+       (g77_longint_type_node, or g77_ulongint_type_node): Delete.
+       * c-common.c (c_common_nodes_and_builtins): Do not initialize
+       the above set of variables.
+
+       * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
+       * doc/invoke.texi, doc/standards.texi: Remove cross-references
+       to g77 manual.
+
+2004-05-17  Steven Bosscher  <stevenb@suse.de>
+
+       PR tree-optimization/15438
+       * tree-ssa-operands.c (get_expr_operands): Do not treat malloc
+       attributed functions as pure or const.
+
+2004-05-17  Frank Ch. Eigler  <fche@redhat.com>
+
+       * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
+       from source code with errors.
+
+2004-05-17  Ranjit Mathew  <rmathew@hotmail.com>
+
+       Enable tree browser for all front ends.
+       * Makefile.in (cc1): Moved @TREEBROWSER@ from here...
+       (BACKEND): ...to here.
+
+2004-05-17  Jan Hubicka  <jh@suse.cz>
+
+       * i386.c (construct_container): Do not produce BLKmode registers.
+       (classify_argument): Properly compute alignment of complex types.
+
+2004-05-17  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR target/15084
+       * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
+       and renamed to movdi_insv_1_rex64.
+       (insv): Support SImode for 32bit and DImode for 64bit.
+
+2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
+       (TARGET_SWITCHES): Remove debugg.
+       * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
+       TARGET_64BIT.
+       (subdi3): Replace the define_expand with a define_insn, the latter
+       renamed from subdi3_internal_3.
+       (negdi2): Likewise negdi2_internal_2.
+       (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
+       (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
+       and associated define_splits.
+       (adddi3_internal): Renamed from adddi3_internal_3.
+       (ashldi3_internal): Likewise ashldi3_internal4.
+       (ashrdi3_internal): Likewise ashrdi3_internal4.
+       (lshrdi3_internal): Likewise lshrdi3_internal4.
+
+2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
+
+       * optabs.c (expand_unop): Try implementing negation using subtraction
+       from zero.
+
+2004-05-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       * pa.md:  Fix typo from last change.  Remove DFmode move to and from
+       SAR register.
+
+2004-05-16  Richard Earnshaw  <rearnsha@arm.com>
+
+       PR target/10982
+       * arm.md (ne_zeroextractsi): Convert to insn-and-split.
+       (ne_zeroextractsi_shifted): New pattern.
+       (ite_ne_zeroextractsi): New pattern.
+       (ite_ne_zeroextractsi_shifted): New pattern.
+
+2004-05-15  Steven Bosscher  <stevenb@suse.de>
+
+       * c-gimplify.c (c_genericize):
+       Replace calls via (*lang_hooks.foo) with lang_hooks.foo.
+       * c-parse.in <expr_no_commas>: Likewise.
+       <if_prefix>: Likewise.
+       <select_or_iter_stmt>: Likewise.
+       * expr.c (expand_var, expand_expr_real_1): Likewise.
+       * expr.h (expand_expr): Make it a static inline function.
+       Move prototype for expand_expr_real up before this.
+       * fold-const.c (fold_relational_hi_lo, fold_relational_const):
+       Likewise.
+       * gimplify.c (gimple_boolify, gimplify_addr_expr,
+       gimplify_asm_expr, gimplify_expr): Likewise.
+       * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg,
+       dump_function_to_file): Likewise.
+       * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise.
+       * tree-inline.c (remap_block, save_body, walk_tree): Likewise.
+       * tree-into-ssa.c (dump_tree_ssa): Likewise.
+       * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree):
+       Likewise.
+       * tree-optimize.c (execute_one_pass): Likewise.
+       * tree-pretty-print.c (dump_generic_bb_buff): Likewise.
+       * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise.
+
+       * objc/objc-act.c (objc_build_try_enter_fragment,
+       objc_build_try_epilogue, objc_build_catch_stmt,
+       objc_build_finally_prologue): Replace calls via (*lang_hooks.foo)
+       with lang_hooks.foo ().
+
+2004-05-15  Roger Sayle  <roger@eyesopen.com>
+
+       * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so
+       that simplify_builtin doesn't destructively modify its argument.
+
+2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
+
+       * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM
+       implementations for ARM and Thumb.
+       * arm/t-arm-elf (LIB1ASMFUNCS): Use them.
+
+2004-05-15  Thomas Quinot  <quinot@act-europe.fr>
+
+       * prefix.c (update_path): Replace PREFIX with KEY only
+       when it matches a full directory name in PATH.
+
 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
 
        * arm.h (TARGET_APCS_32): Delete.
        * arm/crtn.asm: (FUNC_END): Simplify.
        * arm/lib1funcs.asm: Remove APCS-26 return macros.
        * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h
-       * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h 
+       * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h
        * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and
        MULTILIB_DEFAULTS as required.
        * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe