OSDN Git Service

2005-06-01 Paul Thomas <pault@gcc.gnu.org>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 1d09dde..45feeac 100644 (file)
+2005-06-01  Jan Hubicka  <jh@suse.cz>
+
+       * except.c (struct eh_region): Kill unused fields.
+       * basic-block.h (struct basic_block_def): Likewise.
+
+2005-06-01  J"orn Rennecke <joern.rennecke@st.com>
+
+       PR rtl-optimization/21767
+       * rtl.h (function_invariant_p): Re-add declaration.
+       * reload1.c (function_invariant_p): No longer static.
+       * ifcvt.c (dead_or_predicable): Remove REG_EQUAL notes that
+       might have become invalid.
+
+2005-06-01  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/21536
+       PR c/20760
+       * gimplify.c (gimplify_decl_expr): Call gimplify_type_sizes
+       on variable sizes types if a decl is a pointer to a VLA.
+       (gimplify_type_sizes): Handle POINTER_TYPE and REFERENCE_TYPE.
+       Call gimplify_type_sizes on aggregate fields.  Prevent infinite
+       recursion.
+
+       * fold-const.c (fold_ternary): Optimize BIT_FIELD_REF of VECTOR_CST.
+
+       * config/i386/xmmintrin.h (_mm_setzero_ps, _mm_set_ss, _mm_set1_ps,
+       _mm_set_ps, _mm_setr_ps): Add __extension__.
+       * config/i386/emmintrin.h (_mm_set_sd, _mm_set1_pd, _mm_set_pd,
+       _mm_setr_pd, _mm_setzero_pd, _mm_set_epi64x, _mm_set_epi64x,
+       _mm_set_epi32, _mm_set_epi16, _mm_set_epi8, _mm_setzero_si128):
+       Likewise.
+       (_mm_clflush): Don't use return in void function.
+
+       * config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128,
+       _mm_castps_pd, _mm_castps_si128, _mm_castsi128_ps, _mm_castsi128_pd):
+       Use __inline instead of inline.
+
+2005-06-01  Richard Guenther  <rguenth@gcc.gnu.org>
+
+       * fold-const.c (fold_binary): Fix types in strlen vs.
+       zero comparison folding.
+
+2005-06-01  Richard Henderson  <rth@redhat.com>
+
+       * configure.ac (HAVE_AS_JSRDIRECT_RELOCS): New.
+       * config.in, configure: Rebuild.
+       * config/alpha/alpha.c (print_operand): Add 'j'.
+       * alpha.md (divmodsi_internal_er_1): Use it.
+       (divmoddi_internal_er_1): Likewise.
+
+2005-06-01  Richard Sandiford  <rsandifo@redhat.com>
+
+       * system.h (TARGET_OPTIONS, TARGET_SWITCHES): Poison.
+       * opts.h (print_filtered_help): Delete.
+       * opts.c (handle_option, decode_options): Remove calls to
+       set_target_switch.
+       (print_target_help): New function.
+       (common_option, print_help): Call print_target_help instead of
+       display_target_options.
+       (print_filtered_help): Make static.
+       * toplev.h (display_target_options, set_target_switch): Delete.
+       * toplev.c (target_switches, target_options, display_target_options)
+       (set_target_switch): Delete.
+       (print_switch_values): Remove handling of TARGET_SWITCHES and
+       TARGET_OPTIONS.
+       (default_get_pch_validity): Likewise.  Only treat target_flags
+       specially if targetm.check_pch_target_flags is nonnull.
+       (pch_option_mismatch): New function.
+       (default_pch_valid_p): Use it.  Remove handling of TARGET_SWITCHES
+       and TARGET_OPTIONS.  Only treat target_flags specially if
+       targetm.check_pch_target_flags is nonnull.
+       * config/ia64/ia64.c (ia64_override_options): Don't mention
+       TARGET_OPTIONS in comment.
+       * config/m68k/m68k-none.h (CC1_SPEC): Likewise.
+       * doc/invoke.texi: Remove a reference to TARGET_SWITCHES.
+       * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS): Don't mention the
+       interaction with TARGET_SWITCHES.
+       (TARGET_@var{featurename}, TARGET_SWITCHES, TARGET_OPTIONS): Delete.
+
+2005-06-01  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/sh/sh.c (multcosts): Check sh_multcost rather than
+       sh_multcost_str.
+       (sh_register_move_cost): Likewise sh_gettrcost and sh_gettrcost_str.
+       (sh_multcost_str, sh_gettrcost_str, sh_div_str, sh_divsi3_libfunc)
+       (cut2_workaround_str): Delete.
+       * config/sh/sh.h (SUBTARGET_OPTIONS, TARGET_OPTIONS)
+       (TARGET_SH5_CUT2_WORKAROUND, sh_multcost_str, sh_gettrcost_str)
+       (sh_div_str, sh_divsi3_libfunc, cut2_workaround_str): Delete.
+       * config/sh/sh.opt (mcut2-workaround, mdiv=, mdivsi3_libfunc=)
+       (mgettrcost=, multcost=): New options.
+
+2005-06-01  Richard Sandiford  <rsandifo@redhat.com>
+
+       * opts.h (cl_option_state): New structure.
+       (get_option_state): Declare.
+       * opts.c (get_option_state): New function.
+       * toplev.c (option_affects_pch_p): New function.
+       (default_get_pch_validity): Store the state of all options for which
+       option_affects_pch_p returns true.
+       (default_pch_valid_p): Check the state of those options here.
+       Only check target_flags separately if targetm.check_pch_target_Flags
+       is nonnull or if TARGET_SWITCHES is defined.
+
+2005-06-01  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips-protos.h (mips_use_ins_ext_p): Remove parameter
+       names.
+
+2005-06-01 Mostafa Hagog <mustafa@il.ibm.com>
+
+       * modulo-sched.c (undo_generate_reg_moves ): Fix PR 21138.
+
+2005-06-01 Mostafa Hagog <mustafa@il.ibm.com>
+
+       * gcse.c (compute_transp, load_killed_in_block): Use 
+       MEM_READONLY_P.
+
+2005-06-01  David.Billinghurst  <David.Billinghurst@riotinto.com>
+
+       PR target/21854
+       * config/mips/mips-protos.h: Declare mips_use_ins_ext_p
+       
+2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * errors.h (warning, error, fatal, internal_error): Add printf
+       attribute.
+       * genmodes.c (make_vector_mode): Fix format arguments.
+
+2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * basic-block.h, bb-reorder.c, c-gimplify.c, config/darwin.c,
+       config/rs6000/rs6000-c.c, dominance.c, gimple-low.c, gimplify.c,
+       lambda-code.c, lambda-trans.c, tree-browser.c, tree-cfg.c,
+       tree-chrec.c, tree-data-ref.c, tree-dfa.c, tree-eh.c,
+       tree-if-conv.c, tree-into-ssa.c, tree-loop-linear.c,
+       tree-mudflap.c, tree-nomudflap.c, tree-outof-ssa.c,
+       tree-pretty-print.c, tree-scalar-evolution.c, tree-sra.c,
+       tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
+       tree-ssa-dse.c, tree-ssa-forwprop.c, tree-ssa-live.c,
+       tree-ssa-operands.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
+       tree-ssa-propagate.c, tree-ssa-sink.c, tree-ssa-threadupdate.c,
+       tree-ssa-uncprop.c, tree-ssa.c, tree-vect-analyze.c,
+       tree-vect-transform.c, tree-vectorizer.c, vec.c: Don't include
+       errors.h and include toplev.h if necessary.
+       
+       * rtl.c, varray.c: If we're compiling as a GENERATOR_FILE, include
+       errors.h otherwise include toplev.h.
+       
+       * Makefile.in: Update dependencies.
+       
+
+2005-06-01  Danny Smith  <dannysmith@users.sourceforge.net>
+
+       * config/i386/cygming.h (NO_PROFILE_COUNTERS): Define.
+
+2005-05-31  Geoffrey Keating  <geoffk@geoffk.org>
+
+       * config/rs6000/rs6000.md (sync_boolcshort_internal): New.
+       * config/rs6000/rs6000.c (rs6000_emit_sync): Shift count must
+       be complemented for big-endian.  Mask for AND must be rotated,
+       not shifted.  Handle short operands with NOT on the memory
+       operation.
+
+2005-05-30  Daniel Berlin  <dberlin@dberlin.org>
+
+       * c-objc-common.c (c_tree_printer): Check flag before hashtable.
+       Use DECL_DEBUG_EXPR and SET_DECL_DEBUG_EXPR.
+       * dwarf2out.c (dwarf2out_var_location): Ditto.
+       * toplev.c (default_tree_printer): Ditto.
+       * tree-outof-ssa.c (create_temp): Ditto.
+       * tree-sra.c (instantiate_element): Ditto.
+       * var-tracking.c (track_expr_p): Ditto.
+       * tree.c (struct tree_map): New structure.
+       (debug_expr_for_decl): New.
+       (tree_map_eq): New function.
+       (tree_map_hash): Ditto.
+       (tree_map_marked_p): Ditto.
+       (print_debug_expr_statistics): Ditto.
+       (decl_debug_expr_lookup): Ditto.
+       (decl_debug_expr_insert): Ditto.
+       (dump_tree_statistics): Dump debug_expr hashtable stats.
+       * tree.h (DECL_DEBUG_EXPR): Change
+       (SET_DECL_DEBUG_EXPR): Add.
+       
+2005-06-01  Alan Modra  <amodra@bigpond.net.au>
+
+       * configure.ac: Add --enable-secureplt.
+       (HAVE_AS_REL16): Test for R_PPC_REL16 relocs.
+       * config.in: Regenerate.
+       * configure: Regenerate.
+       * config.gcc (powerpc64-*-linux*, powerpc-*-linux*): Add
+       rs6000/secureplt.h to tm_file when enable_secureplt.
+       * doc/invoke.texi (msecure-plt, mbss-plt): Document.
+       * doc/install.texi: Document --enable-targets and --enable-secureplt.
+       Correct xrefs to "Using the GNU Compiler Collection (GCC)".
+       * config/rs6000/secureplt.h: New file.
+       * config/rs6000/sysv4.h (TARGET_SECURE_PLT): Define.
+       (SUBTARGET_OVERRIDE_OPTIONS): Error if -msecure-plt given without
+       assembler support.
+       (CC1_SECURE_PLT_DEFAULT_SPEC): Define.
+       (CC1_SPEC): Delete duplicate mno-sdata.  Invoke cc1_secure_plt_default.
+       (SUBTARGET_EXTRA_SPECS): Add cc1_secure_plt_default.
+       * config/rs6000/sysv4.opt (msecure-plt, bss-plt): Add options.
+       * config/rs6000/rs6000.h (TARGET_SECURE_PLT): Define.
+       * config/rs6000/rs6000.c (rs6000_emit_load_toc_table): Handle
+       TARGET_SECURE_PLT got register load sequence.
+       (rs6000_emit_prologue): Call rs6000_emit_load_toc_table when
+       TARGET_SECURE_PLT.
+       (rs6000_elf_declare_function_name): Don't emit toc address offset
+       word when TARGET_SECURE_PLT.
+       * config/rs6000/rs6000.md (elf_high, elf_low): Move past load_toc_*.
+       (load_toc_v4_PIC_1) Enable for TARGET_SECURE_PLT.
+       (load_toc_v4_PIC_3b, load_toc_v4_PIC_3c): New insns.
+       (call, call_value): Mark pic_offset_table_rtx used for sysv pic and
+       TARGET_SECURE_PLT.
+       (call_nonlocal_sysv, call_value_nonlocal_sysv, sibcall_nonlocal_sysv,
+       sibcall_value_nonlocal_sysv): Add 32768 offset when TARGET_SECURE_PLT
+       and -fPIC.
+       * config/rs6000/tramp.asm (trampoline_initial): Use "bcl 20,31".
+       (__trampoline_setup): Likewise.  Init r30 before plt call.
+
+2005-05-31  DJ Delorie  <dj@redhat.com>
+
+       * expr.c (convert_move): When a partial_int requires multiple
+       conversion steps, make sure successive steps convert the
+       intermediate value, not the original value.
+
+       * expmed.c (expand_mult): Convert partial_int multiplies to
+       shift/add combinations too.
+
+       * genmodes.c (mode_data): Add wider_2x.
+       (calc_wider_mode): Calculate twice-wider mode too.
+       (emit_mode_wider): Emit twice-wider mode too.
+       * machmode.h (mode_2xwider, GET_MODE_2XWIDER_MODE): New.
+       * expr.c (expand_expr_real_1): Use it for expanding
+       multiplies.
+
+2005-05-31  Zdenek Dvorak  <dvorakz@suse.cz>
+
+       PR tree-optimization/21817
+       * tree-ssa-loop-im.c (for_each_index): Handle VECTOR_CST.
+
+2005-05-31  Pat Haugen  <pthaugen@us.ibm.com>
+
+       * loop.c (loop_invariant_p, valid_initial_value_p): Revert last
+       change.
+
+2005-05-31  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       PR middle-end/20931
+       PR middle-end/20946
+       * fold-const.c (fold_checksum_tree): Copy types also if
+       TYPE_CONTAINS_PLACEHOLDER_INTERNAL is set.
+       Don't call fold_checksum_tree for TREE_LIST's TREE_CHAIN
+       first.
+       Tail recurse TREE_LIST's TREE_CHAIN.
+
+2005-05-31  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       PR tree-opt/21732
+       * tree-ssa-copy.c (dump_copy_of): Create a bitmap and don't visit a
+       SSA_NAME twice and cause the loop to become finite.  Remove the test
+       for val.
+
+2005-05-31  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       * tree-cfg.c (verify_expr): Add checking for COND_EXPR's conditional
+       expression.
+
+2005-05-31  Richard Sandiford  <rsandifo@redhat.com>
+
+       * doc/tm.texi (TARGET_GET_PCH_VALIDITY, TARGET_PCH_VALID_P): Tweak
+       the documentation to make it more future-proof.
+       (TARGET_CHECK_PCH_TARGET_FLAGS): Document this new hook.
+       * target.h (gcc_target): Add check_pch_target_flags.
+       * target-def.h (TARGET_CHECK_PCH_TARGET_FLAGS): New macro.
+       (TARGET_INITIALIZER): Include it.
+       * toplev.c (default_pch_valid_p): Use targetm.check_pch_target_flags.
+       * config/sh/sh-protos.h (sh_pch_valid_p): Delete.
+       * config/sh/sh.c (TARGET_PCH_VALID_P, sh_pch_valid_p): Delete.
+       (sh_check_pch_target_flags): New function.
+       (TARGET_CHECK_PCH_TARGET_FLAGS): Override default.
+
+2005-05-31  Richard Guenther  <rguenth@gcc.gnu.org>
+
+       * fold-const.c (extract_array_ref): Handle more cases,
+       do some useful canonicalization of the base.
+       (fold_binary): Explicitly deal with arrays of zero-sized
+       structures during folding of &a[i] == &a[j].
+
+2005-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       * doc/install.texi (sparc-sun-solaris2*): Update note
+       about Sun bug 4910101.
+       (sparc-sun-solaris2.7): Document bootstrap
+       failure with Sun WorkShop 6 99/08/18 as.
+
+2005-05-30  Pat Haugen  <pthaugen@us.ibm.com>
+
+       * loop.c (loop_invariant_p, valid_initial_value_p): Use
+       regs_invalidated_by_call instead of call_used_regs.
+
+2005-05-30  Paolo Carlini  <pcarlini@suse.de>
+
+       PR middle-end/21743
+       * builtins.def (BUILT_IN_CLOG, BUILT_IN_CLOGF, BUILT_IN_CLOGL):
+       Enable.
+       * doc/extend.texi: Add clog, clogf, clogl.
+
+2005-05-30  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR middle-end/20303
+       * c-pragma.c: Include "vec.h".
+       (handle_pragma_visibility): Use VEC.
+
+       * doc/invoke.texi: Remove the nested visibility push limit.
+
+2005-05-30  Roger Sayle  <roger@eyesopen.com>
+
+       PR rtl-optimization/15422
+       * reg-stack.c (starting_stack_p): New static global.
+       (straighten_stack): Delete prototype. Change to update the stack
+       before the current insn.
+       (subst_stack_regs): Update call to straighten stack.
+       (emit_swap_insn): Delete prototype.  For the first insn in a
+       basic block, update stack_in instead of emitting a real swap.
+       (change_stack): When changing the stack before the first insn
+       in a basic block, update stack_in instead of emitting real code.
+       (compensate_edges): Clear starting_stack_p during compensation.
+       (convert_regs_1): Keep track of starting_stack_p whilst processing
+       a basic block.
+
+2005-05-30  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * tree-ssa-ccp.c (const_val): Make it static.
+
+2005-05-29  Geoffrey Keating  <geoffk@apple.com>
+
+       PR target/21761
+       * config/rs6000/rs6000.md: Remove stray TARGET_32BIT from
+       pattern involving `:P'.
+
+       * Makefile.in (install-cpp): Depend on installdirs.
+
+2005-05-30  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * tree-outof-ssa.c (_elim_graph): Change the type of edge_list
+       to VEC(int,heap)*.
+       (new_elim_graph, clear_elim_graph, delete_elim_graph,
+       elim_graph_add_edge, elim_graph_remove_succ_edge,
+       FOR_EACH_ELIM_GRAPH_SUCC, FOR_EACH_ELIM_GRAPH_PRED): Use VEC
+       instead of VARRAY.
+
+2005-05-29  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * cgraphunit.c, ipa-inline.c, loop-iv.c, modulo-sched.c,
+       opts.c, postreload-gcse.c, tree-browser.def, tree-eh.c,
+       tree-ssa-copyrename.c, tree-vect-analyze.c: Fix typos and
+       follow spelling conventions in error/dump messages.
+
+2005-05-29  Roger Sayle  <roger@eyesopen.com>
+           Richard Henderson  <rth@redhat.com>
+
+       * ifcvt.c (noce_emit_move_insn): Construct a SET pattern directly
+       if the RHS isn't suitable for calling emit_move_insn.
+
+2005-05-29  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * tree-ssa-ccp.c (ccp_fold): Return immediately after calling
+       fold_unary and fold_binary.
+
+2005-05-29  Roger Sayle  <roger@eyesopen.com>
+
+       * reg-stack.c (propagate_stack): Always copy the source stack to
+       the destination.  This routine is now only called when this is safe.
+       (better_edge): New function split out from convert_regs_1 to
+       determine which of two edges is better to propagate across.
+       (convert_regs_1):  We need only search for a best edge if the
+       stack layout hasn't been defined yet.  Use better_edge to help
+       find beste.  No longer traverse unnecessary edges.
+
+2005-05-29  Keith Besaw  <kbesaw@us.ibm.com>
+
+       * tree-ssa-alias.c (new_type_alias): New procedure to
+       create a type memory tag for a pointer with a may-alias
+       set determined from a variable declaration.
+       * tree-flow.h: export declaration of new_type_alias
+       * tree-optimize.c (init_tree_optimization_passes): document
+       that pass_may_alias cannot be called after pass_vectorize.
+       * tree-vect-transform (vect_create_data_ref_ptr): Call
+       new_type_alias when an type memory tag isn't available
+       for a reference.
+       (vectorizable_store): Use copy_virtual_operands to update
+       virtual defs in place (so that loop_version can be called).
+       Call mark_for_renaming for the virtual defs in case peeling
+       is done and virtual uses outside the loop need to be updated.
+
+2005-05-29  Dorit Naishlos  <dorit@il.ibm.com>
+
+       PR tree-optimization/21639
+       * tree-complex.c (pass_lower_vector_s): Remove TODO_ggc_collect.
+
+2005-05-29  Jan Hubicka  <jh@suse.cz>
+
+       PR tree-optimization/21562
+       * cfgexpand.c (construct_init_block): Deal properly with the case
+       of entry edge not pointing to very first basic block.
+
+2005-05-28  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * tree-ssa-ccp.c (ccp_fold): Remove code that produces
+       non-gimple min invariant.
+
+       * Makefile.in (OBJS-common): Add tree-cfgcleanup.o.
+       * tree-flow.h: Add prototypes for start_recording_case_labels
+       and end_recording_case_labels.
+       * tree-cfg.c (start_recording_case_labels,
+       end_recording_case_labels): Export.
+       (cleanup_tree_cfg_loop, modified_noreturn_calls,
+       cleanup_control_flow, cleanup_control_expr_graph,
+       remove_fallthru_edge, phi_alternatives_equal,
+       tree_forwarder_block_p, has_abnormal_incoming_edge_p,
+       remove_forwarder_block, cleanup_forwarder_blocks,
+       remove_forwarder_block_with_phi, merge_phi_nodes,
+       gate_merge_phi, pass_merge_phi): Move to ...
+       * tree-cfgcleanup.c: ... here.
+
+       * basic-block.h: Remove forward declaration of bb_ann_d.
+
+2005-05-28  Jan Hubicka  <jh@suse.cz>
+
+       * tree-ssa-threadupdate.c: (create_edge_and_update_destination_phis):
+       Update profile.
+       * value-prof.c (tree_divmod_fixed_value_transform): Be more verbose in
+       debug output.
+       (tree_mod_subtract): Fix profile updating code.
+       (tree_divmod_values_to_profile): Do not produce useless value profilers
+       for divisions.
+
+2005-05-28  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * tree-ssa-dom.c (vrp_element_p): Define.
+       (vrp_hash_elt): Change the type of records to
+       VEC(vrp_element_p,heap).
+       (vrp_free): New.
+       (tree_ssa_dominator_optimize): Pass vrp_free to htab_create.
+       Update uses of VRP records.
+       (simplify_cond_and_lookup_avail_expr, record_range): Update
+       uses of VRP records.
+
+       * tree-inline.c (cfun_stack): Change the type to
+       VEC(function_p,heap).
+       (push_cfun, pop_cfun): Use VEC instead of VARRAY.
+
+2005-05-27  Ian Lance Taylor  <ian@airs.com>
+
+       * c-decl.c (add_stmt): Add C frontend specific version.
+       (stmts_are_full_exprs_p): Remove.
+       * c-common.h (STMT_IS_FULL_EXPR_P): Remove.
+       (stmts_are_full_exprs_p): Don't declare.
+       * c-semantics.c (add_stmt): Remove.
+
+2005-05-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * config/mips/mips-protos.h (mips_declare_object): Add printf
+       attribute.
+       * config/mips/mips.c (mips_declare_object_name): Fix format
+       argument.
+
+2005-05-27  Roger Sayle  <roger@eyesopen.com>
+
+       * reg-stack.c (compensate_edge): Remove original prototype.
+       (propagate_stack): New function to copy the stack layout
+       at the start of a basic block from the layout at the end of
+       one of its predecessors.
+       (compensate_edge): Assume that both source and destination
+       blocks have already had their stack layouts defined.
+       (compensate_edges): Traverse all non-entry edges in the CFG
+       and call compensate_edge on each in turn.
+       (convert_regs_1): Change return type to void.  Call
+       propagate_stack instead of compensate_edge.
+       (convert_regs_2): Change return type to void.  Update call
+       to convert_regs_1 to ignore the (now void) return value.
+       (convert_regs): Update calls to convert_regs_2 to ignore
+       the (now void) return value.  After all the basic blocks have
+       been processed, call compensate_edges to actually emit new
+       insns.
+       (reg_to_stack): Initialize the aux info for each basic block
+       with FOR_EACH_BB instead of which FOR_EACH_BB_REVERSE.
+
+2005-05-28  Jan Hubicka  <jh@suse.cz>
+
+       * except.c (can_throw_internal_1, can_throw_external_1): Add 
+       "is_resx" argument.
+       (can_throw_external, can_throw_internal): Bring into sync wrt
+       dealing resx.
+       * except.h (can_throw_internal_1, can_throw_external_1): Update
+       prototype.
+       * tree-eh.c (tree_can_throw_internal, tree_can_throw_external):
+       Deal properly with resx.
+
+2005-05-27  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * basic-block.h (basic_block_def): Add phi_nodes and
+       predictions.  Remove tree_annotations.
+       * predict.c (tree_predicted_by_p, tree_predict_edge,
+       combine_predictions_for_bb): Adjust references to predictions.
+       * tree-cfg.c (init_empty_tree_cfg, create_bb): Don't call
+       create_block_annotation.
+       (create_block_annotation, free_blocks_annotatios,
+       clear_blocks_annotations): Remove.
+       (dump_cfg_stats): Don't print out the memory spent on
+       bb_ann_d.
+       (delete_tree_cfg_annotations): Don't call free_blocks_annotations.
+       * tree-flow-inline.h (bb_ann): Remove.
+       (phi_nodes, set_phi_nodes): Update references to phi_nodes.
+       * tree-flow.h (bb_ann_d): Remove.
+       * tree-if-conv.c (process_phi_nodes): Update a reference to
+       phi_nodes.
+       * tree-phinodes.c (reserve_phi_args_for_new_edge,
+       create_phi_node, remove_phi_node): Likewise.
+       * tree-pretty-print.c (dump_generic_bb_buff): Don't call bb_ann.
+       * tree-ssa-dom.c (threaded_blocks): New.
+       (tree_ssa_dominator_optimize): Initialize, clear, and free
+       threaded_blocks. Update a call to thread_through_all_blocks.
+       (thread_across_edge): Use threaded_blocks instead of setting
+       incoming_edge_threaded.
+       * tree-ssa-threadupdate.c (threaded_through_all_blocks): Take
+       a bitmap of blocks that are threaded through.
+       * tree.h: Move the prototype of threaded_through_blocks to
+       tree-flow.h.
+
+       * domwalk.c (walk_dominator_tree, init_walk_dominator_tree,
+       fini_walk_dominator_tree): Use VEC instead of VARRAY.
+       * domwalk.h (dom_walk_data): Change the type of
+       block_data_stack and free_block_data to VEC(void_p,heap)*.
+       * tree-ssa-dse.c (dse_initialize_block_local_data,
+       dse_optimize_stmt, dse_record_phis, dse_finalize_block): Use
+       VEC instead of VARRAY.
+
+2005-05-27  Jan Hubicka  <jh@suse.cz>
+
+       * cgraph.c: Include tree-gimple.h
+       (cgraph_edge): Rename expr to stmt.
+       (cgraph_create_edge): Likewise.
+       (cgraph_clone_node): Likewise.
+       * cgraph.h (cgraph_node): Use call_stmt instead of call_expr.
+       * cgraphunit.c (record_call_1): Rename to ...
+       (record_reference): ... this one; do not build edges.
+       (cgraph_varpool_analyze_pending_decls): Call record_reference directly.
+       (current_basic_block): Kill.
+       (cgraph_create_edges): Rewrite to work on gimple statements nicely.
+       (verify_cgraph_node): Likewise.
+       * tree-inline.c (copy_body_r): Do not mess up with cgraph edges.
+       (copy_bb): Mess up with cgraph edges here; simplify EH handling.
+       (copy_edges_for_bb): Simplify EH handling.
+       (expand_call_inline): Pass statement to cgraph_edge and
+       cgraph_create_edge.
+
+2005-05-27  Richard Guenther  <rguenth@gcc.gnu.org>
+
+       * tree-inline.c (copy_body_r): Manually fold *& to deal
+       with ADDR_EXPRs with mismatched types for now.
+
+       * gimplify.c (fold_indirect_ref_rhs): New function.
+       (gimplify_modify_expr_rhs): Use it instead of pessimistic
+       fold_indirect_ref.
+
+       * fold-const.c (fold_indirect_ref_1): Add type argument;
+       make sure the resulting expression is of this type.
+       (build_fold_indirect_ref, fold_indirect_ref): Adjust callers.
+
+2005-05-27  Kazu Hirata  <kazu@cs.umass.edu>
+
+       PR tree-optimization/21658
+       * tree-ssa-ccp.c (ccp_fold): Call fold_binary instead of
+       fold_binary_to_constant.  Likewise, call fold_unary instead of
+       fold_unary_to_constant.
+
+2005-05-27  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * vec.h: Implement integral type vector specialization.
+       (VEC_T): Define a non-GTY structure.
+       (VEC_T_GTY): Define a GTY structure.
+       (VEC_TA): Rename to ...
+       (VEC_TA_GTY): ... here.
+       (DEF_VEC_I, DEF_VEC_ALLOC_I): New.
+       (DEF_VEC_P, DEF_VEC_ALLOC_P): Adjust.
+       (DEF_VEC_FUNC_P, DEF_VEC_ALLOC_FUNC_P): New, broken out of
+       DEF_VEC_P and DEF_VEC_ALLOC_P.
+       (DEF_VEC_O, DEF_VEC_ALLOC_O): Adjust.
+       (DEF_VEC_FUNC_O, DEF_VEC_ALLOC_FUNC_O): New, broken out of
+       DEF_VEC_O and DEF_VEC_ALLOC_O.
+       * global.c: Use DEF_VEC_I, DEF_VEC_ALLOC_I.
+       * lambda-code.c: Likewise.
+       * tree-into-ssa.c: Likewise.
+       * tree-ssa-live.c: Likewise.
+
+2005-05-27  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * tree-into-ssa.c (update_ssa): Ensure that the operand cache
+       is up-to-date.
+       * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
+       update_stmt_if_modified before calling update_ssa.
+
+2005-05-27  Ralf Corsepius  <ralf.corsepius@rtems.org>
+
+       * config/rs6000/t-rtems: Remove roe multilib variant.
+
+2005-05-26  Roger Sayle  <roger@eyesopen.com>
+
+       PR tree-optimization/9814
+       * ifcvt.c (noce_emit_move_insn): If we fail to recognize the move
+       instruction, add the necessary clobbers by re-expanding the RTL
+       for arithmetic operations via optab.c's expand_unop/expand_binop.
+       (noce_try_bitop): New function to optimize bit manipulation idioms
+       of the form "if (x & C) x = x op C" and "if (!(x & C) x = x op C".
+       (noce_process_if_block): Call noce_try_bitop.
+
+2005-05-26  Roger Sayle  <roger@eyesopen.com>
+
+       * reg-stack.c (convert_regs_entry, convert_regs_exit,
+       convert_regs_1, convert_regs_2, convert_regs): Delete prototypes.
+       (reg_to_stack): Move to end of the file.  Initialize the per
+       basic block information here, instead of...
+       (convert_regs_entry): Here.
+       (convert_regs): Change unused return type to void.
+
+2005-05-27  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * c-pch.c, timevar.c, timevar.h, unwind-compat.c,
+       unwind-dw2-fde-compat.c, unwind-dw2-fde.c, config/mmix/mmix.h,
+       config/rs6000/eabispe.h, config/rs6000/lynx.h,
+       config/sh/elf.h, config/sh/symbian-pre.h,
+       config/sparc/sparc-protos.h: Update copyright.
+
+2005-05-26  Mike Stump  <mrs@apple.com>
+
+       * darwin.h (ASM_OUTPUT_LABELREF): Handle quoted non-lazy pointers
+       for Objective-C++.
+       
+2005-05-26  Richard Guenther  <rguenth@gcc.gnu.org>
+
+       * tree-ssa-forwprop.c (forward_propagate_addr_expr):
+       See through ADDR_EXPR in finding place to propagate into.
+
+2005-05-26  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * c-common.c, c-parser.c, cfgbuild.c, cfghooks.c, cfghooks.h,
+       cfgrtl.c, cgraphunit.c, ddg.c, expr.h, gcse.c, ggc-page.c,
+       ggc-zone.c, gimplify.c, ipa-inline.c, longlong.h, targhooks.c,
+       tree-flow-inline.h, tree-pass.h, tree-ssa-dse.c,
+       tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c,
+       tree-ssa-operands.c, tree-vect-analyze.c,
+       tree-vect-transform.c, tree-vectorizer.c, tree.c,
+       config/arm/arm.c, config/bfin/bfin.c, config/frv/frv.c,
+       config/frv/frv.md, config/i386/i386.c, config/i386/sse.md,
+       config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
+       config/mcore/mcore.c, config/mips/mips.c, config/mips/mips.md,
+       config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
+       config/rs6000/rs6000.h, config/sh/sh.c, config/sh/sh.md,
+       config/sh/ushmedia.h, config/sparc/sparc.c,
+       config/sparc/sparc.md, config/stormy16/stormy-abi: Fix comment
+       typos.  Follow spelling conventions.
+       * doc/invoke.texi, doc/tm.texi, doc/tree-ssa.texi: Fix typos.
+       Follow spelling conventions.
+
+2005-05-26  David Ung  <davidu@mips.com>
+
+       * config/mips/mips.c (mips_use_ins_ext_p): New helper function
+       that determines whether the MIPS32/64 R2 ext/ins should be used.
+       * config/mips/mips.h (ISA_HAS_EXT_INS): New macro.
+       * config/mips/mips.md (extzv): Changed predicate for operand to
+       nonimmediate_operand. Add code to generate insn patterns for
+       extzvsi and extzvdi.
+       (extzv<mode>): New pattern to match mips32/64 r2 ext insn.
+       (insv): Similarly for insertion.
+       (insv<mode>): Similarly.
+
+2005-05-26  Paolo Bonzini  <bonzini@gnu.org>
+
+       * simplify-rtx.c (avoid_constant_pool_reference): Support
+       offsetted addresses in the constant pool.
+
+2005-05-26  Paolo Bonzini  <bonzini@gnu.org>
+
+       * df.h (DF_SUBREGS, df_local_def_available_p, df_insn_modified_p): New.
+       * df.c (DF_SUBREGS, df_local_def_available_p, df_insn_modified_p): New.
+
+2005-05-26  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/21716
+       * reg-stack.c (swap_rtx_condition): Don't crash if %ax user was not
+       found in the basic block and last insn in the basic block is not
+       INSN_P.  Remove explicit unspec numbers that are no longer valid
+       from comments.
+
+2005-05-26  Paolo Bonzini  <bonzini@gnu.org>
+
+       * tree-vect-transform.c (vectorizable_operation): Try word_mode
+       vectorization if UNITS_PER_WORD == UNITS_PER_SIMD_WORD, even
+       if a vector mode is available.
+
+2005-05-25  Roger Sayle  <roger@eyesopen.com>
+
+       PR middle-end/21709
+       * fold-const.c (const_binop): Check for division by zero during
+       complex division.
+
+2005-05-26  Ian Lance Taylor  <ian@airs.com>
+
+       * reload1.c (verify_initial_elim_offsets): Add braces to avoid
+       having a declaration after a statement.
+
+2005-05-26  Richard Sandiford  <rsandifo@redhat.com>
+
+       * opt-functions.awk (var_type): New function.
+       (var_set): Use CLVC_STRING if var_type returns "const char *".
+       * opth-gen.awk: Use var_type to find out the types of variables.
+       Don't print comments above each "extern" definition.
+       * optc-gen.awk: Use var_type in the same way.
+       * opts.h (cl_var_cond): Rename to...
+       (cl_var_type): ...this.  Add CLVC_STRING.
+       (cl_option): Make "flag_var" a "void *" pointer.  Replace "var_cond"
+       with "var_type".
+       * opts.c (handle_option, option_enabled): Update after above name
+       change.  Cast flag_var before using it.  Handle CLVC_STRING.
+       
+       * config/alpha/alpha.h (alpha_tls_size): Delete.
+       * config/alpha/alpha.c (alpha_tls_size, alpha_cpu_string)
+       (alpha_tune_string, alpha_tp_string, alpha_fprm_string)
+       (alpha_fptm_string, alpha_mlat_string): Delete.
+       (alpha_handle_option): Don't set the above variables here.  Use the
+       integer argument to check the validity of -mtls-size=.
+       * config/alpha/alpha.opt (mcpu=, mtune=, mfp-rounding-mode=)
+       (mfp-trap-mode=, mtrap-precision=, mmemory-latency=): Add Var()s.
+       (mtls-size=): Likewise.  Convert to a UInteger and initialize the
+       variable to 32.
+
+       * config/arc/arc.c (arc_cpu_string, arc_text_string)
+       (arc_data_string, arc_rodata_string): Delete.
+       (arc_handle_option): Don't set the above variables here.
+       * config/arc/arc.opt (mcpu=, mtext=, mdata=, mrodata=): Add Var()s
+       and initialize them.
+
+       * config/arm/arm.c (target_fpu_name, target_fpe_name)
+       (target_float_abi_name, target_abi_name, structure_size_string)
+       (arm_pic_register_string): Delete.
+       (arm_handle_option): Don't set the above variables here, except
+       in the handling of -mhard-float and -msoft-float.
+       * config/arm/arm.opt (mabi=, mfloat-abi=, mfp=, mfpe=, mfpu=)
+       (mpic-register=, mstructure-size-boundary=): Add Var()s.
+
+       * config/avr/avr.c (avr_init_stack, avr_mcu_name, TARGET_HANDLE_OPTION)
+       (avr_handle_option): Delete.
+       * config/avr/avr.opt (mmcu=, minit-stack=): Add Var()s and initialize
+       them.
+
+       * config/bfin/bfin.c (bfin_library_id): Delete.
+       (bfin_handle_option): Don't set it.
+       * config/bfin/bfin.opt (mshared-library-id=): Add Var().
+
+       * config/c4x/c4x.h (c4x_rpts_cycles): Delete.
+       * config/c4x/c4x.c (c4x_rpts_cycles): Delete.
+       (c4x_handle_option): Don't set c4x_rpts_cycles here.
+       * config/c4x/c4x.opt (mrpts=): Add Var().
+
+       * config/cris/aout.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't set
+       cris_elinux_stacksize_str here.
+       * config/cris/aout.opt (melinux-stacksize=): Add Var().
+       * config/cris/cris.h (cris_max_stackframe_str, cris_cpu_str)
+       (cris_tune_str, cris_elinux_stacksize_str): Delete.
+       * config/cris/cris.c (cris_max_stackframe_str, cris_cpu_str)
+       (cris_tune_str, cris_elinux_stacksize_str): Delete.
+       (cris_handle_option): Don't set the above variables here.
+       * config/cris/cris.opt (mcpu=, march=, mtune=, mmax-stackframe=)
+       (max-stackframe=): Add Var()s.
+
+       * config/i386/i386.h (ix86_tune_string, ix86_arch_string): Delete.
+       * config/i386/i386.c (ix86_cmodel_string, ix86_asm_string)
+       (ix86_tls_dialect_string, ix86_tune_string, ix86_arch_string)
+       (ix86_fpmath_string, ix86_regparm_string, ix86_align_loops_string)
+       (ix86_align_jumps_string, ix86_preferred_stack_boundary_string)
+       (ix86_branch_cost_string, ix86_align_funcs_string): Delete.
+       (ix86_handle_option): Don't set the above variables here.
+       * config/i386/i386.opt (malign-functions=, malign-jumps=)
+       (malign-loops=, march=, masm=, mbranch-cost=, mcmodel=, mfpmath=)
+       (mpreferred-stack-boundary=, mregparm=, mtls-dialect=, mtune=): Add
+       Var()s.
+
+       * config/ia64/ia64.h (ia64_tls_size): Delete.
+       * config/ia64/ia64.c (ia64_tls_size): Delete.
+       (ia64_handle_option): Treat -mtls-size= as a UInteger option,
+       reading the integer argument from the "value" parameter.  Don't
+       set ia64_tls_size here.
+       * config/ia64/ia64.opt (mtls-size=): Turn into a UInteger option.
+       Add Var() and Init().
+
+       * config/m32r/m32r.h (m32r_cache_flush_func): Delete.
+       (m32r_cache_flush_trap): Delete.
+       * config/m32r/m32r.c (m32r_cache_flush_func): Delete.
+       (m32r_cache_flush_trap): Delete.
+       (m32r_handle_option): Don't set the above variables when handling
+       -mflush-func= and -mflush-trap=.
+       * config/m32r/m32r.opt (-mflush-func=, -mflush-trap=): Add Var()s
+       and Init()s.
+
+       * config/mips/mips.h (mips_cache_flush_func): Delete.
+       * config/mips/mips.c (mips_arch_string, mips_tune_string)
+       (mips_cache_flush_func): Delete.
+       (mips_handle_option): Don't set the above variables when handling
+       -march=, -mtune= and -mflush-func=.
+       * config/mips/mips.opt (march=, mflush-func=, mtune=): Add Var()s.
+
+       * config/s390/s390.c (s390_arch_string): Delete.
+       (s390_handle_option): Don't set it here.
+       * config/s390/s390.opt (march=): Add Var().
+
+       * config/sparc/sparc.h (sparc_cmodel_string): Delete.
+       * config/sparc/sparc.c (sparc_cmodel_string): Delete.
+       (sparc_handle_option): Don't set it here.
+       * config/sparc/sparc.opt (mcmodel=): Add Var().
+
+2005-05-25  Roger Sayle  <roger@eyesopen.com>
+
+       * convert.c (convert_to_integer) <POINTER_TYPE>: Avoid recursive
+       call to convert_to_integer by building the NOP_EXPR directly.
+
+2005-05-25  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/rs6000/rs6000.opt (mprioritize-restricted-insns=): Fix typo.
+
+2005-05-25  Daniel Berlin  <dberlin@dberlin.org>
+           Jeff Law  <law@redhat.com>
+
+       * tree-cfg.c (verify_expr, case ADDR_EXPR): Verify invariant,
+       constant and side_effects of the ADDR_EXPR are consistent.
+
+       * tree-nested.c (convert_local_reference): Set CURRENT_FUNCTION_DECL
+       appropriately around calls to recompute_tree_invarant_for_addr_expr.
+
+2005-05-25  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * config/s390/s390.c (GP_ARG_NUM_REG, FP_ARG_NUM_REG): New defines.
+       (s390_function_arg, s390_gimplify_va_arg): Use them.
+       (s390_register_info): Save only required subset of argument
+       registers into save area for va_list.
+       (s390_va_start): Initialize only required elements of va_list struct.
+       (s390_build_builtin_va_list): Set va_list_[gf]pr_counter_field.
+
+2005-05-25  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * reload1.c (verify_initial_elim_offsets): Return boolean status
+       instead of aborting.
+       (reload): Adapt verify_initial_elim_offsets call site.  Restart
+       main loop if some initial elimination offsets changed.
+
+2005-05-25  Adam Nemet  <anemet@lnxw.com>
+
+       * config/rs6000/lynx.h (CC1_SPEC): Use -maix-struct-return instead
+       of -mno-svr4-struct-return.
+
+2005-05-25  Daniel Berlin  <dberlin@dberlin.org>
+
+       Fix PR tree-optimization/21705
+       
+       * tree-ssa-pre.c (in_fre): New static variable.
+       (create_value_expr_from): Recursively value number reference ops
+       in argument lists.
+       (can_value_number_call): Temporary restrict only exists for
+       PRE, not FRE.
+
+2005-05-25  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * tree-into-ssa.c (rewrite_into_ssa, update_ssa): Replace
+       sizeof (bitmap *) with sizeof (bitmap).
+
+2005-05-25  Daniel Berlin <dberlin@dberlin.org>
+
+       * lambda-code.c (perfect_nestify): Call update_stmt on the exit
+       condition.
+
+2005-05-25  Adrian Straetling  <straetling@de.ibm.com>
+
+       * config/s390/s390.c (TARGET_INSN_VALID_WITHIN_DOLOOP): Set to
+       hook_bool_rtx_true.
+
+2005-05-25  Jan Hubicka  <jh@suse.cz>
+
+       * Makefile.in (ipa-inline.o): Add COEVERAGE_H dependency.
+       * cgraph.c (cgraph_create_node): Reset estimated_growth.
+       * cgraph.h (cgraph_global_info): Add estimated_growth.
+       * ipa-inline.c: Include coverage.h
+       (max_insns, max_count): New static variables.
+       (cgraph_estimate_size_after_inlining): Cache the result.
+       (cgraph_estimate_growth):
+       * passes.c (rest_of_clean_state): Kill coverage_end_function.
+       * timevar.def (TV_INLINE_HEURISTICS): New timevar.
+       * tree-optimize.c (init_tree_optimization_passes): Move profiling before
+       inlining.
+       (ipa_passes): Initialize bitmaps.
+
+2005-05-25  Adrian Straetling  <straetling@de.ibm.com>
+
+       * loop-doloop.c: Include "target.h". 
+         (doloop_valid_p): Move tests to function in targhooks.c.
+       * target.h (struct gcc_target): New target hook
+         "insn_valid_within_doloop".
+       * target-def.h: Define default value for "insn_valid_within_doloop".
+         (TARGET_INITIALIZER): Insert new target hook into initializer.
+       * targhooks.c (default_insn_valid_within_doloop): New function.
+       * targhooks.h (default_insn_valid_within_doloop): Declare.
+       * hooks.c (hook_bool_rtx_true): New function.
+       * hooks.h (hook_bool_rtx_true): Declare.
+       * doc/tm.texi: Add documentation for new target hook.
+
+2005-05-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       PR target/21412
+       * config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): New macro
+       * config/sparc/sparc-protos.h (tls_symbolic_operand): Delete.
+       (sparc_tls_referenced_p): New prototype.
+       * config/sparc/sparc.c (tls_symbolic_operand): Delete.
+       (sparc_expand_move): Look for TLS addresses with constant offsets.
+       (legitimate_constant_p): Use SPARC_SYMBOL_REF_TLS_P instead of
+       tls_symbolic_operand.
+       (legitimate_pic_operand_p): Likewise.
+       (legitimate_address_p): Likewise.
+       (legitimize_address): Likewise.
+       (sparc_tls_symbol_ref_1): New function.
+       (sparc_tls_referenced_p): New function.
+       * config/sparc/predicates.md (tgd_symbolic_operand): Use
+       SYMBOL_REF_TLS_MODEL instead of tls_symbolic_operand.
+       (tld_symbolic_operand): Likewise.
+       (tie_symbolic_operand): Likewise.
+       (tle_symbolic_operand): Likewise.
+
+2005-05-24  DJ Delorie  <dj@redhat.com>
+       
+       * common.opt (-Wattributes): New.  Default true.
+       * doc/invoke.texi (-Wno-attributes): Document.
+       
+       * attribs.c (decl_attributes): Move warning control from if() to
+       warning(OPT_*).
+       * c-common.c (handle_packed_attribute): Likewise.
+       (handle_nocommon_attribute): Likewise.
+       (handle_common_attribute): Likewise.
+       (handle_noreturn_attribute): Likewise.
+       (handle_noinline_attribute): Likewise.
+       (handle_always_inline_attribute): Likewise.
+       (handle_used_attribute): Likewise.
+       (handle_unused_attribute): Likewise.
+       (handle_const_attribute): Likewise.
+       (handle_transparent_union_attribute): Likewise.
+       (handle_constructor_attribute): Likewise.
+       (handle_destructor_attribute): Likewise.
+       (handle_mode_attribute): Likewise.
+       (handle_alias_attribute): Likewise.
+       (handle_visibility_attribute): Likewise.
+       (handle_tls_model_attribute): Likewise.
+       (handle_malloc_attribute): Likewise.
+       (handle_returns_twice_attribute): Likewise.
+       (handle_pure_attribute): Likewise.
+       (handle_deprecated_attribute): Likewise.
+       (handle_vector_size_attribute): Likewise.
+       (handle_nothrow_attribute): Likewise.
+       (handle_cleanup_attribute): Likewise.
+       (handle_warn_unused_result_attribute): Likewise.
+       (handle_sentinel_attribute): Likewise.
+       * c-decl.c (diagnose_mismatched_decls): Likewise.
+       (start_decl): Likewise.
+       (grokdeclarator): Likewise.
+       (start_function): Likewise.
+       * c-format.c (check_function_format): Likewise.
+       * stor-layout.c (place_field): Likewise.
+       (finalize_record_size): Likewise.
+       * tree.c (handle_dll_attribute)): Likewise.
+       * varasm.c (default_assemble_visibility): Likewise.
+       * config/darwin.c (darwin_handle_weak_import_attribute): Likewise.
+       (darwin_assemble_visibility): Likewise.
+       * config/arc/arc.c (arc_handle_interrupt_attribute): Likewise.
+       * config/arm/arm.c (arm_handle_fndecl_attribute): Likewise.
+       (arm_handle_isr_attribute): Likewise.
+       * config/avr/avr.c (avr_handle_progmem_attribute): Likewise.
+       (avr_handle_fndecl_attribute): Likewise.
+       * config/bfin/bfin.c (handle_int_attribute): Likewise.
+       * config/c4x/c4x.c (c4x_handle_fntype_attribute): Likewise.
+       * config/h8300/h8300.c (h8300_handle_fndecl_attribute): Likewise.
+       (h8300_handle_eightbit_data_attribute): Likewise.
+       (h8300_handle_tiny_data_attribute): Likewise.
+       * config/i386/i386.c (ix86_handle_cdecl_attribute): Likewise.
+       (ix86_handle_regparm_attribute): Likewise.
+       (ix86_handle_struct_attribute): Likewise.
+       * config/i386/winnt.c (ix86_handle_shared_attribute): Likewise.
+       (i386_pe_encode_section_info): Likewise.
+       * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
+       * config/ip2k/ip2k.c (ip2k_handle_progmem_attribute): Likewise.
+       (ip2k_handle_fndecl_attribute): Likewise.
+       * config/m32r/m32r.c (m32r_handle_model_attribute): Likewise.
+       * config/m68hc11/m68hc11 (m68hc11_handle_page0_attribute): Likewise.
+       (m68hc11_handle_fntype_attribute): Likewise.
+       (m68hc11_encode_section_info): Likewise.
+       * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
+       * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
+       * config/ns32k/ns32k.c (ns32k_handle_fntype_attribute): Likewise.
+       * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute): Likewise.
+       * config/sh/sh.c (sh_handle_interrupt_handler_attribute): Likewise.
+       (sh_handle_sp_switch_attribute): Likewise.
+       (sh_handle_trap_exit_attribute): Likewise.
+       * config/sh/symbian.c (sh_symbian_dllimport_p): Likewise.
+       (sh_symbian_handle_dll_attribute): Likewise.
+       * config/stormy16/stormy16.c (xstormy16_handle_interrupt_attribute): Likewise.
+       (xstormy16_handle_below100_attribute): Likewise.
+       * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
+
+       * c-common.c (unsigned_conversion_warning): Move warning control
+       from if() to warning(OPT_*).
+       (c_common_truthvalue_conversion): Likewise.
+       (c_do_switch_warnings): Likewise.
+       * c-decl.c (diagnose_mismatched_decls): Likewise.
+       (diagnose_mismatched_decls): Likewise.
+       (define_label): Likewise.
+       (grokdeclarator): Likewise.
+       * c-format.c (check_format_info): Likewise.
+       * c-lex.c (interpret_integer): Likwise.
+       (lex_string): Likewise.
+       * c-opts.c (c_common_post_options): Likewise.
+       * c-parser.c (c_parser_unary_expression): Likewise.
+       * c-pragma.c (handle_pragma_redefine_extname): Likewise.
+       (handle_pragma_extern_prefix): Likewise.
+       * c-typeck.c (build_binary_op): Likewise.
+       * gcse.c (is_too_expensive): Likewise.
+       * opts.c (decode_options): Likewise.
+       * stor-layout.c (place_field): Likewise.
+       * tree-cfg.c (remove_bb): Likewise.
+
+       * c.opt (-Wreturn-type): Add Var(warn_return_type).
+       * flags.h (warn_return_type): Remove.
+       * toplev.c (warn_return_type): Likewise.
+
 2005-05-24  Kelley Cook  <kcook@gcc.gnu.org>
 
        * configure.ac: Don't use gcc_AC_C_LONG_LONG.  Check for
 
 2005-05-17  Paolo Bonzini  <bonzini@gnu.org>
 
+       * tree-ssa-math-opts.c: New file.
+
+2005-05-17  Paolo Bonzini  <bonzini@gnu.org>
+
        * Makefile.in: Add tree-ssa-math-opts.c.
        * expr.c (expand_expr_real_1) <case RDIV_EXPR>: Never emit as a*(1/b).
        * fold-const.c (distribute_real_division): New.