OSDN Git Service

* gfortran.texi: Use @table @emph instead of @itemize @emph.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index c24bd0f..0bc5892 100644 (file)
+2004-05-13  Paul Brook  <paul@codesourcery.com>
+
+       * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.
+
+2004-05-13  Paul Brook  <paul@codesourcery.com>
+
+       * config/arm/arm.c (arm_default_short_enums): New function.
+       (TARGET_DEFAULT_SHORT_ENUMS): Define.
+
+2004-05-13  Diego Novillo  <dnovillo@redhat.com>
+
+       Merge from tree-ssa-20020619-branch.
+
+       * Makefile.in (reload1.o-warn): Add.
+       (tree-alias-ander.o-warn): Add.
+       (GMPLIBS): Define.
+       (GMPINC): Define.
+       (BANSHEELIB): Define.
+       (BANSHEEINC): Define.
+       (TREE_DUMP_H): Define.
+       (TREE_SIMPLE_H): Define.
+       (TREE_FLOW_H): Define.
+       (LIBDEPS): Add BANSHEELIB.
+       (INCLUDES): Add BANSHEEINC and GMPINC.
+       (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
+       c-mudflap.o and c-pretty-print.o.
+       (C_OBJS): Remove c-pretty-print.o.
+       (OBJS-common): Remove sibcall.o.
+       Add tree-cfg.o, tree-dfa.o, tree-eh.o,
+       tree-ssa.o, tree-optimize.o, tree-simple.o,
+       tree-alias-type.o, gimplify.o, tree-pretty-print.o,
+       tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
+       tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
+       tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
+       tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
+       tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
+       tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
+       tree-tailcall.o, gimple-low.o, tree-iterator.o,
+       tree-phinodes.o, tree-ssanames.o, tree-sra.o,
+       tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
+       tree-profile.o.
+       (OBJC-archive): Add tree-nomudflap.o.
+       (cc1): Add dependency on @TREEBROWSER@.
+       (c-decl.o): Add dependency on TREE_DUMP_H.
+       (c-dump.o): Likewise.
+       (c-common.o): Add dependency on tree-iterator.h
+       (c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
+       (gtype-desc.o): Add dependency on TREE_FLOW_H.
+       (tree.o): Add dependency on tree-iterator.h,
+       BASIC_BLOCK_H and TREE_FLOW_H.
+       (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
+       (langhooks.o): Add dependency on TREE_SIMPLE_H.
+       (tree-alias-type.o, tree-alias-ander.o,
+       tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
+       tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
+       tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
+       tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
+       domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
+       tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
+       tree-nested.o, tree-iterator.o, tree-dfa.o,
+       tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
+       tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
+       gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
+       tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
+       tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
+       tree-sra.o, tree-complex.o, tree-profile.o,
+       rtl-profile.o): New rules.
+       (function.o): Add dependency on basic-block.h
+       (expr.o): Add dependency on tree-iterator.h.
+       (sibcall.o): Remove.
+       (profile.o): Depend on TREE_FLOW_H instead of TREE_H.
+       (cfg.o): Add dependency on TIMEVAR_H.
+       (cfghooks.o): Add dependency on TREE_FLOW_H.
+       (reg-stack.o): Add dependency on basic-block.h.
+       (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
+       c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
+       tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
+       tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
+       tree-alias-type.h, tree-alias-common.h,
+       tree-alias-type.c, tree-alias-common.c,
+       tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
+       rtl-profile.c and tree-nested.c.
+       (gt-tree-alias-common.h, gt-tree-mudflap.h,
+       gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
+       gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
+       gt-tree-cfg.h, gt-tree-nested.h): New rules.
+       (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
+       * basic-block.h: Include predict.h
+       (struct edge_def): Add GTY marker.
+       Change field 'insns' to be a union of tree and rtx.
+       (EDGE_TRUE_VALUE): Define.
+       (EDGE_FALSE_VALUE): Define.
+       (EDGE_EXECUTABLE): Define.
+       (struct bb_ann_d): Forward declare.
+       (struct basic_block_def): Add GTY marker.
+       Remove fields head_tree and end_tree.
+       Add fields stmt_list, rbi and tree_annotations.
+       (struct reorder_block_def): Define.
+       (basic_block_info): Add GTY marker.
+       (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
+       variables instead of macros.
+       (flow_call_edges_add): Remove declaration.
+       (make_eh_edge): Remove declaration.
+       (brief_dump_cfg, find_edge, tree_predicted_by_p,
+       rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
+       predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
+       cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
+       alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
+       (try_redirect_by_replacing_jump): Modfiy return type to
+       edge instead of bool.
+       * bb-reorder.c (copy_bb): Call duplicate_block
+       instead of cfg_layout_duplicate_bb.
+       (copy_bb_p): Call can_duplicate_block_p instead of
+       cfg_layout_can_duplicate_bb_p.
+       * bitmap.c (bitmap_first_set_bit): Abort if word
+       wasn't found.
+       (bitmap_last_set_bit): Likewise.
+       * builtin-types.def (DEF_FUNCTION_TYPE_2): Add
+       (DEF_FUNCTION_TYPE_3): Add.
+       * builtins.c (c_strlen): Make extern.
+       (builtin_save_expr): New.
+       (expand_builtin_nonlocal_goto): New.
+       (expand_builtin_constant_p): Remove.
+       (expand_builtin_mathfn): Call builtin_save_expr instead
+       of save_expr.
+       (expand_builtin_mathfn_2): Likewise.
+       (expand_builtin_strcmp): Likewise.
+       (expand_builtin_strncmp): Likewise.
+       (expand_builtin_strcat): Likewise.
+       (fold_builtin_cabs): Likewise.
+       (expand_builtin_alloca): Don't trigger if -fmudflap is
+       given.
+       (build_string_literal): Set TREE_INVARIANT on new node.
+       (expand_builtin_profile_fun): New.
+       (round_trampoline_addr): New.
+       (expand_builtin_init_trampoline): New.
+       (expand_builtin_adjust_trampoline): New.
+       (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
+       <BUILT_IN_CONSTANT_P>: Return const0_rtx;
+       <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
+       BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
+       BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
+       BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
+       Handle.
+       (fold_builtin_expect): New.
+       (fold_builtin_isascii): Don't return non-constant results
+       in GIMPLE form.
+       (fold_builtin_isdigit): Likewise.
+       (fold_builtin_1): New.
+       (fold_builtin): Call it.
+       (build_function_call_expr): Update call to build a new
+       CALL_EXPR.
+       (purge_builtin_constant_p): Remove.
+       (simplify_builtin, simplify_builtin_memcmp,
+       simplify_builtin_strcmp, simplify_builtin_strncmp,
+       simplify_builtin_strpbrk, simplify_builtin_strstr,
+       simplify_builtin_strchr, simplify_builtin_strrchr,
+       simplify_builtin_strcat, simplify_builtin_strncat,
+       simplify_builtin_strspn, simplify_builtin_strcspn,
+       simplify_builtin_next_arg, simplify_builtin_va_start,
+       simplify_builtin_sprintf): New.
+       * builtins.def (BUILT_IN_STACK_ALLOC,
+       BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
+       BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
+       BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
+       BUILT_IN_PROFILE_FUNC_EXIT): Define.
+       * c-common.c: Include tree-iterator.h and hashtab.h.
+       (lang_statement_code_p): Declare.
+       (lang_gimplify_stmt): Declare.
+       (fix_string_type): Set TREE_INVARIANT for value.
+       (pointer_int_sum): Rely on build to set TREE_CONSTANT.
+       (c_type_hash): New.
+       (c_common_get_alias_set): Handle multiple type nodes
+       referring to "the same" type, currently for C90 only.
+       (c_add_case_label): Use create_artificial_label.
+       (finish_label_address_expr): Don't set TREE_CONSTANT on
+       result.
+       (c_expand_expr): Don't handle STMT_EXPR.
+       (handle_alias_attribute): Marke aliased variables to be
+       TREE_STATIC.
+       (handle_nonnull_attribute): Initialize arg_num.
+       (check_function_nonnull): Likewise.
+       (c_walk_subtrees): New.
+       (c_estimate_num_insns_1): Don't handle
+       EXPR_WITH_FILE_LOCATION nor FILE_STMT.
+       (c_decl_uninit_1): Remove.
+       (c_decl_uninit): Remove.
+       (c_warn_unused_result): New.
+       * c-common.def (ASM_STMT): Change number of operands
+       to 4.
+       (FILE_STMT): Remove.
+       * c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
+       Remove.
+       (lang_gimplify_stmt): Add.
+       (expand_stmt): Remove.
+       (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
+       ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
+       ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
+       FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
+       ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
+       (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
+       genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
+       genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
+       genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
+       genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
+       genrtl_compound_stmt, genrtl_asm_stmt,
+       genrtl_cleanup_stmt, c_decl_uninit): Remove.
+       (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
+       c_tree_chain_matters_p, c_warn_unused_result,
+       c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
+       Declare.
+       * c-convert.c (convert): Make convert work when
+       converting to compatible types across translation unit.
+       * c-decl.c: Include langhooks.h, tree-mudflap.h,
+       tree-simple.h, diagnostic.h and tree-dump.h
+       (merge_decls): Initialize oldtype to NULL.
+       (finish_decl): Use DECL_HARD_REGISTER instead of
+       DECL_C_HARD_REGISTER.
+       (check_bitfield_type_and_width): Check for null
+       lang_type_specific when check the precision of an enum.
+       (grokdeclarator): Immediately layout an ARRAY_TYPE used
+       in a pointer-to-array declarator.
+       (finish_struct): Clear allocated struct lang_type.
+       (finish_enum): Set enum_min and enum_max.  Set
+       TYPE_MIN/MAX_VALUE to the limits of the compatible type,
+       not to the enumerators.
+       (set_decl_nonlocal): New.
+       (store_parm_decls): Use it via walk_tree.
+       (c_finalize): New.
+       (finish_function): When !targetm.have_ctors_dtors,
+       record static constructors and destructors here...
+       (c_expand_body_1): ... not here.
+       (c_expand_decl): Rename from c_expand_decl_stmt.
+       Handle all C-specific expansion semantics.
+       * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
+       STMT_LINENO.
+       * c-format.c (handle_format_arg_attribute): Initialize
+       format_num.
+       * c-lang.c: Include tree-inline.h
+       (LANG_HOOKS_EXPAND_DECL,
+       LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
+       LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
+       LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
+       LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
+       (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
+       LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
+       (c_types_compatible_p): New.
+       * c-mudflap.c: New file.
+       * c-objc-common.c: Include tree-mudflap.h
+       (start_cdtor, finish_cdtor): Collapse
+       together into
+       (build_cdtor): ...here.  Update to construct a complete tree
+       for the function.  No need to call push_scope, pop_scope, or
+       clear_last_expr, or set current_function_cannot_inline.
+       (c_missing_noreturn_ok_p): Change prototype to return
+       bool.
+       (c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
+       * c-opts.c (c_common_handle_option): Move handling of -fdump- to
+       opts.c.
+       (c_common_post_options): Don't ever use rtl inlining.
+       * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
+       * c-pragma.c (handle_pragma_redefine_extname): Define
+       always.
+       (init_pragma): Activate #pragma redefine_extname for mudflap.
+       * c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
+       (pp_c_initializer): Accept any type CONSTRUCTOR.
+       (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
+       COMPLEX_TYPE.
+       (decl_name_str): New local function.
+       (pp_c_direct_declarator): Call it.
+       (pp_c_primary_expression): Call it.
+       (pp_c_id_expression): Call it.
+       (pp_c_statement): Call it.
+       (print_c_tree): Create new pp object.
+       * c-pretty-print.h (pp_c_tree_decl_identifier,
+       print_c_tree): Declare.
+       * c-semantics.c: Include langhooks.h
+       (lang_expand_stmt, lang_expand_decl_stmt,
+       find_reachable_label_1, find_reachable_label,
+       expand_unreachable_if_stmt, expand_unreachable_stmt,
+       genrtl_do_stmt_1): Remove.
+       (begin_stmt_tree): Don't check for changed filename.
+       Call annotate_with_locus.
+       (finish_stmt_tree): Don't set line for end of function.
+       (build_stmt): Don't check type nodes for
+       side effects.
+       (build_stmt): Set TREE_SIDE_EFFECTS.
+       Set EXPR_LOCUS instead of STMT_LINENO.
+       (lang_expand_stmt, lang_expand_decl_stmt,
+       expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
+       genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
+       genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
+       genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
+       genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
+       genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
+       genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
+       find_reachable_label_1, expand_unreachable_if_stmt,
+       expand_unreachable_stmt): Remove.
+       (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
+       * c-simplify.c: New file.
+       * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
+       (struct lang_type): Add fields enum_min and enum_max.
+       (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
+       (c_expand_decl, c_missing_noreturn_ok_p,
+       c_types_compatible_p): Declare.
+       * c-typeck.c (tagged_types_tu_compatible_p): Allow for
+       compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
+       (default_function_array_conversion): Rely on build to
+       set TREE_CONSTANT.
+       (parser_build_binary_op, pointer_diff): Likewise.
+       (build_unary_op, build_binary_op): Likewise.
+       (build_array_ref):
+       (build_external_ref): Set TREE_INVARIANT.
+       (build_c_cast, pop_init_level): Likewise.
+       (process_init_element): Use ASM_VOLATILE_P.
+       (build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
+       (c_finish_case): Call c_do_switch_warnings.
+       * c.opt (fdump-): Remove.
+       * calls.c (try_to_integrate): Remove.
+       (prepare_call_address): Replace fndecl arg with a
+       precomputed static chain value.
+       (emit_call_1): New argument for full call expr.
+       (flags_from_decl_or_type): Call special_function_p.
+       (initialize_argument_information): Add argument
+       may_tailcall.
+       (purge_reg_equiv_notes): New.
+       (expand_call): Do not try to expand calls inline.
+       (fixup_tail_calls): New.
+       * cfg.c: Include timevar.h and ggc.h.
+       (bb_pool, edge_pool): Remove.
+       (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
+       (entry_exit_blocks): Remove.
+       (rbi_pool): Declare.
+       (init_flow): Do not create pools.
+       Allocate entry/exit block.
+       (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
+       (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
+       (unlink_block): Clear b->prev_bb and b->next_bb.
+       (compact_blocks): Clear all slots of BASIC_BLOCK array.
+       (dump_flow_info): Work on trees too.
+       (dump_cfg_bb_info): New.
+       (brief_dump_cfg): New.
+       * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
+       (find_edge): New.
+       * cfgbuild.c (rtl_make_eh_edge): Rename from
+       make_eh_edge.  Update all users.
+       (find_basic_blocks): Don't call VARRAY_FREE on
+       basic_block_info.
+       * cfgcleanup.c (outgoing_edges_match): Initialize newpos1
+       and newpos2.
+       (delete_unreachable_blocks): Return changed status.
+       (merge_seq_blocks): New.
+       * cfghooks.c: Include tree-flow.h
+       (tree_register_cfg_hooks, ir_type): New.
+       (redirect_edge_and_branch): Change return type to edge.
+       (predict_edge, predicted_by_p, can_duplicate_block_p,
+       duplicate_block, block_ends_with_call_p,
+       block_ends_with_condjump_p, flow_call_edges_add): New.
+       * cfghooks.h (redirect_edge_and_branch): Change return
+       type to edge.
+       (predict_edge, predicted_by_p, can_duplicate_block_p,
+       duplicate_block, block_ends_with_call_p,
+       block_ends_with_condjump_p, flow_call_edges_add): Declare.
+       (redirect_edge_and_branch): Change return type to edge.
+       (struct cfg_hooks): Add fields block_ends_with_call_p,
+       block_ends_with_condjump_p, flow_call_edges_add,
+       predict_edge, predicted_by_p, can_duplicate_block_p and
+       duplicate_block.
+       (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
+       * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
+       (fixup_reorder_chain): Use initialize_bb_rbi.
+       (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
+       (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
+       (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
+       (insn_locators_initialize): Use new info about blocks.
+       * cfglayout.h (typedef struct reorder_block_def): Moved to
+       basic_block.h.
+       (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
+       removed.
+       * cfgloop.c: Include tree.h and tree-flow.h.
+       * cfgloop.h (create_loop_notes): Declare.
+       * cfgloopmanip.c (create_loop_notes): New.
+       * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
+       (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
+       and duplicate_block fields.
+       (create_basic_block_structure): Don't look at
+       RTX_INTEGRATED_P.
+       (rtl_block_ends_with_call_p): New.
+       (rtl_block_ends_with_condjump_p): New.
+       (need_fake_edge_p): Moved from cfganal.c.
+       (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
+       (rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
+       rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
+       (cfg_layout_rtl_cfg_hooks): Ditto.
+       * cgraph.c (cgraph_mark_reachable_node): Don't force nested
+       functions to be reachable.
+       * cgraphunit.c (decide_is_function_needed):
+       * cgraphunit.c (decide_is_function_needed): Nested functions of extern
+       inline functions don't need to be output.
+       (cgraph_assemble_pending_functions): Don't do anything
+       special for nested functions.
+       (cgraph_mark_functions_to_output): Likewise.
+       (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
+       (cgraph_analyze_function): Use estimate_num_insns.
+       (cgraph_mark_functions_to_output): Likewise.
+       (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
+       (cgraph_expand_function): Allow functions to not be
+       emitted.
+       (cgraph_remove_unreachable_nodes):
+       (cgraph_recursive_inlining_p): Simplify.
+       (lookup_recursive_calls,
+       cgraph_decide_recursive_inlining): New.
+       (cgraph_decide_inlining_*): Update calls of
+       cgraph_mark_inline.
+       * combine.c (get_pos_from_mask): Always set *plen.
+       * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
+       ftree-based-profiling, ftree-ccp, ftree-ch,
+       ftree-combine-temps, ftree-copyrename, ftree-dce,
+       ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
+       ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
+       ftree-lrs): Add.
+       * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
+       Undefine.
+       * configure.ac: Add --enable-tree-browser option.
+       Add --with-libbanshee option.
+       Add GMPLIBS and GMPINC.
+       * configure: Regenerate.
+       * coverage.c (tree_ctr_tables): New.
+       (coverage_counter_alloc): Use it.
+       (build_ctr_info_value): Ditto.
+       (coverage_counter_ref): Ditto.  Rename to rtl_coverage_counter_ref.
+       (tree_coverage_counter_ref): New.
+       * coverage.h (coverage_counter_ref): Remove declaration.
+       (rtl_coverage_counter_ref): Declare.
+       (tree_coverage_counter_ref): Declare.
+       * cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
+       (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
+       * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
+       (struct cse_basic_block_data): Rename enum values to not
+       conflict with profile.h; update all uses.
+       * dbxout.c (dbxout_symbol_location): Don't mention integrate.c
+       in comments.
+       * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
+       * diagnostic.h (debug_output_buffer, dump_generic_node,
+       print_generic_stmt, print_generic_stmt_indented,
+       print_generic_expr, print_generic_decl,
+       debug_generic_expr, debug_generic_stmt, debug_c_tree):
+       Declare.
+       * dominance.c: Cache immediate dominators.
+       * domwalk.c: New file.
+       * domwalk.h: New file.
+       * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
+       (gen_subprogram_die): Generate a DIE for a named
+       return value.
+       (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
+       (add_location_or_const_value_attribute): Likewise.
+       (add_bound_info): Likewise.
+       (gen_decl_die): Likewise.
+       * emit-rtl.c (maybe_set_first_label_num): New.
+       (copy_most_rtx): Don't copy the integrated flag.
+       Copy the new return_val flag.
+       * et-forest.c (MAX_NODES): Define.
+       (record_path_before_1): Abort if len is greater than
+       MAX_NODES.
+       * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
+       gen_eh_region_catch, gen_eh_region_allowed,
+       gen_eh_region_must_not_throw, get_eh_region_number,
+       get_eh_region_may_contain_throw, get_eh_region_tree_label,
+       set_eh_region_tree_label, expand_resx_expr): New.
+       (expand_eh_region_start, expand_start_catch): Use them.
+       (expand_end_catch): Tidy.
+       (note_eh_region_may_contain_throw): Take region argument.
+       (note_current_region_may_contain_throw): New.
+       (get_exception_filter): Export.
+       (collect_eh_region_array): Export.
+       (remove_unreachable_regions): Check ERT_TRY based on reachability
+       of catches, not reachability of continue_label.  Never remove
+       ERT_MUST_NOT_THROW regions.
+       (collect_rtl_labels_from_trees): New.
+       (convert_from_eh_region_ranges): Use it.
+       (connect_post_landing_pads): Handle dying cleanups.
+       (struct reachable_info): Add callback data.
+       (add_reachable_handler): Invoke the callback.
+       (foreach_reachable_handler): New.
+       (reachable_handlers): Use it.
+       (arh_to_landing_pad, arh_to_label): New.
+       (can_throw_internal_1): Split out from can_throw_internal.
+       (can_throw_external_1): Similarly.
+       * except.h: Update.
+       * explow.c (emit_stack_save): Remove savearea mode check.
+       (update_nonlocal_goto_save_area): New.
+       (allocate_dynamic_stack_space): Use it.
+       (probe_stack_range): Never emit loop notes.
+       * expmed.c (extract_fixed_bit_field): Always propagate the
+       target for the shift if it is a REG.
+       * expr.c: Include tree-iterator.h
+       (is_zeros_p): Remove.
+       (categorize_ctor_elements_1, categorize_ctor_elements): New.
+       (count_type_elements): New.
+       (mostly_zeros_p): Use them.
+       (expr_wfl_stack): Remove.
+       (convert_move): Do nothing if to and from are the same.
+       (emit_block_move_via_loop): Don't emit LOOP notes.
+       (emit_move_insn): Don't handle CONSTANT_P_RTX.
+       (emit_move_insn_1): Don't generate inline warnings.
+       (expand_vars, expand_var): Split from ...
+       (expand_expr_1): ... here.
+       (expand_expr_real, expand_expr_real_1):  Use new macros
+       EXPR_LOCATION and EXPR_HAS_LOCATION.
+       * expr.h (simplify_builtin_fputs,
+       simplify_builtin_strcpy, simplify_builtin_strncpy,
+       expand_var, fixup_tail_calls,
+       update_nonlocal_goto_save_area): Declare.
+       (lookup_static_chain, expand_inline_function,
+       mark_seen_cases): Remove.
+       (prepare_call_address): Change type of 2nd argument to
+       rtx.
+       * final.c (profile_function): Update static chain test.
+       (final): Don't look at RTX_INTEGRATED_P.
+       * flags.h (flag_mudflap, flag_mudflap_threads,
+       flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
+       flag_tree_dce, flag_tree_combine_temps,
+       flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
+       flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
+       flag_tree_points_to): Declare.
+       (enum pta_type): Declare.
+       * flow.c (lang_missing_noreturn_ok_p): Remove.
+       (check_function_return_warnings): Remove.
+       (update_life_info): Update comments.
+       (free_basic_block_vars): Don't call VARRAY_FREE for
+       basic_block_info.
+       (regno_uninitialized): Remove.
+       * fold-const.c (int_const_binop): Make extern.
+       (non_lvalue): Rely on build to set TREE_CONSTANT.
+       (operand_equal_p): Replace only_const argument with
+       flags.  Allow pure functions if OEP_PURE_SAME.
+       (fold): Use OEP_ONLY_CONST.
+       (invert_truthvalue) <NOP_EXPR> Break if argument is of
+       boolean type.
+       (fold_relational_hi_lo,
+       nondestructive_fold_binary_to_constant,
+       nondestructive_fold_unary_to_constant,
+       fold_read_from_constant_string): New.
+       * function.c (struct function): Remove calls_constant_p.
+       (current_function_calls_constant_p): Remove.
+       (inline_function_decl): Remove.
+       (put_var_into_stack): Don't use it.
+       (fix_lexical_addr): Likewise.
+       (inline_function_decl): Remove extern declaration.
+       (TRAMPOLINE_ALIGNMENT): Move to defaults.h.
+       (trampolines_created): Move to varasm.c.
+       (free_after_compilation): Update for removed fields.
+       (allocate_struct_function): Likewise.
+       (delete_handlers, lookup_static_chain): Remove.
+       (fix_lexical_addr): Don't consider non-local variable refs.
+       (trampoline_address): Remove.
+       (round_trampoline_addr): Move to builtins.c.
+       (adjust_trampoline_addr): Remove.
+       (expand_function_start): Update for changes to static chain
+       and nonlocal goto handling.
+       (initial_trampoline): Move to varasm.c.
+       (expand_function_end): Don't build trampolines or kill
+       unreferenced nonlocal goto labels.
+       (free_after_compilation): Don't set it.
+       (expand_function_end): Likewise.
+       (setjmp_vars_warning): Rename from
+       uninitialized_vars_warning, remove uninitialized vars warning.
+       (uninitialized_vars_warning): Remove old comment
+       and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
+       and do not call the langhook.
+       (expand_function_start, expand_function_end): Don't do
+       function instrumentation here.
+       (clear_block_marks): Rename from reorder_blocks_0, export.
+       (blocks_nreverse): Export.
+       (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
+       of rtl.
+       (reset_block_changes, record_block_change, finalize_block_changes,
+       check_block_change, free_block_changes): New functions.
+       (assign_parms): Setting of current_function_stdarg
+       moved ...
+       (allocate_struct_function): ... here.
+       * function.h (struct function): Remove x_nonlocal_labels,
+       x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
+       x_context_display, x_trampoline_list, needs_context.
+       Add static_chain_decl, nonlocal_goto_save_area.
+       (struct function): Remove x_clobber_return_insn.
+       Add tail_call_emit field, last_label_uid,
+       unexpanded_var_list, dont_emit_block_notes,
+       ib_boundaries_block, function_end_locus and saved_tree/saved_args.
+       (clear_block_marks): Declare.
+       * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
+       (mfwrap_spec, mflib_spec): Declare.
+       (cpp_unique_options, cc1_options): Ditto.
+       (default_compilers): Add .F and .f90.
+       (static_specs): Add mfwrap and mflib.
+       * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
+       CONSTANT_RTX_P.
+       (reg_used_on_edge, reg_killed_on_edge, bypass_block):
+       Update to match insns field in struct edge_def.
+       * gdbinit.in (pgs, pge): Define.
+       * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
+       instead of the integrated flag.
+       * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
+       * gengtype-yacc.y (bitfieldlen): Add empty action.
+       (struct_fields): Accept unnamed bitfields.
+       (bitfieldlen): Split from ...
+       (bitfieldopt): ... here.
+       * gengtype.c (ifiles): Add tree-alias-type.h and
+       tree-flow.h.
+       * genrecog.c (validate_pattern): Do not handle
+       CONSTANT_P_RTX.
+       * gimple-low.c: New file.
+       * gimplify.c: New file.
+       * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
+       (restore_line_notes): Do not set RTX_INTEGRATED_P.
+       * ifcvt.c (dead_or_predicable): Initialize local variable
+       'earliest'.
+       * input.h (expr_wfl_stack): Remove.
+       * integrate.c (INTEGRATE_THRESHOLD): Remove.
+       (setup_initial_hard_reg_value_integration): Likewise.
+       (initialize_for_inline): Likewise.
+       (note_modified_parmregs): Likewise.
+       (integrate_parm_decls): Likewise.
+       (process_reg_param): Likewise.
+       (save_parm_insns): Likewise.
+       (copy_insn_list): Likewise.
+       (copy_insn_notes): Likewise.
+       (compare_blocks): Likewise.
+       (find_block): Likewise.
+       (inlining): Likewise.
+       (function_cannot_inline_p): Likewise.
+       (parmdecl_map): Likewise.
+       (in_nonparam_insns): Likewise.
+       (save_for_inline): Likewise.
+       (FIXED_BASE_PLUS): Likewise.
+       (expand_inline_function): Likewise.
+       (copy_rtx_and_substitute): Don't look at map->integrating,
+       map->inline_target, and inlining, since we are never copying
+       for integrating.
+       Don't abort on RTX_INTEGRATED_P.
+       (old_fun): Remove.
+       (output_inline_function): Remove.
+       * integrate.h (struct inline_map): Remove fields integrating,
+       block_map, leaf_reg_map, inline_target, and local_return_label.
+       * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
+       copy_loop_headers, never_reached_warning): Removed.
+       (any_uncondjump_p): Reject nonlocal goto.
+       * langhooks-def.h (lhd_types_compatible_p,
+       lhd_expand_decl, lhd_gimplify_expr): Declare.
+       (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
+       LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
+       LANG_HOOKS_FUNCTION_LEAVE_NESTED,
+       LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
+       LANG_HOOKS_GIMPLIFY_EXPR,
+       LANG_HOOKS_GIMPLE_BEFORE_INLINING,
+       LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
+       LANG_HOOKS_GIMPLIFY_EXPR,
+       LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
+       (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
+       LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
+       LANG_HOOKS_FUNCTION_LEAVE_NESTED,
+       LANG_HOOKS_RTL_EXPAND_INITIALIZER,
+       LANG_HOOKS_DECL_UNINIT,
+       LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
+       * langhooks.c: Include tree-simple.h.
+       (lhd_expand_decl): New.
+       (lhd_types_compatible_p): New.
+       (lhd_decl_uninit): Remove.
+       (lhd_gimplify_expr): New.
+       * langhooks.h (struct lang_hooks_for_rtl_expansion):
+       Remove.
+       (struct lang_hooks_for_functions): Add field
+       missing_noreturn_ok_p.
+       (struct lang_hooks): Add field expand_decl,
+       types_compatible_p, gimplify_expr and
+       gimple_before_inlining.
+       Remove fields decl_uninit and rtl_expand
+       * opts.c (decode_options): Set flag_tree_ccp,
+       flag_tree_dce, flag_tree_dom, flag_tree_dse,
+       flag_tree_pre, flag_tree_ter,
+       flag_tree_live_range_split, flag_tree_sra,
+       flag_tree_copyrename and flag_tree_ch at -O1 and higher.
+       (common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
+       OPT_fmudflapth, OPT_fmudflapir,
+       OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
+       OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
+       OPT_ftree_dominator_opts, OPT_ftree_copyrename,
+       OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
+       OPT_ftree_points_to_ and OPT_ftree_pre.
+       * output.h (regno_uninitialized, find_basic_blocks,
+       cleanup_cfg, delete_unreachable_blocks,
+       check_function_return_warnings): Remove.
+       * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
+       PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
+       PARAM_MAX_INLINE_RECURSIVE_DEPTH,
+       PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
+       PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
+       * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
+       Define.
+       * passes.c (rest_of_decl_compilation):
+       (rest_of_handle_sibling_calls): Remove.
+       (rest_of_handle_inlining): Remove.
+       (rest_of_handle_gcse): Do not run
+       purge_builtin_constant_p.
+       (rest_of_compilation): Update.
+       Do not call copy_loop_headers.
+       Do rtl-based profiling only when
+       !flag_tree_based_profiling.  Register rtl-based profiling
+       hooks.
+       * predict.c:  Include tree-flow.h, ggc.h, tree-dump.h
+       (predicted_by_p): Rename to ...
+       (rtl_predicted_by_p): .. this one; make global
+       (tree_predicted_by_p): New.
+       (dump_prediction): Add FILE argument.
+       (predict_edge): Rename to ...
+       (rtl_predict_edge): .. this one.
+       (tree_predict_edge): New.
+       (combine_predictions_for_insn): Update calls of predict_edge.
+       (predict_loops): Break out from ...
+       (estimate_probability): ... here; update comments; move updating
+       of unknown probabilities from ...
+       (estimate_bb_frequencies): ... here.
+       (combine_predictions_for_bb): New.
+       (tree_predict_by_opcode): New.
+       (tree_estimate_probability): New.
+       * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
+       PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
+       * predict.h: Add include guard.
+       (predict_edge, predict_edge_def): Move prototypes to basic_block.h
+       * pretty-print.c (pp_write_text_to_stream): Make extern.
+       * pretty-print.h (pp_write_text_to_stream): Declare.
+       * print-rtl.c (print_rtx): Don't print the integrated flag.
+       Print the return_val flag.
+       * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
+       of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
+       Remove support for EXPR_WITH_FILE_LOCATION nodes.
+       (print_node): Print TREE_INVARIANT and TREE_VISITED.
+       * profile.c: Include cfghooks.h, tree-flow.h.
+       (profile_hooks): New.
+       (profile_dump_file): New.
+       (instrument_edges): Use hooks instead of RTL-specific code.
+       (instrument_values): Ditto.
+       (get_exec_counts): Ditto.
+       (compute_branch_probabilities): Ditto.
+       (compute_value_histograms): Ditto.
+       (branch_prob): Ditto.
+       (find_spanning_tree): Ditto.
+       (end_branch_prob): Ditto.
+       (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
+       (gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
+       (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
+       (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
+       (tree_register_profile_hooks): New.
+       (rtl_register_profile_hooks): New.
+       * ra-rewrite.c (rewrite_program): Clear variable info.
+       * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
+       * regs.h: Add include guards.
+       * reload.c (decompose): Clear val using memset.
+       * rtl.def (CONSTANT_P_RTX): Remove.
+       * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
+       (copy_loop_headers): Remove.
+       (struct rtx_def): Replace the integrated flag with the
+       return_val flag.
+       (maybe_set_first_label_num): Declare.
+       (init_branch_prob): Move declaration to value-prof.h.
+       (end_branch_prob): Ditto.
+       (branch_prob): Ditto.
+       (never_reached_warning): Don't declare it.
+       * rtlanal.c (get_related_value): Initialize get_jump_table_offset
+       (hoist_insn_to_edge): Update to match field insns in
+       struct edge_def.
+       * sbitmap.c (sbitmap_realloc): New.
+       * sbitmap.h (sbitmap_realloc): Declare.
+       * sibcall.c: Remove file.
+       * simplify-rtx.c (simplify_rtx): Do not handle
+       CONSTANT_P_RTX.
+       * stmt.c (parse_output_constraint): Don't warn for read-write
+        memory operand.
+       (tail_recursion_args): Use types_compatible_p langhook.
+       (force_label_rtx): Don't look at inline_function_decl.
+       (label_rtx): Set LABEL_PRESERVE_P appropriately.
+       (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
+       (declare_nonlocal_label): Remove.
+       (expand_goto): Don't handle nonlocal gotos.
+       (expand_nl_handler_label): Remove.
+       (expand_nl_goto_receivers): Remove.
+       (expand_end_bindings): Don't expand_nl_goto_receivers.  Use
+       update_nonlocal_goto_save_area.
+       (expand_expr_stmt_value): Check TREE_NO_WARNING.
+       (warn_if_unused_value): Likewise.
+       (expand_start_loop, expand_loop_continue_here,
+       expand_end_loop): Don't create loop notes.
+       (all_cases_count, BITARRAY_TEST, BITARRAY_SET,
+       mark_seen_cases, check_for_full_enumeration_handling): Remove.
+       (expand_end_case_type): Don't do warn_switch handling.
+       (pushcase, pushcase_range) Update add_case_node calls.
+       (add_case_node): Add dont_expand_label argument.
+       (same_case_target_p): Don't search rtl.
+       (expand_start_bindings_and_block, expand_end_bindings):
+       Don't emit block notes when dont_emit_block_notes.
+       (using_eh_for_cleanups_p): Export.
+       (expand_return): Allow any typed rhs.
+       (expand_stack_alloc): New.
+       (expand_stack_save, expand_stack_restore): New.
+       (containing_blocks_have_cleanups_or_stack_level): New
+       function.
+       (asm_op_is_mem_input): New fn.
+       (expand_asm_expr): New fn.
+       (warn_if_unused_value): Check operand 0 of SAVE_EXPR
+       nodes.
+       * stor-layout.c (layout_type): Just return if type is
+       error_mark_node.
+       (update_alignment_for_field): Export.
+       (variable_size): We don't care about global_bindings_p if
+       the frontend doesn't want a list of the expressions.
+       * system.h: Poison INTEGRATE_THRESHOLD.
+       * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
+       TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
+       TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
+       TV_TREE_SSA_OTHER, TV_TREE_OPS,
+       TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
+       TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
+       TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
+       TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
+       TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
+       TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
+       TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
+       TV_CONTROL_DEPENDENCES): Define.
+       * toplev.c: Include tree-alias-common.h
+       (current_file_decl, flag_mudflap, flag_mudflap_threads,
+       flag_mudflap_ignore_reads, flag_tree_based_profiling,
+       flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
+       flag_tree_dce, flag_tree_ch, flag_tree_sra,
+       flag_tree_combine_temps, flag_tree_ter,
+       flag_tree_live_range_split, flag_tree_dom,
+       flag_tree_copyrename, flag_tree_dse): Declare.
+       (f_options): Add tree-based-profiling, tree-gvn,
+       tree-pre, tree-ccp, tree-dce,
+       tree-dominator-opts, tree-copyrename, tree-dse,
+       tree-combine-temps, tree-ter, tree-lrs and tree-ch.
+       (wrapup_global_declarations): Don't output nested inlined functions.
+       (general_init): Call init_tree_optimization_passes.
+       (process_options): Sorry for -ftree-based-profiling plus
+       -ftest-coverage or -fprofile-values.
+       * toplev.h (init_tree_optimization_passes,
+       flag_tree_based_profiling): Declare.
+       * tracer.c (tail_duplicate): Use cfghooks for bb duplication.
+       * tree-alias-ander.c: New file.
+       * tree-alias-ander.h: New file.
+       * tree-alias-common.c: New file.
+       * tree-alias-common.h: New file.
+       * tree-alias-type.c: New file.
+       * tree-alias-type.h: New file.
+       * tree-browser.c: New file.
+       * tree-browser.def: New file.
+       * tree-cfg.c: New file.
+       * tree-complex.c: New file.
+       * tree-dfa.c: New file.
+       * tree-dump.c (dump_enable_all): New.
+       (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
+       (dump_node): Remove const from field suffix and swtch.
+       (dump_files): Add null entry, .generic, .nested, .vcg,
+       .xml and a match-all entry.
+       (extra_dump_files, extra_dump_files_in_use,
+       extra_dump_files_alloced): Declare
+       (dump_option_value_info): Add raw, details, stats,
+       blocks, vops, lineno, uid and all.
+       (dump_register): New.
+       (get_dump_file_info): New.
+       (dump_begin): Call it.
+       Do nothing for TDI_none.
+       (dump_begin): Include phase number in dump filename.
+       (dump_enable_all): New.
+       (dump_switch_p_1): Split out from dump_switch_p.
+       (dump_switch_p): Handle extra_dump_files.
+       Start our scan at TDI_none + 1.
+       If -fdump-tree-all was given, call dump_enable_all.
+       * tree-dump.h: Include splay-tree.h.
+       (dump_function, dump_function_to_file, dump_register):
+       Declare.
+       * tree-eh.c: New file.
+       * tree-flow-inline.h: New file.
+       * tree-flow.h: New file.
+       * tree-inline.c: Re-write to handle inlining on GIMPLE.
+       * tree-inline.h (walk_tree,
+       walk_tree_without_duplicates): Move to tree.h.
+       (estimate_num_insns): Declare.
+       * tree-into-ssa.c: New file.
+       * tree-iterator.c: New file.
+       * tree-iterator.h: New file.
+       * tree-mudflap.c: New file.
+       * tree-mudflap.h: New file.
+       * tree-nested.c: New file.
+       * tree-nomudflap.c: New file.
+       * tree-nrv.c: New file.
+       * tree-optimize.c (dump_flags, vars_to_rename,
+       in_gimple_form, all_passes, pass_gimple,
+       pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
+       (execute_gimple, execute_rebuild_bind,
+       gate_all_optimizations, execute_del_cfg,
+       register_one_dump_file, register_dump_files, dup_pass_1,
+       init_tree_optimization_passes, execute_todo,
+       execute_one_pass, execute_pass_list): New.
+       (clear_decl_rtl): Remove.
+       (tree_rest_of_compilation): Update to use tree
+       optimizers.
+       * tree-outof-ssa.c: New file.
+       * tree-pass.h: New file.
+       * tree-phinodes.c: New file.
+       * tree-pretty-print.c: New file.
+       * tree-profile.c: New file.
+       * tree-simple.c: New file.
+       * tree-simple.h: New file.
+       * tree-sra.c: New file.
+       * tree-ssa-alias.c: New file.
+       * tree-ssa-ccp.c: New file.
+       * tree-ssa-copy.c: New file.
+       * tree-ssa-copyrename.c: New file.
+       * tree-ssa-dce.c: New file.
+       * tree-ssa-dom.c: New file.
+       * tree-ssa-dse.c: New file.
+       * tree-ssa-forwprop.c: New file.
+       * tree-ssa-live.c: New file.
+       * tree-ssa-live.h: New file.
+       * tree-ssa-loop.c: New file.
+       * tree-ssa-operands.c: New file.
+       * tree-ssa-operands.h: New file.
+       * tree-ssa-phiopt.c: New file.
+       * tree-ssa-pre.c: New file.
+       * tree-ssa.c: New file.
+       * tree-ssanames.c: New file.
+       * tree-tailcall.c: New file.
+       * tree.c: Include tree-iterator.h, basic-block.h and
+       tree-flow.h.
+       (tree_node_kind): Add phi_nodes and ssa names.
+       (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
+       EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
+       (make_node_stat): Handle PHI_NODE and SSA_NAME.
+       <'c'> Set TREE_INVARIANT.
+       (copy_node_stat): Abort if trying to copy a
+       STATEMENT_LIST.
+       Clear TREE_VISITED.
+       Clear annotation field.
+       (build_constructor): Copy TREE_INVARIANT from vals.
+       Don't clear TREE_CONSTANT.
+       (expr_first, expr_last, expr_length): Remove.
+       (staticp): Pass unknown component references to the language.
+       (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
+       (skip_simple_arithmetic): Likewise.
+       (stabilize_reference_1): Likewise.
+       (tree_node_structure): Handle PHI_NODE, EPHI_NODE,
+       EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
+       STATEMENT_LIST.
+       (lhd_unsave_expr_now): Remove.
+       (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
+       (recompute_tree_invarant_for_addr_expr): New.
+       (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
+       Call recompute_tree_invarant_for_addr_expr.
+       Set TREE_INVARIANT accordingly.
+       (build2_stat): Don't handle CALL_EXPR.
+       (build3_stat): Don't call build2_stat for CALL_EXPRs.
+       (build_expr_wfl): Remove.
+       (annotate_with_file_line, annotate_with_locus): New.
+       (simple_cst_equal): Call simple_cst_list_equal to compare
+       CONSTRUCTOR_ELTS pointers.
+       (iterative_hash_expr): Don't hash types associated
+       with conversions.  Instead hash on the signedness of the
+       toplevel object and the operand of the conversion.
+       (dump_tree_statistics): Call ssanames_print_statistics
+       and phinodes_print_statistics.
+       (ephi_node_elt_check_failed, phi_node_elt_check_failed,
+       add_var_to_bind_expr, build_empty_stmt, is_essa_node,
+       needs_to_live_in_memory): New.
+       (initializer_zerop): Handle VECTOR_CST.  Don't check
+       AGGREGATE_TYPE_P for CONSTRUCTOR.
+       * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
+       SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
+       PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
+       (GOTO_SUBROUTINE_EXPR): Change type to 's'.
+       (CALL_EXPR): Add another operand.
+       (EXPR_WITH_FILE_LOCATION): Remove.
+       (SWITCH_EXPR): Add another operand.
+       * tree.h: Update various comments.
+       (union tree_ann_d): Forward declare.
+       (struct tree_common): Add fields nowarning_flag,
+       invariant_flag and visited.
+       (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
+       PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
+       EPHI_NODE_ELT_CHECK, TREE_BLOCK,
+       STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
+       TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
+       IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
+       EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
+       EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
+       CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
+       BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
+       ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
+       ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
+       COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
+       CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
+       EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
+       SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
+       SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
+       PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
+       PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
+       EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
+       EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
+       EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
+       EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
+       EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
+       EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
+       EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
+       EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
+       EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
+       EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
+       TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
+       DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
+       DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
+       STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
+       TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
+       TDF_UID,): Define.
+       (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
+       EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
+       EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
+       EXPR_WFL_SET_LINECOL): Remove.
+       (phi_node_elt_check_failed, ephi_node_elt_check_failed,
+       make_phi_node, init_phinodes, fini_phinodes,
+       release_phi_node, phinodes_print_statistics,
+       init_ssanames, fini_ssanames, make_ssa_name,
+       release_ssa_name, ssanames_print_statistics,
+       annotate_with_file_line, build_empty_stmt,
+       annotate_with_locus, expr_only, categorize_ctor_elements,
+       count_type_elements, add_var_to_bind_expr, is_essa_node,
+       expand_stack_alloc, expand_stack_save,
+       expand_stack_restore, add_case_node, operand_equal_p,
+       nondestructive_fold_unary_to_constant,
+       nondestructive_fold_binary_to_constant,
+       fold_read_from_constant_string, int_const_binop,
+       strip_float_extensions, simplify_builtin, c_strlen,
+       recompute_tree_invarant_for_addr_expr,
+       needs_to_live_in_memory, make_vector,
+       setjmp_vars_warning, update_alignment_for_field,
+       expand_asm_expr, asm_op_is_mem_input,
+       containing_blocks_have_cleanups_or_stack_level,
+       create_artificial_label, gimplify_function_tree,
+       get_name, unshare_expr, walk_tree,
+       walk_tree_without_duplicates, in_gimple_form): Declare.
+       (struct tree_exp): Add fields locus and block.
+       (struct tree_ssa_name, struct edge_def, struct
+       tree_phi_node, struct tree_eref_common, struct
+       tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
+       union alias_var_def, struct tree_statement_list_node,
+       struct tree_statement_list, enum operand_equal_flag): Declare.
+       (enum tree_node_structure_enum): Add TS_SSA_NAME,
+       TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
+       TS_STATEMENT_LIST.
+       (union tree_node): Add fields ssa_name, phi, eref, ephi,
+       euse and stmt_list.
+       (function_cannot_inline_p, uninitialized_vars_warning,
+       save_for_inline, output_inline_function, all_cases_count,
+       check_for_full_enumeration_handling,
+       declare_nonlocal_label): Remove.
+       (enum tree_dump_index): Add TDI_none, TDI_tu,
+       TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
+       * unroll.c (unroll_loop): Don't clear map->inline_target.
+       * unwind-sjlj.c (uw_install_context): Make a proper static inline
+       function.
+       * value-prof.c (value_prof_hooks): New.
+       (find_values_to_profile): Rename to rtl_find_values_to_profile.
+       Move rtl-specific bits in from branch_prob.
+       (value_profile_transformations): Rename to
+       rtl_value_profile_transformations.
+       (struct value_prof_hooks): New.
+       (rtl_value_prof_hooks): New.
+       (rtl_register_value_prof_hooks): New.
+       (tree_find_values_to_profile): New stub.
+       (tree_value_profile_transformations): New stub.
+       (tree_value_prof_hooks): New stub.
+       (tree_register_value_prof_hooks): New stub.
+       (find_values_to_profile): New.
+       (value_profile_transformations): New.
+       * value-prof.h: Add multiple inclusion guard.
+       (struct histogram_value): Change rtx fields to void *.
+       (rtl_register_value_prof_hooks): New declaration.
+       (tree_register_value_prof_hooks): New declaration.
+       (find_values_to_profile): New declaration.
+       (free_profiled_values): New declaration.
+       (value_profile_transformations): New declaration.
+       (struct profile_hooks): New declaration.
+       (init_branch_prob): Declaration moved from rtl.h.
+       (branch_prob): Declaration moved from rtl.h.
+       (end_branch_prob): Declaration mooved from rtl.h.
+       (tree_register_profile_hooks): New declaration.
+       (rtl_register_profile_hooks): New declaration.
+       (tree_profile_hooks): New declaration.
+       (rtl_profile_hooks): New declaration.
+       * varasm.c: Include tree-mudflap.h.
+       (TRAMPOLINE_ALIGNMENT): Remove.
+       (make_decl_rtl): Call mudflap_enqueue_decl.
+       (assemble_static_space):
+       (assemble_trampoline_template): Set and return
+       TRAMPOLINE_ALIGNMENT.
+       * varray.c (element): Add GENERIC_PTR_NOGC entry.
+       Add entry for 'tree *'.
+       Add entry for struct edge_def *.
+       (varray_copy): New.
+       * varray.h (enum varray_data_enum): Add
+       VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
+       VARRAY_DATA_TREE_PTR.
+       (union varray_data_tag): Corresponding changes.
+       (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
+       VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
+       VARRAY_EDGE, VARRAY_TREE_PTR,
+       VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
+       VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
+       VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
+
+       * config/*/*: Various updates for changed macros, tree
+       codes, etc.  Check ChangeLog.tree-ssa.
+
+       * doc/cfg.texi: New file.
+       * doc/tree-ssa.texi: New file.
+       * doc/c-tree.texi: Document new codes.
+       * doc/gccint.texi: Include new files.
+       * doc/install.texi: Document new features.
+       * doc/invoke.texi: Document new switches.
+       * doc/passes.texi: Document new passes.
+       * doc/rtl.texi: Update changed RTL codes.
+       * doc/sourcebuild.texi: Update build instructions.
+       * doc/standards.texi: Document Fortran changes.
+       * doc/tm.texi: Update.
+
+2004-05-12  Paolo Bonzini  <bonzini@gnu.org>
+
+       Replace several arrays with a struct of arrays.
+        * combine.c (struct reg_stat): New.
+        (init_reg_last_arrays): Renamed to...
+        (init_reg_last): ...this.  Callers adjusted.
+        (reg_stat): New.
+        (combine_instructions): Allocate it and use it.
+        (reg_last_death, reg_last_set, reg_last_set_value,
+        reg_last_set_label, reg_last_set_table_tick,
+        reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
+        reg_last_set_mode, reg_last_set_nonzero_bits,
+        reg_last_set_sign_bit_copies): Replace throughout
+        with items of reg_stat.
+
+2004-05-11  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       PR optimization/15100
+       * combine.c (distribute_notes): Don't create a dangling
+       REG_LIBCALL/REG_RETVAL note.
+
+2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
+
+       * config/rs6000/spe.md (spe_evneg): Rename to negv2si2.
+
+       * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
+       negv2si2.
+
+2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
+
+       * doc/md.texi (Standard Names): Fix typo in vec_init description.
+
+2004-05-11  Geoffrey Keating  <geoffk@apple.com>
+
+       * doc/gty.texi (GTY Options): Clarify example.
+
+2004-05-11  Fariborz Jahanian  <fjahanian@apple.com>
+
+       * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
+       Add const qualifier to altivec vector type if one is needed.
+
+2004-05-11  Paul Brook  <paul@codesourcery.com>
+
+       * flags.h (flag_short_enums): Update comment.
+       * opts.c (decode_options): Set flag_short_enums to 2.
+       * toplev.c (flag_short_enums): Update comment.
+       (process_options): Call default_short_enums target hook.
+
+2004-05-11  Andrew Pinski  <pinskia@gcc.gnu.org>
+
+       PR target/14063
+       * config/rs6000/altivec.md (altivec_dssall):
+       Change to unspec_volatile.
+       (altivec_dss): Likewise.
+
+2004-05-10  Aldy Hernandez  <aldyh@redhat.com>
+
+       * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
+       vnor.
+       ("one_cmplv8hi2"): Same.
+       ("one_cmplv4si2"): Same.
+
+2004-05-10  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       PR target/15130
+       * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
+       * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
+       into account.  Compute the correct number of general registers
+       for the return value.  Generate a special push/pop sequence when
+       failing to get a temporary register for non SHmedia epilogue.
+       (sh_expand_epilogue): Add an argument to show whether it's for
+       sibcall or not.  Set the 3rd argument of output_stack_adjust to
+       -1 if needed.
+       (sh_need_epilogue): Call sh_expand_epilogue with 0.
+       * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
+       with 1.
+       (epilogue): Call sh_expand_epilogue with 0.
+
+2004-05-10  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       * gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
+       goto a cleanup label.  After the cleanup, free the allocated memory.
+
+2004-05-10  Ziemowit Laski  <zlaski@apple.com>
+
+       * config/rs6000/altivec.h (vec_sld): Add overloads for
+       argument/return types of 'vector bool int', 'vector bool short'
+       and 'vector bool char'.
+
+2004-05-10  Zack Weinberg  <zack@codesourcery.com>
+
+       * c-decl.c (store_parm_decls_newstyle): Correct test for a
+       nested function.
+
+2004-05-10  Richard Sandiford  <rsandifo@redhat.com>
+
+       * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
+       treating missing ones as "".
+       * config/mips/mips.md: Remove constraints from match_operands and
+       match_scratches if they appear in define_expands (except reload*),
+       define_peephole2s, define_splits or attribute specifications.
+       * config/mips/7000.md, config/mips/sb1.md: Remove match_operand
+       constraint strings.
+
+2004-05-10  Alan Modra  <amodra@bigpond.net.au>
+
+       * config/rs6000/rs6000.c (function_arg_boundary): Always align
+       AltiVec vectors.
+       (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
+       vectors by refererence.  Align the same for TARGET_64BIT to a 16
+       byte boundary.  Remove useless code.  Add function comment.
+       (function_arg): Similarly.  Move gpr rs6000_mixed_function_arg
+       call to where it belongs.
+       (function_arg_partial_nregs): Return true for all TARGET_32BIT
+       -mabi=no-altivec AltiVec vectors.  Fix debug output.
+       (rs6000_va_arg): Adjust for AltiVec change.
+
+2004-05-10  Paul Brook  <paul@codesourcery.com>
+
+       * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
+       * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
+       (TARGET_DOUBLEWORD_ALIGN): Use it.
+       (WCHAR_TYPE): Define.
+       (WCHAR_SIZE_TYPE): Define.
+       (SIZE_TYPE): Define.
+
+2004-05-10  Alan Modra  <amodra@bigpond.net.au>
+
+       * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
+       when size is 8 bytes.
+       (function_arg_advance): Account for stack space used by AltiVec
+       args when -mabi=altivec.  Simplify alignment calculations.  For
+       ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
+       (function_arg): Similarly.
+       (function_arg_pass_by_reference): True for ABI_V4 AltiVec when
+       not AltiVec ABI.
+       (rs6000_va_arg): Correct fp arg test.  Adjust for AltiVec change.
+       Correct alignment, and align before testing reg count.  Remove
+       TREE_THIS_VOLATILE from reg.  Don't emit unused labels.
+       (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
+       TARGET_FPRS here..
+       (rs6000_function_value): .. not here before call.
+
+2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
+
+       * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
+
+2004-05-09  Zack Weinberg  <zack@codesourcery.com>
+
+       PR 15007
+       * c-decl.c (current_file_decl): Rename to all_translation_units,
+       adjust comment.
+       (pop_scope): If popping file_scope, construct a
+       TRANSLATION_UNIT_DECL and make it the context of all the
+       symbols in the scope.
+       (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
+       (pushdecl): Clarify comment.  Do not set DECL_CONTEXT of
+       anything to current_file_decl.
+       (pushdecl_top_level): Likewise.
+       (store_parm_decls_newstyle): Adjust check for nested function.
+       (c_write_global_declarations): Update for renamed variable.
+
+2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
+
+       * config/rs6000/rs6000-protos.h
+       (rs6000_conditional_register_usage): Protoize.
+
+       * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.
+
+       * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
+       function.
+
+2004-05-08  Roger Sayle  <roger@eyesopen.com>
+
+       * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
+       where op is a comparison operator and C1 and C2 are integer constants
+       into a range check.
+       (fold): Call fold_div_compare.
+
+2004-05-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
+       problems with earlier versions of the GNU compiler.
+
+2004-05-07  Aldy Hernandez  <aldyh@redhat.com>
+
+       * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
+       Declare.
+
+       * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
+       (rs6000_hard_regno_mode_ok): New.
+       (rs6000_init_hard_regno_mode_ok): New.
+       (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
+
+       * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
+       result.
+
+2004-05-07  Ziemowit Laski  <zlaski@apple.com>
+
+       * config/rs6000/altivec.h (vector, pixel, bool): Do not
+       define as macros #ifdef __APPLE_ALTIVEC__.
+
+2004-05-07  Fariborz Jahanian  <fjahanian@apple.com>
+
+       * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
+       Generate appropriate parallels for vector arguments
+       passed to vararg functions. (function_arg): make the call
+       to rs6000_mixed_function_arg for vector args as needed.
+
+2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
+       EABI_FLOAT_VARARGS_P.
+
+2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
+       * config/mips/mips.c (override_options): Disable branch likely
+       instructions if TUNE_MIPS5500.
+
+2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/mips.c (override_options): Allow the hi and lo registers
+       to store any integral mode, not just MODE_INTs.
+
+2004-05-07  Paul Brook  <paul@codesourcery.com>
+
+       * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
+       * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
+       (TARGET_DOUBLEWORD_ALIGN): Use it.
+       (WCHAR_TYPE): Define.
+       (WCHAR_SIZE_TYPE): Define.
+       (SIZE_TYPE): Define.
+
+2004-05-07  Uros Bizjak  <uros@kss-loka.si>
+
+       * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
+       testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
+
+2004-05-07  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       * loop-doloop.c (doloop_valid_p): Make sure that body
+       gets freed.
+
+2004-05-07  Eric Botcazou  <ebotcazou@act-europe.fr>
+
+       * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
+       declaration.
+       * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
+       (sparc_skip_caller_unimp): New global variable.
+       (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
+       Use it instead of SKIP_CALLERS_UNIMP_P.
+       * config/sparc/sparc.md (call expander): Add sanity check.
+       (call_address_struct_value_sp32): Re-sync with expander.
+       (call_symbolic_struct_value_sp32): Likewise.
+       (return peepholes): Use 'sparc_skip_caller_unimp' instead
+       of custom predicate.
+
+2004-05-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+       PR c++/14962
+       * c-pragma.c (handle_pragma_redefine_extname): Only change
+       the assembler name of FUNCTION_DECLs and VAR_DECLs.
+
+2004-05-07  Uros Bizjak  <uros@kss-loka.si>
+
+       * optabs.h (enum optab_index): Add new OTI_log1p.
+       (log1p_optab): Define corresponding macro.
+       * optabs.c (init_optabs): Initialize log1p_optab.
+       * genopinit.c (optabs): Implement log1p_optab using log1p?f2
+       patterns.
+       * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
+       using log1p_optab.
+       (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
+       expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
+
+       * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
+
+       * config/i386/i386.c (ix86_emit_i387_log1p): New function.
+       * config/i386/i386-protos.h (ix86_emit_i387_log1p):
+       Prototype here.
+       * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
+       x87's fyl2xp1 instruction.
+       (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
+       (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
+       (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
+       log1p  and log1pl built-ins as inline x87 intrinsics.
+
+2004-05-07  Loren James Rittle  <ljrittle@acm.org>
+
+       * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
+       * config/arm/freebsd.h: Likewise.
+       * config/ia64/freebsd.h: Likewise.
+       * config/sparc/freebsd.h: Likewise.
+
+2004-05-07  Hans-Peter Nilsson  <hp@axis.com>
+
+       PR optimization/15296
+       * reorg.c (fill_simple_delay_slots): Use next_real_insn when
+       getting last consecutive label at a branch.
+       (relax_delay_slots): Similar, near top of loop.
+
+2004-05-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       PR target/15202
+       * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
+       register to general register.
+
+2004-05-07  Alan Modra  <amodra@bigpond.net.au>
+
+       * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
+       TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
+       * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
+       (STACK_BOUNDARY): Delete.
+
+2004-05-06  Stuart Hastings  <stuart@apple.com>
+
+       * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
+       mistakenly clobbered by 1.423.
+
+2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
+
+       * doc/invoke.texi: Document -mvr4130-align.
+       * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
+       (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
+       (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
+       (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
+       * config/mips/mips.md: Include sched-int.h.
+       (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
+       (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
+       (override_options): Enable -mvr4130-align at -O3 and above.
+       (mips_sim_insn): New variable.
+       (mips_sim): New structure.
+       (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
+       (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
+       (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
+       (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
+       (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
+       (mips_reorg): Call vr4130_align_insns.
+       (vr4130_last_insn): New variable.
+       (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
+       (vr4130_swap_insns_p, vr4130_reorder): New functions.
+       (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
+       (mips_issue_rate): Return 2 for PROCESSOR_R4130.
+       (mips_use_dfa_pipeline_interface): Return true for the same.
+       * config/mips/4130.md: New file.
+       * config/mips/mips.md: Include it.  Add a peephole2 to convert
+       "mult;mflo" into "mtlo;macc".
+       (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
+       target of maccs.
+       (*msac_using_macc): New pattern.
+
+2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
+
+       * config/mips/5500.md (ir_vr55_store): Set latency to 0.
+       (ir_vr55_hilo): Split into...
+       (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
+       (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
+       (ir_vr55_imul_di): Change latency to 9.  Reserve vr55_mac for 4 cycles.
+       Add various multiplication bypasses.
+       * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
+       multiplication.
+
+2004-05-06  Uros Bizjak  <uros@kss-loka.si>
+
+       * config/i386/i386.md (*fscalexf4): Correct insn "mode"
+       attribute to "XF".
+
+2004-05-05  Uros Bizjak  <uros@kss-loka.si>
+
+       * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
+       (fmod_optab, drem_optab): Define corresponding macros.
+       * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
+       * genopinit.c (optabs): Implement fmod_optab and drem_optab
+       using fmod?f3 and drem?f3 patterns.
+       * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
+       using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
+       (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
+       BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
+       flag_unsafe_math_optimizations is set.
+
+       * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
+       UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
+
+       * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
+       * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
+       Prototype here.
+       * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
+       UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
+       fprem and fprem1 instructions.
+       (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
+       Rename insn definition to x86_fnstsw_1.
+       (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
+       x87 instructions.
+       (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
+       and fmodl built-ins as inline x87 intrinsics.
+       (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
+       and dreml built-ins as inline x87 intrinsics.
+
+2004-05-05  Roger Sayle  <roger@eyesopen.com>
+
+       * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
+
+2004-05-05  Ian Lance Taylor  <ian@wasabisystems.com>
+
+       PR driver/9822
+       * doc/invoke.texi (Spec Files): Remove documentation of %c.
+
+2004-05-05  Chris Demetriou  <cgd@broadcom.com>
+
+       * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
+       representation.
+
+2004-05-06  Paul Brook  <paul@codesourcery.com>
+
+       * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
+       (arm_coproc_mem_operand): ... To this.
+       * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
+       (arm_legitimate_index_p): Ditto.
+       (vfp_mem_operand): Rename ...
+       (arm_coproc_mem_operand): ... To this.  Handle writeback modes.
+       (vfp_secondary_reload_class): Use it.
+       (output_move_double): Use doubleword load/store instructions.
+       (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
+       * config/arm/arm.h (TARGET_LDRD): Define.
+       (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
+       * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
+       New splitter for invalid doubleword loads.
+       * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
+       * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
+       * doc/md.texi: Document Uy constraint.
+
+2004-05-05  Jan Hubicka  <jh@suse.cz>
+
+       PR opt/14980
+       * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
+       inline clones.
+
+2004-05-05  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR target/15290
+       * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
+       instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
+
+2004-05-05  Mike Stump  <mrs@apple.com>
+
+       * config/darwin-c.c (add_framework): Copy the directory name as it
+       can be freed later.  Also, ensure we always allocate enough room
+       for the cached framework information.
+       (find_subframework_header): Keep track of the directory where the
+       subframework header was found.
+       (framework_construct_pathname): Speed up by not trying to re-add a
+       framework.
+       * cppfiles.c (search_path_exhausted): Arrange for the missing
+       header callback to be able to set the directory where the header
+       was found.
+       (cpp_get_dir): Add.
+       * cpplib.h (missing_header_cb): Add a parameter.
+       (cpp_get_dir): Add.
+
+2004-05-03  Mike Stump  <mrs@apple.com>
+
+       * doc/invoke.texi (Directory Options): Document -iquote.
+       * doc/cpp.texi: Likewise.
+       * doc/cppopts.texi: Likewise.
+       * c-opts.c (c_common_missing_argument): Add -iquote processing.
+       (c_common_handle_option): Likewise.
+       * c.opt (iquote): Add.
+       * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
+       * c-incpath.c (merge_include_chains): Update comment to use -iquote.
+
+       * c-opts.c (case OPT_I): Deprecate -I- support.
+       * doc/invoke.texi: Likewise.
+       * doc/cpp.texi: Likewise.
+       * doc/cppopts.texi: Likewise.
+
+2004-05-05  Steven Bosscher  <stevenb@suse.de>
+
+       * basic-block.h (free_basic_block_vars): Update prototype.
+       * flow.c (free_basic_block_vars): Remove the keep_head_end_p
+       argument.
+       (life_analysis): Update call.
+       * ifcvt.c (if_convert): Likewise.
+       * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
+       * passes.c (rest_of_handle_final): Likewise.
+       (rest_of_compilation): Likewise.
+       * config/sh/sh.c (sh_output_mi_thunk): Likewise.
+
+       * emit-rtl.c (next_real_insn): Use INSN_P.
+       (prev_real_insn): Likewise.
+
+2004-05-05  Eric Christopher  <echristo@redhat.com>
+
+       * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
+       representation.
+
+2004-05-05  Paolo Bonzini  <bonzini@gnu.org>
+
+       * config/rs6000/rs6000.c (build_opaque_vector_type):
+       New function.
+       (rs6000_init_builtins): Use it.
+
+2004-05-04  Bernard Giroud  <bgiroud2@free.fr>
+
+       * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
+       (func_table): Change type from char ** to vms_func_ref.
+       (write_rtnbeg):  Update to reflect func_table change.  Use
+       fde->funcdef_number instead of rtnnum in output.
+       (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
+
+2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
+           Richard Henderson  <rth@redhat.com>
+
+       PR target/14899
+
+       * c-common.c (vector_types_convertible_p): New function.
+       * c-typeck.c (comptypes): Recurse on vector types.
+       (convert_for_assignment): Use vector_types_convertible_p.
+       (digest_init): Use vector_types_convertible_p to check
+       validness of constant vector initializers; otherwise treat
+       them as scalars.
+       * tree.c (make_or_reuse_type): New.
+       (build_common_tree_nodes): Use it.
+       * cp/call.c (standard_conversion): Likewise.
+       * cp/typeck.c (comptypes): Recurse on vector types.
+       (convert_for_assignment): Use vector_types_convertible_p.
+
+2004-05-04  Chris Demetriou  <cgd@broadcom.com>
+
+       * config/mips/mips.c (override_options): Default to no
+       generation of branch-likely operations when tuning for
+       CPUs where they tend to have a negative performance impact
+       (e.g., SB-1).
+
+2004-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * expr.c (store_constructor_field): Don't call store_constructor
+       if bitsize is not a multiple of a byte.
+
+2004-05-04  Richard Sandiford  <rsandifo@redhat.com>
+
+       * reload1.c (inherit_piecemeal_p): New function.
+       (emit_reload_insns): When reloading a group of hard registers, use
+       inherit_piecemeal_p to decide whether the values of individual hard
+       registers can be inherited.
+
+2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
+       * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
+       * config/t-linux (LIB2ADDEHDEP): Likewise.
+
+2004-05-04  Paul Brook  <paul@codesourcery.com>
+
+       * config/arm/crti.asm: Push an even number of registers.
+       * config/arm/crtn.asm: And restore them.  Load via sp.
+
+2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
+
+       * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
+       Collect overhead information.
+       (ggc_alloc_stat): New name of ggc_alloc.  Add MEM_STAT_DECL
+       parameter and pass it through.
+       (ggc_alloc_typed_stat): New name of ggc_alloc_typed.  Add
+       MEM_STAT_DECL parameter and pass it through.
+       (ggc_alloc_zone_stat): New name of ggc_alloc_zone.  Add
+       MEM_STAT_DECL parameter and pass it through.
+
+2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
+
+       * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
+
+       * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
+
+       * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
+       rs6000_hard_regno_nregs.
+
+2004-05-03  Eric Christopher  <echristo@redhat.com>
+
+       * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
+       prologue insn instead of setting up call.
+       (s390_emit_epilogue): Ditto.
+       * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
+       (define_constants): Add numbers for above patterns.
+
+2004-05-03  Eric Christopher  <echristo@redhat.com>
+
+       * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
+       * config/s390/s390.c (s390_conditional_register_usage): ...here.
+       * config/s390/s390-protos.h: Prototype.
+
+2004-05-03  Joe Buck <jbuck@welsh-buck.org>
+
+       * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
+       assignment.
+
+2004-05-03  Eric Christopher  <echristo@redhat.com>
+
+       * config/mips/mips.md: Fix branch length attribute definition.
+
+2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
+
+       * config.gcc: Remove --enable-altivec support.
+
+       * config/rs6000/altivec-defs.h: Remove.
+
+2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
+
+       * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
+       * fixinc/fixincl.x: Regenerate.
+
+2004-05-03  Uros Bizjak  <uros@kss-loka.si>
+
+       * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
+       definition.
+       (log?f2, log10?f2, log2?f2): Reimplement expanders with
+       float_truncate insn.
+       (*fxtractsf3, *fxtractdf3): Remove insn definition.
+       (logb?f2): Reimplement expanders with float_truncate insn.
+
+2004-05-03  Graham Stott  <graham.stott@btinternet.com>
+
+       PR 14718
+       * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
+       force_type_die for CONST_DECL.
+
+2004-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
+           Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
+
+       * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
+       tm-dwarf2.h to tm_file.
+       (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
+       * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
+       (ASM_DEBUG_SPEC): Delete.
+
+2004-05-03  Uros Bizjak  <uros@kss-loka.si>
+
+       * optabs.h (enum optab_index): Add new OTI_expm1.
+       (expm1_optab): Define corresponding macro.
+       * optabs.c (init_optabs): Initialize expm1_optab.
+       * genopinit.c (optabs): Implement expm1_optab using expm1?f2
+       patterns.
+       * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
+       using expm1_optab.
+       (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
+       expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
+
+       * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
+       to implement expm1, expm1f and expm1l built-ins as inline x87
+       intrinsics.
+
+2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
+
+       2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
+       * config/frv/frv.md (*return_true, *return_false): New patterns.
+
+2004-05-02  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * rtl.h (PHI_NODE_P): Remove.
+
+2004-05-02  Eric Botcazou  <ebotcazou@act-europe.fr>
+
+       PR middle-end/14988
+       * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
+       when passed -2 as 'align'.
+       (put_var_into_stack): Use 'bool' as the type for the three local
+       predicates.  Adjust calls to put_reg_into_stack.
+       When passed a CONCAT, instruct put_reg_into_stack to use
+       a consecutive stack slot for the second part.
+       (put_reg_into_stack): Remove 'promoted_mode' parameter, add
+       'consecutive_p' parameter.  Turn the three predicates into 'bool'
+       parameters.  Retrieve the register mode from 'reg'.
+       When consecutive_p is true, instruct assign_stack_local_1 to use
+       BITS_PER_UNIT alignment.
+       (put_addressof_into_stack): Use 'bool' as the type for the two
+       local predicates. Adjust call to put_reg_into_stack.
+
+2004-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * fold-const.c (fold_convert_const, fold): Add missing
+       FIX_ROUND_EXPR case.
+
+2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
+
+       * configure.ac (FLEX, BISON): Only use tools from the build tree
+       if build equals host.
+       * configure: Rebuilt.
+
+       * config/frv/frv-protos.h (frv_expand_epilogue,
+       frv_expand_fdpic_call): Add bool argument.
+       * config/frv/frv.c (frv_function_ok_for_sibcall): New.
+       (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
+       (frv_expand_epilogue): Use new argument to decide whether to emit
+       return instruction or copy the return address to LR.
+       (frv_expand_fdpic_call): Inline PLT entry when emitting direct
+       sibcalls.
+       (sibcall_operand): New.
+       * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
+       PLUS nor LABEL_REF.  Add sibcall_operand.
+       * config/frv/frv.md (call, call_value): Pass false to
+       frv_expand_fdpic_call.
+       (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
+       (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
+       sibcall_value_internal, sibcall_value_fdpicdi): New.
+       (return_unsigned_true, return_unsigned_false): New.
+       (epilogue): Adjust call to frv_expand_epilogue.
+       (sibcall_epilogue): New.
+
+       * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
+       (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
+       before redefining them.
+
+2004-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * builtins.c (fold_fixed_mathfn): New function.
+       (fold_builtin_lround, fold_builtin): Use it.
+
+2004-05-01  Jakub Jelinek  <jakub@redhat.com>
+
+       * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
+       also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
+
 2004-05-01  Kazu Hirata  <kazu@cs.umass.edu>
 
        * config/cris/cris.h: Revert my "fix comment typos" patch.
        * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
 
 2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
-       
+
        PR middle-end/15054
-       * expr.c (expand_expr_real): Do not call preserve_temp_slots 
+       * expr.c (expand_expr_real): Do not call preserve_temp_slots
        on a TARGET_EXPR temp.
        * function.c (assign_stack_temp_for_type): Set 'keep' flag for
        TARGET_EXPR temp slots.
        PR other/1963
        * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
 
+2004-04-30  Brian Ford  <ford@vss.fsi.com>
+           DJ Delorie  <dj@redhat.com>
+
+       * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
+       (DWARF2_DEBUGGING_INFO): Define to enable.
+       (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
+       DWARF2.
+       * configure.ac (Target-specific assembler checks)
+       <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
+       relocs.
+       * configure: Regenerate.
+       * config.in: Likewise.
+
+       * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
+       (ASM_OUPUT_DWARF_OFFSET): Define.
+
 2004-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
 
        * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
        (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
        (FPUTYPE_DEFAULT): Don't define here.
 
-2004-04-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
-
-       * expr.c (store_constructor): SIZE operand is now in bits; CLEARED
-       less than zero now means emitted CLOBBER already.
-       (store_constructor_field, expand_expr_real): Reflect above changes.
-
 2004-04-30  J"orn Rennecke <joern.rennecke@superh.com>
 
        * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer