OSDN Git Service

* config/i386/i386.c (type_natural_mode): Use gcc_unreachable and
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index f07ba4d..ab071b8 100644 (file)
@@ -1,5 +1,525 @@
+2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * config/i386/i386.c (type_natural_mode): Use gcc_unreachable and
+       gcc_assert instead of abort.
+       (classify_argument, examine_argument, construct_container,
+       contains_128bit_aligned_vector_p, ix86_check_movabs,
+       standard_80387_constant_opcode, standard_80387_constant_rtx,
+       ix86_initial_elimination_offset, ix86_compute_frame_layout,
+       pro_epilogue_adjust_stack, ix86_expand_epilogue,
+       ix86_address_cost, legitimate_address_p, legitimize_pic_address,
+       legitimize_tls_address, output_pic_addr_const,
+       i386_output_dwarf_dtprel, put_condition_code, print_reg,
+       get_some_local_dynamic_name, print_operand, print_operand_address,
+       output_387_binary_op, emit_i387_cw_initialization,
+       output_fix_trunc, output_fp_compare, ix86_output_addr_vec_elt,
+       ix86_expand_clear, ix86_expand_binary_operator,
+       ix86_expand_unary_operator, ix86_match_ccmode, ix86_cc_mode,
+       ix86_cc_modes_compatible, ix86_fp_comparison_codes,
+       ix86_fp_comparison_arithmetics_cost, ix86_expand_fp_compare,
+       ix86_expand_branch, ix86_expand_setcc,
+       ix86_expand_carry_flag_compare, ix86_expand_fp_movcc,
+       ix86_expand_int_addcc, ix86_split_to_parts, ix86_split_long_move,
+       ix86_expand_movmem, ix86_expand_call, assign_386_stack_local,
+       memory_address_length, ix86_attr_length_immediate_default,
+       ix86_attr_length_address_default, ix86_agi_dependant,
+       x86_initialize_trampoline, ix86_init_mmx_sse_builtins,
+       ix86_expand_binop_builtin, ix86_force_to_memory,
+       ix86_secondary_memory_needed, ix86_avoid_jump_misspredicts,
+       x86_emit_floatuns): Likewise.
+       * config/i386/netware.c (gen_regparm_prefix,
+       i386_nlm_strip_name_encoding): Likewise.
+       * config/i386/winnt.c (i386_pe_mark_dllexport): Likewise.
+
+2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * optabs.c (gen_condiational_trap): Remove #define.
+       (add_equal_note): Assertify. Remove explicit indirection from
+       call via function pointer.
+       (expand_ternary_op, expand_simple_binop, expand_binop,
+       expand_twoval_unop, expand_twoval_binop,
+       expand_twoval_binop_libfunc, expand_simple_unop expand_unop,
+       emit_unop_insn,  emit_no_conflict_block,  prepare_cmp_insn,
+       prepare_operand emit_cmp_and_jump_insn_1, emit_cmp_and_jump_insns,
+       prepare_float_lib_cmp, emit_conditional_move,
+       emit_conditional_add, gen_add2_insn, gen_add3_insn,
+       have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn,
+       expand_float, expand_fix, debug_optab_libfuncs, gen_cond_trap,
+       vector_compare_rtx, expand_vec_cond_expr): Likewise.
+
+2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * vec.h: Update API to separate allocation mechanism from type.
+       (VEC_safe_grow): New.
+       * vec.c (calculate_allocation): New.
+       (vec_gc_o_reserve, vec_heap_o_reserve): Adjust.
+       (vec_gc_free, vec_heap_free): Remove.
+       * gengtype-lex.l (DEF_VEC_): Process mult-argument macros.  Adjust.
+       (VEC): Likewise.
+       (mangle_macro_name): New.
+       (struct macro_def): New.
+       (struct macro): Add multiple argument values.
+       (macro_expans_end): New.
+       (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).
+       (struct edge_def): Adjust.
+       (struct basic_block_def, struct edge_iterator): Likewise.
+       (ei_container, ei_start_1, ei_last_1): Likewise.
+       * cfg.c (connect_src, connect_dest): Likewise.
+       * cfgrtl.c (force_nonfallthru_and_redirect)
+       * dbxout.c (dbxout_type)
+       * dwarf2out.c (gen_member_die)
+       * lambda-code.c: Define VEC(int,gc), VEC(lambda_loop,gc).
+       (gcc_tree_to_linear_expression): Adjust.
+       (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,
+       perfect_nestify): Likewise.
+       * lambda.h (gcc_loopnest_to_lambda_loopnest,
+       lambda_loopnest_to_gcc_loopnest): Adjust prototypes.
+       * profile.c (instrument_values): Adjust.
+       * tree-cfg.c (modified_noreturn_calls): Adjust.
+       (remove_fallthru_edge): Likewise.
+       * tree-dump.c (dequeue_and_dump): Adjust.
+       * tree-flow-inline.h (mark_stmt_modified): Adjust.
+       * tree-flow.h (modified_noreturn_calls): Adjust.
+       (tree_on_heap): Remove. (yay!)
+       (register_new_def): Adjust.
+       * tree-into-ssa.c: Define VEC(int,heap).
+       (block_defs_stack): Adjust.
+       (find_idf, insert_phi_nodes, register_new_def,
+       rewrite_initialize_block, rewrite_finalize_block,
+       register_new_update_single, rewrite_update_init_block,
+       rewrite_update_fini_block, rewrite_blocks,
+       ssa_rewrite_finalize_block, ssa_register_new_def,
+       ssa_rewrite_initialize_block, rewrite_ssa_into_ssa): Likewise.
+       * tree-loop-linear.c (linear_transform_loops): Adjust.
+       * tree-ssa-alias.c: Define VEC(fieldoff_t,heap).
+       (push_fields_onto_fieldstack, create_overlap_variables_for): Adjust.
+       * tree-ssa-dom.c (avail_exprs_stack, block_defs_stack,
+       stmts_to_rescan, const_and_copies_stack, nonzero_vars_stack,
+       vrp_variables_stack): Adjust declarations.
+       (tree_ssa_dominator_optimize): Adjust.
+       (dom_opt_initialize_block, remove_local_expressions_from_table,
+       restore_nonzero_vars_to_original_value,
+       restore_vars_to_original_value,
+       restore_currdefs_to_original_value, dom_opt_finalize_block,
+       record_var_is_nonzero, record_cond, record_const_or_copy_1,
+       optimize_stmt, update_rhs_and_lookup_avail_expr,
+       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, 
+       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. 
+       ssa_prop_init): Likewise.
+       * tree-ssa.c: Define VEC(bitmap,heap).
+       (verify_name_tags): Adjust.
+       * value-prof.c (rtl_divmod_values_to_profile): Adjust.
+       (insn_prefetch_values_to_profile, rtl_find_values_to_profile,
+       tree_divmod_values_to_profile, tree_find_values_to_profile,
+       value_profile_transformations): Likewise.
+       * value-prof.h: Define VEC(histogram_value,heap).
+       * 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.
+       (pa_hpux_asm_output_external, pa_hpux_file_end): Adjust.
+
+2005-04-21  Sebastian Pop  <pop@cri.ensmp.fr>
+
+       PR/20742
+       * Makefile.in (tree-chrec.o): Depend on params.h.
+       * params.def (PARAM_SCEV_MAX_EXPR_SIZE): New parameter with
+       default value 20.
+       * tree-chrec.c: Depend on params.h.  Replace build with buildN,
+       and fold build with fold_buildN.
+       (chrec_fold_plus_1): Fail with a chrec_don_know when the size of
+       the expression exceeds PARAM_SCEV_MAX_EXPR_SIZE.
+       (tree_contains_chrecs): Compute an estimation of the size of the
+       given expression.
+       * tree-chrec.h (tree_contains_chrecs): Modify its declaration.
+       (tree_does_not_contain_chrecs): Update the use of tree_contains_chrecs.
+       * tree-scalar-evolution.c (simple_iv): Ditto.
+       * doc/invoke.texi (scev-max-expr-size): Documented.
+
+2005-04-21  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config.gcc (*-*-darwin*): Add darwin.opt to $extra_options.
+       (i[34567]86-pc-msdosdjgpp*): Likewise i386/djgpp.opt.
+       (i[34567]86-*-lynxos*, powerpc-*-lynxos*): Likewise lynx.opt.
+       (i[34567]86-*-sco3.2v5*): Likewise i386/sco5.opt.
+       (i[34567]86-*-pe, i[34567]86-*-cygwin*, i[34567]86-*-mingw32*)
+       (i[34567]86-*-uwin*): Likewise i386/cygming.opt.
+       * config/darwin.h (darwin_one_byte_bool, darwin_fix_and_continue)
+       (darwin_fix_and_continue_switch, SUBTARGET_OPTIONS): Delete.
+       * config/darwin.c (darwin_one_byte_bool, darwin_fix_and_continue)
+       (darwin_fix_and_continue_switch): Delete.
+       * config/lynx.h (SUBTARGET_OS_LYNX_SWITCHES): Delete.
+       (SUBTARGET_SWITCHES): Delete.
+       * config/i386/i386.h (target_flags, MASK_80387, MASK_RTD)
+       (MASK_ALIGN_DOUBLE, MASK_SVR3_SHLIB, MASK_IEEE_FP, MASK_FLOAT_RETURNS)
+       (MASK_NO_FANCY_MATH_387, MASK_OMIT_LEAF_FRAME_POINTER)
+       (MASK_STACK_PROBE, MASK_NO_ALIGN_STROPS, MASK_INLINE_ALL_STROPS)
+       (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS, MASK_MMX)
+       (MASK_SSE, MASK_SSE2, MASK_SSE3, MASK_3DNOW, MASK_3DNOW_A)
+       (MASK_128BIT_LONG_DOUBLE, MASK_64BIT, MASK_MS_BITFIELD_LAYOUT)
+       (MASK_TLS_DIRECT_SEG_REFS, MASK_NO_RED_ZONE, TARGET_80387)
+       (TARGET_RTD, TARGET_ALIGN_DOUBLE, TARGET_PUSH_ARGS)
+       (TARGET_ACCUMULATE_OUTGOING_ARGS, TARGET_SVR3_SHLIB, TARGET_IEEE_FP)
+       (TARGET_128BIT_LONG_DOUBLE, TARGET_NO_FANCY_MATH_387)
+       (TARGET_USE_FANCY_MATH_387, TARGET_OMIT_LEAF_FRAME_POINTER)
+       (TARGET_DEBUG_ADDR, TARGET_DEBUG_ARG): Delete.
+       (TARGET_FLOAT_RETURNS_IN_80387): Make an alias of TARGET_FLOAT_RETURNS.
+       (TARGET_64BIT): Undef before redefining.
+       (TARGET_TLS_DIRECT_SEG_REFS, TARGET_STACK_PROBE)
+       (TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS, TARGET_SSE)
+       (TARGET_SSE2, TARGET_SSE3, TARGET_MMX, TARGET_3DNOW, TARGET_3DNOW_A)
+       (TARGET_RED_ZONE, TARGET_USE_MS_BITFIELD_LAYOUT, TARGET_SWITCHES)
+       (TARGET_OPTIONS, SUBTARGET_SWITCHES, SUBTARGET_OPTIONS)
+       (ix86_fpmath_string, ix86_tls_dialect_string, ix86_cmodel_string)
+       (ix86_asm_string, ix86_regparm, ix86_regparm_string)
+       (ix86_preferred_stack_boundary_string, ix86_branch_cost_string)
+       (ix86_debug_arg_string, ix86_debug_addr_string)
+       (ix86_align_loops_string, ix86_align_jumps_string)
+       (ix86_align_funcs_string): Delete.
+       * config/i386/cygming.h (MASK_NOP_FUN_DLLIMPORT)
+       (TARGET_NOP_FUN_DLLIMPORT, SUBTARGET_SWITCHES): Delete.
+       * config/i386/djgpp.h (MASK_BNU210, SUBTARGET_SWITCHES): Delete.
+       (SUBTARGET_OVERRIDE_OPTIONS): Check TARGET_BNU210.
+       * config/i386/lynx.h (SUBTARGET_SWITCHES): Delete.
+       * config/i386/sco5.h (MASK_COFF, TARGET_ELF)
+       (SUBTARGET_SWITCHES): Delete.
+       * config/i386/i386.c (ix86_debug_arg_string): Delete.
+       (ix86_debug_addr_string): Delete.
+       (ix86_cmodel_string, ix86_asm_string, ix86_tls_dialect_string)
+       (ix86_fpmath_string, ix86_regparm_string, ix86_regparm)
+       (ix86_align_loops_string, ix86_align_jumps_string)
+       (ix86_preferred_stack_boundary_string, ix86_branch_cost_string)
+       (ix86_align_funcs_string): Make static.
+       (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
+       (ix86_handle_option): New function.
+       (TARGET_USE_MS_BITFIELD_LAYOUT): Delete.
+       (ix86_ms_bitfield_layout_p): Check TARGET_MS_BITFIELD_LAYOUT.
+       * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Remove handling
+       of darwin_fix_and_continue_switch.
+       (darwin_one_byte_bool): Delete.
+       * config/rs6000/lynx.h (EXTRA_SUBTARGET_SWITCHES): Delete.
+       * config/rs6000/rs6000.c (rs6000_override_options): Update assignment
+       to darwin_one_byte_bool.
+       * config/darwin.opt, config/lynx.opt, config/i386/cygming.opt,
+       * config/i386/djgpp.opt, config/i386/i386.opt,
+       * config/i386/sco5.opt: New files.
+
+2005-04-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       * config/sparc/sparc.c (reg_or_0_operand, const1_operand,
+       fp_zero_operand, fp_register_operand, intreg_operand,
+       fcc_reg_operand, fcc0_reg_operand, icc_or_fcc_reg_operand,
+       call_operand, call_operand_address, tgd_symbolic_operand,
+       tld_symbolic_operand, tie_symbolic_operand, tle_symbolic_operand,
+       symbolic_operand, symbolic_memory_operand, label_ref_operand,
+       sp64_medium_pic_operand, data_segment_operand,
+       text_segment_operand, splittable_symbolic_memory_operand,
+       reg_or_nonsymb_mem_operand, splittable_immediate_memory_operand,
+       eq_or_neq, normal_comp_operator, noov_compare_op,
+       noov_compare64_op, v9_regcmp_op, extend_op, cc_arithop,
+       cc_arithopn, arith_operand, arith_4096_operand, arith_add_operand,
+       const64_operand, const64_high_operand, arith11_operand,
+       arith10_operand, arith_double_operand, arith_double_4096_operand,
+       arith_double_add_operand, arith11_double_operand,
+       arith10_double_operand, small_int, small_int_or_double,
+       uns_small_int, uns_arith_operand, clobbered_register,
+       input_operand, compare_operand): Delete.
+       (sparc_emit_set_const32): Use predicates in assertion.  Remove special
+       code for TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT != 64.
+       (sparc_emit_set_const64): Call gcc_unreachable if H_B_P_W_I == 32.
+       (GEN_HIGHINT64, GEN_INT64): Delete.
+       (sparc_emit_set_safe_HIGH64, gen_safe_SET64, gen_safe_OR64,
+       gen_safe_XOR64): Adjust for above deletion.
+       (sparc_emit_set_const64): Support only H_B_P_W_I == 64 and CONST_INTs.
+       Use 'unsigned HOST_WIDE_INT' instead of 'long' for bitmask.
+       (legitimate_constant_p): Use const_zero_operand instead.
+       (sparc_extra_constraint_check): Likewise.
+       * config/sparc/sparc.h (CONST_DOUBLE_OK_FOR_LETTER_P): Remove 'O'.
+       (PREFERRED_RELOAD_CLASS): Use const_zero_operand.
+       (PREDICATE_CODES): Delete.
+       * config/sparc/sparc.md: Include predicates.md.
+       (All patterns): Adjust for new predicate names.
+       (cmpdi, cmpdi_sp64): Use arith_operand predicate.
+       (movhi_const64_special, movsi_const64_special): Add 'K' constraint.
+       (movdi): Use general_operand predicate.
+       (movdi_sp64_dbl): Delete.
+       (movdi_const64_special): Add 'N' constraint.
+       (movdicc): Use arith10_operand predicate.
+       (movdi_cc_sp64, movdi_cc_sp64_trunc): Use arith11_operand predicate.
+       (movdi_cc_reg_sp64): Use arith10_operand predicate.
+       (movdi_cc_reg_sp64_trunc): Delete.
+       (cmp_zero_extract, cmp_zero_extract_sp64): Use small_int_operand.
+       (adddi3_sp64, cmp_ccx_plus, cmp_ccx_plus_set): Use arith_operand.
+       (subdi3_sp32): Delete.
+       (subdi3_insn_sp32): Change to define_insn_and_split.
+       (subdi3_sp64, cmp_minus_ccx, cmp_minus_ccx_set): Use arith_operand.
+       (muldi3, muldi3_sp64, muldi3_v8plus): Likewise.
+       (smulsi3_highpart_v8plus, const_smulsi3_highpart_v8plus,
+       umulsi3_highpart_v8plus, const_umulsi3_highpart_v8plus): Use
+       small_int_operand predicate.
+       (divdi3, udivdi3): Use arith_operand predicate.
+       (udivsi3, udivsi3_sp32, udivsi3_sp64): Use nonimmediate_operand.
+       (and<V64I>3_sp64, ior<V64I>3_sp64, xor<V64I:mode>3_sp64,
+       xor_not_<V64I:mode>_sp64) : Use arith_operand predicate.
+       (xordi3_sp64_dbl): Delete.
+       (cmp_ccx_arith_op, cmp_ccx_arith_op_set, cmp_ccx_xor_not,
+       cmp_ccx_xor_not_set, cmp_ccx_arith_op_not, cmp_ccx_arith_op_not_set,
+       cmp_ccx_neg, cmp_ccx_set_neg, one_cmpl<V64I>2_sp64, cmp_ccx_not,
+       cmp_ccx_set_not): Use arith_operand predicate.
+       (ashrsi3_extend2, lshrsi3_extend2 et al.): Use small_int_operand.
+       * config/sparc/predicates.md: New file.
+
+2005-04-21  Kazu Hirata  <kazu@cs.umass.edu>
+
+       PR tree-optimization/14846
+       * fold-const.c (fold_single_bit_test_into_sign_test): New,
+       split out from ...
+       (fold_single_bit_test): ... here.
+       (fold_binary): Call fold_single_bit_test_into_sign_test
+       instead of fold_single_bit_test.
+
+2005-04-20  James E Wilson  <wilson@specifixinc.com>
+
+       PR c++/20805
+       * dwarf2out.c (gen_variable_die): Don't emit a specification if this
+       is another declaration.
+
+2005-04-21  Hans-Peter Nilsson  <hp@axis.com>
+
+       * config/cris/predicates.md: New file.
+       * config/cris/cris-protos.h (cris_store_multiple_op_p)
+       (cris_movem_load_rest_p): Declare.
+       * config/cris/cris.c (cris_store_multiple_op): Return bool, not int.
+       (cris_movem_load_rest_p): Ditto.  Globalize.
+       (cris_bdap_operand, cris_bdap_biap_operand,
+       cris_orthogonal_operator, cris_commutative_orth_op,
+       cris_operand_extend_operator,
+       cris_additive_operand_extend_operator, cris_extend_operator,
+       cris_plus_or_bound_operator, cris_mem_op,
+       cris_general_operand_or_symbol,
+       cris_general_operand_or_gotless_symbol,
+       cris_general_operand_or_plt_symbol, cris_mem_call_operand,
+       cris_load_multiple_op): Remove predicate functions.
+       (cris_symbol, cris_gotless_symbol) <case UNSPEC>: Return 0, don't
+       abort, for UNSPECs other than CRIS_UNSPEC_PLT.
+       * config/cris/cris.h (PREDICATE_CODES): Don't define.
+       * config/cris/cris.md: Include predicates.md.
+       ("call", "call_value"): Generate CONSTs of Pmode, not VOIDmode.
+
+2005-04-20  Ian Lance Taylor  <ian@airs.com>
+
+       * c-common.def: Remove STMT_EXPR (moved to cp/cp-tree.def).
+       * c-common.h (STMT_EXPR_STMT): Don't define.
+       (STMT_EXPR_NO_SCOPE): Don't define.
+       * c-dump.c (c_dump_tree): Don't handle STMT_EXPR.
+       * c-pretty-print.c (pp_c_primary_expression): Likewise.
+       (pp_c_expression): Likewise.
+
+2005-04-20  Richard Henderson  <rth@redhat.com>
+
+       PR target/21100
+       * config/i386/mmx.md (push<MMXMODE>1): Fix predicate thinko.
+
+2005-04-20  Jeff Law  <law@redhat.com>
+
+       * reload1.c (reload): Ignore equivalences between pseudos and
+       read only memory.
+
+2005-04-20  Joseph S. Myers  <joseph@codesourcery.com>
+
+       PR c/12913
+       * c-tree.h (struct c_label_list): Update comment.
+       (struct c_label_context): Rename to struct c_label_context_se.
+       (label_context_stack): Rename to label_context_stack_se.
+       (C_DECL_UNJUMPABLE_VM, C_DECL_UNDEFINABLE_VM, struct
+       c_label_context_vm, label_context_stack_vm, c_begin_vm_scope,
+       c_end_vm_scope): New.
+       (C_DECL_DECLARED_BUILTIN, C_DECL_USED): Use FUNCTION_DECL_CHECK.
+       * c-decl.c (pop_scope): Call c_end_vm_scope.
+       (pushdecl): Call c_begin_vm_scope for variably modified
+       declarations.
+       (define_label): Check for jumping into scope of identifier with
+       variably modified type.  Push label on stack for those defined at
+       current context of identifiers with variably modified type.
+       (start_function): Create stack level for context of identifiers
+       with variably modified type.
+       (finish_function): Pop stack level for context of identifiers with
+       variably modified type.
+       * c-typeck.c (label_context_stack): Rename to
+       label_context_stack_se.
+       (label_context_stack_vm, c_begin_vm_scope, c_end_vm_scope): New.
+       (c_finish_goto_label): Check for jumping into scope of identifier
+       with variably modified type.  Push label on stack for those jumped
+       to from current context of identifiers with variably modified
+       type.
+       (struct c_switch): Add blocked_vm.
+       (c_start_case): Initialize blocked_vm.
+       (do_case): Check blocked_vm.
+       (c_finish_case): Add comment.
+       (c_begin_stmt_expr, c_finish_stmt_expr): Update for renamed
+       variable label_context_stack.
+
+2005-04-20  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * tree-ssa-phiopt.c (tree_ssa_phi_opt): Update calls to
+       conditional_replacement, value_replacement, abs_replacement,
+       minmax_replacement.
+       (replace_phi_edge_with_variable): Remove argument BB.
+       (conditional_replacement, value_replacement,
+       minmax_replacement, abs_replacement): Remove argument PHI_BB.
+       Update a call to replace_phi_edge_with_variable.
+
+       * tree-ssa-phiopt.c: Fix comments.
+
+2005-04-20  Michael Matz  <matz@suse.de>
+
+       PR20973
+       * reload.c (push_reload, find_dummy_reload): Check for uninitialized
+       pseudos.
+
+2005-04-20  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * tree-ssa-phiopt.c: Fix comment typos.
+
+       PR tree-optimization/21116
+       * tree-ssa-phiopt.c: Fix a typo.
+
+2005-04-19  Richard Henderson  <rth@redhat.com>
+
+       * builtins.c (expand_builtin_sync_operation): Revert last change.
+       * optabs.c (expand_bool_compare_and_swap): Compare vs old value,
+       not vs new value.
+       (expand_compare_and_swap_loop): Likewise.
+       (expand_sync_operation): Remove fallback from NAND to AND; invert
+       memory operand when expanding from cmpxchg.
+       (expand_sync_fetch_operation): Likewise.
+       * doc/extend.texi (Atomic Builtins): Fix docs for nand and
+       compare-and-swap.
+
+       * config/alpha/alpha.c (alpha_split_atomic_op): Invert memory operand
+       when implementing NAND.  Fix double-add for AFTER.
+       * config/alpha/sync.md (sync_nand<I48MODE>): Invert memory operand.
+       (sync_old_nand<I48MODE>, sync_new_nand<I48MODE>): Likewise.
+       (sync_compare_and_swap<I48MODE>): Fix compare vs zero.  Return old
+       memory value.
+       (sync_lock_test_and_set<I48MODE>): Remove extra label and last
+       memory barrier.
+
+       * config/i386/sync.md (sync_compare_and_swap<IMODE>): Fix pattern
+       to return old memory value.
+       (sync_compare_and_swap_cc<IMODE>): Likewise.
+
+       * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Early
+       return pre-reload.  Don't consider output or anti dependencies.
+       * config/ia64/sync.md (IMODE): New.
+       (modesuffix): Add QI and HI.
+       (memory_barrier): Simplify expansion.
+       (sync_compare_and_swap<IMODE>): Use IMODE, not I48MODE.
+       (cmpxchg_acq_<IMODE>): Likewise.
+       (sync_lock_test_and_set<IMODE>): Likewise.
+       (sync_lock_release<IMODE>): Likewise.
+
+2005-04-19  James A. Morrison  <phython@gcc.gnu.org>
+
+       * fold-const.c (fold_binary): Fold ~(X ^ Y) to ~X ^ Y or X ^ ~Y if
+       ~X or ~Y simplify.
+
+2005-04-19  James A. Morrison  <phython@gcc.gnu.org>
+
+       * fold-const (fold_binary):  Fold ~X ^ ~ Y to X ^ Y.
+
+2005-04-20  Michael Pogue  <michael.pogue@sun.com>
+            Joseph S. Myers  <joseph@codesourcery.com>
+
+       * c.opt (Wint-to-pointer-cast, Wpointer-to-int-cast): New options.
+       * c-typeck.c (build_c_cast): Check these options.
+       * doc/invoke.texi: Document these options.
+
+2005-04-20  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * tree-ssa-phiopt.c: Update a comment about the pass.
+
+2005-04-19  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * tree-ssa-phiopt.c, config/arm/arm.c, config/fr30/fr30.md,
+       config/mcore/mcore.c: Fix comment typos.
+
+2005-04-19  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * Makefile.in (libgcc.mk): Pass GCC_FOR_TARGET.
+       * mklibgcc.in: Use $GCC_FOR_TARGET instead of ./xgcc.
+
+2005-04-19  Paul Brook  <paul@codesourcery.com>
+
+       * config/arm/arm.c (arm_init_libfuncs): Clear mod optabs. 
+
+2005-04-19  Andrew Haley  <aph@redhat.com>
+
+       PR java/21022
+       * dbxout.c (dbxout_type_fields): Check DECL_IGNORED_P before
+       looking at a field's bitpos.
+
+2005-04-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * system.h (fopen, fdopen, freopen): Define these to the unlocked
+       libiberty functions.
+
+2005-04-19  Kazu Hirata  <kazu@cs.umass.edu>
+
+       PR tree-optimization/21096
+       * tree-ssa-copy.c (fini_copy_prop): Free cached_last_copy_of.
+
+2005-04-19  Alan Modra  <amodra@bigpond.net.au>
+
+       PR target/21098
+       * config/rs6000/rs6000.c (rs6000_elf_end_indicate_exec_stack): New.
+       * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Use the above.
+
+2005-04-19  Alexandre Oliva  <aoliva@redhat.com>
+
+       * tree-cfg.c (dump_function_to_file): Use cfun info only if it
+       refers to the function being dumped.
+
+2005-04-18  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * varasm.c (assemble_start_function): Remove reset of in_section.
+
+2005-04-18  James A. Morrison  <phython@gcc.gnu.org>
+
+       PR tree-optimization/21085
+       * fold-const (fold_binary): Don't change X % -C to X % C if C has
+       overflowed.
+
+2005-04-19  Ben Elliston  <bje@au.ibm.com>
+
+       * doc/invoke.texi (Optimize Options): Refer to the correct
+       optimisation flag -ftree-dominator-opts, not -ftree-dom.
+
+2005-04-18  Christopher Jaillet <christophe.jaillet@wanadoo.fr>
+
+       * config/rs6000/rs6000.c (machopic_output_stub):  Increase
+       alloca argument to be big enough.
+
 2005-04-18  Alexandre Oliva  <aoliva@redhat.com>
 
+       PR middle-end/21049
        * tree-cfg.c (dump_function_to_file): Do not crash if cfun or
        cfun->cfg are NULL.