OSDN Git Service

* config/vax/vax.c: (print_operand_address) Use gcc_unreachable() and
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 82d7ba0..84e1796 100644 (file)
@@ -1,3 +1,696 @@
+2005-05-14  Nathan Sidwell  <nathan@codesourcery.com>
+           Jan-Benedict Glaw  <jbglaw@lug-owl.de>
+
+       * config/vax/vax.c: (print_operand_address) Use gcc_unreachable() and
+       gcc_assert().
+       (rev_cond_name) Likewise.
+       (vax_float_literal) Likewise.
+       * config/vax/vax.md: Likewise.
+
+2005-05-14  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
+
+       * config/vax/vax.md: define_constant VAXens AP, FP, SP and PC
+       registers and use them (specifically the stack pointer).
+       * config/vax/vax.h: Use above defines right here.
+
+       * config/vax/vax.c: (override_options) Remove 'register' keyword.
+       (split_quadword_operands) Likewise. (rev_cond_name) Likewise.
+       (vax_float_literal) Likewise. (vax_rtx_costs) Remove trailing
+       whitespace.
+       * config/vax/vax.h: Remove 'register' keyword. Misc. whitespace fixes,
+       mostly removal of trailing spaces...
+       * config/vax/vax-modes.def: Remove trailing whitespace.
+
+       * config/vax/elf.h: Update whitespace.
+
+2005-05-14  Richard Guenther  <rguenth@gcc.gnu.org>
+
+       Revert
+       2005-05-11  Richard Guenther  <rguenth@gcc.gnu.org>
+       * fold-const.c (fold_indirect_ref_1): Avoid removing
+       NOP_EXPRs with type qualifiers like const.
+
+2005-05-14  Jan Hubicka  <jh@suse.cz>
+
+       Patch by Richard Henderson:
+       * tree-eh.c (tree_can_throw_internal, tree_can_throw_external):
+       Handle RESX expressions properly.
+
+       * tree-eh.c (record_stmt_eh_region): Use add_stmt_to_eh_region.
+       (add_stmt_to_eh_region_fn): Nest into CALL_EXPR.
+       (remove_stmt_from_eh_region_fn): Likewise.
+
+       * tree-cfg.c (execute_warn_function_return): Break out noreturn
+       warning too..
+       (execute_warn_function_noreturn): ... here.
+       (pass_warn_function_noreturn): New pass.
+       * tree-pass.h (pass_warn_function_noreturn): Declare
+       * tree-optimize.c (init_tree_optimization_passes): Move return
+       warnings early and add noreturn warnings at place of previous
+       return warnings.
+
+2005-05-14  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * tree-ssa-live.c (tpa_init, tpa_delete, tpa_compact,
+       root_var_init, type_var_init): Use VEC instead of VARRAY.
+       * tree-ssa-live.h (tree_partition_associator_d): Change the
+       type of trees to VEC(tree,heap)*.
+       (tpa_tree): Use VEC instead of VARRAY.
+
+2005-05-14  Richard Guenther  <rguenth@gcc.gnu.org>
+
+       * fold-const.c (div_if_zero_remainder): New function.
+       (try_move_mult_to_index): Use it.
+
+2005-05-14  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * tree-eh.c (leh_tf_state): Change the type of dest_array to
+       VEC(tree,heap)*.
+       (maybe_record_in_goto_queue, lower_try_finally_onedest,
+       lower_try_finally_copy, lower_try_finally_switch,
+       lower_try_finally): Use VEC instead of VARRAY.
+
+2005-05-14  Hans-Peter Nilsson  <hp@axis.com>
+
+       * config/cris/cris.h (Node: Register Classes): Remove obsoleted
+       comment regarding defined register classes.
+       (LEGITIMIZE_RELOAD_ADDRESS): Do not define.
+
+2005-05-14  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * tree-optimize.c (init_tree_optimization_passes): Move
+       pass_merge_phi before the first pass_dominator.
+
+2005-05-13  Richard Earnshaw  <richard.earnshaw@arm.com>
+
+       * arm.h (INITIALIZE_TRAMPOLINE): Make the call to __clear_cache
+       unconditional.
+
+2005-05-13  Josh Conner  <jconner@apple.com>
+
+       * config/arm/arm.c (arm_size_return_regs): New.
+       (thumb_unexpanded_epilogue): replace in-line calculation
+       of return registers with call to arm_size_return_regs.
+       (use_return_insn): Include test of which registers are
+       being used to hold return values, to accommodate
+       vector return values.
+
+2005-05-11  Aldy Hernandez  <aldyh@redhat.com>
+
+       * config/rs6000/sysv4.opt (mlittle): Handle.
+
+       * config/rs6000/rs6000.c (rs6000_handle_option): Set
+       target_flags_explicit when appropriate.
+
+2005-05-13  J"orn Rennecke <joern.rennecke@st.com>
+
+       PR middle-end/20714:
+       * optabs.c (no_conflict_data): New struct.
+       (no_conflict_move_test): New function.
+       (emit_no_conflict_block): Use it.
+
+2005-05-13  Adam Nemet  <anemet@lnxw.com>
+
+       * doc/invoke.texi (Debugging Options): Option
+       -fdump-translation-unit only works with C++ now.
+
+2005-05-13  Hans-Peter Nilsson  <hp@axis.com>
+
+       Replace calls to abort in CRIS port.
+       * config/cris/cris.h (CRIS_ASSERT): New macro.
+       * config/cris/cris.md ("*movsi_internal"): Use CRIS_ASSERT and
+       internal_error instead of abort.
+       ("movsi"): Ditto.  Unquote preparation statement section.
+       ("call", "call_value"): Ditto, but use gcc_assert where
+       appropriate.  Tweak comments.
+       * config/cris/cris.c (ASSERT_PLT_UNSPEC): Define in terms of
+       CRIS_ASSERT.
+       (cris_op_str): Call internal_error, not abort.
+       (cris_print_operand): Tweak "abort" reference to "die" in comment.
+       (cris_initial_elimination_offset): Call gcc_unreachable, not abort.
+       (cris_notice_update_cc): Call internal_error, not abort.
+       (cris_expand_return, cris_expand_prologue, cris_gen_movem_load)
+       (cris_emit_movem_store, cris_asm_output_symbol_ref)
+       (cris_output_addr_const_extra): Use CRIS_ASSERT, don't call abort.
+       (cris_symbol, cris_got_symbol): Use CRIS_ASSERT instead of
+       ENABLE_CHECKING-guarded abort call.
+       (cris_split_movdx): Use CRIS_ASSERT instead of abort with test.
+       Use internal_error at end of test-chain.
+
+2005-05-13  J"orn Rennecke <joern.rennecke@st.com>
+
+       PR rtl-optimization/20769:
+       * bt-load.c (compute_defs_uses_and_gen): Check for the blockage
+       pattern emitted by expand_nl_goto_receiver.
+
+       PR middle-end/20793:
+       * integrate.c (allocate_initial_values): Update register liveness
+       information.
+
+2005-05-13  Josh Conner  <jconner@apple.com>
+
+       * arm.c (arm_return_in_memory): Add handling for vector return types.
+
+2005-05-13  David Ung  <davidu@mips.com>
+
+       * config/mips/mips.h (processor_type): Add new PROCESSOR_4KP
+       name.
+       * config/mips/mips.c: Add 4km alias.
+       * config/mips/mips.md: Add 4kp to cpu attrib and include 4k.md.
+       * config/mips/4k.md: New file, add 4Kc/4Kp DFA pipeline
+       description.
+
+2005-05-13  Jan Hubicka  <jh@suse.cz>
+
+       * c-decl.c (finish_function): Suppress "control reaches end of
+       non-void function" when "no return statement in function
+       returning non-void" is issued.
+
+       * tree-inline.c (copy_body_r): Simplify substituted ADDR_EXPRs.
+       * tree-optimize.c (pass_gimple): Kill.
+       (init_tree_optimization_passes): Kill pass_gimple.
+       * tree-cfg.c (build_tree_cfg): Do verify_stmts to check that we are gimple.
+       * tree-dump.c (dump_files): Rename .generic to .gimple.*
+
+2005-05-13  J"orn Rennecke <joern.rennecke@st.com>
+
+       PR rtl-optimization/20756:
+       * basic-block.h (PROP_DEAD_INSN): Define.
+       * flow.c (propagate_one_insn): Set during mark_set_regs call
+       for a dead insn.
+       (mark_set_1): Emit a clobber when we are about to delete a dead insn
+       that kills a live register.
+
+2005-05-13  Adrian Straetling  <straetling@de.ibm.com>
+
+       * config/s390/s390.md: ("DBL"): New mode attribute.
+       ("*movmem_long_64", "*movmem_long_31"): Merge to "*movmem_long".
+       ("*clrmem_long_64", "*clrmem_long_31"): Merge to "*clrmem_long".
+       ("*cmpmem_long_64", "*cmpmem_long_31"): Merge to "*cmpmem_long".
+
+2005-05-13  Richard Guenther  <rguenth@gcc.gnu.org>
+
+       * c-format.c (check_format_arg): Handle string literals of
+       the form &"string"[offset].
+
+       * g++.dg/warn/format4.C: New testcase.
+
+2005-05-13  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * config/mips/3000.md, config/mips/4000.md,
+       config/mips/4100.md, config/mips/4300.md, config/mips/4600.md,
+       config/mips/5000.md, config/mips/7000.md, config/mips/9000.md,
+       config/mips/generic.md, config/pdp11/pdp11.md,
+       config/sh/crt1.asm, config/sh/lib1funcs.asm,
+       config/sh/sh-modes.def, config/sh/sh-protos.h,
+       config/sh/shmedia.md, config/sh/ushmedia.h: Update copyright.
+
+2005-05-13  Richard Henderson  <rth@redhat.com>
+
+       * function.c (instantiate_virtual_regs_in_insn): Do not simplify
+       addition to move unless dest is a register.  Do not skip 
+       instantiation in dest on addition simplification.
+
+2005-05-13  Hans-Peter Nilsson  <hp@axis.com>
+
+       * config/cris/cris.c (cris_print_operand) <case 'H'; case
+       CONST_INT>: Use operand_subword and HOST_WIDE_INT_PRINT_DEC for
+       output; don't have special case for HOST_BITS_PER_WIDE_INT == 32.
+
+2005-05-13  Jan Hubicka  <jh@suse.cz>
+
+       * basic-block.h (FOR_ALL_BB_FN): New macro.
+       (init_flow): Initialize cfg structure.
+       * function.c (allocate_struct_function): Do not initialize cfg structure.
+       * tree-cfg.c (init_empty_tree_cfg): Break out from ...
+       (build_tree_cfg): ... here.
+       * tree-flow.h (init_empty_tree_cfg): Declare.
+
+2005-05-12  Steven Bosscher <stevenb@suse.de>
+
+       Fix PR tree-optimization/21520
+       * tree-ssa-pre.c (phi_translate): Use fully_constant_expression
+       to attempt to fold constants.
+
+2005-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * config/sh/sh.c: Declare the prototype of sh_adjust_unroll_max
+       only when TARGET_ADJUST_UNROLL_MAX is defined.
+       (general_movsrc_operand): Use the C style comment.
+       (ua_offset): Use prototype.
+
+2005-05-12  Zdenek Dvorak  <dvorakz@suse.cz>
+
+       * tree-ssa-loop-im.c (struct mem_ref): Add field "next".
+       (struct hmr_data, hoist_memory_reference, memref_del,
+       struct fmrv_data): Removed.
+       (hoist_memory_references, free_mem_ref, free_mem_refs): New functions.
+       (gather_mem_refs, gather_mem_refs_stmt): Add new references to the
+       list.
+       (find_more_ref_vops): Traverse the list of memory references.
+       (determine_lsm_loop): Work with the list of memory references instead
+       of traversing the hashtable.
+
+2005-05-12  Steven Bosscher  <stevenb@suse.de>
+           Stuart Hastings <stuart@apple.com>
+           Jan Hubicka  <jh@suse.cz>
+           
+       * except.c  (duplicate_eh_region_1, duplicate_eh_region_2,
+       duplicate_eh_regions): New functions, based on old
+       implementation removed with RTL inliner.
+       (reachable_next_level): Modify behaviour pre-inline.
+       * except.h (duplicate_eh_regions_map, duplicate_eh_regions):
+       Declare.
+       * function.h (struct function): Add after_inlining flag.
+       * tree-optimize.c (tree_rest_of_compilation): Set it.
+       * tree-eh.c (add_stmt_to_eh_region_fn): Initialize hashtable
+       when needed.
+       * tree-cfg.c (label_to_block_fn): Deal with cases where
+       label was never insterted into code.
+
+2005-05-12  Zack Weinberg  <zack@codesourcery.com>
+
+       * doc/cpp.texi: Document that #sccs is a synonym for #ident.
+
+2005-05-12  Daniel Berlin  <dberlin@dberlin.org>
+
+       Fix PR tree-optimization/21532
+       * tree-ssa-pre.c (create_expression_by_pieces): stmt
+       needs to go onto the inserted_exprs list.
+
+2005-05-12  Ian Lance Taylor  <ian@airs.com>
+
+       * c-common.h (statement_code_p): Don't declare.
+       (STATEMENT_CODE_P): Don't define.
+       (INIT_STATEMENT_CODES): Don't define.
+       * c-common.c (statement_code_p): Don't define.
+
+2005-05-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       * config/sparc/sparc.h: Remove dead code.
+       * config/sparc/sparc.c (sparc_compute_frame_size): Use
+       FIRST_PARM_OFFSET for the size of the register window area.
+       (emit_save_regs): Rename into emit_save_or_restore_regs.
+       Add 'action' parameter.  Use 4095 as upper bound for the offset.
+       Pass 'action' to save_or_restore_regs.
+       (emit_restore_regs): Delete.
+       (sparc_expand_prologue): Call emit_save_or_restore_regs.
+       (sparc_expand_epilogue): Likewise.
+       * config/sparc/sparc.md (mode macro P): Move.
+       (movdi_insn_sp32_v9, movdi_insn_sp32): Swap.
+       (mov<V32:mode> expander): Move to the top of the V32 section.
+       (movdf_insn_sp32_v9_no_fpu, movdf_insn_sp32_v9): Swap.
+       (movtf_insn_sp64_hq, movtf_insn_sp64): Swap.
+       (sibcall_epilogue): Move.
+
+2005-05-12  Richard Earnshaw  <richard.earnshaw@arm.com>
+
+       PR target/21501
+       * arm.c (arm_gen_constant): Sign-extend intermediate values when
+       synthesizing a constant of the difference of two immediates.
+
+2005-05-12  Richard Earnshaw  <richard.earnshaw@arm.com>
+
+       * arm/vfp.md (negsf2_vfp): Add alternative using integer registers.
+       (negdf2_vfp): Likewise.  Convert to define_insn_and_split and split
+       the alternatives using integer registers into the appropriate
+       primitives.
+
+2005-05-11 Kenneth Zadeck <zadeck@naturalbridge.com>
+
+       * bitmap.c (bitmap_elmt_to_freelist, bitmap_element_allocate,
+       bitmap_elt_clear_from, bitmap_clear): Changed freelist structure.
+       * bitmap.h: Fixed comments.
+
+2005-05-11  Richard Henderson  <rth@redhat.com>
+
+       PR target/21412
+       * config/ia64/ia64.c (TARGET_CANNOT_FORCE_CONST_MEM): New.
+       (ia64_cannot_force_const_mem): New.
+       (tls_symbolic_operand_type): New.
+       (ia64_legitimate_constant_p): New.
+       (ia64_expand_load_address): Return true on success.  Improve
+       checks for when we should not split.
+       (ia64_expand_tls_address): New addend operand.  Distribute it
+       as appropriate to the tls_kind.  Delay referencing gp.
+       (ia64_expand_move): Split symbolic addend as necessary.  Handle
+       tls symbols with addends.
+       * config/ia64/ia64-protos.h: Update.
+       * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): False for r0,
+       p0, f0, f1, and r13.
+       (LEGITIMATE_CONSTANT_P): Move to ia64_legitimate_constant_p.
+       * config/ia64/ia64.md (UNSPEC_DTPMOD): New.
+       (symbolic_operand splitter): Pass everything through
+       ia64_expand_load_address and FAIL or DONE as appropriate.
+       (load_fptr): Only accept after reload.
+       (load_fptr_internal1, gprel64_offset, load_gprel64, load_symptr_high,
+       load_symptr_low, load_ltoff_dtpmod,
+       (load_dtpmod): New.
+       (load_dtprel): Only accept tls symbols.
+       (load_dtprel64, load_dtprel22): Likewise.
+       (load_tprel, load_tprel64, load_tprel22): Likewise.
+       (load_dtprel_gd, load_ltoff_dtprel, load_tprel_ie): New.
+       (add_dtprel): Only accept tls symbols.  Canonicalize PLUS.
+       (add_dtprel14, add_dtprel22): Likewise.
+       (add_tprel, add_tprel14, add_tprel22): Likewise.
+       * config/ia64/predicates.md (small_addr_symbolic_operand): New.
+       (any_offset_symbol_operand, aligned_offset_symbol_operand): New.
+       (got_symbolic_operand): Check CONST offsets.
+       (tls_symbolic_operand, ld_tls_symbolic_operand): New.
+       (ie_tls_symbolic_operand, le_tls_symbolic_operand): New.
+       (move_operand): Don't handle tls here.  Check CONST offsets.
+
+2005-05-11  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/7000.md (rm7_impy_si_mult): Just match imul and imadd.
+       Remove hilo_operand check.
+       (rm7_impy_si_mul): Just match imul3.  Remove hilo_operand check.
+       * config/mips/predicates.md (hilo_operand): Delete.
+
+2005-05-11  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/sr71k.md, config/mips/7000.md: Reformat.
+
+2005-05-11  Kazu Hirata  <kazu@cs.umass.edu>
+
+       PR tree-optimizer/18472
+       * tree-if-conv.c (tree_if_convert_stmt,
+       if_convertible_modify_expr_p): Don't handle GOTO_EXPR.
+
+2005-05-11  Jan Hubicka  <jh@suse.cz>
+
+       * Makefile.in (tree-eh.o: Kill gt-tree-eh.h dependency.
+       (GTFILES): add except.h.
+       * except.c (eh_status): Add throw_stmt_table.
+       (set_eh_throw_stmt_table, get_eh_throw_stmt_table): New functions.
+       * except.h (add_stmt_to_eh_region_fn, remove_stmt_from_eh_region_fn,
+       lookup_stmt_eh_region_fn): Declare.
+       (throw_stmt_node): New structure.
+       (set_eh_throw_stmt_table, get_eh_throw_stmt_table): New.
+       * gengtype.c (open_base_files): Add except.h to inlines.
+       * tree-eh.c (throw_stmt_node): Kill.
+       (record_stmt_eh_region): Update.
+       (add_stmt_to_eh_region_fn): Break out from ...
+       (add_stmt_to_eh_region): ... here.
+       (remove_stmt_from_eh_region_fn): Break out from ...
+       (remove_stmt_from_eh_region): ... here.
+       (lookup_stmt_eh_region_fn): Break out from ...
+       (lookup_stmt_eh_region): ... here.
+       (honor_protect_cleanup_actions): Use build_resx.
+       (lower_try_finally_onedest): Likewise.
+       (lower_try_finally_copy): Likewise.
+       (lower_try_finally_switch): Likewise.
+       (lower_eh_constructs): Update eh table construction.
+       * tree.c (build_resx): New.
+       * tree.h (build_resx): Declare.
+
+2005-05-11  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * libgcov.c (gcov_exit): Set prefix_length to 0 if no relocation
+       is needed.
+
+2005-05-11  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * fold-const.c, libgcov.c: Fix comment typos.
+
+       * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Remove
+       redundant code.
+
+2005-05-11  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
+       * config/arm/arm.h (SUBTARGET_FRAME_POINTER_REQUIRED): Provide
+       default definition.
+       (FRAME_POINTER_REQUIRED): Use SUBTARGET_FRAME_POINTER_REQUIRED.
+
+2005-05-11  Nathan Sidwell  <nathan@codesourcery.com>
+
+       PR bootstrap/21481
+       * crtstuff.c: Include auto-host.h again, for now.
+
+2005-05-11  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/24k.md: Remove trailing whitespace.
+
+2005-05-11  David Ung  <davidu@mips.com>
+
+       * config/mips/mips.md (type): Add imul3.
+       (length, hazard, may_clobber_hilo): Check for imul3.
+       (mulsi3_mult3, muldi3_mult3, *muls, <su>mulsi3_highpart_mulhi_internal)
+       (*<su>mulsi3_highpart_neg_mulhi_internal): Set attr to imul3.
+       * config/mips/24k.md (r24k_int_mul3): Enable this reservation
+       for a 3 operand mul and its bypasses.
+       * config/mips/3000.md (r3k_imul): Add imul3 to reservations.
+       * config/mips/4000.md (r4k_imul): Likewise.
+       * config/mips/4100.md (r4100_imul_si, r4100_imul_di):  Likewise.
+       * config/mips/4130.md (vr4130_class, vr4130_mulsi)
+       (vr4130_muldi): Likewise.
+       * config/mips/4300.md (r4300_imul_si, r4300_imul_di): Likewise.
+       * config/mips/4600.md (r4600_imul, r4650_imul): Likewise.
+       * config/mips/5000.md (r5k_imul_si, r5k_imul_di): Likewise.
+       * config/mips/5400.md (ir_vr54_imul_si, ir_vr54_imul_di)
+       (ir_vr54_imadd_si): Likewise.
+       * config/mips/5500.md (ir_vr55_imul_si, ir_vr55_imul_di):  Likewise.
+       * config/mips/7000.md (rm7_impy_si_mult, rm7_impy_si_mul)
+       (rm7_impy_di): Likewise.
+       * config/mips/9000.md (rm9k_mulsi, rm9k_muldi):  Likewise.
+       * config/mips/generic.md (generic_imul): Likewise.
+       * config/mips/sb1.md (ir_sb1_mulsi, ir_sb1_muldi): Likewise.
+       * config/mips/sr71k.md (ir_sr70_imul_si, ir_sr70_imul_di):  Likewise.
+
+2005-05-11  J"orn Rennecke <joern.rennecke@st.com>
+
+       PR middle-end/20371:
+       * tree.h (record_layout_info_s): New member prev_packed.
+       * stor-layout.c (update_alignment_for_field): Fix comment about
+       KNOWN_ALIGN.  For MS bitfields, if we start a new run, make sure
+       we start it properly aligned.
+       (place_field): At the beginning of a record, pass 0 as KNOWN_ALIGN
+       to update_alignment_for_field, and recompute it afterwards using
+       the alignment of the record.
+       When a packed bitfield precedes an MS bitfield, don't add padding
+       at the end of the packed bitfield on behalf of the base type of
+       the packed bit field.
+       Don't adjust rli->bitpos at the end
+       of an MS bitfield run if we already adjusted bitpos/offset for an
+       alignment as large or larger than the bitfield type size.
+       Take possible record alignment > BIGGEST_ALIGNMENT into account
+       when calculating actual_align.
+       Only put packed buit fields into rli->prev_field if they end up
+       suitably aligned.
+       Also set rli->remaining_in_alignment when we re-set rli->prev_field.
+       Update rli->remaining_in_alignment when we have already started a
+       run of bit fields and we process a packed bit field.
+
+2005-05-11  Sebastian Pop  <pop@cri.ensmp.fr>
+
+       * tree-data-ref.c (find_data_references_in_loop): Give up when
+       the body of the loop contains a CALL_EXPR or an ASM_EXPR: they
+       may embed arbitrary side effects.
+       Remove the assumption that GIMPLE form contains a single array
+       access per statement.
+       When the statement contains virtual operands, fail if it is not
+       a MODIFY_EXPR or a CALL_EXPR.
+       Return after the dont know node is inserted.
+
+2005-05-11  Richard Earnshaw  <richard.earnshaw@arm.com>
+
+       * arm.md (negsf2, negdf2): Permit these expands when compiling for VFP.
+
+2005-05-11  Richard Guenther  <rguenth@gcc.gnu.org>
+
+       PR middle-end/19807
+       PR tree-optimization/19639
+       * fold-const.c (try_move_mult_to_index): Handle INTEGER_CST
+       and generic summands for char* as s * delta, too, folding &a[i]
+       CODE x to &a[i CODE x/s].  Use tree_int_cst_equal
+       for comparison of steps.  Convert types for index addition.
+       (fold_binary): Adjust the callers to always dispatch to
+       try_move_mult_to_index.
+       * tree-ssa-propagate.c (set_rhs): Avoid setting rhs to
+       expr with non-gimple ARRAY_REF offset.
+
+2005-05-11  Richard Guenther  <rguenth@gcc.gnu.org>
+
+       * fold-const.c (fold_indirect_ref_1): Avoid removing
+       NOP_EXPRs with type qualifiers like const.
+
+2005-05-11  Richard Henderson  <rth@redhat.com>
+
+       PR c/21502
+       * c-decl.c (finish_decl): Propagate the completed array type of
+       a global variable into the binding.
+
+2005-05-10  Matt Kraai  <kraai@ftbfs.org>
+
+       * Makefile.in (gtype-desc.o, build/genautomata.o)
+       (build/varray.o): Depend on $(VARRAY_H).
+
+2005-05-10  Diego Novillo  <dnovillo@redhat.com>
+
+       * tree-optimize.c (init_tree_optimization_passes): Re-organize
+       optimization passes to do an initial batch of scalar cleanups.
+
+2005-05-10  Ian Lance Taylor  <ian@airs.com>
+
+       * read-rtl.c (struct macro_traverse_data): Define.
+       (map_attr_string): New static function, broken out of
+       apply_macro_to_string.
+       (mode_attr_index, apply_mode_maps): New static functions.
+       (apply_macro_to_string): Call map_attr_string.
+       (apply_macro_to_rtx): Add mode_maps and infile parameters.  Change
+       all callers.
+       (apply_macro_traverse): Expect data to point to a struct
+       macro_traverse_data.
+       (read_rtx): Add mode_maps local variable.  Use mode_traverse_data
+       to pass data through htab_traverse.
+       (read_rtx_1): Add mode_maps parameter.  Change all callers.
+       Handle mode names which are attribute strings.
+       * doc/md.texi (Substitutions): Rename from String Substitutions.
+       Change references.  Document using attributes as modes.
+
+2005-05-10  Zdenek Dvorak  <dvorakz@suse.cz>
+
+       * tree-cfg.c (tree_duplicate_sese_region): Update profile.
+       * tree-optimize.c (init_tree_optimization_passes) Swap
+       pass_ch and pass_profile.
+       * tree-ssa-loop-ch.c (copy_loop_headers): Do not update profile
+       here.  Remove rewrite_into_loop_closed_ssa call.
+
+2005-05-10  Adrian Straetling  <straetling@de.ibm.com>
+
+       * config/s390/s390.c: (s390_const_double_ok_for_constraint_p): New
+       function.
+       (legitimate_reload_constant_p): Add check for const double zero.
+       * config/s390/s390.md: Add comment for constraint letter 'G'.
+       ("*movdf_64", "*movdf_31", "movsf"): Add constraint and proper
+       attributes for new case.
+       * config/s390/s390.h: (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Define it as
+       s390_const_double_ok_for_constraint_p.
+       * config/s390/s390-protos.h (s390_const_double_ok_for_constraint_p):
+       Add prototype.
+
+2005-05-10  Kazu Hirata  <kazu@cs.umass.edu>
+
+       PR tree-optimization/21170
+       * tree-ssa-dom.c, tree-ssa-threadupdate.c: Replace
+       rewrite_ssa_into_ssa in comments with update_ssa.
+
+2005-05-10  Zdenek Dvorak  <dvorakz@suse.cz>
+
+       * tree-ssa-loop-im.c: Include hashtab.h.
+       (struct mem_ref_loc): New.
+       (struct mem_ref): Describe the set of references with the same
+       shape.
+       (max_stmt_uid, get_stmt_uid, record_mem_ref, free_mem_refs,
+       maybe_queue_var, fem_single_reachable_address,
+       for_each_memref, single_reachable_address,
+       is_call_clobbered_ref, determine_lsm_reg): Removed.
+       (record_mem_ref_loc, free_mem_ref_locs, determine_lsm_ref,
+       hoist_memory_reference, memref_hash, memref_eq, memref_del,
+       gather_mem_refs_stmt, gather_mem_refs, find_more_ref_vops):
+       New functions.
+       (rewrite_mem_refs, schedule_sm): Use mem_ref_loc list.
+       (determine_lsm_loop): Rewritten.
+       (determine_lsm): Do not set stmt uids.
+
+2005-05-10  Adrian Straetling  <straetling@de.ibm.com>
+
+       * config/s390/s390.md: Add comment lines for 'f' and 't' constraint
+       letters.
+
+2005-05-10  Adrian Straetling  <straetling@de.ibm.com>
+
+       * config/s390/s390.md: ("anddi3","andsi3","andhi3","andqi3"): Merge.
+       ("iordi3", "iorsi3", "iorhi3", "iorqi3"): Merge.
+       ("xordi3", "xorsi3", "xorhi3", "xorqi3"): Merge.
+
+2005-05-10  Jeff Law  <law@redhat.com>
+
+       * tree-ssa-dom.c (dom_opt_finalize_block): Do not call
+       thread_across_edge for any abnormal edges.
+
+2005-05-10  Richard Henderson  <rth@redhat.com>
+
+       * config/ia64/ia64.c (ia64_expand_atomic_op): New.
+       * config/ia64/ia64-protos.h: Declare it.
+       * config/ia64/sync.md (I124MODE, FETCHOP, fetchop_name): New.
+       (sync_add<I48MODE>, sync_old_add<I48MODE>): Remove.
+       (sync_<FETCHOP><IMODE>, sync_nand<IMODE>): New.
+       (sync_old_<FETCHOP><IMODE>, sync_old_nand<IMODE>): New.
+       (sync_new_<FETCHOP><IMODE>, sync_new_nand<IMODE>): New.
+       (cmpxchg_rel_<I124MODE>): Split from cmpxchg_acq_<IMODE>.  Zero
+       extend result; use release semantics.
+       (cmpxchg_rel_di): Rename from cmpxchg_acq_<IMODE>; use release.
+       (sync_val_compare_and_swap_<IMODE>): Update to match.
+
+2005-05-10  Richard Henderson  <rth@redhat.com>
+
+       * optabs.c (expand_compare_and_swap_loop): Don't clobber old value
+       before comparing it for success.
+
+2005-05-10  Richard Henderson  <rth@redhat.com>
+
+       * config/ia64/sync.md (sync_add<I48MODE>): Fix arguments for
+       no return value pattern.
+
+2005-05-10  Grigory Zagorodnev  <grigory.zagorodnev@intel.com>
+           H.J. Lu  <hongjiu.lu@intel.com>
+
+       * libgcov.c (create_file_directory): New function. Create
+       directory for the given file name.
+       (gcov_max_filename): New static var. Keeps size of the longest
+       file name.
+       (gcov_exit): Always try to create directory for output
+       file. Relocate each filename basing on environment vars.
+       (__gcov_init): Remember the longest file name.
+       * tsystem.h: include filenames.h to get IS_DIR_SEPARATOR
+       * doc/gcov.texi (Cross-profiling): New node documenting
+       cross-profiling management.
+       * doc/invoke.texi (-fprofile-arcs): Add xref to cross-profiling.
+
+2005-05-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       * config/sparc/sparc.c (mem_min_alignment): Do not rely
+       on MEM_ALIGN if TARGET_UNALIGNED_DOUBLES.
+
+2005-05-10  Bob Wilson  <bob.wilson@acm.org>
+
+       * config/xtensa/lib1funcs.asm (__udivsi3, __divsi3): Rearrange special
+       case code to avoid one move instruction.
+       (__umodsi3, __modsi3): Merge duplicated code sequences.
+
+2005-05-10  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * config/mips/24k.md, config/sh/divtab.c, config/sh/sh.c,
+       config/sh/sh.md, config/sh/superh.h: Fix comment typos.
+       * doc/invoke.texi: Fix typos.
+
+       * tree-data-ref.c (analyze_array_indexes, analyze_array,
+       init_data_ref, access_functions_are_affine_or_constant_p,
+       free_data_refs): Use VEC instead of VARRAY.
+       * tree-data-ref.h (data_reference): Change the type of
+       access_fns to VEC(tree,gc)*.
+       (DR_ACCESS_FN, DR_NUM_DIMENSIONS): Use VEC instead of VARRAY.
+
+2005-05-10  Gabor Loki <loki@gcc.gnu.org>
+
+       PR c/17913
+       * c-typeck.c (build_conditional_expr): Remove reducing cond_expr.
+       * fold-const.c (fold): Expand the condition of reducing cond_expr.
+       (contains_label_1, contains_label_p): New functions for checking
+       labels in a sub-tree.
+
+2005-05-10  Joseph S. Myers  <joseph@codesourcery.com>
+
+       PR c/21342
+       * c-decl.c (pushdecl): When there is a declaration in the current
+       scope and the declarations are external linkage, check for
+       compatibility with the type in the external scope and update the
+       type in the external scope with the composite type information.
+       Do not form a composite type of the new type and the visible type
+       if they are incompatible.
+
 2005-05-10  Nathan Sidwell  <nathan@codesourcery.com>
 
        * crtstuff.c: Revert part of 2005-05-08 Change.
        (movdf_insn_v9only_vis): Rename into movdf_insn_sp32_v9.
        (movdf_insn_sp64_novis): Delete.
        (movdf_insn_sp64_vis): Rename into movdf_insn_sp64.
-       (movdf_no_e_insn_sp64): Use register_or_zero_operand. 
+       (movdf_no_e_insn_sp64): Use register_or_zero_operand.
        Rename into movdf_insn_sp64_no_fpu.
        (movtf expander): Use register_or_zero_operand.
        (movtf_insn_sp32): Delete.
 
 2005-05-09  David Edelsohn  <edelsohn@gnu.org>
 
-        PR target/21477
-        * config/rs6000/rs6000.md (add_op2): New.
-        (add<mode>3): Use it.
+       PR target/21477
+       * config/rs6000/rs6000.md (add_op2): New.
+       (add<mode>3): Use it.
 
 2005-05-09  Richard Earnshaw  <richard.earnshaw@arm.com>
 
        s390_short_displacement, addr_generation_dependency_p,
        legitimate_reload_constant_p, legitimate_address_p): Change return type
        into 'bool'.
-       (s390_tm_ccmode): Change type of parameter "mixed" into 'bool'. 
+       (s390_tm_ccmode): Change type of parameter "mixed" into 'bool'.
        * config/s390/s390.c: (s390_match_ccmode,
        symbolic_reference_mentioned_p, tls_symbolic_reference_mentioned_p,
        legitimate_reload_constant_p): Change return type into 'bool'.
        (preferred_la_operand_p,legitimate_la_operand_p, legitimate_address_p):
-       Likewise.  Additionally adapted comment.  
+       Likewise.  Additionally adapted comment.
        (s390_extra_constraint_p): Change Comment to reflect 'int' return type.
-       (s390_tm_ccmode): Change type of parameter "mixed" into 'bool'. 
+       (s390_tm_ccmode): Change type of parameter "mixed" into 'bool'.
        (s390_decompose_address): Change the type of the internal flags
        "pointer", "base_ptr", "indx_ptr", and the return value into 'bool'.
        (struct s390_address): Change type of "pointer" into bool.
        s390_add_pool_insn, s390_find_pool, s390_add_constant,
        s390_find_constant, s390_add_execute, s390_find_execute,
        s390_execute_label, s390_execute_target, s390_dump_pool,
-       s390_dump_execute, s390_alloc_pool, s390_free_pool): Remove prototypes. 
+       s390_dump_execute, s390_alloc_pool, s390_free_pool): Remove prototypes.
        Move target macro definitions to the end of the file.  Move several
        functions within the file to assure correct compiling.
 
 
 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
 
-       * config/s390/s390.c: (s390_adjust_priority): Adapt to changed 
+       * config/s390/s390.c: (s390_adjust_priority): Adapt to changed
        attribute names.
        * config/s390/2084.md: ("x_fsimpd", "x_fsimps", "x_fdivd", "x_fdivs",
        "x_floadd", "x_floads", "x_fstored", "x_fstores"): Rename to
 
 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
 
-       * config/s390/s390.md: ("DSI", "SCOND"): New mode 
+       * config/s390/s390.md: ("DSI", "SCOND"): New mode
        macros.
        ("E", "g"): New mode attributes.
        ("*adddi3_alc_cc", "*addsi3_alc_cc"): Merge.
        ("*tsthi", "*tstqi"): Merge.
        ("*tsthi_cconly", "tstqi_cconly"): Merge.
        ("*sethighhisi", "*sethighqisi"): Merge.
-        
+
 2005-05-09  Kazu Hirata  <kazu@cs.umass.edu>
 
        * crtstuff.c, integrate.h, tree-scalar-evolution.h,
 
 2005-05-09  David Ung  <davidu@mips.com>
 
-       * config/mips/mips.h (processor_type): Add names for the 24K. 
+       * config/mips/mips.h (processor_type): Add names for the 24K.
        * config/mips/mips.c (mips_cpu_info_table): Add names for the 24K
        processor family.
        * config/mips/mips.md (cnv_mode): New attribute for recording the
        (fix_truncsfsi2_insn, fix_truncsfsi2_macro): Changed mode to SF and
        setup cnv_mode.
        * config/mips/24k.md: New file, contains 24k DFA pipeline
-       description. 
+       description.
 
 2005-05-09  Nathan Sidwell  <nathan@codesourcery.com>
 
        * libgcov.c: Remove unneeded comment about config.h.
        * unwind-dw2-fde-glibc.c: Do not inlude auto-host.h.
        * config.in, configure: Regenerated.
-       
+
 2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
            Falk Hueffner  <falk@debian.org>
 
        * config/m32r/m32r.h (INITIAL_ELIMINATION_OFFSET): Likewise.
        * config/m32r/m32r.md ( *movsi_insn, *zero_branch_insn,
        *rev_zero_branch_insn): Likewise.
-       
+
 2005-05-06  Jakub Jelinek  <jakub@redhat.com>
 
        PR c++/20961
        * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
        Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
        * configure, config.in: Regenerate.
-       
+
 2005-05-04  Jakub Jelinek  <jakub@redhat.com>
 
        PR middle-end/21265
 
 2005-05-03  Andrew MacLeod  <amacleod@redhat.com>
 
-       * lambda-code.c (gcc_loop_to_lambda_loop, 
+       * lambda-code.c (gcc_loop_to_lambda_loop,
        lambda_loopnest_to_gcc_loopnest, phi_loop_edge_uses_def,
        stmt_is_bumper_for_loop, perfect_nest_p, replace_uses_of_x_with_y): Use
        generic operand interface.
        * tree-data-ref.c (find_data_references_in_loop): Use generic interface.
        * tree-dfa.c (collect_dfa_stats_r, mark_new_vars_to_rename): Use
        generic operand interface.
-       * tree-flow-inline.h (delink_imm_use, link_imm_use_to_list, 
+       * tree-flow-inline.h (delink_imm_use, link_imm_use_to_list,
        link_imm_use, link_imm_use_stmt, relink_imm_use, relink_imm_use_stmt,
        next_safe_imm_use, has_zero_uses, has_single_use, single_imm_use,
        num_imm_uses): Use ssa_use_operand_t.
        (op_iter_next_use, op_iter_next_def, op_iter_next_tree, op_iter_init,
        op_iter_next_tree): Use new operand implementation.
        (clear_and_done_ssa_iter): New.  Initialize a blank operand iterator.
-       (op_iter_init_use, op_iter_init_def, op_iter_init_tree): Add iterator 
+       (op_iter_init_use, op_iter_init_def, op_iter_init_tree): Add iterator
        type check.
-       (op_iter_next_mustdef, op_iter_next_maydef, 
+       (op_iter_next_mustdef, op_iter_next_maydef,
        op_iter_next_must_and_may_def): Delete. Replace with...
        (op_iter_next_maymustdef): New.  Combine must and may next operations.
-       (op_iter_init_maydef, op_iter_init_mustdef, 
+       (op_iter_init_maydef, op_iter_init_mustdef,
        op_iter_init_must_and_may_def): Use new interface.
        (single_ssa_tree_operand ): New.  Process single operands only as trees.
        (single_ssa_use_operand): New.  Process single operands only as uses.
        (struct stmt_ann_d): Operands field no longer require GTY().
        (vn_compute, vn_lookup_or_add, vn_add, vn_lookup): Change prototype.
        * tree-into-ssa.c (mark_def_sites): Use SSA_OP_VMUSTKILL.
-       * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb, 
+       * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb,
        dump_replaceable_exprs, rewrite_trees): Use generic interface.
-       * tree-phinodes.c (make_phi_node, release_phi_node, resize_phi_node): 
+       * tree-phinodes.c (make_phi_node, release_phi_node, resize_phi_node):
        Use use_operand_p instead of ssa_imm_use_t *.
        * tree-pretty-print.c (dump_vops): check if operands are active before
        dumping virtual operands.
        * tree-ssa-ccp.c (likely_value): Use ZERO_SSA_OPERANDS.
        (ccp_fold): Use new interface.
        (ccp_visit_stmt): Remove unused variables and code.
-       (convert_to_gimple_builtin): Insert statements before calling 
+       (convert_to_gimple_builtin): Insert statements before calling
        mark_new_vars_to_rename.
        * tree-ssa-copy.c (stmt_may_generate_copy): Use ZERO_SSA_OPERANDS.
        (copy_prop_visit_cond_stmt): Use generic interface.
-       * tree-ssa-dom.c (struct expr_hash_elt): Use stmt pointer, not the 
+       * tree-ssa-dom.c (struct expr_hash_elt): Use stmt pointer, not the
        annotation in table.
        (thread_across_edge): Use generic interface.
        (initialize_hash_element): Initialzie with stmt, not annotation.
        (avail_expr_hash, real_avail_expr_hash, avail_expr_eq): Use generic
        interface.
        * tree-ssa-dse.c (dse_optimize_stmt): Use ZERO_SSA_OPERANDS.
-       * tree-ssa-loop-ivopts.c (find_invariants_stmt, 
-       find_interesting_uses_stmt, protect_loop_closed_ssa_form_use): Use 
+       * tree-ssa-loop-ivopts.c (find_invariants_stmt,
+       find_interesting_uses_stmt, protect_loop_closed_ssa_form_use): Use
        generic operand interface.
        * tree-ssa-loop-niter.c (chain_of_csts_start, get_val_for): Use generic
        interface.
        * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Use Generic operand
        Interface.
        * tree-ssa-operands.c (struct opbuild_list_d): New.  Operand build type.
-       (build_defs, build_uses, build_v_may_defs, build_vuses, 
+       (build_defs, build_uses, build_v_may_defs, build_vuses,
        build_v_must_defs): Change type to struct opbuild_list_d.
        (ops_active): New.  Operands active boolean.
        (operand_memory, operand_memory_index): New.  Operand memory managers.
        (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
        allocate_vuse_optype, allocate_v_must_def_optype): Delete.
-       (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs): 
+       (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs):
        Change from functions to static variable list heads.
        (opbuild_initialize_virtual): New.  Initialize a virtual build list.
        (opbuild_initialize_real): New.  Initialize a virtual build list.
        (ssa_operand_alloc): New.  Allocate memory from an operand chunk.
        (correct_use_link): Use use_operand_p.
        (finalize_ssa_uses, finalize_ssa_v_may_defs, finalize_ssa_defs,
-       finalize_ssa_vuses, finalize_ssa_v_must_defs): New implmentation. 
+       finalize_ssa_vuses, finalize_ssa_v_must_defs): New implmentation.
        (cleanup_v_may_defs): Use new implmentation.
-       (finalize_ssa_stmt_operands, start_ssa_stmt_operands): New 
+       (finalize_ssa_stmt_operands, start_ssa_stmt_operands): New
        implementation.
-       (append_def, append_use, append_v_may_def, append_vuse, 
+       (append_def, append_use, append_v_may_def, append_vuse,
        append_v_must_def): Call opbuild_append routine instead of using varray.
-       (build_ssa_operands): Simplify to simply use stmt, don't maintain a 
+       (build_ssa_operands): Simplify to simply use stmt, don't maintain a
        global parse_old_ops variable.
        (free_ssa_operands): New implementation.
        (update_stmt_operands): Move.  Change argument to build_ssa_operands.
        (add_call_clobber_ops, add_call_read_ops): Initialize opbuild list
        rather than a varray.
        (verify_imm_links): Use use_operand_p.
-       (dump_immediate_uses_for): If the immediate use variable is a virtual 
+       (dump_immediate_uses_for): If the immediate use variable is a virtual
        variable, show the virtual ops in the stmt.
        * tree-ssa-operands.h (def_operand_p): No longer a structure.
        (NULL_DEF_OPERAND_P): Now a #define.
        (STMT_USE_OPS, NUM_USES, SET_USE_OP, STMT_DEF_OPS, NUM_DEFS, SET_DEF_OP,
        STMT_V_MAY_DEF_OPS, NUM_V_MAY_DEFS, SET_V_MAY_DEF_RESULT,
        SET_V_MAY_DEF_OP, STMT_VUSE_OPS, NUM_VUSES, SET_VUSE_OP,
-       STMT_V_MUST_DEF_OPS, NUM_V_MUST_DEFS, SET_V_MUST_DEF_RESULT, 
+       STMT_V_MUST_DEF_OPS, NUM_V_MUST_DEFS, SET_V_MUST_DEF_RESULT,
        SET_V_MUST_DEF_KILL): Delete.
-       (V_MAY_DEF_OPS, V_MAY_DEF_RESULT_PTR, V_MAY_DEF_RESULT, 
+       (V_MAY_DEF_OPS, V_MAY_DEF_RESULT_PTR, V_MAY_DEF_RESULT,
        V_MAY_DEF_OP_PTR, V_MAY_DEF_OP): Rename to MAYDEF_*.
-       (V_MUST_DEF_OPS, V_MUST_DEF_RESULT_PTR, V_MUST_DEF_RESULT, 
+       (V_MUST_DEF_OPS, V_MUST_DEF_RESULT_PTR, V_MUST_DEF_RESULT,
        V_MUST_DEF_KILL_PTR, V_MUST_DEF_KILL): Rename to MUSTDEF_*.
        (enum ssa_op_iter_type): Operand iterator typechecking values.
        (struct ssa_operand_iterator_d): Use linked lists of operands.
        (FOR_EACH_PHI_ARG): New.  Iterate over PHI arguments.
        (FOR_EACH_PHI_OR_STMT_USE): New.  Iterate over PHI or stmt uses.
        (FOR_EACH_PHI_OR_STMT_DEF): New.  Iterate over PHI or stmt defs.
-       (SINGLE_SSA_TREE_OPERAND, SINGLE_SSA_USE_OPERAND, 
+       (SINGLE_SSA_TREE_OPERAND, SINGLE_SSA_USE_OPERAND,
        SINGLE_SSA_DEF_OPERAND, ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS): New.
        * tree-ssa-opfinalize.h: New.  Function templates for expansion.
        (FINALIZE_ALLOC): Expands into alloc_def, alloc_use, alloc_maydef,
        alloc_vuse, and alloc_mustdef.
-       (FINALIZE_FUNC): Expands into finalize_ssa_def_ops, 
+       (FINALIZE_FUNC): Expands into finalize_ssa_def_ops,
        finalize_ssa_use_ops, finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
        and finalize_ssa_v_must_def_ops.
        * tree-ssa-pre.c (add_to_sets): Pass tree to vn_add.
        stmt around.
        (compute_avail): Use generic iterator interface.
        * tree-ssa-propagate.c (first_vdef): Use generic operand interface.
-       (stmt_makes_single_load, stmt_makes_single_store): Use 
+       (stmt_makes_single_load, stmt_makes_single_store): Use
        ZERO_SSA_OPERANDS.
        * tree-ssa-sink.c (is_hidden_global_store): Use ZERO_SSA_OPERANDS.
        (statement_sink_location): Use generic interface.
        * tree-tailcall.c (find_tail_calls): Use ZERO_SSA_OPERANDS.
        (eliminate_tail_call): Use generic operand interface.
        * tree-vect-analyze.c (vect_analyze_data_refs): Use ZERO_SSA_OPERANDS.
-       (vect_mark_relevant, vect_mark_stmts_to_be_vectorized): Use generic 
+       (vect_mark_relevant, vect_mark_stmts_to_be_vectorized): Use generic
        interface.
-       * tree-vect-transform.c (update_vuses_to_preheader): Use generic 
+       * tree-vect-transform.c (update_vuses_to_preheader): Use generic
        interface.
        * tree-vectorizer.c (rename_variables_in_bb): Use generic interface.
        * tree-vn.c (struct val_expr_pair_d): Cache statment pointer instead of
        vuse_optype.
-       (vn_compute, val_expr_pair_hash, vn_add, vn_lookup, vn_lookup_or_add): 
+       (vn_compute, val_expr_pair_hash, vn_add, vn_lookup, vn_lookup_or_add):
        Use statement pointer instead of vuse_optype.  Use generic interface.
        * tree-vrp.c (maybe_add_assert_expr): Use generic interface.
        (stmt_interesting_for_vrp, vrp_visit_stmt): Use ZERO_SSA_OPERANDS.
 
 2005-05-02  Paolo Bonzini  <bonzini@gnu.org>
 
-        * c-common.c (resolve_overloaded_builtin): Forward to target
-        hook for BUILT_IN_MD built-ins.
-        * c-typeck.c (finish_call_expr): Call resolve_overloaded_builtin
-        for all types of built-in.
-        * target-def.h (TARGET_RESOLVE_OVERLOADED_BUILTIN): New.  Use it
-        in the definition of the target hooks struct.
-        * target.h (struct gcc_target): Add resolve_overloaded_builtin.
-        * config/rs6000/altivec.h: Rewritten.
-        * config/rs6000/rs6000-c.c (struct altivec_builtin_types,
-        altivec_resolve_overloaded_builtin, altivec_build_resolved_builtin,
-        rs6000_builtin_type, rs6000_builtin_type_compatible,
-        altivec_overloaded_builtins, rs6000_builtin_type,
-        rs6000_builtin_type_compatible): New.
-        * config/rs6000/rs6000.c (rs6000_builtin_types, rs6000_builtin_decls):
-        New.
-        (def_builtin): Turn into a function.  Check for duplicates and store
-        the builtin into rs6000_builtin_decls.
-        (bdesc_3arg, bdesc_dst, bdesc_altivec_preds, bdesc_2arg,
-        bdesc_1arg): Add overloaded builtins.
-        (altivec_expand_builtin): Check for unresolved overloaded builtins,
-        do not support ALTIVEC_COMPILETIME_ERROR.
-        (rs6000_init_builtins): Add opaque 128-bit vector, and internal
-        nodes to represent front-end types.
-        (altivec_init_builtins, rs6000_common_init_builtins): Create builtins
-        with opaque arguments and/or return values.
-        * config/rs6000/rs6000.h (enum rs6000_builtins): Remove
-        ALTIVEC_COMPILETIME_ERROR and add Altivec overloaded builtins.
-        (rs6000_builtin_type_index): New.
-        (is_ev64_opaque_type): Rename to...
-        (rs6000_is_opaque_type): ... this.
-        (rs6000_cpu_cpp_builtins): Install the resolve_overloaded_builtin
-        target hook.
+       * c-common.c (resolve_overloaded_builtin): Forward to target
+       hook for BUILT_IN_MD built-ins.
+       * c-typeck.c (finish_call_expr): Call resolve_overloaded_builtin
+       for all types of built-in.
+       * target-def.h (TARGET_RESOLVE_OVERLOADED_BUILTIN): New.  Use it
+       in the definition of the target hooks struct.
+       * target.h (struct gcc_target): Add resolve_overloaded_builtin.
+       * config/rs6000/altivec.h: Rewritten.
+       * config/rs6000/rs6000-c.c (struct altivec_builtin_types,
+       altivec_resolve_overloaded_builtin, altivec_build_resolved_builtin,
+       rs6000_builtin_type, rs6000_builtin_type_compatible,
+       altivec_overloaded_builtins, rs6000_builtin_type,
+       rs6000_builtin_type_compatible): New.
+       * config/rs6000/rs6000.c (rs6000_builtin_types, rs6000_builtin_decls):
+       New.
+       (def_builtin): Turn into a function.  Check for duplicates and store
+       the builtin into rs6000_builtin_decls.
+       (bdesc_3arg, bdesc_dst, bdesc_altivec_preds, bdesc_2arg,
+       bdesc_1arg): Add overloaded builtins.
+       (altivec_expand_builtin): Check for unresolved overloaded builtins,
+       do not support ALTIVEC_COMPILETIME_ERROR.
+       (rs6000_init_builtins): Add opaque 128-bit vector, and internal
+       nodes to represent front-end types.
+       (altivec_init_builtins, rs6000_common_init_builtins): Create builtins
+       with opaque arguments and/or return values.
+       * config/rs6000/rs6000.h (enum rs6000_builtins): Remove
+       ALTIVEC_COMPILETIME_ERROR and add Altivec overloaded builtins.
+       (rs6000_builtin_type_index): New.
+       (is_ev64_opaque_type): Rename to...
+       (rs6000_is_opaque_type): ... this.
+       (rs6000_cpu_cpp_builtins): Install the resolve_overloaded_builtin
+       target hook.
 
 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
 
        PR tree-optimization/21272
        PR tree-optimization/21266
        * tree-if-conv.c (find_phi_replacement_condition): Fix think-o.
-       
+
 2005-04-29  Kazu Hirata  <kazu@cs.umass.edu>
 
        * tree-flow-inline.h: Fix a comment typo.
        * config/arm/elf.h (TARGET_ASM_CONSTRUCTOR): Define.
        (SUPPORTS_INIT_PRIORITY): Evaluate to false for EABI based targets.
        * doc/tm.texi (INIT_ARRAY_SECTION_ASM_OP): Document.
-       (FINI_ARRAY_SECTION_ASM_OP): Likewise.  
+       (FINI_ARRAY_SECTION_ASM_OP): Likewise.
 
 2005-04-29  Nathan Sidwell  <nathan@codesourcery.com>
 
        * dbxout.c (have_used_extensions): Remove.
        (dbxout_type_fileds, dbxout_type, dbxout_symbol): Remove use of
        have_used_extensions.
-       
+
 2005-04-28  James E Wilson  <wilson@specifixinc.com>
 
        * doc/install.texi: Update -enable-languages info.  Correct path to
 
 2005-04-27  Caroline Tice  <ctice@apple.com>
 
-        * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
+       * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
        Remove targetm.have_named_sections test.
        (fix_edges_for_rarely_executed_code): Likewise.
        (insert_section_boundary_note): Likewise.
        (default_section_type_flags_1):  Get cold text section name from
        function struct if there is one; Set flags correctly for
        cold text section if there is not a current function struct.
-       
+
 2005-04-27  Richard Guenther  <rguenth@gcc.gnu.org>
 
        * tree-ssa-propagate.c (set_rhs): Revert last change.
        * rtl.h (optimize_save_area_alloca): Likewise...
        * passes.c (rest_of_compilation): and don't call it any more.
        * reg-notes.def (SAVE_AREA): Delete.
-       
+
 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
 
        * config/fp-bit.c (abort): Add noreturn attribute.
        * dbxout.c (dbxout_type): Check use_gnu_debug_info_extensions.
 
 2005-04-27  Matt Thomas <matt@3am-software.com>
-            Jan-Benedict Glaw <jbglaw@microdata-pos.de>
+           Jan-Benedict Glaw <jbglaw@microdata-pos.de>
 
        * config/vax/vax.c (vax_rtx_costs): Whitespace cleanup.
        (vax_output_mi_thunk): Ditto.
 
        * config/vax/vax.c (legitimate_constant_address_p): New.  Formerly
        CONSTANT_ADDRESS_P in config/vax/vax.h
-       (legitimate_constant_p): Added.  Formerly CONSTANT_P in vax.h. 
+       (legitimate_constant_p): Added.  Formerly CONSTANT_P in vax.h.
        (INDEX_REGISTER_P): New.
        (BASE_REGISTER_P): New.
        (indirectable_constant_address_p): New.  Adapted from
 2005-04-25  Devang Patel <dpatel@apple.com>
 
        * dbxout.c (dbxout_type): Emit attribute vector.
-       
+
 2005-04-05  Paul Brook  <paul@codesourcery.com>
 
        * target-def.h (TARGET_CXX_USE_AEABI_ATEXIT): Define.
 2005-04-24  Devang Patel  <dpatel@apple.com>
 
        *  config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
-       
+
 2005-04-24  Ian Lance Taylor  <ian@airs.com>
 
        * c-semantics.c (build_stmt): Remove test of specific tree codes
        config/stormy16/stormy16.c, config/v850/v850-c.c,
        config/v850/v850.c, config/xtensa/xtensa.c: Adjust warning()
        callers.
-       
+
 2005-04-23  Richard Henderson  <rth@redhat.com>
 
        PR rtl-opt/21102
 
        * builtins.c (gimplify_va_arg_expr): Reword comments to avoid
        'abort'. Use gcc_assert and gcc_unreachable as appropriate.
-       * c-format.c (get_constant, decode_format_attr, get_flag_spec, 
+       * c-format.c (get_constant, decode_format_attr, get_flag_spec,
        find_char_info_specifier_index,
        find_length_info_modifier_index): Likewise.
        * c-typeck.c (composite_type, pop_init_level): Likewise.
        final.c (this_is_asm_operands, shorten_branches, final_scan_insn,
        output_operand): Likewise
        flow.c (recompute_reg_usage): Likewise
-       * function.c (assign_stack_temp_for_type, assign_temp, 
+       * function.c (assign_stack_temp_for_type, assign_temp,
        handle_epilogue_set): Likewise
        * genextract.c (main): Likewise
        * gimplify.c (mostly_copy_tree_r, gimplify_return_expr,
        vectors.
        (gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest,
        lbv_to_gcc_expression, lle_to_gcc_expression,
-       lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest, 
+       lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest,
        perfect_nestify): Likewise.
        lambda.h (gcc_loopnest_to_lambda_loopnest,
        lambda_loopnest_to_gcc_loopnest): Likewise.
        cgraph_mark_inline_edge, cgraph_default_inline_p): Declare.
        * cgraphunit.c (cgraph_default_inline_p,
        cgraph_decide_inlining_incrementally,  ncalls_inlined,
-       nfunctions_inlined, initial_insns, overall_insns, 
+       nfunctions_inlined, initial_insns, overall_insns,
        cgraph_estimate_size_after_inlining, cgraph_estimate_growth,
        cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
        cgraph_mark_inline, cgraph_check_inline_limits,
        * tree.h: Likewise.
        * vec.h: Likewise.
        * tree-flow-inline.h (relink_imm_use): Use gcc_assert.
-       
+
        * optabs.c (prepare_cmp_insn, emit_cmp_and_jump_insns): Reword
        comments to avoid 'abort'.  Use gcc_assert as necessary.
        * opts.c (common_handle_option): Likewise.
        * regmove.c (try_auto_increment): Likewise.
        * reload.c (find_valid_class, find_reloads_toplev,
        find_equiv_reg): Likewise.
-       * reload1.c (reload, forget_old_reloads_1, function_invariant_p, 
+       * reload1.c (reload, forget_old_reloads_1, function_invariant_p,
        merge_assigned_reloads): Likewise.
        * tree-inline.c (inline_forbidden_p_1,
        estimate_num_insns_1): Likewise.
        get_indirect_ref_operands, create_ssa_artficial_load_stmt): Likewise.
        * tree-ssa-pre.c (find_or_generate_expression): Likewise.
        * tree-ssanames.c (release_ssa_name): Likewise.
-       * tree.c (int_bit_position, int_byte_position, tree_low_cst, 
+       * tree.c (int_bit_position, int_byte_position, tree_low_cst,
        walk_tree): Likewise.
 
        * tree-ssa-operands.c (verify_abort): Fold into ..
        * tree-if-conv.c (find_phi_replacement_condition): Avoid generating
        x = !(a == b) : p , q;.
        (pass_if_conversion): Verify stmts and flow.
-       
+
 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
 
        * optabs.c (gen_conditional_trap): Restore #define.
        (push_macro_expansion):  Chain on new macro. Process multiple
        args, create follow on expansion. Return follow on argument.
        (macro_input): Deal with multiple arguments.
-       
+
        * tree.h: Define VEC(tree,heap) and VEC(tree,gc).
        (struct tree_binfo): Adjust.
        * basic-block.h: Define VEC(edge,gc).
        lookup_avail_expr, record_range): Likewise.
        * tree-ssa-pre.c: Define VEC(basic_block,heap).
        (compute_antic_aux): Adjust.
-       (inserted_exprs, create_expression_by_pieces, 
-       insert_into_preds_of_block, eliminate, mark_operand_necessary, 
+       (inserted_exprs, create_expression_by_pieces,
+       insert_into_preds_of_block, eliminate, mark_operand_necessary,
        remove_dead_inserted_code, fini_pre): Likewise.
        * tree-ssa-propagate.c (interesting_ssa_edges): Adjust.
-       (varying_ssa_edges, add_ssa_edge, process_ssa_edge_worklist. 
+       (varying_ssa_edges, add_ssa_edge, process_ssa_edge_worklist.
        ssa_prop_init): Likewise.
        * tree-ssa.c: Define VEC(bitmap,heap).
        (verify_name_tags): Adjust.
        * varasm.c: Remove alias_pair pointer typedef, define
        VEC(alias_pair,gc).
        (finish_aliases_1, finish_aliases_2, assemble_alias): Adjust.
-       
+
        * config/pa/pa.c (typedef extern_symbol): Typedef the structure,
        not a pointer to it.  Create an object vector.
        (extern_symbols): Turn into an object vector.
 
 2005-04-19  Paul Brook  <paul@codesourcery.com>
 
-       * config/arm/arm.c (arm_init_libfuncs): Clear mod optabs. 
+       * config/arm/arm.c (arm_init_libfuncs): Clear mod optabs.
 
 2005-04-19  Andrew Haley  <aph@redhat.com>
 
 2005-04-18  Devang Patel  <dpatel@apple.com>
 
        * config/rs6000/atlivec.md (mulv4si3): New pattern.
-       
+
 2005-04-18  James A. Morrison  <phython@gcc.gnu.org>
 
        PR tree-optimization/20922