OSDN Git Service

Change attribute((option(...))) to attribute((target(...))); Do not allocate tree...
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 431661b..5b5c833 100644 (file)
@@ -1,3 +1,548 @@
+2008-08-29  Michael Meissner  <gnu@the-meissners.org>
+
+       * dojump.c (top level): Include basic-block.h to declare
+       optimize_insn_for_speed_p
+
+       * Makefile.in (dodump.h): Add $(BASIC_BLOCK_H) dependency.
+
+       * opts.h (CL_SAVE): New option class for marking options that are
+       target specific options usable in the target attribute.
+       (CL_MIN_OPTION_CLASS): CL_SAVE is now the minimum option.
+
+       * opt-functions.awk (switch_flags): Add CL_SAVE flag so backends
+       can easily find the target specific options that are safe to use
+       in the attribute or pragma.
+
+       * attribs.c (decl_attributes): Change #pragma GCC option to
+       #pragma GCC target, and attribute((option(...))) to
+       attribute((target(...))).
+
+       * doc/extend.texi (target attribute): Change from option
+       attribute.  Delete push/pop/reset.
+       (#pragma GCC target): Change from #pragma GCC option.  Delete
+       push/pop/reset.
+       (#pragma GCC push_options): Document new pragma.
+       (#pragma GCC pop_options): Document new pragma.
+       (#pragma GCC reset_options): Document new pragma.
+
+       * targhooks.c (default_target_option_valid_attribute_p): Add
+       warning about port not supporting target attributes.
+       (default_target_option_pragma_parse): New function, warn about
+       #pragma GCC target not being supported.
+
+       * targhooks.h (default_target_option_pragma_parse): Add
+       declaration.
+
+       * tree.h (TI_CURRENT_TARGET_PRAGMA): Rename from
+       TI_CURRENT_OPTION_PRAGMA.
+       (current_target_pragma): Rename from current_option_pragma.
+
+       * target.h: (struct target_option): Delete booleans for changing
+       the optimization level on hot/cold functions.  Change signature of
+       pragma_parse hook to take a second tree.
+
+       * c-tree.h (c_builtin_function_ext_scope): Add declaration.
+
+       * c-decl.c (c_builtin_function_ext_scope): New function, guarantee
+       that the declaration is done at global scope.
+
+       * langhooks.c (add_builtin_function_common): Move most of the code
+       from add_builtin_function here, calling the hook passed in.
+       (add_builtin_function): Call add_builtin_function_common with
+       standard builtin hook.
+       (add_builtin_function_ext_scope): New function to add builtins to
+       global scope.
+
+       * langhooks.h (struct lang_hooks): Add builtin_function_ext_scope
+       hook.
+       (add_builtin_function_ext_scope): Add declaration.
+
+       * c-pragma.c (handle_pragma_target): Rename from
+       handle_pragma_option, #pragma GCC option is now #pragma GCC
+       target.  Move warning about port not supporting target options to
+       default pragma parse hook.  Remove push/pop/reset from this
+       pragma.
+       (handle_pragma_optimize): Remove push/pop/reset from this pragma.
+       (option_stack): Delete static variable.
+       (optimize_stack): Ditto.
+       (optons_stack): New stack of saved target and optimization
+       options.
+       (handle_pragma_push_options): New function to handle pushing both
+       target and optimization options.
+       (handle_pragma_pop_options): New function to handle popping both
+       target and optimization options.
+       (handle_pragma_reset_options): New function to handle resetting
+       both target and optimization options to their initial state.
+       (init_pragma): Rename handle_pragma_option to
+       handle_pragma_target.  Add support for push_options, pop_options,
+       and reset_options pragmas.
+
+       * target-def.h (TARGET_OPTION_PRAGMA_PARSE): Change default to
+       default_target_option_pragma_parse.
+       (TARGET_OPTION_VALID_ATTRIBUTE_P): Change default to
+       default_target_option_valid_attribute_p.
+       (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
+       (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
+       (TARGET_OPTION_HOOKS): Delete the fields for whether to change
+       optimization level on hot/cold functions.
+
+       * tree-inline.c (tree_can_inline_p): Disable suppressing inlining
+       if the caller and callee have different optimization levels.
+
+       * c-common.c (handle_target_attribute): Rename from
+       handle_option_attribute, attribute((option(...))) is now
+       attribute((target(...))).  Move warning if the port does not
+       support target attributes to the default hook.
+       (handle_hot_attribute): Delete code to change the optimization
+       level of hot functions.
+       (handle_cold_attribute): Ditto.
+
+       * config/i386/i386-c.c (ix86_pragma_target_parse): Take a second
+       argument that is the binary tree options to use if there are no
+       arguments.  Call ix86_valid_target_attribute_tree instead of
+       ix86_valid_option_attribute_tree.
+       (ix86_pragma_target_parse): Rename from ix86_pragma_option_parse.
+       (ix86_register_pragmas): Use ix86_pragma_target_parse instead of
+       ix86_pragma_option_parse.
+
+       * config/i386/i386-protos.h (ix86_valid_target_attribute_tree):
+       Rename from ix86_valid_option_attribute_tree.
+
+       * config/i386/i386.c (ix86_add_new_builtins): New function to add
+       new builtins when the ISA changes.
+       (ix86_valid_target_attribute_tree): Rename from
+       ix86_valid_option_attribute_tree.  Change callers.  If the
+       function specified optimization options, use those as the starting
+       point before setting up the target attributes.  If the
+       optimization options were changed in the course of setting the
+       target attributes, record the new optimization options.
+       (ix86_valid_target_attribute_tree_inner_p): Rename from
+       ix86_valid_option_attribute_tree_inner_p.  Change callers.  Call
+       ix86_add_new_builtins if the ISA changed.
+       (ix86_valid_target_attribute_p): Rename from
+       ix86_valid_option_attribute_p.  Change callers.
+       (enum ix86_builtins): Add IX86_BUILTIN_PCMOV to allow both
+       __builtin_ia32_pcmov and __builtin_ia32_pcmov_v2di to be declared
+       as delayed builtin functions.
+       (struct builtin_isa): New structure to record builtin functions
+       that should be delayed until the ISA for that function is used.
+       (ix86_builtins_isa): Change from int to struct to track builtin
+       functions we want to declare at some point.
+       (def_builtin): If the front end can delay defining the builtin
+       functions, don't create builtins for ISAs not part of the default
+       options.
+       (def_builtin_const): Ditto.
+       (bdesc_multi_arg): Declare __builtin_ia32_pcmov and
+       __builtin_ia32_pcmov_v2di to be different builtin functions.
+       (ix86_expand_builtin): Changes due to ix86_builtins_isa now being
+       a structure instead of an int.
+       (TARGET_OPTION_VALID_ATTRIBUTE_P): Use
+       ix86_valid_target_attribute_p, not ix86_valid_option_attribute_p.
+       (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
+       (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
+
+       * config/ia64/ia64.h
+       (TARGET_OPTION_COLD_ATTRIBUTE_SETS_OPTIMIZATION): Delete.
+       (TARGET_OPTION_HOT_ATTRIBUTE_SETS_OPTIMIZATION): Ditto.
+
+       * langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE): New
+       hook, default to being the same as LANG_HOOKS_BUILTIN_FUNCTION.
+       (LANG_HOOKS_INITIALIZER): Add
+       LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE hook.
+
+2008-08-30  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       PR target/37270
+       * config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Generate
+       the reload address with the index register for SFmode
+       access with a displacement.
+
+2008-08-30  Jan Hubicka  <jh@suse.cz>
+
+       * optabs.c (expand_abs_nojump): Update BRANCH_COST call.
+       * fold-cost.c (LOGICAL_OP_NON_SHORT_CIRCUIT, fold_truthop): Likewise.
+       * dojump.c (do_jump): Likewise.
+       * ifcvt.c (MAX_CONDITIONAL_EXECUTE): Likewise.
+       (note-if_info): Add BRANCH_COST.
+       (noce_try_store_flag_constants, noce_try_addcc, noce_try_store_flag_mask,
+       noce_try_cmove_arith, noce_try_cmove_arith, noce_try_cmove_arith,
+       noce_find_if_block, find_if_case_1, find_if_case_2): Use compuated
+       branch cost.
+       * expr.h (BRANCH_COST): Update default.
+       * predict.c (predictable_edge_p): New function.
+       * expmed.c (expand_smod_pow2, expand_sdiv_pow2, emit_store_flag):
+       Update BRANCH_COST call.
+       * basic-block.h (predictable_edge_p): Declare.
+       * config/alpha/alpha.h (BRANCH_COST): Update.
+       * config/frv/frv.h (BRANCH_COST): Update.
+       * config/s390/s390.h (BRANCH_COST): Update.
+       * config/spu/spu.h (BRANCH_COST): Update.
+       * config/sparc/sparc.h (BRANCH_COST): Update.
+       * config/m32r/m32r.h (BRANCH_COST): Update.
+       * config/i386/i386.h (BRANCH_COST): Update.
+       * config/i386/i386.c (ix86_expand_int_movcc): Update use of BRANCH_COST.
+       * config/sh/sh.h (BRANCH_COST): Update.
+       * config/pdp11/pdp11.h (BRANCH_COST): Update.
+       * config/avr/avr.h (BRANCH_COST): Update.
+       * config/crx/crx.h (BRANCH_COST): Update.
+       * config/xtensa/xtensa.h (BRANCH_COST): Update.
+       * config/stormy16/stormy16.h (BRANCH_COST): Update.
+       * config/m68hc11/m68hc11.h (BRANCH_COST): Update.
+       * config/iq2000/iq2000.h (BRANCH_COST): Update.
+       * config/ia64/ia64.h (BRANCH_COST): Update.
+       * config/rs6000/rs6000.h (BRANCH_COST): Update.
+       * config/arc/arc.h (BRANCH_COST): Update.
+       * config/score/score.h (BRANCH_COST): Update.
+       * config/arm/arm.h (BRANCH_COST): Update.
+       * config/pa/pa.h (BRANCH_COST): Update.
+       * config/mips/mips.h (BRANCH_COST): Update.
+       * config/vax/vax.h (BRANCH_COST): Update.
+       * config/h8300/h8300.h (BRANCH_COST): Update.
+       * params.def (PARAM_PREDICTABLE_BRANCH_OUTCOME): New.
+       * doc/invoke.texi (predictable-branch-cost-outcome): Document.
+       * doc/tm.texi (BRANCH_COST): Update.
+
+2008-08-30  Samuel Tardieu  <sam@rfc1149.net>
+
+       PR target/37283
+       * config/arm/arm.c (arm_optimization_options): Set
+       flag_section_anchors to 2 instead of 1 to distinguish it from
+       -fsection-anchors given explicitely on the command line.
+
+2008-08-30  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * recog.c (split_insn): Consider attaching a REG_EQUAL note to the
+       final insn of a split.
+
+2008-08-30  Jan Hubicka  <jh@suse.cz>
+
+       * postreload-gcse.c (gate_handle_gcse2): Disable for functions
+       optimized for speed.
+       * final.c (compute_alignments): Use optimize_bb_for_size_p.
+       * tree-call-cdce.c (gate_call_cdce): Use optimize_function_for_speed_p.
+       * opts.c (flag_predictive_commoning_set, flag_unswitch_loops_set,
+       flag_gcse_after_reload_set): New static vars.
+       (common_handle_option): Enable those flags for profile-use.
+       (decode_options): Remove optimize_size flags that are handled
+       on higher granuality.
+       * tree-vectorizer.c (vectorize_loops): Use
+       optimize_loop_nest_for_speed_p.
+       * tree-ssa-pre.c (do_pre): Use optimize_function_for_speed_p.
+       * tree-predcom.c (tree_predictive_commoning): Use
+       optimize_loop_for_speed_p.
+       * varasm.c (assemble_start_function): Use optimize_function_for_speed_p.
+       * bb-reorder.c (rest_of_handle_reorder_blocks): Likewise.
+       * predict.c (optimize_loop_for_speed_p): Fix walk.
+
+2008-08-30  Jan Hubicka  <jh@suse.cz>
+
+       * ipa-inline.c (cgraph_estimate_growth): Discover self recursive
+       functions.
+       (cgraph_decide_inlining_of_small_function): Use edge->count to detect
+       profile presence locally.
+
+2008-08-29  Joseph Myers  <joseph@codesourcery.com>
+
+       PR bootstrap/37086
+       * tree-vrp.c (find_switch_asserts): Make idx volatile for GCC
+       versions before 4.0.
+
+2008-08-29  Jan Hubicka  <jh@suse.cz>
+
+       * tree-inline.c (insert_init_stmt): Insert sequence even when
+       not in SSA form.
+
+2008-08-29  Jeff Law  <law@redhat.com>
+
+       * mn10300.c (mn10300_secondary_reload_class): We need secondary
+       reloads for AM33-2 if IN is a pseudo with an equivalent memory
+       location and class is an FP register.
+
+2008-08-29  Jan Hubicka  <jh@suse.cz>
+
+       * see.c (see_merge_one_def_extension): Silence used uninitialized
+       warning.
+       * matrix-reorg.c (check_allocation_function): Likewise.
+       * config/i386/driver-i386.c (detect_caches_amd): Likewise.
+
+2008-08-29  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/37261
+       * fold-const.c (fold_binary): In (X | C1) & C2 canonicalization
+       compute new & and | in type rather than TREE_TYPE (arg0).
+
+       * dwarf2out.c (fortran_common): Update comment.
+       (gen_variable_die): Swap com_die and var_die variables in Fortran
+       COMMON block handling code.
+
+       * dwarf2out.c (descr_info_loc): Handle VAR_DECL.
+
+       * dwarf2out.c (gen_const_die): New function.
+       (size_of_die, value_format, output_die): Output larger
+       dw_val_class_vec using DW_FORM_block2 or DW_FORM_block4.
+       (native_encode_initializer): New function.
+       (tree_add_const_value_attribute): Call it.
+       (gen_decl_die, dwarf2out_decl): Handle CONST_DECLs if is_fortran ().
+
+       * dwarf2out.c (gen_formal_parameter_die, gen_variable_die): For
+       DECL_BY_REFERENCE decls don't pass TREE_READONLY and
+       TREE_THIS_VOLATILE to add_type_attribute.
+
+       * dwarf2out.c (add_subscript_info): Stop on Fortran TYPE_STRING_FLAG
+       types.
+       (gen_array_type_die): Emit DW_TAG_string_type for Fortran character
+       types.
+
+       * dwarf2out.c (loc_by_reference): New function.
+       (add_location_or_const_value_attribute): Use it.
+
+       PR fortran/23057
+       * dwarf2out.c (gen_variable_die): Represent Fortran COMMON vars
+       as DW_TAG_variable children of DW_TAG_common_block rather than
+       DW_TAG_member children.  Put DW_AT_external to individual
+       DW_TAG_variable DIEs, not to DW_TAG_common_block.
+
+       * dwarf2out.c (add_bound_info): If lookup_decl_die failed, try
+       loc_descriptor_from_tree_1.
+
+       PR fortran/29635
+       PR fortran/23057
+       * debug.h (struct gcc_debug_hooks): Add NAME and CHILD
+       arguments to imported_module_or_decl.
+       (debug_nothing_tree_tree): Removed.
+       (debug_nothing_tree_tree_tree_bool): New prototype.
+       * debug.c (do_nothing_debug_hooks): Adjust.
+       (debug_nothing_tree_tree): Removed.
+       (debug_nothing_tree_tree_tree_bool): New function.
+       * dwarf2out.c (is_symbol_die): Handle DW_TAG_module.
+       (gen_variable_die): Put all common vars for the
+       same COMMON block under one DW_TAG_common_block.
+       (declare_in_namespace): Return new context_die, for Fortran
+       return the module DIE instead of adding extra declarations into
+       the namespace.
+       (gen_type_die_with_usage): Adjust declare_in_namespace caller.
+       (gen_namespace_die): If is_fortran (), generate DW_TAG_module
+       instead of DW_TAG_namespace.  If DECL_EXTERNAL is set, add
+       DW_AT_declaration.
+       (dwarf2out_global_decl): Don't skip Fortran global vars.
+       (gen_decl_die): Likewise.  Adjust declare_in_namespace callers.
+       (dwarf2out_imported_module_or_decl): Add NAME and CHILD arguments.
+       If NAME is non-NULL, add DW_AT_name.  If CHILD is non-NULL, put
+       DW_TAG_imported_declaration as child of previous
+       DW_TAG_imported_module.
+       * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Adjust.
+       * sdbout.c (sdb_debug_hooks): Likewise.
+       * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
+
+2008-08-29  Jan Hubicka  <jh@suse.cz>
+
+       * cgraph.c (cgraph_remove_node): Do not remove nested nodes.
+
+       * cgraph.h (cgraph_maybe_hot_edge_p): Declare.
+       * ipa-cp.c (n_cloning_candidates): New static variable.
+       (ipcp_print_profile_data, ipcp_function_scale_print): Forward declare.
+       (ipcp_print_all_lattices): Improve debug output.
+       (ipcp_cloning_candidate_p): New function.
+       (ipcp_initialize_node_lattices): Use it.
+       (ipcp_init_stage): Do only analyzis here; prettier debug output.
+       (ipcp_propagate_stage): Prettier debug output.
+       (ipcp_iterate_stage): Initialize latices here; prettier debug output.
+       (ipcp_print_all_structures): Remove.
+       (ipcp_need_redirect_p): Test !n_cloning_candidates.
+       (ipcp_insert_stage): Prettier debug output; call
+       cgraph_remove_unreachable_nodes before propagating.
+       (pass_ipa_cp): Schedule function removal pass.
+       * ipa-inline.c (inline_indirect_intraprocedural_analysis): Better
+       debug output.
+       (cgraph_maybe_hot_edge_p): Move to ...
+       * predict.c (cgraph_maybe_hot_edge_p) ... here.
+       * opts.c (flag_ipa_cp_set, flag_ipa_cp_clone_set): New.
+       (common_handle_option): Set them; enable ipa-cp when profiling.
+       * ipa-prop.c (ipa_print_node_jump_functions): Prettier output.
+       (ipa_print_all_jump_functions): Likewise.
+       (ipa_print_all_tree_maps, ipa_print_node_param_flags): Remove.
+       (ipa_print_node_params, ipa_print_all_params): New.
+       * ipa-prop.h (ipa_print_all_tree_maps, ipa_print_node_param_flags,
+       ipa_print_all_param_flags): Remove.
+       (ipa_print_node_params, ipa_print_all_params): New.
+
+2008-08-29  Bob Wilson  <bob.wilson@acm.org>
+
+       * config/xtensa/xtensa.c (xtensa_secondary_reload_class): Revert
+       change from 2008-04-03.
+       * config/xtensa/xtensa.h (IRA_COVER_CLASSES): Define.
+
+2008-08-29  Vladimir Makarov  <vmakarov@redhat.com>
+
+       PR rtl-opt/37251
+
+       * ira-color.c (push_allocnos_to_stack): Truncate
+       removed_splay_allocno_vec.
+
+2008-08-29  Vladimir Makarov  <vmakarov@redhat.com>
+
+       PR rtl-opt/37243
+       * ira-color (ira_fast_allocation): Don't assign hard registers to
+       global allocnos.
+
+2008-08-29  Jan Hubicka  <jh@suse.cz>
+
+       PR middle-end/37278
+       * predict.c (optimize_loop_nest_for_speed_p): Do not ICE
+       for cold internal loops.
+
+2008-08-29  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-structalias.c (create_variable_info_for): Do not
+       create fields for heap vars or vars with a noalias state.
+       For NO_ALIAS_ANYTHING variables add a self-constraint, not one
+       from ESCAPED.
+
+2008-08-29  Richard Guenther  <rguenther@suse.de>
+
+       * common.opt (ftree-store-ccp): Mark as preserved for
+       backward compatibility.
+       * doc/invoke.texi (-ftree-store-ccp): Remove documentation.
+       * tree-pass.h (pass_store_ccp): Remove.
+       * tree-ssa-propagate.h (struct prop_value_d): Remove mem_ref field.
+       (first_vdef): Remove declaration.
+       (get_value_loaded_by): Likewise.
+       * tree-ssa-ccp.c (do_store_ccp): Remove.
+       (get_default_value): Simplify as do_store_ccp is always false
+       now.  Do not initialize mem_ref.
+       (set_value_varying): Likewise.
+       (canonicalize_float_value): Likewise.
+       (set_lattice_value): Likewise.
+       (likely_value): Likewise.
+       (surely_varying_stmt_p): Likewise.
+       (ccp_initialize): Likewise.
+       (ccp_lattice_meet): Likewise.
+       (ccp_visit_phi_node): Likewise.
+       (ccp_fold): Likewise.
+       (evaluate_stmt): Likewise.
+       (visit_assignment): Likewise.
+       (ccp_visit_stmt): Likewise.
+       (execute_ssa_ccp): Fold into ...
+       (do_ssa_ccp): ... this.
+       (do_ssa_store_ccp): Remove.
+       (gate_store_ccp): Likewise.
+       (pass_store_ccp): Likewise.
+       * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not
+       initialize mem_ref.
+       * tree-ssa-propagate.c (first_vdef): Remove.
+       (get_value_loaded_by): Likewise.
+       (replace_vuses_in): Likewise.
+       (substitute_and_fold): Do not call replace_vuses_in.
+       * opts.c (decode_options): Do not set flag_tree_store_ccp.
+
+2008-08-29  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/37236
+       * tree-ssa-structalias.c (intra_create_variable_infos): Mark
+       PARAM_NOALIAS tags with is_heapvar.
+       * tree-ssa-operands.c (access_can_touch_variable): Offset
+       based tests do not apply for heapvars.  Fix offset test.
+
+2008-08-29  Jan Hubicka  <jh@suse.cz>
+
+       * doc/invoke.texi (-fipa-cp): Enabled by default at -O2/-Os/-O3
+       (-fipa-cp-clone): Enabled by default at -O3.
+       * opts.c (decode_options): Enable ipa-cp at -O2, ipa-cp-clone at -O3;
+       make ipa-cp-clone to imply ipa-cp; disable cloning at -Os.
+
+2008-08-29  Jan Hubicka  <jh@suse.cz>
+
+       * tree.c (build_function_type_skip_args, build_function_decl_skip_args):
+       New functions.
+       * tree.h (build_function_type_skip_args, build_function_decl_skip_args):
+       Declare.
+       * gimple.c (giple_copy_call_skip_args): New function.
+       (giple_copy_call_skip_args): Declare.
+
+       * cgraph.h (cgraph_function_versioning): Add skip_args arugmnet
+       * ipa-cp.c (ipcp_node_not_modifiable_p): Rename to ...
+       (ipcp_node_modifiable_p): ... this one; use tree_versionable_function_p.
+       (ipcp_create_replace_map): Improve debug output.
+       (ipcp_need_redirect_p): Return false when not clonning.
+       (ipcp_update_callgraph): Skip args.
+       (ipcp_insert_stage): UPdate call of !ipcp_node_modifiable_p;
+       skip args.
+       * cgraphunit.c (cgraph_function_versioning): Add skip_args argument.
+       (save_inline_function_body): Update call of tree_function_versioning.
+       * ipa-prop.c (ipa_edge_removal_hook): Do not ICE on unanalyzed nodes.
+       * tree-inline.c (copy_arguments_for_versioning): Add skip_args argument.
+       (tree_function_versioning): Likewise.
+       * tree-inline.h (tree_function_versioning): Update prototype.
+
+2008-08-29  Jan Hubicka  <jh@suse.cz>
+
+       * loop-unswitch.c (unswitch_single_loop): Use optimize_loop_for_speed_p.
+       * tree-ssa-threadupdate.c (mark_threaded_blocks): Use optimize_function_for_size_p.
+       * tracer.c (ignore_bb_p): Use optimize_bb_for_size_p.
+       * postreload-gcse.c (eliminate_partially_redundant_load): Use optimize_bb_for_size_p.
+       * value-prof.c (gimple_divmod_fixed_value_transform,
+       gimple_mod_pow2_value_transform, gimple_mod_subtract_transform,
+       gimple_stringops_transform): Use optimize_bb_for_size_p.
+       * ipa-cp.c (ipcp_insert_stage): Use optimize_function_for_size_p.
+       * final.c (compute_alignments): Use optimize_function_for_size_p.
+       * builtins.c (fold_builtin_cabs): Use optimize_function_for_speed_p.
+       (fold_builtin_strcpy, fold_builtin_fputs): Use
+       optimize_function_for_size_p.
+       * fold-const.c (tree_swap_operands_p): Use optimize_function_for_size_p.
+       * recog.c (relax_delay_slots): Likewise.
+       * tree-ssa-math-opts.c (replace_reciprocal): Use optimize_bb_for_speed_p.
+       (execute_cse_reciprocals): Use optimize_bb_for_size_p.
+       * ipa-inline.c (cgraph_decide_recursive_inlining): Use
+       optimize_function_for_size_p.
+       (cgraph_decide_inlining_of_small_function): Use
+       optimize_function_for_size_p.
+       * global.c (find_reg): Use optimize_function_for_size_p.
+       * opts.c (decode_options): Do not clear flag_tree_ch, flag_inline_functions,
+       flag_unswitch_loops, flag_unroll_loops, flag_unroll_all_loops and
+       flag_prefetch_loop_arrays. Those can work it out from profile.
+       * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Use
+       optimize_loop_for_speed_p.
+       * predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p): Constify
+       argument.
+       (optimize_loop_nest_for_size_p, optimize_loop_nest_for_speed_p): New.
+       * tree-parloops.c (parallelize_loops): Use optimize_loop_for_size_p.
+       * tree-eh.c (decide_copy_try_finally): Use optimize_function_for_size_p.
+       * local-alloc.c (block_alloc): Pass BB pointer.
+       (find_free_reg): Add BB pointer, use optimize_bb_for_size_p.
+       * gcse.c (gcse_main): Use optimize_function_for_size_p.
+       * loop-unroll.c (decide_unrolling_and_peeling): Use optimize_loop_for_size_p.
+       (decide_peel_completely): Likewise.
+       * tree-vect-analyze.c (vect_mark_for_runtime_alias_test): Use
+       optimize_loop_for_size_p.
+       (vect_enhance_data_refs_alignment): Likewise.
+       * tree-ssa-coalesce.c (coalesce_cost): Add optimize_for_size argument.
+       (coalesce_cost_bb, coalesce_cost_edge, create_outofssa_var_map): Update call.
+       * cfgcleanup.c (outgoing_edges_match): Use optimize_bb_for_speed_p.
+       (try_crossjump_bb): Use optimize_bb_for_size_p.
+       * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
+       optimize_loop_for_speed_p.
+       * bb-reorder.c (find_traces_1_round): Likewise.
+       (copy_bb): Use optimize_bb_for_speed_p.
+       (duplicate_computed_gotos): Likewise.
+       * basic-block.h (optimize_loop_nest_for_size_p,
+       optimize_loop_nest_for_speed_p): New.
+       * stmt.c (expand_case): Use optimize_insn_for_size_p.
+
+2008-08-29  Tristan Gingold  <gingold@adacore.com>
+
+       * gcov.c (main): Call expandargv.
+
+2008-08-29  Jan Hubicka  <jh@suse.cz>
+
+       * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Check that loop
+       is not cold.
+       * predict.c (optimize_bb_for_size_p, optimize_bb_for_speed_p):
+       Constify arguments.
+       (optimize_loop_for_size_p, optimize_loop_for_speed_p): New functions.
+       * basic-block.h (optimize_bb_for_size_p, optimize_bb_for_speed_p):
+       Constify.
+       (optimize_loop_for_size_p, optimize_loop_for_speed_p): Declare.
+
 2008-08-29  Jan Hubicka  <jh@suse.cz>
 
        * tree-pass.h (pass_strip_predict_hints): Declare.