+2005-05-07 Hans-Peter Nilsson <hp@axis.com>
+
+ * config/cris/cris.md ("*movdi_insn", "*mov_sidesisf_biap")
+ ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
+ Handle moved operand being in special register.
+ ("smulsi3_highpart", "umulsi3_highpart"): Change .error into
+ presumed working insn.
+ (mover2side): Add FIXME.
+
+2005-05-07 Richard Sandiford <rsandifo@redhat.com>
+
+ * integrate.c (get_func_hard_reg_initial_val): Delete.
+ (has_func_hard_reg_initial_val): Delete.
+ (get_hard_reg_initial_val): Inline the old implementation of
+ get_func_hard_reg_initial_val. Use has_hard_reg_initial_val
+ instead of has_func_hard_reg_initial_val to test for an existing
+ pseudo. Only create an rtx if a new initial value entry is needed.
+ (has_hard_reg_initial_val): Scan the initial value list directly.
+ Don't create an rtx.
+
+2005-05-07 David Edelsohn <edelsohn@gnu.org>
+
+ * config.gcc ({powerpc,rs6000}-ibm-aix*): Remove rs6000/aix.opt
+ from extra_options.
+ * config.in (HAVE_AS_POPCNTB): New.
+ * configure.ac (HAVE_AS_MFCRF): Add .machine "pwr5" to AIX test.
+ (HAVE_AS_POPCNTB): New.
+ * configure: Regenerated.
+ * config/rs6000/aix.h (TARGET_XL_COMPAT): Delete.
+ * config/rs6000/rs6000.c (rs6000_override_options, power5): Add
+ MASK_POPCNTB. Uncomment rs6000_sched_restricted_insns_priority
+ and rs6000_sched_costly_dep.
+ * config/rs6000/rs6000.h (TARGET_POPCNTB): New.
+ (TARGET_XL_COMPAT): Delete.
+ * config/rs6000/rs6000.md (UNSPEC_POPCNTB): New.
+ (popcount<mode>2): New.
+ (popcntb<mode>2): New.
+ * config/rs6000/rs6000.opt (mpopcntb): New.
+
+ * opt-functions.awk (var_set): Emit OPTION_MASK_ for InverseMask
+ if variable name exists.
+
+2005-05-07 Matt Kraai <kraai@ftbfs.org>
+
+ * Makefile.in (c-gimplify.o): Depend on $(RTL_H) instead of rtl.h.
+
+2005-05-07 Richard Henderson <rth@redhat.com>
+
+ PR target/21412
+ * config/rs6000/rs6000.c (rs6000_emit_move): Look for tls addresses
+ with constant offsets.
+
+2005-05-07 Nathan Sidwell <nathan@codesourcery.com>
+
+ * config/v850/v850.c (print_operand): Use gcc_assert and
+ gcc_unreachable, as appropriate.
+ (print_operand_address, v850_handle_data_area_attribute,
+ v850_encode_data_area, construct_restore_jr, construct_save_jarl,
+ v850_insert_attributes, construct_prepare_instruction): Likewise.
+ * config/v850/v850.h (INITIAL_ELIMINATION_OFFSET): Likewise.
+ * config/v850/v850.md (movsicc, *sasf_1): Likewise.
+
+2005-05-07 Kazu Hirata <kazu@cs.umass.edu>
+
+ * tree-ssa-loop-ivcanon.c, config/i386/i386.c,
+ config/rs6000/rs6000.h: Fix comment typos.
+
+2005-05-07 Richard Sandiford <rsandifo@redhat.com>
+
+ * doc/invoke.texi: Remove documentation for MIPS' -mint64 option.
+ * config/mips/mips.c (TARGET_SCALAR_MODE_SUPPORTED_P): Delete.
+ (mips_scalar_mode_supported_p): Delete.
+
+2005-05-06 Eric Christopher <echristo@redhat.com>
+
+ * config/mips/mips.opt: Remove -mint64 option.
+ * config/mips/mips.c (override_options): Remove -mint64
+ handling.
+ * config/mips/mips.h (INT_TYPE_SIZE): Define to 32.
+ * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Remove
+ 64-bit integer handling.
+ * doc/invoke.texi (Option Summary): Remove -mint64 for
+ mips.
+
+2005-05-06 Zdenek Dvorak <dvorakz@suse.cz>
+
+ PR tree-optimization/19401
+ * tree-flow.h (tree_unroll_loops_completely): Declaration changed.
+ * tree-ssa-loop-ivcanon.c (enum unroll_level): New.
+ (estimated_unrolled_size): New function.
+ (try_unroll_loop_completely, canonicalize_loop_induction_variables,
+ tree_unroll_loops_completely): Always unroll loops if the code size
+ does not increase.
+ * tree-ssa-loop.c (tree_complete_unroll): Indicate whether all
+ loops should be unrolled completely.
+ (gate_tree_complete_unroll): Run complete unrolling unconditionally.
+
+2005-05-06 Zdenek Dvorak <dvorakz@suse.cz>
+
+ PR rtl-optimization/21254
+ * loop-iv.c (iv_number_of_iterations): Simplify infiniteness
+ assumptions for loops that otherwise do not roll.
+ (find_simple_exit): Prefer # of iterations that is guaranteed
+ not to be infinite.
+ * loop-unroll.c (decide_peel_once_rolling,
+ decide_peel_completely): Check whether the loop is infinite.
+
+2005-05-06 Pat Haugen <pthaugen@us.ibm.com>
+
+ * config/rs6000/sysv4.opt: Fix typo.
+
+2005-05-06 Denis Vlasenko <vda@port.imtp.ilyichevsk.odessa.ua>
+ Jakub Jelinek <jakub@redhat.com>
+
+ PR target/21329
+ * config/i386/i386.c (ix86_expand_movmem): Don't use rep; movsb
+ for -Os if (movsl;)*(movsw;)?(movsb;)? sequence is shorter.
+ Don't use rep; movs{l,q} if the repetition count is really small,
+ instead use a sequence of movs{l,q} instructions.
+
+2005-05-06 Jeff Law <law@redhat.com>
+
+ PR tree-optimization/21380
+ * tree-ssa-threadupdate.c (thread_through_all_blocks): Do not
+ thread through a block with no preds.
+
+2005-05-06 Kazu Hirata <kazu@cs.umass.edu>
+
+ * tree-ssa-operands.c (clobbered_v_may_defs, clobbered_vuses,
+ ro_call_vuse, fini_ssa_operands, add_call_clobber_ops,
+ add_call_read_ops): Use VEC instead of VARRAY.
+
+2005-05-06 Nathan Sidwell <nathan@codesourcery.com>
+
+ * config/mcore/mcore.c (mcore_print_operand_address): Use
+ gcc_assert and gcc_unreachable as appropriate.
+ (mcore_print_operand, mcore_gen_compare_reg, mcore_output_call,
+ mcore_output_andn, output_inline_const, mcore_output_move,
+ mcore_output_movedouble, mcore_expand_block_move,
+ layout_mcore_frame, mcore_initial_elimination_offset,
+ mcore_expand_prolog, mcore_mark_dllexport,
+ mcore_mark_dllimport): Likewise.
+ * config/mcore/mcore.h (switch_to_section): Likewise.
+ * config/mcore/mcore.md: Likewise.
+
+2005-05-06 Aldy Hernandez <aldyh@redhat.com>
+
+ * config/rs6000/linux64.h: Remove MASK_PROFILE_KERNEL, and
+ TARGET_PROFILE_KERNEL.
+
+ * config/rs6000/rs6000.c (output_profile_hook): Add comment to
+ TARGET_PROFILE_KERNEL use.
+
+2005-05-06 Nathan Sidwell <nathan@codesourcery.com>
+
+ * config/m32r/m32r.c (m32r_encode_section_info): Use gcc_assert
+ and gcc_unreachable, as appropriate.
+ (gen_compare, gen_split_move_double, m32r_setup_incoming_varargs,
+ m32r_expand_prologue, m32r_output_function_epilogue,
+ m32r_legitimize_pic_address, m32r_print_operand_address,
+ emit_cond_move, m32r_function_symbol,
+ m32r_output_block_move): Likewise.
+ * 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
+ * varasm.c (merge_weak): Remove NEWDECL from WEAK_DECLS chain
+ if both NEWDECL and OLDDECL are already weak.
+
+2005-05-06 Richard Sandiford <rsandifo@redhat.com>
+
+ * config/rs6000/sysv4.h (EXTRA_SUBTARGET_SWITCHES): Delete.
+
+2005-05-05 J"orn Rennecke <joern.rennecke@st.com>
+ Kaz Kojima <kkojima@gcc.gnu.org>
+
+ * config/sh/sh.c (sh_builtin_saveregs): Use copy_to_mode_reg
+ and plus_constant.
+
+2005-05-05 Aldy Hernandez <aldyh@redhat.com>
+ David Edelsohn <edelsohn@gnu.org>
+
+ * config.gcc: Add .opt magic for the rs6000 ports.
+
+ * doc/invoke.texi: Document -mabi= option properly. Document
+ -misel and -mno-sel. Document -mspe and -mno-spe. Document
+ -mvrsave and -mno-vrsave. Document deprecation of -mspe= and
+ -misel=.
+
+ * config/rs6000/aix.h: Remove XL_COMPAT stuff. Remove
+ SUBTARGET_SWITCHES and SUBSUBTARGET_SWITCHES. Define
+ TARGET_XL_COMPAT.
+
+ * config/rs6000/aix.opt: New.
+ * config/rs6000/aix41.opt: New.
+ * config/rs6000/aix64.opt: New.
+ * config/rs6000/darwin.opt: New.
+ * config/rs6000/linux64.opt: New.
+ * config/rs6000/rs6000.opt: New.
+ * config/rs6000/sysv4.opt: New.
+
+ * config/rs6000/sysv4.h: Delete definitions of MASK_* and
+ associated TARGET_*. Remove SUBTARGET_OPTIONS,
+ SUBTARGET_SWITCHES.
+ Define TARGET_USES_SYSV4_OPT.
+ * config/rs6000/aix41.h: Remove SUBSUBTARGET_SWITCHES.
+ * config/rs6000/aix43.h: Remove SUBSUBTARGET_SWITCHES. Define
+ TARGET_USES_AIX64_OPT.
+ * config/rs6000/aix51.h: Same.
+ * config/rs6000/aix52.h: Same.
+ * config/rs6000/darwin.h: Remove SUBTARGET_SWITCHES,
+ MASK_MACHO_DYNAMIC_NO_PIC, TARGET_MACHO_DYNAMIC_NO_PIC.
+ Use TARGET_ALTIVEC_VRSAVE instead of rs6000_altivec_vrsave.
+ Define TARGET_DYNAMIC_NO_PIC as TARGET_MACHO_DYNAMIC_NO_PIC.
+ * config/rs6000/linux64.h: Use
+ rs6000_explicit_options. Remove EXTRA_SUBTARGET_SWITCHES.
+
+ * config/rs6000/rs6000.c: Remove definitions of
+ rs6000_sched_restricted_insns_priority,
+ rs6000_long_double_size_string, rs6000_altivec_vrsave,
+ rs6000_altivec_vrsave_string, rs6000_isel, rs6000_spe,
+ rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
+ rs6000_abi_string, rs6000_warn_altivec_long, rs6000_longcall,
+ rs6000_alignment_string. Define rs6000_explicit_options.
+ (rs6000_parse_abi_options): Remove.
+ (rs6000_parse_alignment_option): Remove.
+ (rs6000_parse_float_gprs_option): Remove.
+ (rs6000_handle_option): New. Define TARGET_HANDLE_OPTION. Define
+ TARGET_DEFAULT_TARGET_FLAGS.
+ (rs6000_override_options): Revamp to use new .opt machinery.
+
+ * config/rs6000/rs6000.h: Remove old MASK_* and TARGET_* in favor
+ of new .opt machinery. Remove target_flags. Redefine
+ TARGET_MFCRF and TARGET_POWERPC64. Remove TARGET_SWITCHES,
+ SUBTARGET_SWITCHES, TARGET_OPTIONS, SUBTARGET_OPTIONS,
+ rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
+ rs6000_altivec_vrsave_string, rs6000_altivec_vrsave,
+ rs6000_longcall_switch, rs6000_default_long_calls,
+ rs6000_sched_costly_dep_str, rs6000_sched_costly_dep,
+ rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch, and
+ TARGET_ALTIVEC_VRSAVE.
+
+2005-05-05 Ralf Corsepius <ralf.corsepius@rtems.org>
+
+ * config.gcc (hppa1.1-*-rtems*): Remove.
+ * config/pa/rtems.h: Remove.
+
+2005-05-05 Ralf Corsepius <ralf.corsepius@rtems.org>
+
+ * config/rs6000/t-rtems (MULTILIB_NEW_EXCEPTIONS_ONLY):
+ Exclude roe/603e multilib variants.
+
+2005-05-04 Denis Chertykov <denisc@overta.ru>
+
+ PR target/21284
+ * config/avr/avr.c (avr_output_addr_vec_elt): Use special section
+ for output.
+
+2005-05-05 Richard Sandiford <rsandifo@redhat.com>
+
+ * config.gcc (arm*-wince-pe*, arm-*-pe*, strongarm-*-pe): Add
+ arm/pe.opt to $extra_options.
+ * config/arm/arm.h (target_flags, target_fpu_name, target_fpe_name)
+ (target_float_abi_name, target_float_switch, target_abi_name)
+ (ARM_FLAG_APCS_FRAME, ARM_FLAG_POKE, ARM_FLAG_FPE, ARM_FLAG_APCS_STACK)
+ (ARM_FLAG_APCS_FLOAT, ARM_FLAG_APCS_REENT, ARM_FLAG_BIG_END)
+ (ARM_FLAG_INTERWORK, ARM_FLAG_LITTLE_WORDS, ARM_FLAG_NO_SCHED_PRO)
+ (ARM_FLAG_ABORT_NORETURN, ARM_FLAG_SINGLE_PIC_BASE)
+ (ARM_FLAG_LONG_CALLS, ARM_FLAG_THUMB, THUMB_FLAG_BACKTRACE)
+ (THUMB_FLAG_LEAF_BACKTRACE, THUMB_FLAG_CALLEE_SUPER_INTERWORKING)
+ (THUMB_FLAG_CALLER_SUPER_INTERWORKING, CIRRUS_FIX_INVALID_INSNS)
+ (TARGET_APCS_FRAME, TARGET_POKE_FUNCTION_NAME, TARGET_FPE)
+ (TARGET_APCS_STACK, TARGET_APCS_FLOAT, TARGET_APCS_REENT)
+ (TARGET_BIG_END, TARGET_INTERWORK, TARGET_LITTLE_WORDS)
+ (TARGET_NO_SCHED_PRO, TARGET_ABORT_NORETURN, TARGET_SINGLE_PIC_BASE)
+ (TARGET_LONG_CALLS, TARGET_THUMB, TARGET_CALLER_INTERWORKING)
+ (TARGET_CIRRUS_FIX_INVALID_INSNS, SUBTARGET_SWITCHES, TARGET_SWITCHES)
+ (TARGET_OPTIONS, arm_cpu_select, arm_select, structure_size_string)
+ (arm_pic_register_string): Delete.
+ (TARGET_BACKTRACE): Redefine using TARGET_TPCS_LEAF_FRAME and
+ TARGET_TPCS_FRAME.
+ (TARGET_DEFAULT, CONDITIONAL_REGISTER_USAGE): Update mask names.
+ * config/arm/coff.h (TARGET_DEFAULT): Likewise.
+ * config/arm/elf.h (TARGET_DEFAULT): Likewise.
+ * config/arm/netbsd-elf.h (TARGET_DEFAULT): Likewise.
+ * config/arm/netbsd.h (TARGET_DEFAULT): Likewise.
+ * config/arm/semi.h (TARGET_DEFAULT): Likewise.
+ * config/arm/uclinux-elf.h (TARGET_DEFAULT): Likewise.
+ * config/arm/wince-pe.h (TARGET_DEFAULT): Likewise.
+ * config/arm/pe.h (TARGET_DEFAULT): Likewise.
+ (TARGET_FLAG_NOP_FUN, TARGET_NOP_FUN_DLLIMPORT): Delete.
+ (SUBTARGET_SWITCHES): Delete.
+ * config/arm/arm.c (target_float_switch): Delete.
+ (arm_cpu_select): Moved from config/arm/arm.h.
+ (target_fpu_name, target_fpe_name, target_float_abi_name)
+ (target_abi_name, structure_size_string, arm_pic_register_string)
+ (arm_select): Make static.
+ (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
+ (arm_handle_option): New function.
+ (arm_override_options): Update target_flags checks for new mask names.
+ Remove target_float_switch code.
+ (arm_expand_prologue, thumb_expand_prologue): Check
+ !TARGET_SCHED_PROLOG instead of TARGET_NO_SCHED_PRO.
+ * config/arm/arm.opt, config/arm/pe.opt: New files.
+
+2005-05-05 Nathan Sidwell <nathan@codesourcery.com>
+
+ * config/arc/arc.c (get_arc_condition_code): Use gcc_assert &
+ gcc_unreachable as appropriate.
+ (arc_double_limm_p, arc_setup_incoming_varargs,
+ arc_compute_function_type, arc_output_function_prologue,
+ arc_output_function_epilogue, arc_eligible_for_epilogue_delay,
+ output_shift, arc_print_operand, arc_print_operand_address,
+ arc_final_prescan_insn): Likewise.
+ * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
+
+2005-05-04 Geoffrey Keating <geoffk@apple.com>
+
+ * config/rs6000/rs6000.md (P): Use TARGET_*BIT rather than
+ comparing Pmode.
+ (SDI): New.
+ (cmp): Delete.
+ (wd): New.
+ (add<mode>3, add<mode>3_internal1, add<mode>3_internal2,
+ add<mode>3_internal3, one_cmpl<mode>2, sub<mode>3, neg<mode>2,
+ clz<mode>2, ctz<mode>2, ffs<mode>2): New.
+ (addsi3, addsi3_internal1, addsi3_internal2, addsi3_internal3,
+ (one_cmplsi2, subsi3, negsi2, clzsi2, ctzsi2, ffssi2): Remove.
+ (adddi3, adddi3_internal1, adddi3_internal2, adddi3_internal3,
+ (one_cmpldi2, subdi3, negdi2, clzdi2, ctzdi2, ffsdi2): Remove.
+ (sync_compare_and_swap<mode>): Use <wd> rather than <cmp>.
+
+2005-05-05 Paul Brook <paul@codesourcery.com>
+
+ * Makefile.in: Replace dependencies on basic-block.h, c-pragma.h,
+ cfgloop.h, diagnostic.h, insn-attr.h, langhooks-def.h, params.h,
+ regs.h, system.h, tree-dump.h, tree-gimple.h, tree-scalar-evolution.h
+ and tree-data-ref.h with *_H variables.
+
+2005-05-05 Kelley Cook <kcook@gcc.gnu.org>
+
+ * config/m32r/xm-m32r.h, config/m32r/xm-linux.h: Delete files.
+
+2005-05-05 Kelley Cook <kcook@gcc.gnu.org>
+
+ * system.h: Poison BYTEORDER and HOST_WORDS_BIG_ENDIAN.
+
+2005-05-04 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * doc/contrib.texi (Contributors): Add Mostafa Hagog and Ayal Zaks.
+
+2005-05-04 Fariborz Jahanian <fjahanian@apple.com>
+
+ * config/rs6000/rs6000.c (rs6000_emit_prologue): Emit
+ setting of vrsave register for current function after
+ call to save_world is emitted.
+
+2005-05-05 Hans-Peter Nilsson <hp@bitrange.com>
+
+ * config/mmix/predicates.md: New file.
+ * config/mmix/mmix.c (mmix_symbolic_or_address_operand)
+ (mmix_reg_or_constant_operand, mmix_reg_cc_operand)
+ (mmix_foldable_comparison_operator, mmix_comparison_operator)
+ (mmix_reg_or_0_operand, mmix_reg_or_8bit_operand): Remove.
+ * config/mmix/mmix.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
+ Don't define.
+ * config/mmix/mmix.md: Include predicates.md.
+ ("call", "call_value"): Force address to register if it isn't a
+ mmix_symbolic_or_address_operand.
+
+2005-05-04 Andrew MacLeod <amacleod@redhat.com>
+
+ * tree-flow-inline.h (op_iter_init_use, op_iter_init_def): Assert that
+ the flags are of appropriate types.
+ (num_ssa_operands): Generalize using the generic interface.
+ * tree-ssa-dce.c (remove_dead_stmt): Don't ask for kills on a DEF
+ iterator.
+
+2005-05-04 Richard Sandiford <rsandifo@redhat.com>
+
+ * protoize.c (version_flag, quiet_flag, nochange_flag, nosave_flag)
+ (keep_flag, local_flag, global_flag, cplusplus_flag): Make extern.
+
+2005-05-04 Kazu Hirata <kazu@cs.umass.edu>
+
+ * tree-outof-ssa.c (edge_leader, stmt_list,
+ analyze_edges_for_bb): Use VEC instead of VARRAY.
+ (init_analayze_edges_for_bb, fini_analayze_edges_for_bb): New.
+ (perform_edge_inserts): Call init_analayze_edges_for_bb and
+ fini_analayze_edges_for_bb.
+
+2005-05-04 James E Wilson <wilson@specifixinc.com>
+
+ PR driver/21112
+ * gcc.c (process_command): In the second argv scan loop, ignore
+ Xassembler and Xpreprocessor, along with their argument.
+
+2005-05-04 Kazu Hirata <kazu@cs.umass.edu>
+
+ * tree-flow-inline.h, tree-ssa-operands.c,
+ tree-ssa-operands.h, tree-ssa-opfinalize.h:
+ Likewise. tree-vn.c: Fix comment typos.
+ * doc/passes.texi, doc/tree-ssa.texi: Fix typos.
+
+2005-05-04 Paolo Bonzini <bonzini@gnu.org>
+
+ * doc/tm.texi (Target Hooks): Document
+ TARGET_RESOLVE_OVERLOADED_BUILTIN.
+
+2005-05-04 Paul Brook <paul@codesourcery.com>
+
+ * Makefile.in: Change dependencies on target.h to $(TARGET_H).
+
+2005-05-04 Kazu Hirata <kazu@cs.umass.edu>
+
+ * dwarf2out.c (incomplete_types, retry_incomplete_types,
+ gen_struct_or_union_type_die, dwarf2out_init): Use VEC instead
+ of VARRAY.
+
+ * loop-unroll.c (var_to_expand, analyze_insn_to_expand_var,
+ get_expansion, expand_var_during_unrolling,
+ insert_var_expansion_initialization,
+ combine_var_copies_in_loop_exit, release_var_copies): Use VEC
+ instead of VARRAY.
+
+ * tree-ssa-loop-ivopts.c (rewrite_address_base): Don't call
+ update_stmt.
+
+2004-05-03 Andrew Pinski <pinskia@physics.uc.edu>
+
+ PR middle-end/15618
+ * fold-const.c (fold_widened_comparison): Treat BOOLEAN_TYPE
+ the same as INTEGER_TYPE.
+ (fold_binary): Fold "bool_var != 0" to bool_var.
+ Fold "bool_var == 1" to bool_var.
+
+2004-05-03 Richard Henderson <rth@redhat.com>
+
+ PR middle-end/21318
+ * function.c (instantiate_virtual_regs_in_insn): Use the mode
+ from recog_data instead of insn_data.
+
+2005-05-03 DJ Delorie <dj@redhat.com>
+
+ * common.opt (fdiagnostics-show-option): No variable is needed.
+ * diagnostic.h (diagnostic_context): Add show_option_requested flag.
+ * diagnostic.c (diagnostic_initialize): Initialize show_option_requested.
+ (diagnostic_report_diagnostic): Test for enabled diagnostics here.
+ Save and restore original message format. Use flag in context
+ instead of global.
+ (warning): Don't test for enabled warnings here.
+ * opts.c (common_handle_option): Handle -fdiagnostics-show-option
+ here.
+
+2005-05-04 Kelley Cook <kcook@gcc.gnu.org>
+
+ * config/m32r/xm-m32r.h: Don't define HOST_WORDS_BIG_ENDIAN.
+ * config/m32r/xm-linux.h: Don't undefine HOST_WORDS_BIG_ENDIAN.
+ * mips-tfile.c: Use WORDS_BIG_ENDIAN instead of HOST_WORDS_BIG_ENDIAN.
+ * aclocal.m4: Don't include accross.m4.
+ * 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
+ * expr.h (enum block_op_methods): Add BLOCK_OP_TAILCALL.
+ (clear_storage): Add argument.
+ * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall):
+ Add tailcall argument, set CALL_EXPR_TAILCALL of the CALL_EXPR to
+ tailcall.
+ (emit_block_move): Handle BLOCK_OP_TAILCALL method.
+ (clear_storage): Add method argument, handle BLOCK_OP_TAILCALL.
+ (store_expr, store_constructor): Adjust callers.
+ * builtins.c (expand_builtin_memcpy): Pass BLOCK_OP_TAILCALL
+ to emit_block_move if CALL_EXPR_TAILCALL (exp).
+ (expand_builtin_memmove): Add ORIG_EXP argument, copy
+ CALL_EXPR_TAILCALL from ORIG_EXP to the new CALL_EXPR.
+ (expand_builtin_bcopy): Replace ARGLIST and TYPE arguments
+ with EXP. Pass EXP to expand_builtin_memmove.
+ (expand_builtin_memset): Add ORIG_EXP argument, pass
+ BLOCK_OP_TAILCALL to clear_storage if CALL_EXPR_TAILCALL (orig_exp).
+ (expand_builtin_bzero): Replace ARGLIST argument with EXP.
+ Pass EXP to expand_builtin_memset.
+ (expand_builtin_strcmp): Copy CALL_EXPR_TAILCALL from EXP to
+ the new CALL_EXPR.
+ (expand_builtin_strncmp): Likewise.
+ (expand_builtin_printf): Replace ARGLIST argument with EXP.
+ Copy CALL_EXPR_TAILCALL from EXP to the new CALL_EXPR.
+ (expand_builtin_fprintf): Likewise.
+ (expand_builtin): Adjust calls to
+ expand_builtin_{memmove,bcopy,memset,bzero,{,f}printf}.
+
+ * config/i386/i386.c (ix86_expand_vector_set): Fix setting 3rd and 4th
+ item in V4SF mode.
+
+ PR rtl-optimization/21239
+ * combine.c (combine_simplify_rtx) <case VEC_SELECT>: Fix a typo.
+
+2005-05-03 Kazu Hirata <kazu@cs.umass.edu>
+
+ * tree-flow.h (tree_ann_common_d): Move aux to ...
+ (stmt_ann_d): ... here.
+ * tree-ssa-loop-im.c (LIM_DATA, determine_invariantness_stmt,
+ move_computations_stmt, schedule_sm): Update references to
+ aux.
+ * tree-vectorizer.h (set_stmt_info, vinfo_for_stmt): Likewise.
+
+ * tree-cfg.c (remove_bb): Remove a redundant call to
+ set_bb_for_stmt.
+ * tree-if-conv.c (replace_phi_with_cond_modify_expr):
+ Likewise.
+
+2005-05-03 Richard Henderson <rth@redhat.com>
+
+ * config/rs6000/rs6000.c: Remove conflict markers.
+
+ * cfg.c (dump_flow_info): Use max_reg_num, not max_regno.
+
+2005-05-03 James E Wilson <wilson@specifixinc.com>
+
+ * dwarf2out.c (lookup_filename): Call maybe_emit_file.
+
+2005-05-03 DJ Delorie <dj@redhat.com>
+
+ * c-decl.c (store_parm_decls_oldstyle): Let diagnostic machinery
+ decide if the warning will be printed.
+ * calls.c (expand_call): Likewise.
+ * function.c (init-function_start): Likewise.
+
+ * common.opt (-fdiagnostics-show-option): New.
+ * opts.c (option_enabled): Accept the option index instead of a
+ pointer to the option descriptor.
+ * opts.h (option_enabled): Likewise.
+ * toplev.c (print_switch_values): Pass option index, not option
+ descriptor.
+ * diagnostic.h (diagnostic_info): Add option_index.
+ * diagnostic.c: Include opts.h.
+ (diagnostic_set_info): Initialize option_index.
+ (diagnostic_report_diagnostic): Amend option name if appropriate.
+ (warning): Check to see if the specified warning is enabled.
+ Store option index.
+ * doc/invoke.texi (-fdiagnostics-show-options): Document.
+
+2005-05-03 Richard Henderson <rth@redhat.com>
+
+ * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Fix ALL_REGS and
+ SPEC_OR_GEN_REGS definitions.
+
+2005-05-03 Alexandre Oliva <aoliva@redhat.com>
+
+ PR target/16888
+ * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Clear reg names
+ for unavailable registers.
+
+2005-05-03 Kazu Hirata <kazu@cs.umass.edu>
+
+ * tree-cfg.c (tree_forwarder_block_p): Fix a typo.
+
+ * cfglayout.c (block_locators_blocks,
+ insn_locators_initialize, insn_scope): Use VEC instead of
+ VARRAY.
+
+ * tree-mudflap.c (deferred_static_decls, mudflap_enqueue_decl,
+ mudflap_finish_file, mudflap_finish_file): Use VEC instead of
+ VARRAY.
+
+2005-05-03 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ * config/sparc/predicates.md (const_compl_high_operand): New.
+ * config/sparc/sparc.c (sparc_emit_set_safe_HIGH64): Rename into
+ gen_safe_HIGH64.
+ (sparc_emit_set_const64_quick1): Adjust for above change.
+ (sparc_emit_set_const64_quick2): Likewise.
+ (sparc_emit_set_const64_longway): Likewise.
+ (sparc_emit_set_const64): Likewise.
+ * config/sparc/sparc.md (movhi_const64_special, movsi_const64_special,
+ movdi_const64_special): Delete.
+ (logical constant splitters): Use const_compl_high_operand.
+
+2005-05-03 Richard Guenther <rguenth@gcc.gnu.org>
+
+ * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Use STRIP_TYPE_NOPS
+ rather than STRIP_NOPS.
+
+2005-05-03 Jakub Jelinek <jakub@redhat.com>
+
+ PR rtl-optimization/21330
+ * loop-unswitch.c (may_unswitch_on): Set *cinsn only when
+ returning non-NULL.
+ (unswitch_single_loop): Clear cinsn when retrying.
+
+ PR target/21297
+ * config/i386/i386.c (legitimize_address): When canonicalizing
+ ASHIFT into MULT, multiply by 1 << shift_count instead of
+ 1 << log2 (shift_count).
+
+2005-05-03 Andrew MacLeod <amacleod@redhat.com>
+
+ * 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,
+ 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.
+ (get_def_ops, get_use_ops, get_v_may_def_ops, get_vuse_ops,
+ get_v_must_def_ops): Delete.
+ (get_def_from_ptr, get_phi_result_ptr): Get def directly now.
+ (get_use_op_ptr, get_def_op_ptr, get_v_may_def_result_ptr,
+ get_v_may_def_op_ptr, get_vuse_op_ptr, get_v_must_def_result_ptr,
+ get_v_must_def_kill_ptr): Delete.
+ (delink_stmt_imm_use): Move and use new operand interface.
+ (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
+ type check.
+ (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_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.
+ (single_ssa_def_operand): New. Process single operands only as defs.
+ (zero_ssa_operands): New. Return TRUE if there are zero operands of the
+ specified types.
+ (num_ssa_operands): New. Count the number of specified operands.
+ (compare_ssa_operands_equal): New. Compare two statements' operands.
+ (single_phi_def): New. Return true if PHI has one def of the specified
+ operand type.
+ (op_iter_init_phiuse): New. Initialize the iterator for PHI arguments.
+ (op_iter_init_phidef): New. Initialize the iterator for the PHI def.
+ * tree-flow.h (struct immediate_use_iterator_d): Use ssa_use_operand_t.
+ (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,
+ dump_replaceable_exprs, rewrite_trees): Use generic interface.
+ * 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-sra.c (sra_walk_function): Use ZERO_SSA_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
+ 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
+ annotation in table.
+ (thread_across_edge): Use generic interface.
+ (initialize_hash_element): Initialzie with stmt, not annotation.
+ (eliminate_redundant_computations): Use generic interface.
+ (record_equivalences_from_stmt): Pass 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
+ 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_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):
+ 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.
+ (opbuild_free): New. Free a build list.
+ (opbuild_num_elems): New. Number of items in a list.
+ (opbuild_append_real): New. Add a real (tree *) operand.
+ (opbuild_append_virtual): New. Add and sort a virtual (tree) operand.
+ (opbuild_first): New. Return first element index in a list.
+ (opbuild_next): New. Return next element in a list.
+ (opbuild_elem_real): New. Return real element.
+ (opbuild_elem_virtual): New. Return virtual element.
+ (opbuild_elem_uid): New. Return UID of virtual element.
+ (opbuild_clear): New. Reset an operand list.
+ (opbuild_remove_elem): New. Remove an element form a list.
+ (ssa_operands_active): New. Return true if operand cache is active.
+ (init_ssa_operands, fini_ssa_operands): Initialize new implementation.
+ (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.
+ (cleanup_v_may_defs): Use new implmentation.
+ (finalize_ssa_stmt_operands, start_ssa_stmt_operands): New
+ implementation.
+ (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
+ global parse_old_ops variable.
+ (free_ssa_operands): New implementation.
+ (update_stmt_operands): Move. Change argument to build_ssa_operands.
+ (copy_virtual_operands): Move. New generic implementation.
+ (create_ssa_artficial_load_stmt): Move. New implementation.
+ (swap_tree_operands): Update for new implementation.
+ (get_expr_operands): Add stmt parameter to calls to swap_tree_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
+ 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.
+ (def_optype_d, use_optype_d, v_def_use_operand_type, v_may_def_optype_d,
+ vuse_operand_type, vuse_optype_d, v_must_def_optype_d): Delete.
+ (def_optype_d, use_optype_d, maydef_optype_d, vuse_optype_d,
+ mustdef_optype_d): New. Use Linked list representation.
+ (SSA_OPERAND_MEMORY_SIZE): New. Size of operand memory chunk.
+ (struct ssa_operand_memory_d): New. Allocated Chunk node.
+ (struct stmt_operands_d): Change to new pointers that are not GTY.
+ (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,
+ SET_V_MUST_DEF_KILL): Delete.
+ (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_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.
+ (SSA_OP_VMUSTDEFKILL): Rename to SSA_OP_VMUSTKILL.
+ (FOR_EACH_SSA_MAYDEF_OPERAND, FOR_EACH_SSA_MUSTDEF_OPERAND,
+ FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): Use op_iter_next_maymustdef.
+ (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_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_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.
+ (create_value_expr_from): Use stmt not vuse_optype as a parameter. Pass
+ 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
+ ZERO_SSA_OPERANDS.
+ * tree-ssa-sink.c (is_hidden_global_store): Use ZERO_SSA_OPERANDS.
+ (statement_sink_location): Use generic interface.
+ * tree-ssa.c (verify_ssa): Use %p in fprintf. Use generic interface.
+ (delete_tree_ssa): Don't call release_defs. Call release_ssa_name and
+ reset the immediate use link nodes.
+ (stmt_references_memory_p): Use ZERO_SSA_OPERANDS.
+ * tree-ssanames.c (make_ssa_name): Use use_operand_p.
+ * 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
+ interface.
+ * 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):
+ 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.
+ * tree.h (struct ssa_imm_use_d): Renamed to ssa_use_operand_d.
+ (tree_ssa_name, phi_arg_d): Use ssa_use_operand_d.
+ * doc/tree-ssa.texi: Update documentation for operand interface.
+
+2005-05-03 Nathan Sidwell <nathan@codesourcery.com>
+
+ * config/darwin.c (machopic_define_symbol): Use gcc_assert or
+ gcc_unreachable as appropriate.
+ (machopic_function_base_name, machopic_indirect_data_reference,
+ machopic_legitimize_pic_address, darwin_non_lazy_pcrel): Likewise.
+ * config/host-darwin.c (darwin_gt_pch_use_address): Likewise
+ * config/rs6000/altivec.md (*mov<mode>_internal,
+ build_vector_mask_for_load): Likewise.
+ * config/rs6000/darwin.md (movdf_low_si, movdf_low_di,
+ *call_nonlocal_darwin64, *call_value_nonlocal_darwin64,
+ *sibcall_symbolic_64, *sibcall_value_symbolic_64): Likewise.
+ * config/rs6000/predicates.md (easy_fp_constant,
+ logical_operand): Likewise.
+ * config/rs6000/rs6000.c (spe_expand_predicate_builtin,
+ compute_save_world_info, rs6000_emit_prologue,
+ rs6000_output_mi_thunk): Reword comments to avoid 'abort'.
+ * config/rs6000/host-darwin.c (segv_handler): Use fancy_abort
+ directly.
+
+2005-05-03 Uros Bizjak <uros@kss-loka.si>
+
+ PR middle-end/21282
+ * convert.c (convert_to_integer): Convert ceil and floor in
+ c99 mode only.
+
+2005-04-29 Geoffrey Keating <geoffk@apple.com>
+
+ PR target/20813
+ * config/rs6000/rs6000.md (floatsidf2_internal): Merge to create
+ define_insn_and_split. Split only when memory operand is
+ offsettable. Use adjust_address rather than plus_constant.
+ (floatunssidf2_internal): Likewise.
+ (fix_truncdfsi2_internal): Split only when memory operand is
+ offsettable. Use adjust_address rather than plus_constant.
+ (fix_trunctfsi2_internal): Likewise.
+ (floatsidf2_internal): Likewise.
+
+2005-05-02 Diego Novillo <dnovillo@redhat.com>
+
+ * tree-vrp.c (set_value_range_to_nonnull): Declare inline.
+ (set_value_range_to_null): Likewise.
+ (set_value_range_to_varying): New function. Use it in all
+ call sites that used to call set_value_range (vr, VR_VARYING, ...).
+ (extract_range_from_assert): If the integral type has a
+ super-type, and LIMIT is not within MIN and MAX values of that
+ type, set the resulting range to VR_VARYING.
+
+2005-05-02 Hans-Peter Nilsson <hp@bitrange.com>
+
+ * config/mmix/mmix.opt: New file.
+ * config/mmix/mmix.h: Move options-related comments to mmix.opt.
+ (mmix_cc1_ignored_option): Don't declare.
+ (TARGET_OPTIONS, TARGET_MASK_LIBFUNCS, TARGET_MASK_ABI_GNU)
+ (TARGET_MASK_FCMP_EPSILON, TARGET_MASK_ZERO_EXTEND)
+ (TARGET_MASK_KNUTH_DIVISION, TARGET_MASK_TOPLEVEL_SYMBOLS)
+ (TARGET_MASK_BRANCH_PREDICT, TARGET_MASK_USE_RETURN_INSN)
+ (TARGET_MASK_BASE_ADDRESSES, TARGET_LIBFUNC, TARGET_ABI_GNU,
+ (TARGET_FCMP_EPSILON, TARGET_ZERO_EXTEND, TARGET_KNUTH_DIVISION)
+ (TARGET_TOPLEVEL_SYMBOLS, TARGET_BRANCH_PREDICT)
+ (TARGET_BASE_ADDRESSES, TARGET_USE_RETURN_INSN, TARGET_SWITCHES):
+ Don't define.
+ (TARGET_DEFAULT): Change TARGET_MASK_... to MASK_...
+ * config/mmix/mmix.c (mmix_cc1_ignored_option): Remove.
+ (TARGET_DEFAULT_TARGET_FLAGS): Override default.
+
+2005-05-02 Joseph S. Myers <joseph@codesourcery.com>
+
+ PR c/15698
+ * c-tree.h (C_DECL_BUILTIN_PROTOTYPE): New.
+ * c-decl.c (current_function_prototype_built_in,
+ current_function_prototype_arg_types): New.
+ (merge_decls): Keep source location of prototype followed by
+ nonprototype declaration. Update C_DECL_BUILTIN_PROTOTYPE.
+ (builtin_function): Set C_DECL_BUILTIN_PROTOTYPE.
+ (start_function): Always set current_function_prototype_locus,
+ current_function_prototype_built_in and
+ current_function_prototype_arg_types. Check for external
+ prototype whether or not visible for external function and set
+ current_function_prototype_arg_types accordingly.
+ (store_parm_decls_oldstyle): Use
+ current_function_prototype_arg_types for checking old-style
+ definition against prototype. Give warnings only if
+ current_function_prototype_built_in).
+
+2005-05-02 Daniel Jacobowitz <dan@codesourcery.com>
+
+ * ggc.h (ggc_alloc_zone_pass_stat): New macro.
+ (ggc_alloc_zone_stat): Don't define.
+ * ggc-zone.c (ggc_alloc_typed_stat, ggc_alloc_stat): Use
+ ggc_alloc_zone_pass_stat.
+ * rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Likewise.
+ * tree.c (make_node_stat, copy_node_stat, make_tree_binfo_stat)
+ (make_tree_vec_stat, tree_cons_stat, build1_stat): Likewise.
+
+2005-05-02 Daniel Jacobowitz <dan@codesourcery.com>
+
+ * calls.c (expand_call): Handle current_function_pretend_args_size
+ when checking for sibcalls.
+
+2005-05-02 Kazu Hirata <kazu@cs.umass.edu>
+
+ PR tree-optimization/21294
+ * tree-vrp.c (vrp_expr_computes_nonzero): New.
+ (extract_range_from_expr): Call vrp_expr_computes_nonzero.
+
+2005-05-02 Janis Johnson <janis187@us.ibm.com>
+
+ PR 19985
+ * gcov-io.h: Declare gcov external functions hidden.
+
+2005-05-02 Kazu Hirata <kazu@cs.umass.edu>
+
+ * tree-ssa-uncprop.c (equiv_hash_elt, remove_equivalence,
+ record_equiv, tree_ssa_uncprop, uncprop_into_successor_phis):
+ Use VEC instead of VARRAY.
+ (equiv_free): New.
+
+ * tree-ssa-sink.c (nearest_common_dominator_of_uses): Factor
+ out common code.
+
+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.
+
+2005-05-02 Kazu Hirata <kazu@cs.umass.edu>
+
+ * function.c (reorder_blocks, reorder_blocks_1): Use VEC
+ instead of VARRAY.
+
+2005-05-02 Nathan Sidwell <nathan@codesourcery.com>
+ Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * config/bfin/bfin.c (emit_link_insn, effective_address_32bit_p,
+ print_address_operand, print_operand, legitimize_pic_address,
+ asm_conditional_branch, bfin_gen_compare, output_push_multiple,
+ output_pop_multiple): Use gcc_assert or gcc_unreachable as
+ appropriate.
+ * config/bfin/bfin.md (movsf splitter, beq, bne): Likewise.
+
+2005-05-02 Dorit Naishlos <dorit@il.ibm.com>
+
+ * doc/passes.texi: Document vectorization pass.
+
+2005-05-02 Kazu Hirata <kazu@cs.umass.edu>
+
+ * tree-scalar-evolution.c (get_exit_conditions_rec,
+ select_loops_exit_conditions,
+ number_of_iterations_for_all_loops,
+ analyze_scalar_evolution_for_all_loop_phi_nodes,
+ scev_analysis): Use VEC instead of VARRAY.
+
+2005-05-02 Michael Matz <matz@suse.de>
+
+ PR c++/19542
+ * c-common.c (c_common_nodes_and_builtins): Create global null_node.
+ (warn_strict_null_sentinel): Define.
+ (check_function_sentinel): Check for null_node as valid sentinel too.
+ * c-common.h (c_tree_index): Added CTI_NULL.
+ (null_node) Define global_tree[CTI_NULL].
+ (warn_strict_null_sentinel): Declare.
+ * c-opts.c: (c_common_handle_option): Handle -Wstrict-null-sentinel.
+ * c.opt: (Wstrict-null-sentinel): New C++ option.
+ * doc/invoke.texi (C++ Options): Document -Wstrict-null-sentinel.
+
+2005-05-01 Kazu Hirata <kazu@cs.umass.edu>
+
+ * gimplify.c (gimplify_compound_lval): Use VEC instead of
+ VARRAY.
+
+ * global.c (calculate_reg_pav): Use VEC instead of VARRAY.
+
+ * dwarf2out.c (decl_scope_table, push_decl_scope,
+ pop_decl_scope, scope_die_for, dwarf2out_init): Use VEC
+ instead of VARRAY.
+
2005-05-01 Mark Mitchell <mark@codesourcery.com>
+ PR C++/14391
* c-cppbuiltin.c (c_cpp_builtins): Do not define __GXX_WEAK__ to 1
if !flag_weak.
* doc/cpp.texi (__DEPRECATED): Document.