gcc.git
15 years agore PR fortran/37228 (F2008: Support g0.<d> edit descriptor)
Jerry DeLisle [Tue, 2 Sep 2008 08:50:13 +0000 (08:50 +0000)]
re PR fortran/37228 (F2008: Support g0.<d> edit descriptor)

2008-09-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR fortran/37228
* io.c (check_format): Allow specifying precision with g0 format.

2008-09-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR libfortran/37301
PR libfortran/37228
* io/io.h (write_real_g0): Declare new function to handle g0.d format.
* io/transfer.c (formatted_transfer_scalar): Use new function.
* io/format.c (parse_format_list): Enable g0.d.
* io/write.c (write_a_char4): Delete unused var.
(set_fnode_default): New function to set the default fnode w, d, and e
factored from write_real. (write_real): Use new factored function.
(write_real_g0): New function that sets d to that passed by g0.d format
specifier and set format to ES.  Default values for w and e are used
from the new function, set_fnode_default.

2008-09-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR fortran/37228
* gfortran.dg/fmt_g0_4.f08: Revised test.

From-SVN: r139886

15 years agogfortran.h (struct gfc_namespace): New member `implicit_loc'.
Daniel Kraft [Tue, 2 Sep 2008 08:13:21 +0000 (10:13 +0200)]
gfortran.h (struct gfc_namespace): New member `implicit_loc'.

2008-09-02  Daniel Kraft  <d@domob.eu>

* gfortran.h (struct gfc_namespace): New member `implicit_loc'.
(gfc_add_abstract): New method.
* decl.c (gfc_get_type_attr_spec): Match ABSTRACT attribute.
(gfc_match_derived_decl): Copy abstract attribute in derived symbol.
* dump-parse-tree.c (show_attr): Show ABSTRACT attribute as `ABSTRACT'
only to allow for ABSTRACT types.
* parse.c (parse_interface): Use new gfc_add_abstract.
* primary.c (gfc_match_structure_constructor): Check that no ABSTRACT
type is constructed.
* resolve.c (resolve_typespec_used): New method.
(resolve_fl_derived): Check type in respect to ABSTRACT attribute and
check that no component is of an ABSTRACT type.
(resolve_symbol): Check that no symbol is of an ABSTRACT type.
(resolve_types): Check IMPLICIT declarations for ABSTRACT types.
* symbol.c (gfc_merge_new_implicit): Remember loci of IMPLICIT's.
(gfc_add_abstract): New method.

2008-09-02  Daniel Kraft  <d@domob.eu>

* gfortran.dg/abstract_type_1.f90: New test.
* gfortran.dg/abstract_type_2.f03: New test.
* gfortran.dg/abstract_type_3.f03: New test.
* gfortran.dg/abstract_type_4.f03: New test.

From-SVN: r139885

15 years agoinvoke.texi: Document -mword-relocations.
Paul Brook [Tue, 2 Sep 2008 01:44:33 +0000 (01:44 +0000)]
invoke.texi: Document -mword-relocations.

2008-09-01  Paul Brook  <paul@codesourcery.com>

* doc/invoke.texi: Document -mword-relocations.
* config/arm/uclinux-elf.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
* config/arm/symbian.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
* config/arm/vxworks.h (TARGET_DEFAULT_WORD_RELOCATIONS): Define.
* config/arm/arm.c (arm_split_constant): Use arm_emit_movpair.
(arm_rtx_costs_1, arm_size_rtx_costs): Handle HIGH and LO_SUM.
(arm_emit_movpair): New function.
(arm_print_operand <c>): Handle sybolic addresses.
* config/arm/arm.h (TARGET_USE_MOVT): Define.
(TARGET_DEFAULT_WORD_RELOCATIONS): Define.
* config/arm/arm-protos.h (arm_emit_movpair): Add prototype.
* config/arm/arm.opt: Add -mword-relocations.
* config/arm/arm.md (movsi): Use arm_emit_movpair.
(arm_movt, arm_movw): New.

From-SVN: r139881

15 years agoerror.c: Fix cast for printf.
Jerry DeLisle [Tue, 2 Sep 2008 01:14:04 +0000 (01:14 +0000)]
error.c: Fix cast for printf.

2008-09-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

* runtime/error.c: Fix cast for printf.

From-SVN: r139880

15 years agoDaily bump.
GCC Administrator [Tue, 2 Sep 2008 00:16:42 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r139878

15 years agotype_traits (__make_unsigned_selector<>): Consider enums of size smaller than short.
Mark Mitchell [Mon, 1 Sep 2008 23:24:09 +0000 (23:24 +0000)]
type_traits (__make_unsigned_selector<>): Consider enums of size smaller than short.

* include/std/type_traits (__make_unsigned_selector<>): Consider
enums of size smaller than short.
(__make_signed_selector<>): Likewise.
* testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
Adjust line numbers.
* testsuite/20_util/make_usigned/requirements/typedefs_neg.cc:
Adjust line numbers.
* testsuite/20_util/make_signed/requirements/typedefs-2.cc:
Ensure test_enum is the same size as short.
* testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
Ensure test_enum is the same size as short.

From-SVN: r139875

15 years agoarm.c (arm_override_options): Set arm_abi earlier.
Paul Brook [Mon, 1 Sep 2008 23:20:34 +0000 (23:20 +0000)]
arm.c (arm_override_options): Set arm_abi earlier.

2008-09-01  Paul Brook  <paul@codesourcery.com>

gcc/
* config/arm/arm.c (arm_override_options): Set arm_abi earlier.
Allow Interworking on ARMv4 EABI based targets.
* config/arm/bpabi.h (TARGET_FIX_V4BX_SPEC): Define.
(SUBTARGET_EXTRA_ASM_SPEC, LINK_SPEC): Add TARGET_FIX_V4BX_SPEC.

From-SVN: r139874

15 years agothumb2.md (thumb2_negscc): Match the correct operand for optimized LT0 test.
Paul Brook [Mon, 1 Sep 2008 22:02:55 +0000 (22:02 +0000)]
thumb2.md (thumb2_negscc): Match the correct operand for optimized LT0 test.

2008-09-01  Paul Brook  <paul@codesourcery.com>

gcc/
* config/arm/thumb2.md (thumb2_negscc): Match the correct operand for
optimized LT0 test.  Remove optimization for GT.

From-SVN: r139873

15 years agopa64-hpux.h (LIB_SPEC): Link against librt when building static openmp applications.
John David Anglin [Mon, 1 Sep 2008 17:56:38 +0000 (17:56 +0000)]
pa64-hpux.h (LIB_SPEC): Link against librt when building static openmp applications.

* pa64-hpux.h (LIB_SPEC): Link against librt when building static
openmp applications.
* pa-hpux11.h (LIB_SPEC): Likewise.

From-SVN: r139870

15 years agoira.c (setup_eliminable_regset): Only declare i if ELIMINABLE_REGS is defined.
John David Anglin [Mon, 1 Sep 2008 17:53:43 +0000 (17:53 +0000)]
ira.c (setup_eliminable_regset): Only declare i if ELIMINABLE_REGS is defined.

* ira.c (setup_eliminable_regset): Only declare i if ELIMINABLE_REGS is
defined.

From-SVN: r139869

15 years agopredict.c (maybe_hot_count_p, [...]): When profile is present, use only counts; when...
Jan Hubicka [Mon, 1 Sep 2008 16:28:06 +0000 (18:28 +0200)]
predict.c (maybe_hot_count_p, [...]): When profile is present, use only counts; when guessed use only frequencies.

* predict.c (maybe_hot_count_p, maybe_hot_edge_p): When profile is
present, use only counts; when guessed use only frequencies.
(estimate_bb_frequencies): Use function_frequency.
* profile.c (compute_branch_probabilities): Exit early when
profile reading failed. Set profile_status.
(branch_prob): Do not set profile_status.

From-SVN: r139868

15 years agotree.c (protected_set_expr_location): New.
Aldy Hernandez [Mon, 1 Sep 2008 15:02:27 +0000 (15:02 +0000)]
tree.c (protected_set_expr_location): New.

        * tree.c (protected_set_expr_location): New.
        * tree.h (protected_set_expr_location): New prototype.
        * c-tree.h (build_array_ref): Add argument.
        (parser_build_unary_op): Same.
        * c-typeck.c (build_indirect_ref): Handle new location argument.
        (build_array_ref): Same.
        (parser_build_unary_op): Same.
        * gimplify.c (gimplify_asm_expr): Set input_location before calling
        error.
        * c-omp.c (c_finish_omp_atomic): Pass location when calling
        build_indirect_ref.
        * c-common.c (finish_label_address_expr): Handle new location
        argument.
        * c-common.h (build_indirect_ref): Add argument.
        (finish_label_address_expr): Same.
        * c-parser.c (c_parser_unary_expression): Pass location to build
        functions.
        (c_parser_postfix_expression): Same.
objc/
        * objc-act.c (build_typed_selector_reference): Pass input_location to
        build_unary_op calls.
        (build_selector_reference): Same, but to build_array_ref.
        (objc_substitute_decl): Same.
        (build_ivar_reference): Same, but to build_indirect_ref.
        (get_super_receiver): Same.
testsuite/
        * gcc.dg/20010516-1.c: Test for columns.
cp/
        * typeck.c (build_x_indirect_ref): Add location argument.
        * class.c (build_base_path): Pass location to build_indirect_ref.
        * pt.c (tsubst_copy_and_build): Pass location to
        finish_label_address_expr.
        * parser.c (cp_parser_unary_expression): Same.

From-SVN: r139867

15 years agore PR fortran/37193 ("USE mod, ONLY: i, i=>j" does not import "i")
Daniel Kraft [Mon, 1 Sep 2008 13:43:10 +0000 (15:43 +0200)]
re PR fortran/37193 ("USE mod, ONLY: i, i=>j" does not import "i")

2008-09-01  Daniel Kraft  <d@domob.eu>

PR fortran/37193
* module.c (read_module): Initialize use_only flag on used symbols.

2008-09-01  Daniel Kraft  <d@domob.eu>

PR fortran/37193
* gfortran.dg/use_rename_4.f90: New test.
* gfortran.dg/use_rename_5.f90: New test.

From-SVN: r139866

15 years agoarm.md: Include cortex-r4f.md.
Paul Brook [Mon, 1 Sep 2008 13:40:49 +0000 (13:40 +0000)]
arm.md: Include cortex-r4f.md.

2008-09-01  Paul Brook  <paul@codesourcery.com>

gcc/
* config/arm/arm.md: Include cortex-r4f.md.
(attr fpu): Update type list.
(attr type): Add fcpys, ffariths, ffarithd, fadds, faddd, fconsts,
fconstd, fcmps and fcmpd.
(attr tune_cortexr4): Define.
(attr generic_sched, attr generic_vfp): Use tune_cortexr4.
* config/arm/vfp.md: Document fcpys, ffariths, ffarithd, fadds, faddd,
fconsts, fconstd, fcmps and fcmpd.  Use them in insn patterns.
* config/arm/arm.c (arm_issue_rate): Add cortexr4f.
* config/arm/arm1020e.md (v10_ffarith, v10_farith): Use new insn
types.
* config/arm/cortex-a8-neon.md (cortex_a8_vfp_add_sub,
cortex_a8_vfp_farith: Ditto.
* config/arm/vfp11.md (vfp_ffarith, vfp_farith): Ditto.
* config/arm/cortex-r4.md: Use tune_cortexr4.
* config/arm/cortex-r4f.md: New file.

From-SVN: r139865

15 years agore PR tree-optimization/37305 (ice in set_value_range, at tree-vrp.c:397)
Richard Guenther [Mon, 1 Sep 2008 13:39:42 +0000 (13:39 +0000)]
re PR tree-optimization/37305 (ice in set_value_range, at tree-vrp.c:397)

2008-09-01  Richard Guenther  <rguenther@suse.de>

PR tree-optimization/37305
* tree-ssa-ccp.c (ccp_fold): Do not set TREE_OVERFLOW on
the result of constant conversions.
(fold_gimple_assign): Likewise.

* gcc.c-torture/compile/pr37305.c: New testcase.

From-SVN: r139864

15 years agosel-sched-ir.c (cmp_v_in_regset_pool): Surround with #ifdef ENABLE_CHECKING.
Andrey Belevantsev [Mon, 1 Sep 2008 12:40:32 +0000 (16:40 +0400)]
sel-sched-ir.c (cmp_v_in_regset_pool): Surround with #ifdef ENABLE_CHECKING.

        * sel-sched-ir.c (cmp_v_in_regset_pool): Surround with
        #ifdef ENABLE_CHECKING.

From-SVN: r139863

15 years agosel-sched-dump.c: Surround with #ifdef INSN_SCHEDULING.
Andrey Belevantsev [Mon, 1 Sep 2008 12:38:44 +0000 (16:38 +0400)]
sel-sched-dump.c: Surround with #ifdef INSN_SCHEDULING.

        * sel-sched-dump.c: Surround with #ifdef INSN_SCHEDULING.
        * sched-int.h (print_insn, print_pattern, print_value): Declare also
        when !INSN_SCHEDULING.

From-SVN: r139862

15 years ago* config/ia64/ia64.c (TARGET_ADDRESS_COST): Update.
Andreas Schwab [Mon, 1 Sep 2008 12:35:24 +0000 (12:35 +0000)]
* config/ia64/ia64.c (TARGET_ADDRESS_COST): Update.

From-SVN: r139861

15 years agoarm.c (arm_no_early_mul_dep): Handle multiply-subtract.
Paul Brook [Mon, 1 Sep 2008 12:28:06 +0000 (12:28 +0000)]
arm.c (arm_no_early_mul_dep): Handle multiply-subtract.

2008-09-01  Paul Brook  <paul@codesourcery.com>

gcc/
* config/arm/arm.c (arm_no_early_mul_dep): Handle multiply-subtract.

From-SVN: r139860

15 years agore PR tree-optimization/36449 (Incorrect code generated for access to a large struct)
Jakub Jelinek [Mon, 1 Sep 2008 11:34:47 +0000 (13:34 +0200)]
re PR tree-optimization/36449 (Incorrect code generated for access to a large struct)

PR middle-end/36449
* g++.dg/opt/pr36449.C: New test.

From-SVN: r139859

15 years agogfc-internals.texi (F2003 OOP), [...]): New chapter and section to document the inter...
Daniel Kraft [Mon, 1 Sep 2008 10:55:50 +0000 (12:55 +0200)]
gfc-internals.texi (F2003 OOP), [...]): New chapter and section to document the internals of type-bound procedures.

2008-09-01  Daniel Kraft  <d@domob.eu>

* gfc-internals.texi (F2003 OOP), (Type-bound Procedures): New chapter
and section to document the internals of type-bound procedures.
(gfc_expr): Document EXPR_COMPCALL.
* gfortran.h (struct gfc_expr): Remove unused `derived' from compcall.
* dump-parse-tree.c (show_compcall): New method.
(show_expr): Call it for EXPR_COMPCALL.
(show_typebound), (show_f2k_derived): New methods.
(show_symbol): Call show_f2k_derived.
(show_code_node): Handle EXEC_COMPCALL.
* primary.c (gfc_match_varspec): Don't initialize removed `derived' in
primary->value.compcall.

From-SVN: r139857

15 years ago* config/spu/spu.c (spu_expand_block_move) Update call of MOVE_RATIO.
Jan Hubicka [Mon, 1 Sep 2008 09:33:23 +0000 (09:33 +0000)]
* config/spu/spu.c (spu_expand_block_move) Update call of MOVE_RATIO.

From-SVN: r139856

15 years agoexpr.c (MOVE_BY_PIECES_P, [...]): Pass speed operand.
Jan Hubicka [Mon, 1 Sep 2008 09:27:39 +0000 (09:27 +0000)]
expr.c (MOVE_BY_PIECES_P, [...]): Pass speed operand.

* expr.c (MOVE_BY_PIECES_P, CLEAR_BY_PIECES_P, SET_BY_PIECES_P): Pass speed operand.
* expr.h (MOVE_RATIO, CLEAR_RATIO, SET_RATIO): Update.
* gimplify.c (gimplify_init_constructor): Add speed operand.
* tree-sra.c (decide_block_copy): Likewise.
* tree-inline.c (estimate_move_cost): Likewise.
* config/alpha/alpha.h (MOVE_RATIO): Update.
* config/frv/frv.c (MOVE_RATIO): Update.
* config/spu/spu.h (MOVE_RATIO): Update.
* config/sparc/sparc.h (MOVE_RATIO): Update.
* config/i386/i386.h (MOVE_RATIO, CLEAR_RATIO): Update.
* config/m68hc11/m68hc11.h (MOVE_RATIO): Update.
* config/cris/cris.h (MOVE_RATIO): Update.
* config/mn10300/mn10300.h (MOVE_RATIO): Update.
* config/arm/arm.h (MOVE_RATIO): Update.
* config/pa/pa.md: Update uses of MOVE_RATIO
* config/pa/pa.h (MOVE_RATIO): Update.
* config/mips/mips.h (MOVE_RATIO, MOVE_BY_PIECES, CLEAR_RATIO, SET_RATIO): Update.
* config/h8300/h8300.h (MOVE_RATIO): Update.
* config/v850/v850.h (MOVE_RATIO): Update.
* config/bfin/bfin.h (MOVE_RATIO): Update.

From-SVN: r139855

15 years agosel-sched.h, [...]: New files.
Andrey Belevantsev [Mon, 1 Sep 2008 08:57:00 +0000 (12:57 +0400)]
sel-sched.h, [...]: New files.

2008-08-31  Andrey Belevantsev  <abel@ispras.ru>
        Dmitry Melnik  <dm@ispras.ru>
        Dmitry Zhurikhin  <zhur@ispras.ru>
        Alexander Monakov  <amonakov@ispras.ru>
        Maxim Kuvyrkov  <maxim@codesourcery.com>

* sel-sched.h, sel-sched-dump.h, sel-sched-ir.h, sel-sched.c,
sel-sched-dump.c, sel-sched-ir.c: New files.
* Makefile.in (OBJS-common): Add selective scheduling object
files.
(sel-sched.o, sel-sched-dump.o, sel-sched-ir.o): New entries.
(SEL_SCHED_IR_H, SEL_SCHED_DUMP_H): New entries.
(sched-vis.o): Add dependency on $(INSN_ATTR_H).
* cfghooks.h (get_cfg_hooks, set_cfg_hooks): New prototypes.
* cfghooks.c (get_cfg_hooks, set_cfg_hooks): New functions.
(make_forwarder_block): Update loop latch if we have redirected
the loop latch edge.
* cfgloop.c (get_loop_body_in_custom_order): New function.
* cfgloop.h (LOOPS_HAVE_FALLTHRU_PREHEADERS): New enum field.
(CP_FALLTHRU_PREHEADERS): Likewise.
(get_loop_body_in_custom_order): Declare.
* cfgloopmanip.c (has_preds_from_loop): New.
(create_preheader): Honor CP_FALLTHRU_PREHEADERS.
Assert that the preheader edge will be fall thru when it is set.
* common.opt (fsel-sched-bookkeeping, fsel-sched-pipelining,
fsel-sched-pipelining-outer-loops, fsel-sched-renaming,
fsel-sched-substitution, fselective-scheduling): New flags.
     * cse.c (hash_rtx_cb): New.
(hash_rtx): Use it.
* dbgcnt.def (sel_sched_cnt, sel_sched_region_cnt,
sel_sched_insn_cnt): New counters.
* final.c (compute_alignments): Export.  Free dominance info after loop_optimizer_finalize.
* genattr.c (main): Output maximal_insn_latency prototype.
* genautomata.c (output_default_latencies): New. Factor its code from ...
(output_internal_insn_latency_func): ... here.
(output_internal_maximal_insn_latency_func): New.
(output_maximal_insn_latency_func): New.
* hard-reg-set.h (UHOST_BITS_PER_WIDE_INT): Define unconditionally.
(struct hard_reg_set_iterator): New.
(hard_reg_set_iter_init, hard_reg_set_iter_set,
hard_reg_set_iter_next): New functions.
(EXECUTE_IF_SET_IN_HARD_REG_SET): New macro.
* lists.c (remove_free_INSN_LIST_node,
remove_free_EXPR_LIST_node): New functions.
* loop-init.c (loop_optimizer_init): When LOOPS_HAVE_FALLTHRU_PREHEADERS,
set CP_FALLTHRU_PREHEADERS when calling create_preheaders.
(loop_optimizer_finalize): Do not verify flow info after reload.
* recog.c (validate_replace_rtx_1): New parameter simplify.
Default it to true.  Update all uses.  Factor out simplifying
code to ...
(simplify_while_replacing): ... this new function.
(validate_replace_rtx_part,
validate_replace_rtx_part_nosimplify): New.
* recog.h (validate_replace_rtx_part,
validate_replace_rtx_part_nosimplify): Declare.
* rtl.c (rtx_equal_p_cb): New.
(rtx_equal_p): Use it.
* rtl.h (rtx_equal_p_cb, hash_rtx_cb): Declare.
(remove_free_INSN_LIST_NODE, remove_free_EXPR_LIST_node,
debug_bb_n_slim, debug_bb_slim,    print_rtl_slim): Likewise.
* vecprim.h: Add a vector type for unsigned int.
* haifa-sched.c: Include vecprim.h and cfgloop.h.
(issue_rate, sched_verbose_param, note_list, dfa_state_size,
ready_try, cycle_issued_insns, spec_info): Make global.
(readyp): Initialize.
(dfa_lookahead): New global variable.
(old_max_uid, old_last_basic_block): Remove.
(h_i_d): Make it a vector.
(INSN_TICK, INTER_TICK, QUEUE_INDEX, INSN_COST): Make them work
through HID macro.
(after_recovery, adding_bb_to_current_region_p):
New variables to handle correct insertion of the recovery code.
(struct ready_list): Move declaration to sched-int.h.
(rgn_n_insns): Removed.
(rtx_vec_t): Move to sched-int.h.
(find_insn_reg_weight): Remove.
(find_insn_reg_weight1): Rename to find_insn_reg_weight.
(haifa_init_h_i_d, haifa_finish_h_i_d):
New functions to initialize / finalize haifa instruction data.
(extend_h_i_d, init_h_i_d): Rewrite.
(unlink_other_notes): Move logic to add_to_note_list.  Handle
selective scheduler.
(ready_lastpos, ready_element, ready_sort, reemit_notes,
find_fallthru_edge): Make global, remove static prototypes.
(max_issue): Make global.  Add privileged_n and state parameters.  Use
them.
(extend_global, extend_all): Removed.
(init_before_recovery): Add new param.  Fix the handling of the case
when we insert a recovery code before the EXIT which has a predecessor
with a fallthrough edge to it.
(create_recovery_block): Make global.  Rename to
sched_create_recovery_block.  Update.
(change_pattern): Rename to sched_change_pattern.  Make global.
(speculate_insn): Rename to sched_speculate_insn.  Make global.
Split haifa-specific functionality into ...
(haifa_change_pattern): New static function.
(sched_extend_bb): New static function.
(sched_init_bbs): New function.
(current_sched_info): Change type to struct haifa_sched_info.
(insn_cost): Adjust for selective scheduling.
(dep_cost_1): New function.  Move logic from ...
(dep_cost): ... here.
(dep_cost): Use dep_cost_1.
(contributes_to_priority_p): Use sched_deps_info instead of
current_sched_info.
(priority): Adjust to work with selective scheduling.  Process the
corner case when all dependencies don't contribute to priority.
(rank_for_schedule): Use ds_weak instead of dep_weak.
(advance_state): New function.  Move logic from ...
(advance_one_cycle): ... here.
(add_to_note_list, concat_note_lists): New functions.
(rm_other_notes): Make static.  Adjust for selective scheduling.
(remove_notes, restore_other_notes): New functions.
(move_insn): Add two arguments.  Update assert.  Don't call
reemit_notes.
(choose_ready): Remove lookahead variable, use dfa_lookahead.
Remove more_issue, max_points.  Move the code to initialize
max_lookahead_tries to max_issue.
(schedule_block): Remove rgn_n_insns1 parameter.  Don't allocate
ready.  Adjust use of move_insn.  Call restore_other_notes.
(luid): Remove.
(sched_init, sched_finish): Move Haifa-specific initialization/
finalization to ...
(haifa_sched_init, haifa_sched_finish): ... respectively.
New functions.
(setup_sched_dump): New function.
(haifa_init_only_bb): New static function.
(haifa_speculate_insn): New static function.
(try_ready): Use haifa_* instead of speculate_insn and
change_pattern.
(extend_ready, extend_all): Remove.
(sched_extend_ready_list, sched_finish_ready_list): New functions.
(create_check_block_twin, add_to_speculative_block): Use
haifa_insns_init instead of extend_global.  Update to use new
initialization functions.  Change parameter.  Factor out code from
create_check_block_twin to ...
(sched_create_recovery_edges) ... this new function.
(add_block): Remove.
(sched_scan_info): New.
(extend_bb): Use sched_scan_info.
(init_bb, extend_insn, init_insn, init_insns_in_bb, sched_scan): New
static functions for walking through scheduling region.
(sched_luids): New vector variable to replace uid_to_luid.
(luids_extend_insn): New function.
(sched_max_luid): New variable.
(luids_init_insn): New function.
(sched_init_luids, sched_finish_luids): New functions.
(insn_luid): New debug function.
(sched_extend_target): New function.
(haifa_init_insn): New static function.
(sched_init_only_bb): New hook.
(sched_split_block): New hook.
(sched_split_block_1): New function.
(sched_create_empty_bb): New hook.
(sched_create_empty_bb_1): New function.
(common_sched_info, ready): New global variables.
(current_sched_info_var): Remove.
(move_block_after_check): Use common_sched_info.
(haifa_luid_for_non_insn): New static function.
(init_before_recovery): Use haifa_init_only_bb instead of
add_block.
(increase_insn_priority): New.
* modulo-sched.c: (issue_rate): Remove static declaration.
(sms_sched_info): Change type to haifa_sched_info.
(sms_sched_deps_info, sms_common_sched_info): New variables.
(setup_sched_infos): New.
(sms_schedule): Initialize them.  Call haifa_sched_init/finish.
Do not call regstat_free_calls_crossed.
(sms_print_insn): Use const_rtx.
* params.def (PARAM_MAX_PIPELINE_REGION_BLOCKS,
PARAM_MAX_PIPELINE_REGION_INSNS, PARAM_SELSCHED_MAX_LOOKAHEAD,
PARAM_SELSCHED_MAX_SCHED_TIMES, PARAM_SELSCHED_INSNS_TO_RENAME,
PARAM_SCHED_MEM_TRUE_DEP_COST): New.
* sched-deps.c (sched_deps_info): New.  Update all relevant uses of
current_sched_info to use it.
(enum reg_pending_barrier_mode): Move to sched-int.h.
(h_d_i_d): New variable. Initialize to NULL.
({true, output, anti, spec, forward}_dependency_cache): Initialize
to NULL.
(estimate_dep_weak): Remove static declaration.
(sched_has_condition_p): New function.  Adjust users of
sched_get_condition to use it instead.
(conditions_mutex_p): Add arguments indicating which conditions are
reversed.  Use them.
(sched_get_condition_with_rev): Rename from sched_get_condition.  Add
argument to indicate whether returned condition is reversed.  Do not
generate new rtx when condition should be reversed; indicate it by
setting new argument instead.
(add_dependence_list_and_free): Add deps parameter.
Update all users.  Do not free dependence list when
deps context is readonly.
(add_insn_mem_dependence, flush_pending_lists): Adjust for readonly
contexts.
(remove_from_dependence_list, remove_from_both_dependence_lists): New.
(remove_from_deps): New. Use the above functions.
(cur_insn, can_start_lhs_rhs_p): New static variables.
(add_or_update_back_dep_1): Initialize present_dep_type.
(haifa_start_insn, haifa_finish_insn, haifa_note_reg_set,
haifa_note_reg_clobber, haifa_note_reg_use, haifa_note_mem_dep,
haifa_note_dep): New functions implementing dependence hooks for
the Haifa scheduler.
(note_reg_use, note_reg_set, note_reg_clobber, note_mem_dep,
note_dep): New functions.
(ds_to_dt, extend_deps_reg_info, maybe_extend_reg_info_p): New
functions.
(init_deps): Initialize last_reg_pending_barrier and deps->readonly.
(free_deps): Initialize deps->reg_last.
(sched_analyze_reg, sched_analyze_1, sched_analyze_2,
sched_analyze_insn): Update to use dependency hooks infrastructure
and readonly contexts.
(deps_analyze_insn): New function.  Move part of logic from ...
(sched_analyze): ... here.  Also move some logic to ...
(deps_start_bb): ... here.  New function.
(add_forw_dep, delete_forw_dep): Guard use of INSN_DEP_COUNT with
sel_sched_p.
(sched_deps_init): New function.  Move code from ...
(init_dependency_caches): ... here.  Remove.
(init_deps_data_vector): New.
(sched_deps_finish): New function.  Move code from ...
(free_dependency_caches): ... here.  Remove.
(init_deps_global, finish_deps_global): Adjust for use with
selective scheduling.
(get_dep_weak): Move logic to ...
(get_dep_weak_1): New function.
(ds_merge): Move logic to ...
(ds_merge_1): New static function.
(ds_full_merge, ds_max_merge, ds_get_speculation_types): New functions.
(ds_get_max_dep_weak): New function.
* sched-ebb.c (sched_n_insns): Rename to sched_rgn_n_insns.
(n_insns): Rename to rgn_n_insns.
(debug_ebb_dependencies): New function.
(init_ready_list): Use it.
(begin_schedule_ready): Use sched_init_only_bb.
(ebb_print_insn): Indicate when an insn starts a new cycle.
(contributes_to_priority, compute_jump_reg_dependencies,
add_remove_insn, fix_recovery_cfg): Add ebb_ prefix to function names.
(add_block1): Remove to ebb_add_block.
(ebb_sched_deps_info, ebb_common_sched_info): New variables.
(schedule_ebb): Initialize them.  Use remove_notes instead of
rm_other_notes.  Use haifa_local_init/finish.
(schedule_ebbs): Use haifa_sched_init/finish.
* sched-int.h: Include vecprim.h, remove rtl.h.
(struct ready_list): Delete declaration.
(sched_verbose_param, enum sched_pass_id_t,
bb_vec_t, insn_vec_t, rtx_vec_t): New.
(struct sched_scan_info_def): New structure.
(sched_scan_info, sched_scan, sched_init_bbs,
sched_init_luids, sched_finish_luids, sched_extend_target,
haifa_init_h_i_d, haifa_finish_h_i_d): Declare.
(struct common_sched_info_def): New.
(common_sched_info, haifa_common_sched_info,
sched_emulate_haifa_p): Declare.
(sel_sched_p): New.
(sched_luids): Declare.
(INSN_LUID, LUID_BY_UID, SET_INSN_LUID): Declare.
(sched_max_luid, insn_luid): Declare.
(note_list, remove_notes, restore_other_notes, bb_note): Declare.
(sched_insns_init, sched_insns_finish, xrecalloc, reemit_notes,
print_insn, print_pattern, print_value, haifa_classify_insn,
sel_find_rgns, sel_mark_hard_insn, dfa_state_size, advance_state,
setup_sched_dump, sched_init, sched_finish,
sel_insn_is_speculation_check): Export.
(struct ready_list): Move from haifa-sched.c.
(ready_try, ready, max_issue): Export.
(ebb_compute_jump_reg_dependencies, find_fallthru_edge,
sched_init_only_bb, sched_split_block, sched_split_block_1,
sched_create_empty_bb, sched_create_empty_bb_1,
sched_create_recovery_block, sched_create_recovery_edges): Export.
(enum reg_pending_barrier_mode): Export.
(struct deps): New fields `last_reg_pending_barrier' and `readonly'.
(deps_t): New.
(struct sched_info): Rename to haifa_sched_info.  Use const_rtx for
print_insn field.  Move add_block and fix_recovery_cfg to
common_sched_info_def.  Move compute_jump_reg_dependencies, use_cselib  ...
(struct sched_deps_info_def): ... this new structure.
(sched_deps_info): Declare.
(struct spec_info_def): Remove weakness_cutoff, add
data_weakness_cutoff and control_weakness_cutoff.
(spec_info): Declare.
(struct _haifa_deps_insn_data): Split from haifa_insn_data.  Add
dep_count field.
(struct haifa_insn_data): Rename to struct _haifa_insn_data.
(haifa_insn_data_def, haifa_insn_data_t): New typedefs.
(current_sched_info): Change type to struct haifa_sched_info.
(haifa_deps_insn_data_def, haifa_deps_insn_data_t): New typedefs.
(h_d_i_d): New variable.
(HDID): New accessor macro.
(h_i_d): Change type to VEC (haifa_insn_data_def, heap) *.
(HID): New accessor macro.  Rewrite h_i_d accessor macros through HID
and HDID.
(IS_SPECULATION_CHECK_P): Update for selective scheduler.
(enum SCHED_FLAGS): Update for selective scheduler.
(enum SPEC_SCHED_FLAGS): New flag SEL_SCHED_SPEC_DONT_CHECK_CONTROL.
(init_dependency_caches, free_dependency_caches): Delete declarations.
(deps_analyze_insn, remove_from_deps, get_dep_weak_1,
estimate_dep_weak, ds_full_merge, ds_max_merge, ds_weak,
ds_get_speculation_types, ds_get_max_dep_weak, sched_deps_init,
sched_deps_finish, haifa_note_reg_set, haifa_note_reg_use,
haifa_note_reg_clobber, maybe_extend_reg_info_p, deps_start_bb,
ds_to_dt): Export.
(rm_other_notes): Delete declaration.
(schedule_block): Remove one argument.
(cycle_issued_insns, issue_rate, dfa_lookahead, ready_sort,
ready_element, ready_lastpos, sched_extend_ready_list,
sched_finish_ready_list, sched_change_pattern, sched_speculate_insn,
concat_note_lists): Export.
(struct region): Move from sched-rgn.h.
(nr_regions, rgn_table, rgn_bb_table, block_to_bb, containing_rgn,
RGN_NR_BLOCKS, RGN_BLOCKS, RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB,
BLOCK_TO_BB, CONTAINING_RGN): Export.
(ebb_head, BB_TO_BLOCK, EBB_FIRST_BB, EBB_LAST_BB, INSN_BB): Likewise.
(current_nr_blocks, current_blocks, target_bb): Likewise.
(dep_cost_1, sched_is_disabled_for_current_region_p, sched_rgn_init,
sched_rgn_finish, rgn_setup_region, sched_rgn_compute_dependencies,
sched_rgn_local_init, extend_regions,
rgn_make_new_region_out_of_new_block, compute_priorities,
debug_rgn_dependencies, free_rgn_deps, contributes_to_priority,
extend_rgns, deps_join rgn_setup_common_sched_info,
rgn_setup_sched_infos, debug_regions, debug_region, dump_region_dot,
dump_region_dot_file, haifa_sched_init, haifa_sched_finish): Export.
(get_rgn_sched_max_insns_priority, sel_add_to_insn_priority,
increase_insn_priority): Likewise.
* sched-rgn.c: Include sel-sched.h.
(ref_counts): New static variable.  Use it ...
(INSN_REF_COUNT): ... here.  Rewrite and move closer to uses.
(FED_BY_SPEC_LOAD, IS_LOAD_INSN): Rewrite to use HID accessor macro.
(sched_is_disabled_for_current_region_p): Delete static declaration.
(struct region): Move to sched-int.h.
(nr_regions, rgn_table, rgn_bb_table, block_to_bb, containing_rgn,
ebb_head): Define and initialize.
(RGN_NR_BLOCKS, RGN_BLOCKS, RGN_DONT_CALC_DEPS, RGN_HAS_REAL_EBB,
BLOCK_TO_BB, CONTAINING_RGN, debug_regions, extend_regions,
BB_TO_BLOCK, EBB_FIRST_BB, EBB_LAST_BB): Move to
sched-int.h.
(find_single_block_region): Add new argument to indicate that EBB
regions should be constructed.
(debug_live): Delete declaration.
(current_nr_blocks, current_blocks, target_bb): Remove static qualifiers.
(compute_dom_prob_ps, check_live, update_live, set_spec_fed): Delete
declaration.
(init_regions): Delete declaration.
(debug_region, bb_in_region_p, dump_region_dot_file, dump_region_dot,
rgn_estimate_number_of_insns): New.
(too_large): Use estimate_number_of_insns.
(haifa_find_rgns): New. Move the code from ...
(find_rgns): ... here.  Call either sel_find_rgns or haifa_find_rgns.
(free_trg_info): New.
(compute_trg_info): Allocate candidate tables here instead of ...
(init_ready_list): ... here.
(rgn_print_insn): Use const_rtx.
(contributes_to_priority, extend_regions): Delete static declaration.
(add_remove_insn, fix_recovery_cfg): Add rgn_ to function names.
(add_block1): Rename to rgn_add_block.
(debug_rgn_dependencies): Delete static qualifier.
(new_ready): Use sched_deps_info.  Simplify.
(rgn_common_sched_info, rgn_const_sched_deps_info,
rgn_const_sel_sched_deps_info, rgn_sched_deps_info, rgn_sched_info): New.
(region_sched_info): Rename to rgn_const_sched_info.
(deps_join): New, extracted from ...
(propagate_deps): ... here.
(compute_block_dependences, debug_dependencies): Update for selective
scheduling.
(free_rgn_deps, compute_priorities): New functions.
(sched_rgn_init, sched_rgn_finish, rgn_setup_region,
sched_rgn_compute_dependencies): New functions.
(schedule_region): Use them.
(sched_rgn_local_init, sched_rgn_local_free, sched_rgn_local_finish,
rgn_setup_common_sched_info, rgn_setup_sched_infos):
New functions.
(schedule_insns): Call new functions that were split out.
(rgn_make_new_region_out_of_new_block): New.
(get_rgn_sched_max_insns_priority): New.
(rest_of_handle_sched, rest_of_handle_sched2): Call selective
scheduling when appropriate.
* sched-vis.c: Include insn-attr.h.
(print_value, print_pattern): Make global.
(print_rtl_slim, debug_bb_slim, debug_bb_n_slim): New functions.
* target-def.h (TARGET_SCHED_ADJUST_COST_2,
TARGET_SCHED_ALLOC_SCHED_CONTEXT, TARGET_SCHED_INIT_SCHED_CONTEXT,
TARGET_SCHED_SET_SCHED_CONTEXT, TARGET_SCHED_CLEAR_SCHED_CONTEXT,
TARGET_SCHED_FREE_SCHED_CONTEXT, TARGET_SCHED_GET_INSN_CHECKED_DS,
TARGET_SCHED_GET_INSN_SPEC_DS, TARGET_SCHED_SKIP_RTX_P): New target
hooks.  Initialize them to 0.
(TARGET_SCHED_GEN_CHECK): Rename to TARGET_SCHED_GEN_SPEC_CHECK.
* target.h (struct gcc_target): Add them.  Rename gen_check field to
gen_spec_check.
* flags.h (sel_sched_switch_set): Declare.
* opts.c (sel_sched_switch_set): New variable.
(decode_options): Unset flag_sel_sched_pipelining_outer_loops if
pipelining is disabled from command line.
(common_handle_option): Record whether selective scheduling is
requested from command line.
* doc/invoke.texi: Document new flags and parameters.
* doc/tm.texi: Document new target hooks.
* config/ia64/ia64.c (TARGET_SCHED_GEN_SPEC_CHECK): Define to ia64_gen_check.
(dfa_state_size): Do not declare locally.
* config/ia64/ia64.opt (msched-ar-data-spec): Default to 0.
* config/rs6000/rs6000.c (rs6000_init_sched_context,
rs6000_alloc_sched_context, rs6000_set_sched_context,
rs6000_free_sched_context): New functions.
(struct _rs6000_sched_context): New.
(rs6000_sched_reorder2): Do not modify INSN_PRIORITY for selective
scheduling.
(rs6000_sched_finish): Do not run for selective scheduling.

Co-Authored-By: Alexander Monakov <amonakov@ispras.ru>
Co-Authored-By: Dmitry Melnik <dm@ispras.ru>
Co-Authored-By: Dmitry Zhurikhin <zhur@ispras.ru>
Co-Authored-By: Maxim Kuvyrkov <maxim@codesourcery.com>
From-SVN: r139854

15 years agoImplement late-specified return type using 'auto'.
Jason Merrill [Mon, 1 Sep 2008 03:33:19 +0000 (23:33 -0400)]
Implement late-specified return type using 'auto'.

        * cp-tree.h (struct cp_declarator): Add late_return_type field to
        function declarator.
        * parser.c (cp_parser_late_return_type_opt): New fn.
        (cp_parser_direct_declarator): Use it.
        (make_call_declarator): Put it in the declarator.
        * decl.c (grokdeclarator): Splice in late-specified return type.
        * pt.c (splice_late_return_type): New fn.

From-SVN: r139848

15 years agoDaily bump.
GCC Administrator [Mon, 1 Sep 2008 00:16:34 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r139846

15 years agofrv.c (frv_rtx_costs): Update forward declaration.
Jan Hubicka [Sun, 31 Aug 2008 20:49:42 +0000 (22:49 +0200)]
frv.c (frv_rtx_costs): Update forward declaration.

* frv.c (frv_rtx_costs): Update forward declaration.
* spu.c (spu_rtx_costs): Likewise.
* pdp11.c: Include df.h
(pdp11_output_function_epilogue): Use df_set_regs_ever_live.
* m68hc11.c (m68hc11_gen_highpart): Fix call of gen_rtx_SUBREG.
(m68hc11_rtx_costs_1): Fix call of rtx_cost.
* iq2000.c (iq2000_address_cost): Add speed argument.
(iq2000_rtx_costs): Likewise.
* mn10300.c (mn10300_address_cost_1): Remove speed argument;
update call of mn10300_address_cost.
* mcore.c: Include df.h
(mcore_rtx_costs): Update prototype.
* score3.c: Include df.h
(score3_rtx_costs): Remove speed argument.
* score7.c: Include df.h
(score7_address_cost): Remove speed argument.
* score-protos.h (score_address_cost): Update prototype.
* score.c: Include df.h
(score_rtx_costs): Update call of costs functions.
* v850.c (v850_rtx_costs): Add bool argument.

From-SVN: r139843

15 years ago* config/cris/cris.c (cris_rtx_costs): Correct call to rtx_costs.
Hans-Peter Nilsson [Sun, 31 Aug 2008 18:33:51 +0000 (18:33 +0000)]
* config/cris/cris.c (cris_rtx_costs): Correct call to rtx_costs.

From-SVN: r139840

15 years agogthr-win32.h (__gthread_setspecific): Use CONST_CAST2.
Aaron W. LaFramboise [Sun, 31 Aug 2008 18:26:48 +0000 (12:26 -0600)]
gthr-win32.h (__gthread_setspecific): Use CONST_CAST2.

2008-08-31  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>

* gcc/gthr-win32.h (__gthread_setspecific): Use CONST_CAST2.

From-SVN: r139839

15 years agoMakefile.am (libgomp_la_LDFLAGS): Add -no-undefined.
Aaron W. LaFramboise [Sun, 31 Aug 2008 18:16:09 +0000 (12:16 -0600)]
Makefile.am (libgomp_la_LDFLAGS): Add -no-undefined.

2008-08-31  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>

* Makefile.am (libgomp_la_LDFLAGS): Add -no-undefined.
* Makefile.in: Regenerated.
* testsuite/Makefile.in: Regenerated.

From-SVN: r139838

15 years agoconfigure.ac (RPATH_ENVVAR): Use PATH on Windows.
Aaron W. LaFramboise [Sun, 31 Aug 2008 18:14:25 +0000 (12:14 -0600)]
configure.ac (RPATH_ENVVAR): Use PATH on Windows.

2008-08-31  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>

<toplevel>
* configure.ac (RPATH_ENVVAR): Use PATH on Windows.
(GCC_SHLIB_SUBDIR): New.
* Makefile.tpl (HOST_LIB_PATH_gcc): Use GCC_SHLIB_SUBDIR.
* configure: Regenerate.
* Makefile.in: Regenerate.

<gcc>
* mkmap-flat.awk: Add option pe_dll.
* config/i386/t-cygming (SHLIB_LINK): Support building libgcc_s.
* gcc/config/i386/t-cygwin (SHLIB_LC): Add.
* gcc/config/i386/t-mingw32 (SHLIB_LC): Add.
* config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): New.
(SUBTARGET_EXTRA_SPECS): Use SHARED_LIBGCC_UNDEFS_SPEC.
(LINK_SPEC): Support libgcc_s.
(LIBGCC_SPEC): Support libgcc_s.
(LIBGCC_SONAME): New.

<libstdc++-v3>
* acinclude.m4 <enable_symvers>: Don't use symvers on Windows.
* configure: Regenerated.
* Makefile.in: Regenerated.
* src/Makefile.in: Regenerated.
* doc/makefile.in: Regenerated.
* po/Makefile.in: Regenerated.
* libmath/Makefile.in: Regenerated.
* include/Makefile.in: Regenerated.
* libsupc++/Makefile.in: Regenerated.
* testsuite/makefile.in: Regenerated.

From-SVN: r139837

15 years agopredict.c (maybe_hot_bb_p, [...]): Previous commit mistakely had old version of patch.
Jan Hubicka [Sun, 31 Aug 2008 18:08:31 +0000 (20:08 +0200)]
predict.c (maybe_hot_bb_p, [...]): Previous commit mistakely had old version of patch.

* predict.c (maybe_hot_bb_p, maybe_hot_edge_p): Previous commit
mistakely had old version of patch.

From-SVN: r139836

15 years agoipa-cp.c (ipcp_need_original_clone_p): Remove.
Jan Hubicka [Sun, 31 Aug 2008 16:45:05 +0000 (18:45 +0200)]
ipa-cp.c (ipcp_need_original_clone_p): Remove.

* ipa-cp.c (ipcp_need_original_clone_p): Remove.
(ipcp_estimate_growth): New.
(ipcp_insert_stage): Use ipcp_estimate_growth.
* profile.c (branch_prob): When reading failed, do not consider
profile as read.

From-SVN: r139835

15 years agotree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Check that loop is optimized...
Jan Hubicka [Sun, 31 Aug 2008 15:54:54 +0000 (17:54 +0200)]
tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Check that loop is optimized for speed.

* tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Check that
loop is optimized for speed.

From-SVN: r139834

15 years agore PR c/37271 (gcc.dg/pr37186.c doesn't work)
Paolo Carlini [Sun, 31 Aug 2008 15:09:38 +0000 (15:09 +0000)]
re PR c/37271 (gcc.dg/pr37186.c doesn't work)

2008-08-31  Paolo Carlini  <paolo.carlini@oracle.com>

PR c/37271
* gcc.dg/pr37186.c: Add dg-message command for line 5.

From-SVN: r139833

15 years agotrans-expr.c (gfc_trans_string_copy): Use the correct types to compute slen and dlen.
Richard Guenther [Sun, 31 Aug 2008 13:40:15 +0000 (13:40 +0000)]
trans-expr.c (gfc_trans_string_copy): Use the correct types to compute slen and dlen.

2008-08-31  Richard Guenther  <rguenther@suse.de>

* trans-expr.c (gfc_trans_string_copy): Use the correct types
to compute slen and dlen.

From-SVN: r139832

15 years agore PR middle-end/37289 (ICE after non-trivial conversion at assignment)
Richard Guenther [Sun, 31 Aug 2008 13:39:26 +0000 (13:39 +0000)]
re PR middle-end/37289 (ICE after non-trivial conversion at assignment)

2008-08-31  Richard Guenther  <rguenther@suse.de>

PR middle-end/37289
* fold-const.c (fold_binary): Retain conversions in folding
~A + 1 to -A.

* gcc.dg/pr37289.c: New testcase.

From-SVN: r139831

15 years agopostreload-gcse.c (eliminate_partially_redundant_loads): Use optimize_bb_for_size_p.
Jan Hubicka [Sun, 31 Aug 2008 12:52:07 +0000 (14:52 +0200)]
postreload-gcse.c (eliminate_partially_redundant_loads): Use optimize_bb_for_size_p.

* postreload-gcse.c (eliminate_partially_redundant_loads): Use optimize_bb_for_size_p.
* predict.c (maybe_hot_frequency_p): Make inline.
(maybe_hot_count_p): Break out from ...
(maybe_hot_bb_p): ... this one.
(maybe_hot_edge_p): Simplify.
* basic-block.h (probably_cold_bb_p): Remove.

From-SVN: r139830

15 years agore PR target/37168 (ICE: in final_scan_insn, at final.c:2615 (altivec))
Jakub Jelinek [Sun, 31 Aug 2008 12:08:35 +0000 (14:08 +0200)]
re PR target/37168 (ICE: in final_scan_insn, at final.c:2615 (altivec))

PR target/37168
* config/rs6000/rs6000-protos.h (const_vector_elt_as_int): Add
prototype.
* config/rs6000/rs6000.c (const_vector_elt_as_int): No longer static.
* config/rs6000/altivec.md (easy_vector_constant_add_self splitter):
Also split V4SFmode.
* config/rs6000/predicates.md (easy_vector_constant_add_self): Handle
vector float modes.

* gcc.target/powerpc/pr37168.c: New test.

From-SVN: r139828

15 years agocold-attribute-1.c: New testcase.
Jan Hubicka [Sun, 31 Aug 2008 11:40:11 +0000 (13:40 +0200)]
cold-attribute-1.c: New testcase.

* gcc.target/i386/cold-attribute-1.c: New testcase.
* gcc.target/i386/cold-attribute-2.c: New testcase.
* gcc.target/i386/cold-attribute-3.c: New testcase.
* gcc.target/i386/cold-attribute-4.c: New testcase.
* predict.c (PROB_VERY_LIKELY): Make small enough so things
become cold.
* predict.def (PRED_NORETURN_CALL, PRED_COLD_CALL): Use it.

From-SVN: r139827

15 years agore PR debug/37287 (ICE (segfault) with new debugging patch)
Jakub Jelinek [Sun, 31 Aug 2008 11:23:04 +0000 (13:23 +0200)]
re PR debug/37287 (ICE (segfault) with new debugging patch)

PR debug/37287
* dwarf2out.c (gen_namespace_die): For DECL_EXTERNAL modules don't
add source coords.

* gfortran.dg/pr37287-1.f90: New test.
* gfortran.dg/pr37287-2.F90: New test.

From-SVN: r139826

15 years agodwarf2out.c (native_encode_initializer): Subtract min_index for non-range array index.
Jakub Jelinek [Sun, 31 Aug 2008 11:21:28 +0000 (13:21 +0200)]
dwarf2out.c (native_encode_initializer): Subtract min_index for non-range array index.

* dwarf2out.c (native_encode_initializer): Subtract min_index for
non-range array index.  Handle VIEW_CONVERT_EXPR and NON_LVALUE_EXPR.

From-SVN: r139825

15 years agosparc.h (BRANCH_COST): Fix macro definition.
Jan Hubicka [Sun, 31 Aug 2008 11:18:41 +0000 (13:18 +0200)]
sparc.h (BRANCH_COST): Fix macro definition.

* sparc.h (BRANCH_COST): Fix macro definition.
* avr.c (avr_operand_rtx_cost): Add speed argument.
(avr_rtx_costs): Update calls of avr_operand_rtx_cost.

From-SVN: r139824

15 years agotree-cfg.c (verify_types_in_gimple_assign): Dump mismatched types instead of operands.
Richard Guenther [Sun, 31 Aug 2008 11:06:10 +0000 (11:06 +0000)]
tree-cfg.c (verify_types_in_gimple_assign): Dump mismatched types instead of operands.

2008-08-31  Richard Guenther  <rguenther@suse.de>

* tree-cfg.c (verify_types_in_gimple_assign): Dump mismatched
types instead of operands.  Re-instantiate verifying of
binary expression operands.

From-SVN: r139823

15 years agogfortran.h (enum gfc_statement): New entry `ST_GENERIC'.
Daniel Kraft [Sun, 31 Aug 2008 10:00:30 +0000 (12:00 +0200)]
gfortran.h (enum gfc_statement): New entry `ST_GENERIC'.

2008-08-31  Daniel Kraft  <d@domob.eu>

* gfortran.h (enum gfc_statement): New entry `ST_GENERIC'.
(struct gfc_tbp_generic): New type.
(struct gfc_typebound_proc): Removed `target' and added union with
`specific' and `generic' members; new members `overridden',
`subroutine', `function' and `is_generic'.
(struct gfc_expr): New members `derived' and `name' in compcall union
member and changed type of `tbp' to gfc_typebound_proc.
(gfc_compare_interfaces), (gfc_compare_actual_formal): Made public.
* match.h (gfc_typebound_default_access): New global.
(gfc_match_generic): New method.
* decl.c (gfc_match_generic): New method.
(match_binding_attributes): New argument `generic' and handle it.
(match_procedure_in_type): Mark matched binding as non-generic.
* interface.c (gfc_compare_interfaces): Made public.
(gfc_compare_actual_formal): Ditto.
(check_interface_1), (compare_parameter): Use new public names.
(gfc_procedure_use), (gfc_search_interface): Ditto.
* match.c (match_typebound_call): Set base-symbol referenced.
* module.c (binding_generic): New global array.
(current_f2k_derived): New global.
(mio_typebound_proc): Handle IO of GENERIC bindings.
(mio_f2k_derived): Record current f2k-namespace in current_f2k_derived.
* parse.c (decode_statement): Handle GENERIC statement.
(gfc_ascii_statement): Ditto.
(typebound_default_access), (set_typebound_default_access): Removed.
(gfc_typebound_default_access): New global.
(parse_derived_contains): New default-access implementation and handle
GENERIC statements encountered.
* primary.c (gfc_match_varspec): Adapted to new gfc_typebound_proc
structure and removed check for SUBROUTINE/FUNCTION from here.
* resolve.c (extract_compcall_passed_object): New method.
(update_compcall_arglist): Use it.
(resolve_typebound_static): Adapted to new gfc_typebound_proc structure.
(resolve_typebound_generic_call): New method.
(resolve_typebound_call): Check target is a SUBROUTINE and handle calls
to GENERIC bindings.
(resolve_compcall): Ditto (check for target being FUNCTION).
(check_typebound_override): Handle GENERIC bindings.
(check_generic_tbp_ambiguity), (resolve_typebound_generic): New methods.
(resolve_typebound_procedure): Handle GENERIC bindings and set new
attributes subroutine, function and overridden in gfc_typebound_proc.
(resolve_fl_derived): Ensure extended type is resolved before the
extending one is.
* st.c (gfc_free_statement): Fix bug with free'ing EXEC_COMPCALL's.
* symbol.c (gfc_find_typebound_proc): Adapt for GENERIC changes.

2008-08-31  Daniel Kraft  <d@domob.eu>

* gfortran.dg/typebound_generic_1.f03: New test.
* gfortran.dg/typebound_generic_2.f03: New test.
* gfortran.dg/typebound_generic_3.f03: New test.

From-SVN: r139822

15 years agofwprop.c (should_replace_address): Add speed attribute.
Jan Hubicka [Sun, 31 Aug 2008 09:44:25 +0000 (11:44 +0200)]
fwprop.c (should_replace_address): Add speed attribute.

* fwprop.c (should_replace_address): Add speed attribute.
(PR_OPTIMIZE_FOR_SPEED): New flag.
(propagate_rtx_1): Use it.
(propagate_rtx): Set it.
(try_fwprop_subst): Update call of rtx_costs.
(forward_propagate_and_simplify): LIkewise.
* hooks.c (hook_int_rtx_bool_0): New
(hook_bool_rtx_int_int_intp_false): Replace by ...
(hook_bool_rtx_int_int_intp_bool_false): .. thisone.
* hooks.h (hook_int_rtx_bool_0): New
(hook_bool_rtx_int_int_intp_false): Replace by ...
(hook_bool_rtx_int_int_intp_bool_false): .. thisone.
* optabs.c (avoid_expensive_constant): UPdate call of rtx_cost.
(prepare_cmp_insn): UPdate call of rtx_cost.
* postreload.c (reload_cse_simplify_set): Update call of rtx_cost.
(reload_cse_simplify_operands): Update call of rtx_cost.
(reload_cse_move2add): call of rtx_cost.
* target.h (struct gcc_target): Update rtx_costs and address_costs.
* rtlanal.c (rtx_cost): Add speed argument.
(address_cost): Add speed argument
(default_address_cost): Likewise.
(insn_rtx_cost): Likewise.
* cfgloopanal.c (seq_cost): Add speed argument.
(target_reg_cost, target_spill_cost): Turn to array.
(init_set_costs): Update for speed.
(estimate_reg_pressure_cost): Add speed argument.
* auto-inc-dec.c (attempt_change): Update call of rtx_cost.
* dojump.c (prefer_and_bit_test): UPdate call of rtx_cost.
* tree-ssa-loop-ivopts.c (struct ivopts_data): New field speed.
(seq_cost): Add speed argument.
(computation_cost): Add speed arugment.
(add_cost, multiply_by_const, get_address_cost): add speed argument.
(force_expr_to_var_cost): Update for profile info.
(force_var_cost): Likewise.
(split_address_cost): Likewise.
(ptr_difference_cost): Likewise.
(difference_cost): Likewise.
(get_computation_cost_at): Likewise.
(determine_iv_cost): Likewise.
(ivopts_global_cost_for_size): Likewise.
(rewrite_use_address): Likewise.
(tree_ssa_iv_optimize_loop): Initialize speed field.
* cse.c (optimize_this_for_speed_p): New static var.
(notreg_cost): Update call of rtx_cost.
(cse_extended_basic_block): set optimize_this_for_speed_p.
* ifcvt.c (cheap_bb_rtx_cost_p): Update call of rtx_cost.
(noce_try_cmove_arith): Likewise.
(noce_try_sign_mask): LIkewise.
* expr.c (compress_float_constant): Update rtx_cost calls.
* tree-ssa-address.c (most_expensive_mult_to_index): Add speed argument.
(addr_to_parts): Likewise.
(create_mem_ref): Likewise.
* dse.c (find_shift_sequence): Add speed argument.
(replace_read): Update call.
* calls.c (precompute_register_parameters): Update call of rtx_cost.
* expmed.c (sdiv_pow2_cheap, smod_pow2_cheap, zero_cost, add_cost,
* neg_cost, shift_cost, shiftadd_cost,
shiftsub_cost, mul_cost, sdiv_cost, udiv_cost ,mul_widen_cost,
mul_highpart_cost): Increase dimension.
(init_expmed): Initialize for both size and speed.
(expand_shift): Use profile.
(synth_mult): Use profile.
(choose_mult_variant): Use profile.
(expand_mult): Use profile.
(expand_mult_highpart_optab): Use profile.
(expand_mult_highpart): Use profile.
(expand_smod_pow2): Use profile.
(expand_divmod): Use profile.
* simplify-rtx.c (simplify_binary_operation_1): Update call of rtx_cost.
* loop-invariant.c (create_new_invariant): Use profile.
(gain_for_invariant): Add speed parameter.
(best_gain_for_invariant): Likewise.
(find_invariants_to_move): Likewise.
(move_single_loop_invariants): Set it.
* target-def.h (TARGET_RTX_COSTS): Use hook.
* rtl.h (rtx_cost, address_cost, insn_rtx_cost): Update prototpe.
(optimize_insn_for_size_p, optimize_insn_for_speed_p): Declare.
* output.h (default_address_cost): Update prototype.
* combine.c (optimize_this_for_speed_p): New static var.
(combine_validate_cost): Update call of rtx_cost.
(combine_instructions): Set optimize_this_for_speed_p.
(expand_compound_operation): Update call of rtx_cost.
(make_extraction):Update call of rtx_cost.
(force_to_mode):Update call of rtx_cost.
(distribute_and_simplify_rtx):Update call of rtx_cost.
* cfgloop.h (target_reg_cost, target_spill_cost): Turn to array.
(estimate_reg_pressure_cost): Update prototype.
* tree-flow.h (multiply_by_cost, create_mem_ref): Update prototype.
* basic-block.h (optimize_insn_for_size_p, optimize_insn_for_speed_p):
Remove.
* config/alpha/alpha.c (alpha_rtx_costs): Update.
(alpha_rtx_costs): Update.
* config/frv/frv.c (frv_rtx_costs): Update.
* config/s390/s390.c (s390_rtx_costs): Update.
* config/m32c/m32c.c (m32c_memory_move_cost): Update.
(m32c_rtx_costs): Update.
* config/spu/spu.c (TARGET_ADDRESS_COST): Upate.
(spu_rtx_costs): Update.
* config/sparc/sparc.c (sparc_rtx_costs): Update.
* config/m32r/m32r.c (m32r_rtx_costs): Update.
* config/i386/i386.c (:ix86_address_cost): Update.
(ix86_rtx_costs): Update.
* config/sh/sh.c (sh_rtx_costs, sh_address_cost): Update.
* config/pdp11/pdp11.c (pdp11_rtx_costs): Update.
* config/avr/avr.c (avr_rtx_costs, avr_address_cost): Update.
* config/crx/crx.c (crx_address_cost): Update.
* config/xtensa/xtensa.c (xtensa_rtx_costs): Update.
* config/stormy16/stormy16.c
(xstormy16_address_cost, xstormy16_rtx_costs): Update.
* config/m68hc11/m68hc11.c
(m68hc11_address_cost, m68hc11_rtx_costs): Update.
* config/cris/cris.c (cris_rtx_costs, cris_address_cost): Update.
* config/iq2000/iq2000.c (iq2000_rtx_costs, iq2000_address_cost): Update.
* config/mn10300/mn10300.c (mn10300_address_cost, mn10300_rtx_costs): Update
* config/ia64/ia64.c (ia64_rtx_costs): Update.
* config/m68k/m68k.c (m68k_rtx_costs): Update.
* config/rs6000/rs6000.c (rs6000_rtx_costs): Update.
* config/arc/arc.c (arc_rtx_costs, arc_address_cost): Update.
* config/mcore/mcore.c (TARGET_ADDRESS_COST): Update.
(mcore_rtx_costs): update.
* config/score/score3.c (score3_rtx_costs): Update.
* config/score/score7.c (score7_rtx_costs): Update.
* config/score/score3.h (score3_rtx_costs):Update.
* config/score/score7.h (score7_rtx_costs): Update.
* config/score/score.c (score_rtx_costs): Update.
* config/arm/arm.c (arm_address_cost): Update.
(arm_rtx_costs_1): Update.
(arm_rtx_costs_1): Update.
(arm_size_rtx_costs): Update.
(arm_size_rtx_costs): Update.
(arm_size_rtx_costs): Update.
(arm_xscale_rtx_costs): Update.
(arm_thumb_address_cost): Update.
* config/pa/pa.c (hppa_address_cost): Update.
* config/mips/mips.c (mips_rtx_costs): Update.
* config/vax/vax.c (vax_address_cost): Update.
* config/h8300/h8300.c (h8300_shift_costs): Update.
(h8300_rtx_costs): Update.
* config/v850/v850.c (TARGET_ADDRESS_COST): Update.
(v850_rtx_costs): Update.
* config/mmix/mmix.c (mmix_rtx_costs, mmix_rtx_costs): Update.
* config/bfin/bfin.c
(bfin_address_cost): Update.
(bfin_rtx_costs): Update.
* stmt.c (lshift_cheap_p): Update.

From-SVN: r139821

15 years ago#define vector __attribute__((vector_size(16) )) struct struct1 { union { float a...
Andrew Pinski [Sun, 31 Aug 2008 02:40:13 +0000 (02:40 +0000)]
#define vector __attribute__((vector_size(16) )) struct struct1 { union { float a[3]...

#define vector __attribute__((vector_size(16) ))
struct struct1  {
  union { float a[3]; }    vmx;
  struct struct2   {
    struct2(const struct2& r) {}
  } w;
} __attribute__((aligned(16)));
struct struct3  {
  vector float vmx;
  operator const struct1& () const{
    return *reinterpret_cast<const struct1*>(this);
  }
};
struct3 func3( struct3 V1);
struct3 func2( void );
void func1( )  {
  struct1 vVec = func2() ;
  func3 ( (struct3&)vVec );
}

From-SVN: r139820

15 years agoDaily bump.
GCC Administrator [Sun, 31 Aug 2008 00:16:42 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r139817

15 years agore PR fortran/36895 (Namelist writting to internal files: Control characters wrong?)
Jerry DeLisle [Sun, 31 Aug 2008 00:07:58 +0000 (00:07 +0000)]
re PR fortran/36895 (Namelist writting to internal files:  Control characters wrong?)

2008-08-30  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR libfortran/36895
* gfortran.dg/namelist_53.f90: New test.

From-SVN: r139814

15 years agore PR fortran/36895 (Namelist writting to internal files: Control characters wrong?)
Jerry DeLisle [Sun, 31 Aug 2008 00:04:33 +0000 (00:04 +0000)]
re PR fortran/36895 (Namelist writting to internal files:  Control characters wrong?)

2008-08-30  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR libfortran/36895
* io/write.c (namelist_write_newline): New function to correctly mark
next records in both external and internal units.
(nml_write_obj): Use new function.
(namelist_write: Use new function.

From-SVN: r139813

15 years agoChange attribute((option(...))) to attribute((target(...))); Do not allocate tree...
Michael Meissner [Sat, 30 Aug 2008 23:50:40 +0000 (23:50 +0000)]
Change attribute((option(...))) to attribute((target(...))); Do not allocate tree nodes on x86 for builtins until we generate code for the ISA; Delete hot/cold functions changing optimization; Make C++ support target specific functions; Add #pragma GCC {push_options,pop_options,reset_options} instead of #pragma GCC {target,optimize} {push,reset,pop}

From-SVN: r139812

15 years agore PR c++/37288 (ICE using auto as function return type or parameter)
Jason Merrill [Sat, 30 Aug 2008 23:12:45 +0000 (19:12 -0400)]
re PR c++/37288 (ICE using auto as function return type or parameter)

        PR c++/37288
        * pt.c (dependent_type_p): Don't abort on auto outside of a template.

From-SVN: r139811

15 years agoInclude basic-block.h in dojump.c to declare optimize_insn_for_speed.
Michael Meissner [Sat, 30 Aug 2008 22:57:54 +0000 (22:57 +0000)]
Include basic-block.h in dojump.c to declare optimize_insn_for_speed.

From-SVN: r139810

15 years agore PR target/37270 (SH: spill failure for R0_REGS)
Kaz Kojima [Sat, 30 Aug 2008 22:23:20 +0000 (22:23 +0000)]
re PR target/37270 (SH: spill failure for R0_REGS)

PR target/37270
* config/sh/sh.h (LEGITIMIZE_RELOAD_ADDRESS): Generate
the reload address with the index register for SFmode
access with a displacement.

From-SVN: r139809

15 years ago* fi.po: New.
Joseph Myers [Sat, 30 Aug 2008 22:21:56 +0000 (23:21 +0100)]
* fi.po: New.

From-SVN: r139807

15 years ago* MAINTAINERS: Consistently use tabs to separate columns.
Gerald Pfeifer [Sat, 30 Aug 2008 22:18:00 +0000 (22:18 +0000)]
* MAINTAINERS: Consistently use tabs to separate columns.

From-SVN: r139806

15 years ago2.cc: Constrain iterations when testing on a simultor.
Mark Mitchell [Sat, 30 Aug 2008 17:31:22 +0000 (17:31 +0000)]
2.cc: Constrain iterations when testing on a simultor.

* testsuite/25_algorithms/nth_element/2.cc: Constrain iterations
when testing on a simultor.

From-SVN: r139805

15 years agooptabs.c (expand_abs_nojump): Update BRANCH_COST call.
Jan Hubicka [Sat, 30 Aug 2008 14:19:01 +0000 (16:19 +0200)]
optabs.c (expand_abs_nojump): Update BRANCH_COST call.

* 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.

From-SVN: r139804

15 years agore PR target/37283 (Cannot build crtbegin.o for ARM)
Samuel Tardieu [Sat, 30 Aug 2008 13:44:22 +0000 (13:44 +0000)]
re PR target/37283 (Cannot build crtbegin.o for ARM)

    gcc/
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.

From-SVN: r139803

15 years agorecog.c (split_insn): Consider attaching a REG_EQUAL note to the final insn of a...
Richard Sandiford [Sat, 30 Aug 2008 13:12:16 +0000 (13:12 +0000)]
recog.c (split_insn): Consider attaching a REG_EQUAL note to the final insn of a split.

gcc/
* recog.c (split_insn): Consider attaching a REG_EQUAL note to the
final insn of a split.

From-SVN: r139802

15 years agoparse.c (parse_interface): Silence uninitialized var warning.
Jan Hubicka [Sat, 30 Aug 2008 10:38:55 +0000 (12:38 +0200)]
parse.c (parse_interface): Silence uninitialized var warning.

* parse.c (parse_interface): Silence uninitialized var warning.

* 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.

From-SVN: r139801

15 years agoipa-inline.c (cgraph_estimate_growth): Discover self recursive functions.
Jan Hubicka [Sat, 30 Aug 2008 09:46:19 +0000 (11:46 +0200)]
ipa-inline.c (cgraph_estimate_growth): Discover self recursive functions.

* ipa-inline.c (cgraph_estimate_growth): Discover self recursive
functions.
(cgraph_decide_inlining_of_small_function): Use edge->count to detect
profile presence locally.

From-SVN: r139800

15 years agoMake-lang.in: Allow s-oscons.{o,ali} to be built even without a separate libada direc...
Thomas Quinot [Sat, 30 Aug 2008 08:51:53 +0000 (08:51 +0000)]
Make-lang.in: Allow s-oscons.{o,ali} to be built even without a separate libada directory.

2008-08-30  Thomas Quinot  <quinot@adacore.com>

    gcc/ada/
* gcc-interface/Make-lang.in: Allow s-oscons.{o,ali} to
be built even without a separate libada directory.

From-SVN: r139799

15 years agoImplement C++0x 'auto' semantics.
Jason Merrill [Sat, 30 Aug 2008 05:14:54 +0000 (01:14 -0400)]
Implement C++0x 'auto' semantics.

        * decl.c (start_decl_1): Don't complain about auto being incomplete.
        (cp_finish_decl): Deduce auto.
        * init.c (build_new): Handle 'new auto'.
        * typeck2.c (cxx_incomplete_type_diagnostic): Give a different
        message for auto than for normal template type parms.
        * pt.c (type_dependent_expression_p): Handle { }.
        (make_auto): New function.
        (listify_autos): New function.
        (do_auto_deduction): New function.
        (is_auto): New function.
        (type_uses_auto): New function.
        * cp-tree.h: Declare them.
        * parser.c (cp_parser_decl_specifier_seq): In C++0x mode, don't
        treat auto as a declspec.
        (cp_parser_simple_type_specifier): It's a type-specifier.

From-SVN: r139798

15 years agoDaily bump.
GCC Administrator [Sat, 30 Aug 2008 00:16:33 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r139795

15 years agore PR bootstrap/37086 (GCC 3.4 miscompiles trunk (for cross compiling))
Joseph Myers [Fri, 29 Aug 2008 23:30:18 +0000 (00:30 +0100)]
re PR bootstrap/37086 (GCC 3.4 miscompiles trunk (for cross compiling))

PR bootstrap/37086
* tree-vrp.c (find_switch_asserts): Make idx volatile for GCC
versions before 4.0.

From-SVN: r139792

15 years agomangle.c (write_type): Add target-specific manglings for non-fundamental types to...
Mark Mitchell [Fri, 29 Aug 2008 22:19:24 +0000 (22:19 +0000)]
mangle.c (write_type): Add target-specific manglings for non-fundamental types to the substitution table.

* mangle.c (write_type): Add target-specific manglings for
non-fundamental types to the substitution table.

* g++.dg/abi/mangle-neon.C: Add substitution test.

From-SVN: r139791

15 years agotree-inline.c (insert_init_stmt): Insert sequence even when not in SSA form.
Jan Hubicka [Fri, 29 Aug 2008 21:58:54 +0000 (23:58 +0200)]
tree-inline.c (insert_init_stmt): Insert sequence even when not in SSA form.

* tree-inline.c (insert_init_stmt): Insert sequence even when
not in SSA form.

From-SVN: r139790

15 years agomn10300.c (mn10300_secondary_reload_class): We need secondary reloads for AM33-2...
Jeff Law [Fri, 29 Aug 2008 21:35:55 +0000 (15:35 -0600)]
mn10300.c (mn10300_secondary_reload_class): We need secondary reloads for AM33-2 if IN is a pseudo with an equivalent...

* 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.

From-SVN: r139789

15 years agosee.c (see_merge_one_def_extension): Silence used uninitialized warning.
Jan Hubicka [Fri, 29 Aug 2008 21:32:41 +0000 (23:32 +0200)]
see.c (see_merge_one_def_extension): Silence used uninitialized warning.

* 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.

* parse.c (parse_interface): Likewise.

From-SVN: r139788

15 years agore PR middle-end/37261 (Spurious (?) "integer overflow in expression" warnings)
Jakub Jelinek [Fri, 29 Aug 2008 18:59:13 +0000 (20:59 +0200)]
re PR middle-end/37261 (Spurious (?) "integer overflow in expression" warnings)

PR c/37261
* fold-const.c (fold_binary): In (X | C1) & C2 canonicalization
compute new & and | in type rather than TREE_TYPE (arg0).

* gcc.dg/pr37261.c: New test.

From-SVN: r139784

15 years agodwarf2out.c (fortran_common): Update comment.
Jakub Jelinek [Fri, 29 Aug 2008 18:54:53 +0000 (20:54 +0200)]
dwarf2out.c (fortran_common): Update comment.

* dwarf2out.c (fortran_common): Update comment.
(gen_variable_die): Swap com_die and var_die variables in Fortran
COMMON block handling code.

From-SVN: r139783

15 years agodwarf2out.c (descr_info_loc): Handle VAR_DECL.
Jakub Jelinek [Fri, 29 Aug 2008 18:53:33 +0000 (20:53 +0200)]
dwarf2out.c (descr_info_loc): Handle VAR_DECL.

* dwarf2out.c (descr_info_loc): Handle VAR_DECL.

* trans.h (struct lang_type): Add span.
(GFC_TYPE_ARRAY_SPAN): Define.
* trans-decl.c (gfc_get_symbol_decl): For subref array pointers,
copy TREE_STATIC from decl to span instead of setting it
unconditionally, set DECL_ARTIFICIAL, fix type of initializer
and set GFC_TYPE_ARRAY_SPAN on decl's type.
* trans-types.c (gfc_get_array_descr_info): If
GFC_TYPE_ARRAY_SPAN is non-NULL, use it as element size.

From-SVN: r139782

15 years agodwarf2out.c (gen_const_die): New function.
Jakub Jelinek [Fri, 29 Aug 2008 18:52:22 +0000 (20:52 +0200)]
dwarf2out.c (gen_const_die): New function.

* 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 ().

* trans-decl.c (check_constant_initializer,
gfc_emit_parameter_debug_info): New functions.
(gfc_generate_module_vars, gfc_generate_function_code): Emit
PARAMETERs and unreferenced variables with initializers into
debug info.

From-SVN: r139781

15 years agogfortran.h (gfc_use_list): Add where field.
Jakub Jelinek [Fri, 29 Aug 2008 18:50:30 +0000 (20:50 +0200)]
gfortran.h (gfc_use_list): Add where field.

* gfortran.h (gfc_use_list): Add where field.
* module.c (use_locus): New static variable.
(gfc_match_use): Set it.
(gfc_use_module): Copy it to gfc_use_list's where field.
* trans-decl.c (gfc_generate_module_vars): Call gfc_trans_use_stmts.
(gfc_trans_use_stmts): Set backend locus before calling the debug
hook.  Allow non-VAR_DECLs to be created even for non-external
module.  Don't emit anything so far for renames from different
modules.

From-SVN: r139780

15 years agodwarf2out.c (gen_formal_parameter_die, [...]): For DECL_BY_REFERENCE decls don't...
Jakub Jelinek [Fri, 29 Aug 2008 18:49:36 +0000 (20:49 +0200)]
dwarf2out.c (gen_formal_parameter_die, [...]): For DECL_BY_REFERENCE decls don't pass TREE_READONLY and TREE_THIS_VOLATILE to...

* 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.

From-SVN: r139779

15 years agodwarf2out.c (add_subscript_info): Stop on Fortran TYPE_STRING_FLAG types.
Jakub Jelinek [Fri, 29 Aug 2008 18:48:30 +0000 (20:48 +0200)]
dwarf2out.c (add_subscript_info): Stop on Fortran TYPE_STRING_FLAG types.

* 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.

From-SVN: r139778

15 years agore PR fortran/24790 (arguments are displayed as reference or pointer to normal type...
Jakub Jelinek [Fri, 29 Aug 2008 18:47:19 +0000 (20:47 +0200)]
re PR fortran/24790 (arguments are displayed as reference or pointer to normal type in GDB)

PR fortran/24790
* trans-decl.c (create_function_arglist): Set DECL_BY_REFERENCE on
PARM_DECLs with pointer or reference type.

From-SVN: r139777

15 years agodwarf2out.c (loc_by_reference): New function.
Jakub Jelinek [Fri, 29 Aug 2008 18:46:32 +0000 (20:46 +0200)]
dwarf2out.c (loc_by_reference): New function.

* dwarf2out.c (loc_by_reference): New function.
(add_location_or_const_value_attribute): Use it.

From-SVN: r139776

15 years agore PR fortran/23057 (Fortran common blocks are not described with DW_TAG_common_block)
Jakub Jelinek [Fri, 29 Aug 2008 18:45:25 +0000 (20:45 +0200)]
re PR fortran/23057 (Fortran common blocks are not described with DW_TAG_common_block)

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.

* gfortran.dg/debug/pr35154-dwarf2.f: Adjust for replacement
of DW_TAG_member with DW_TAG_variable.

From-SVN: r139775

15 years agotrans-decl.c (gfc_build_qualified_array): Build non-flat array type for debug info...
Jakub Jelinek [Fri, 29 Aug 2008 18:43:57 +0000 (20:43 +0200)]
trans-decl.c (gfc_build_qualified_array): Build non-flat array type for debug info purposes.

* trans-decl.c (gfc_build_qualified_array): Build non-flat
array type for debug info purposes.

* dwarf2out.c (add_bound_info): If lookup_decl_die failed, try
loc_descriptor_from_tree_1.

From-SVN: r139774

15 years agore PR fortran/29635 (debug info of modules)
Jakub Jelinek [Fri, 29 Aug 2008 18:41:19 +0000 (20:41 +0200)]
re PR fortran/29635 (debug info of modules)

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.

* name-lookup.c (do_using_directive, cp_emit_debug_info_for_using):
Adjust debug_hooks->imported_module_or_decl callers.

* f95-lang.c (gfc_init_ts): New function.
(LANG_HOOKS_INIT_TS): Define.
* gfortran.h (gfc_use_rename): New type, moved from module.c.
(gfc_get_use_rename): New macro, moved from module.c.
(gfc_use_list): New type.
(gfc_get_use_list): New macro.
(gfc_namespace): Add use_stmts field.
(gfc_free_use_stmts): New prototype.
* Make-lang.in (fortran/trans-decl.o): Depend on debug.h.
* module.c (gfc_use_rename, gfc_get_use_rename): Moved to
gfortran.h.
(gfc_use_module): Chain the USE statement info to
ns->use_stmts.
(gfc_free_use_stmts): New function.
* symbol.c (gfc_free_namespace): Call gfc_free_use_stmts.
* trans.h (struct module_htab_entry): New type.
(gfc_find_module, gfc_module_add_decl): New functions.
* trans.c (gfc_generate_module_code): Create NAMESPACE_DECL for
the module, adjust DECL_CONTEXTs of module procedures and
call gfc_module_add_decl for them.
* trans-common.c (build_common_decl): Set DECL_IGNORED_P
on the common variable.
(create_common): Set DECL_IGNORED_P for use associated vars.
* trans-decl.c: Include debug.h.
(gfc_get_symbol_decl): Set DECL_IGNORED_P on use_assoc vars from
modules.
(build_function_decl): Allow current_function_decl's context
to be a NAMESPACE_DECL.
(module_htab, cur_module): New variables.
(module_htab_do_hash, module_htab_eq, module_htab_decls_hash,
module_htab_decls_eq, gfc_find_module, gfc_module_add_decl): New
functions.
(gfc_create_module_variable): Adjust DECL_CONTEXTs of module
variables and types and call gfc_module_add_decl for them.
(gfc_generate_module_vars): Temporarily set cur_module.
(gfc_trans_use_stmts): New function.
(gfc_generate_function_code): Call it.
(gfc_generate_block_data): Set DECL_IGNORED_P on decl.
* trans-types.c (gfc_get_derived_type): Adjust DECL_CONTEXT
and TYPE_CONTEXT of module derived types.

From-SVN: r139773

15 years agocgraph.c (cgraph_remove_node): Do not remove nested nodes.
Jan Hubicka [Fri, 29 Aug 2008 16:41:35 +0000 (18:41 +0200)]
cgraph.c (cgraph_remove_node): Do not remove nested nodes.

* 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.

From-SVN: r139772

15 years agoxtensa.c (xtensa_secondary_reload_class): Revert change from 2008-04-03.
Bob Wilson [Fri, 29 Aug 2008 16:39:59 +0000 (16:39 +0000)]
xtensa.c (xtensa_secondary_reload_class): Revert change from 2008-04-03.

* config/xtensa/xtensa.c (xtensa_secondary_reload_class): Revert
change from 2008-04-03.
* config/xtensa/xtensa.h (IRA_COVER_CLASSES): Define.

From-SVN: r139771

15 years agore PR rtl-optimization/37251 (ICE with ira: delete_allocno_from_bucket)
Vladimir Makarov [Fri, 29 Aug 2008 16:18:11 +0000 (16:18 +0000)]
re PR rtl-optimization/37251 (ICE with ira: delete_allocno_from_bucket)

2008-08-29  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-opt/37251

* ira-color.c (push_allocnos_to_stack): Truncate
removed_splay_allocno_vec.

From-SVN: r139770

15 years agore PR middle-end/37243 (IRA causes wrong code generation)
Vladimir Makarov [Fri, 29 Aug 2008 16:16:45 +0000 (16:16 +0000)]
re PR middle-end/37243 (IRA causes wrong code generation)

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.

From-SVN: r139769

15 years agore PR middle-end/37278 (Revision 139760 causes many failures)
Jan Hubicka [Fri, 29 Aug 2008 14:57:20 +0000 (16:57 +0200)]
re PR middle-end/37278 (Revision 139760 causes many failures)

PR middle-end/37278
* predict.c (optimize_loop_nest_for_speed_p): Do not ICE
for cold internal loops.

From-SVN: r139768

15 years agoMakefile.in (FLAGS_TO_PASS): renamed to LIBADA_FLAGS_TO_PASS to avoid conflicts.
Laurent GUERBY [Fri, 29 Aug 2008 13:44:25 +0000 (13:44 +0000)]
Makefile.in (FLAGS_TO_PASS): renamed to LIBADA_FLAGS_TO_PASS to avoid conflicts.

2008-08-29  Laurent Guerby  <laurent@guerby.net>

* Makefile.in (FLAGS_TO_PASS): renamed to LIBADA_FLAGS_TO_PASS to
avoid conflicts. Factor more flags to pass.
(libsubdir): New variable.
(install-gnatlib): New target.

From-SVN: r139767

15 years agoipa-1.c: Fix template for better debug output.
Jan Hubicka [Fri, 29 Aug 2008 12:55:54 +0000 (14:55 +0200)]
ipa-1.c: Fix template for better debug output.

* gcc.dg/ipa/ipa-1.c: Fix template for better debug output.
* gcc.dg/ipa/ipa-2.c: Fix template for better debug output.
* gcc.dg/ipa/ipa-3.c: Fix template for better debug output.
* gcc.dg/ipa/ipa-4.c: Fix template for better debug output.
* gcc.dg/ipa/ipa-5.c: Fix template for better debug output.
* gcc.dg/ipa/ipa-7.c: Fix template for better debug output.

From-SVN: r139766

15 years agotree-ssa-structalias.c (create_variable_info_for): Do not create fields for heap...
Richard Guenther [Fri, 29 Aug 2008 11:47:01 +0000 (11:47 +0000)]
tree-ssa-structalias.c (create_variable_info_for): Do not create fields for heap vars or vars with a noalias state.

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.

        * gfortran.fortran-torture/compile/20080806-1.f90: New testcase.

From-SVN: r139765

15 years agocommon.opt (ftree-store-ccp): Mark as preserved for backward compatibility.
Richard Guenther [Fri, 29 Aug 2008 11:43:22 +0000 (11:43 +0000)]
common.opt (ftree-store-ccp): Mark as preserved for backward compatibility.

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.

From-SVN: r139764

15 years agore PR middle-end/37236 (ICE: in mark_operand_necessary, at tree-ssa-dce.c:242)
Richard Guenther [Fri, 29 Aug 2008 11:40:47 +0000 (11:40 +0000)]
re PR middle-end/37236 (ICE: in mark_operand_necessary, at tree-ssa-dce.c:242)

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.

* gfortran.fortran-torture/compile/pr37236.f: New testcase.

From-SVN: r139763

15 years agoinvoke.texi (-fipa-cp): Enabled by default at -O2/-Os/-O3
Jan Hubicka [Fri, 29 Aug 2008 11:39:04 +0000 (13:39 +0200)]
invoke.texi (-fipa-cp): Enabled by default at -O2/-Os/-O3

* 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.

From-SVN: r139762

15 years agotree.c (build_function_type_skip_args, [...]): New functions.
Jan Hubicka [Fri, 29 Aug 2008 11:31:40 +0000 (13:31 +0200)]
tree.c (build_function_type_skip_args, [...]): New functions.

* 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.

From-SVN: r139761

15 years agoloop-unswitch.c (unswitch_single_loop): Use optimize_loop_for_speed_p.
Jan Hubicka [Fri, 29 Aug 2008 10:35:57 +0000 (12:35 +0200)]
loop-unswitch.c (unswitch_single_loop): Use optimize_loop_for_speed_p.

* 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.

From-SVN: r139760

15 years agogcov.c (main): Call expandargv.
Tristan Gingold [Fri, 29 Aug 2008 10:07:23 +0000 (10:07 +0000)]
gcov.c (main): Call expandargv.

2008-08-29  Tristan Gingold  <gingold@adacore.com>

* gcov.c (main): Call expandargv.

From-SVN: r139759

15 years agoMAINTAINERS (Write after Approval): Add myself.
Tristan Gingold [Fri, 29 Aug 2008 09:36:01 +0000 (09:36 +0000)]
MAINTAINERS (Write after Approval): Add myself.

2008-08-29  Tristan Gingold  <gingold@adacore.com>

* MAINTAINERS (Write after Approval): Add myself.

From-SVN: r139757

15 years agotree-ssa-loop-ch.c (should_duplicate_loop_header_p): Check that loop is not cold.
Jan Hubicka [Fri, 29 Aug 2008 08:58:52 +0000 (10:58 +0200)]
tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Check that loop is not cold.

* 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.

From-SVN: r139756

15 years agocp-gimplify.c (cp_gimplify_expr): Add PRED_CONTINUE heuristic.
Jan Hubicka [Fri, 29 Aug 2008 08:40:01 +0000 (10:40 +0200)]
cp-gimplify.c (cp_gimplify_expr): Add PRED_CONTINUE heuristic.

* cp-gimplify.c (cp_gimplify_expr): Add PRED_CONTINUE heuristic.
* tree-pass.h (pass_strip_predict_hints): Declare.
* predict.c (strip_builtin_expect): Rename to ...
(strip_predict_hints): ... this one; strip also GIMPLE_PREDICT.
(tree_bb_level_predictions): Do not remove GIMPLE_PREDICT.
(tree_estimate_probability): Do not strip builtin_expect.
(pass_strip_predict_hints): New pass.
* tree-inline.c (expand_call_inline): When inlining cold function, predict
it as unlikely.
* passes.c (init_optimization_passes): Add pass_strip_predict_hints.

From-SVN: r139755

15 years agore PR tree-optimization/37207 (ice at tree-ssa-ifcombine.c:222 for -Os)
Richard Guenther [Fri, 29 Aug 2008 08:36:10 +0000 (08:36 +0000)]
re PR tree-optimization/37207 (ice at tree-ssa-ifcombine.c:222 for -Os)

2008-08-29  Richard Guenther  <rguenther@suse.de>

PR tree-optimization/37207
* tree-vrp.c (extract_range_from_binary_expr): Also try
to constant fold if only one of the operands is a constant.

* gcc.dg/tree-ssa/vrp46.c: New testcase.

From-SVN: r139754