gcc.git
13 years agoc-ada-spec.c (dump_ada_template): Mark underlying instance type as visited.
Arnaud Charlet [Wed, 4 Aug 2010 15:50:10 +0000 (15:50 +0000)]
c-ada-spec.c (dump_ada_template): Mark underlying instance type as visited.

* c-ada-spec.c (dump_ada_template): Mark underlying instance type as
visited.
(dump_generic_ada_node): Code clean up. Use TREE_VISITED flag to
decide whether a type has already been declared/seen.
Do not go to the original type.
(dump_nested_types): New parameter forward.
Generate forward declaration if needed and mark type as visited.
(print_ada_declaration): Call dump_nested_types if not already done.
Mark types as visited.

From-SVN: r162868

13 years agoalias.c (rtx_refs_may_alias_p): Do not resort to TBAA if either alias-set is zero.
Richard Guenther [Wed, 4 Aug 2010 15:35:21 +0000 (15:35 +0000)]
alias.c (rtx_refs_may_alias_p): Do not resort to TBAA if either alias-set is zero.

2010-08-04  Richard Guenther  <rguenther@suse.de>

* alias.c (rtx_refs_may_alias_p): Do not resort to TBAA
if either alias-set is zero.

From-SVN: r162867

13 years agore PR c++/44641 (Generated constructors and destructors get wrong debug location...
Uros Bizjak [Wed, 4 Aug 2010 14:19:01 +0000 (16:19 +0200)]
re PR c++/44641 (Generated constructors and destructors get wrong debug location when a typedef uses a forward declaration of the type before the definition)

PR c++/44641
* lib/scanasm.exp (dg-function-on-line): Expand regex to also ignore
.frame and .mask assembler directives.

From-SVN: r162866

13 years agore PR fortran/42051 ([OOP] ICE on array-valued function with CLASS formal argument)
Mikael Morin [Wed, 4 Aug 2010 14:17:31 +0000 (14:17 +0000)]
re PR fortran/42051 ([OOP] ICE on array-valued function with CLASS formal argument)

2010-08-04  Mikael Morin  <mikael@gcc.gnu.org>

PR fortran/42051
PR fortran/44064
* symbol.c (changed_syms): Made static again.
(gfc_symbol_state): Don't conditionalize on GFC_DEBUG.
Changed conditional internal error into assert.
Rename function to ...
(gfc_enforce_clean_symbol_state): ... this.
* gfortran.h (gfc_symbol_state, gfc_enforce_clean_symbol_state):
Rename the former to the latter.
* parse.c (decode_statement, decode_omp_directive,
decode_gcc_attribute): Update callers accordingly. Don't conditionalize
on GFC_DEBUG.
(changed_syms): Remove declaration.
(next_statement): Use gfc_enforce_clean_symbol_state.

From-SVN: r162865

13 years agotree-ssa-propagate.h (struct prop_value_d, [...]): Move ...
Richard Guenther [Wed, 4 Aug 2010 12:29:48 +0000 (12:29 +0000)]
tree-ssa-propagate.h (struct prop_value_d, [...]): Move ...

2010-08-04  Richard Guenther  <rguenther@suse.de>

* tree-ssa-propagate.h (struct prop_value_d, prop_value_t): Move ...
* tree-ssa-ccp.c: ... here.
* tree-ssa-copy.c: ... and here.
* tree-ssa-propagate.h (enum value_range_type, struct value_range_d,
value_range_t): Move ...
* tree-vrp.c: ... here.
* tree-ssa-propagate.h (ssa_prop_get_value_fn): New typedef.
(substitute_and_fold): Adjust prototype.
* tree-ssa-propagate.c (replace_uses_in): Adjust.
(replace_phi_args_in): Likewise.
(substitute_and_fold): Take callback to query lattice instead
of pointer to lattice.  Replace SSA name defs with lattice
values first.
* tree-ssa-ccp.c (ccp_finalize): Adjust.
* tree-ssa-copy.c (copy_prop_visit_phi_node): Adjust.
(get_value): New function.
(fini_copy_prop): Adjust.
* tree-vrp.c (vrp_finalize): Adjust.

* gcc.dg/tree-ssa/vrp35.c: Adjust.
* gcc.dg/tree-ssa/vrp36.c: Likewise.
* gcc.dg/tree-ssa/vrp50.c: Likewise.
* gcc.dg/tree-ssa/vrp52.c: Likewise.

From-SVN: r162864

13 years agore PR fortran/44857 (ICE in output_constructor_regular_field, at varasm.c:4996)
Tobias Burnus [Wed, 4 Aug 2010 11:51:32 +0000 (13:51 +0200)]
re PR fortran/44857 (ICE in output_constructor_regular_field, at varasm.c:4996)

2010-08-04  Tobias Burnus  <burnus@net-b.de>

        PR fortran/44857
        * resolve.c (resolve_structure_cons): Fix handling of
        initialization structcture constructors with character
        elements of the wrong length.
        * array.c (gfc_check_iter_variable): Add NULL check.
        (gfc_resolve_character_array_constructor): Also truncate
        character length.

2010-08-04  Tobias Burnus  <burnus@net-b.de>

        PR fortran/44857
        * gfortran.dg/derived_constructor_char_1.f90: New.
        * gfortran.dg/derived_constructor_char_2.f90: New.

From-SVN: r162863

13 years agore PR middle-end/45176 (restrict qualifier is not used in a manually unrolled loop)
Richard Guenther [Wed, 4 Aug 2010 11:08:54 +0000 (11:08 +0000)]
re PR middle-end/45176 (restrict qualifier is not used in a manually unrolled loop)

2010-08-04  Richard Guenther  <rguenther@suse.de>

PR middle-end/45176
* expr.c (expand_expr_real_1): Also preserve TARGET_MEM_REF
points-to set for original MEM_REF.

From-SVN: r162862

13 years agotree-ssa-ccp.c (get_constant_value): New function.
Richard Guenther [Wed, 4 Aug 2010 09:16:58 +0000 (09:16 +0000)]
tree-ssa-ccp.c (get_constant_value): New function.

2010-08-04  Richard Guenther  <rguenther@suse.de>

* tree-ssa-ccp.c (get_constant_value): New function.
(get_rhs_assign_op_for_ccp): Remove.
(valueize_op): New function.
(ccp_fold): Use get_constant_value and valueize_op.
(fold_const_aggregate_ref): Likewise.
(ccp_fold_stmt): Likewise.
(visit_assignment): Simplify.

From-SVN: r162860

13 years agoMakefile.in (double-int.o): Add $(TOPLEV_H) dependency.
Richard Guenther [Wed, 4 Aug 2010 09:15:51 +0000 (09:15 +0000)]
Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.

2010-08-04  Richard Guenther  <rguenther@suse.de>

* Makefile.in (double-int.o): Add $(TOPLEV_H) dependency.
* double-int.h (double_int_ctz): Declare.
* double-int.c (double_int_ctz): New function.

From-SVN: r162859

13 years agopicochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
Hariharan Sandanagobalane [Wed, 4 Aug 2010 09:02:48 +0000 (09:02 +0000)]
picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.

        * config/picochip/picochip.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE):
          Define.
          picochip_expand_movmemhi : Expand movmem pattern.
        * config/picochip/picochip-protos.h (picochip_expand_movmemhi) :
          Declare.
        * config/picochip/picochip.md (movmemhi) : New pattern.

From-SVN: r162858

13 years agotrans-io.c (gfc_build_io_library_fndecls): Fix return value of some libgfortran funct...
Tobias Burnus [Wed, 4 Aug 2010 08:56:32 +0000 (10:56 +0200)]
trans-io.c (gfc_build_io_library_fndecls): Fix return value of some libgfortran functions.

2010-08-04  Tobias Burnus  <burnus@net-b.de>

        * trans-io.c (gfc_build_io_library_fndecls): Fix return
        value of some libgfortran functions.

From-SVN: r162857

13 years agounix.h (GLOBAL_ASM_OPS): Add tabs around .globl.
Uros Bizjak [Wed, 4 Aug 2010 07:07:17 +0000 (09:07 +0200)]
unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.

* config/i386/unix.h (GLOBAL_ASM_OPS): Add tabs around .globl.

From-SVN: r162855

13 years agodecl.c: Do not undefine IN_GCC_FRONTEND and do not include expr.h.
Eric Botcazou [Wed, 4 Aug 2010 06:49:08 +0000 (06:49 +0000)]
decl.c: Do not undefine IN_GCC_FRONTEND and do not include expr.h.

* gcc-interface/decl.c: Do not undefine IN_GCC_FRONTEND and do not
include expr.h.
(gnat_to_gnu_entity) <object>: Force address of -1 at the tree level
for the debug-only entity.
* gcc-interface/Make-lang.in (ada/decl.o): Adjust dependencies.

From-SVN: r162854

13 years agoDaily bump.
GCC Administrator [Wed, 4 Aug 2010 00:17:28 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r162853

13 years agosimplify-rtx.c (simplify_binary_operation_1): Try to simplify away NEG as operand...
Bernd Schmidt [Tue, 3 Aug 2010 23:48:52 +0000 (23:48 +0000)]
simplify-rtx.c (simplify_binary_operation_1): Try to simplify away NEG as operand of a MULT by merging it with the other operand.

* simplify-rtx.c (simplify_binary_operation_1): Try to simplify away
NEG as operand of a MULT by merging it with the other operand.
* combine.c (make_compound_operation): Use trunc_int_for_mode when
generating a MULT with constant.  Canonicalize PLUS and MINUS involving
MULT.
* config/arm/constraints.md (M): Examine only 32 bits of a
HOST_WIDE_INT.
* config/arm/predicates.md (power_of_two_operand): Likewise.

From-SVN: r162849

13 years agore PR fortran/45159 (Unnecessary temporaries)
Thomas Koenig [Tue, 3 Aug 2010 22:02:30 +0000 (22:02 +0000)]
re PR fortran/45159 (Unnecessary temporaries)

2010-08-03  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/45159
* dependency.c (gfc_deb_compare_expr):  Remove any integer
conversion functions to larger types from both arguments.
Remove handling these functions futher down.

2010-08-03  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/45159
* gfortran.dg/dependency_30.f90:  New test.

From-SVN: r162848

13 years agospu.c (spu_emit_branch_hint): Do not access NOTE_KIND of non-NOTE insns.
Ulrich Weigand [Tue, 3 Aug 2010 18:01:52 +0000 (18:01 +0000)]
spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of non-NOTE insns.

* config/spu/spu.c (spu_emit_branch_hint): Do not access NOTE_KIND of
non-NOTE insns.

From-SVN: r162845

13 years agoipa-split.c (struct split_point): Add split_part_set_retval.
Jan Hubicka [Tue, 3 Aug 2010 14:23:04 +0000 (16:23 +0200)]
ipa-split.c (struct split_point): Add split_part_set_retval.

* ipa-split.c (struct split_point): Add split_part_set_retval.
(find_retval): Forward declare.
(test_nonssa_use, mark_nonssa_use): Special case return by reference.
(consider_split): Compute current->split_part_set_retval.
(visit_bb): Do not look into return value.
(split_function): Handle !split_part_set_retval

From-SVN: r162842

13 years agotree-sra.c (completely_scalarize_record): New parameter REF, create its own access...
Martin Jambor [Tue, 3 Aug 2010 11:50:25 +0000 (13:50 +0200)]
tree-sra.c (completely_scalarize_record): New parameter REF, create its own access->expr intead of using build_ref_for_offset.

2010-08-03  Martin Jambor  <mjambor@suse.cz>

* tree-sra.c (completely_scalarize_record): New parameter REF, create
its own access->expr intead of using build_ref_for_offset.

From-SVN: r162841

13 years agore PR fortran/44584 (Invalid memory access with gfortran.dg/typebound_proc_15.f03)
Janus Weil [Tue, 3 Aug 2010 11:08:50 +0000 (13:08 +0200)]
re PR fortran/44584 (Invalid memory access with gfortran.dg/typebound_proc_15.f03)

2010-08-03  Janus Weil  <janus@gcc.gnu.org>

PR fortran/44584
PR fortran/45161
* class.c (add_procs_to_declared_vtab1): Don't add erroneous procedures.
* resolve.c (resolve_tb_generic_targets): Check for errors.

2010-08-03  Janus Weil  <janus@gcc.gnu.org>

PR fortran/44584
PR fortran/45161
* gfortran.dg/typebound_call_9.f03: Modified.
* gfortran.dg/typebound_generic_1.f03: Modified.

From-SVN: r162840

13 years agoalpha.h (SWITCH_TAKES_ARG): Define.
Joseph Myers [Tue, 3 Aug 2010 09:42:46 +0000 (10:42 +0100)]
alpha.h (SWITCH_TAKES_ARG): Define.

* config/alpha/alpha.h (SWITCH_TAKES_ARG): Define.
* config/alpha/osf5.h (LIB_SPEC): Don't handle -a.
* config/bfin/bfin.h (ASM_SPEC, LINK_SPEC): Don't pass -G*
options.
* config/darwin.h (WORD_SWITCH_TAKES_ARG): Handle -iframework.
* config/ia64/ia64.h (SWITCH_TAKES_ARG): Define.
* config/iq2000/iq2000.h (SWITCH_TAKES_ARG): Remove.
* config/rs6000/sysv4.h (SWITCH_TAKES_ARG): Define using
DEFAULT_SWITCH_TAKES_ARG.
* config/rx/rx.opt (-patch=): Remove option.
* config/rx/rx.c (rx_handle_option): Don't handle OPT_patch_.
* defaults.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Handle -imultilib.
* doc/invoke.texi (RX Options): Remove -patch=.
* gcc.c (cc1_options): Pass -aux-info* instead of -a* options.
(option_map): Remove --profile-blocks, --quiet and --silent.

ada:
* gcc-interface/lang-specs.h: Don't pass -a options.

c-family:
* c.opt (-print-pch-checksum): Remove option.
* c-opts.c (c_common_handle_option): Don't handle
OPT_print_pch_checksum.

From-SVN: r162838

13 years agoi386.h (ix86_compare_op0, [...]): Remove.
Uros Bizjak [Tue, 3 Aug 2010 09:25:22 +0000 (11:25 +0200)]
i386.h (ix86_compare_op0, [...]): Remove.

* config/i386/i386.h (ix86_compare_op0, ix86_compare_op1): Remove.
* config/i386/i386.c (ix86_compare_op0, ix86_compare_op1): Remove.
(ix86_expand_branch): Add op0 and op1 arguments.  Do not access
ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
Update calls to ix86_expand_compare and ix86_expand_branch.
(ix86_expand_setcc): Add op0 and op1 arguments.  Update calls to
ix86_expand_compare.
(ix86_expand_compare): Add op0 and op1 arguments.  Do not access
ix86_compare_op0 and ix86_compare_op1, use op0 and op1 instead.
Make static.
(ix86_expand_carry_flag_compare): Do not set ix86_compare_op0
and ix86_compare_op1.  Update calls to ix86_expand_compare.
(ix86_expand_int_movcc): Ditto.
(ix86_expand_fp_movcc): Ditto.  Update calls to ix86_expand_setcc.
* config/i386/i386-protos.h (ix86_expand_branch): Update prototype.
(ix86_expand_setcc): Ditto.
(ix86_expand_compare): Remove prototype.
* config/i386/i386.md (cbranch<SDWIM:mode>4): Do not set
ix86_compare_op0 and ix86_compare_op1.  Update calls
to ix86_expand_branch to directly pass operands[1] and operands[2].
(cbranchxf4): Ditto.
(cbranch<MODEF:mode>4): Ditto.
(cbranchcc4): Ditto.
(cstore<SWIM:mode>4): Do not set ix86_compare_op0 and ix86_compare_op1.
Update calls to ix86_expand_setcc to directly pass operands[2] and
operands[3].
(cstorexf4): Ditto.
(cstore<MODEF:mode>4): Ditto.
(cstorecc4): Ditto.

From-SVN: r162837

13 years agoDaily bump.
GCC Administrator [Tue, 3 Aug 2010 00:17:02 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r162834

13 years agore PR fortran/45159 (Unnecessary temporaries)
Thomas Koenig [Mon, 2 Aug 2010 22:04:36 +0000 (22:04 +0000)]
re PR fortran/45159 (Unnecessary temporaries)

2010-08-02  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/45159
* depencency.c (gfc_dep_resolver):  Fix logic for when a loop
can be reversed.

2010-08-02  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/45159

* gfortran.dg/dependency_29.f90:  New test.

From-SVN: r162829

13 years agore PR target/45063 (ICE: Segmentation fault (cc1) compiling matmul_i1.c)
Bernd Schmidt [Mon, 2 Aug 2010 20:17:59 +0000 (20:17 +0000)]
re PR target/45063 (ICE: Segmentation fault (cc1) compiling matmul_i1.c)

PR target/45063
* caller-save.c (save_call_clobbered_regs): Remove regs from
hard_regs_saved when they are set.

From-SVN: r162828

13 years agoalpha.c (alpha_build_builtin_va_list): Mark __offset as volatile.
Uros Bizjak [Mon, 2 Aug 2010 17:26:40 +0000 (19:26 +0200)]
alpha.c (alpha_build_builtin_va_list): Mark __offset as volatile.

target/41089
* config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
as volatile.

From-SVN: r162826

13 years agore PR fortran/36854 ([meta-bug] fortran front-end optimization)
Thomas Koenig [Mon, 2 Aug 2010 16:53:51 +0000 (16:53 +0000)]
re PR fortran/36854 ([meta-bug] fortran front-end optimization)

2010-08-02  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/36854
* dependency.h:  Add prototype for gfc_are_identical_variables.
* frontend-passes.c:  Include depencency.h.
(optimimize_equality):  Use gfc_are_identical_variables.
* dependency.c (identical_array_ref): New function.
(gfc_are_identical_variables):  New function.
(gfc_deb_compare_expr):  Use gfc_are_identical_variables.
* dependency.c (gfc_check_section_vs_section).  Rename gfc_
prefix from statc function.
(check_section_vs_section): Change arguments to gfc_array_ref,
adjust function body accordingly.

2010-08-02  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/36854
* gfortran.dg/character_comparison_2.f90:  New test.
* gfortran.dg/character_comparison_3.f90:  New test.
* gfortran.dg/dependency_28.f90:  New test.

From-SVN: r162824

13 years agoAdd -ftree-loop-distribute-patterns enabled at -O3.
Sebastian Pop [Mon, 2 Aug 2010 16:20:36 +0000 (16:20 +0000)]
Add -ftree-loop-distribute-patterns enabled at -O3.

2010-08-02  Sebastian Pop  <sebastian.pop@amd.com>

* common.opt (ftree-loop-distribute-patterns): New.
* invoke.texi (-ftree-loop-distribute-patterns): Documented.
* opts.c (decode_options): Enable flag_tree_loop_distribute_patterns
at -O3.
* tree-data-ref.c (stores_zero_from_loop): New.
* tree-data-ref.h (stores_zero_from_loop): Declared.
* tree-loop-distribution.c (tree_loop_distribution): Call
stores_zero_from_loop.
(tree_loop_distribution): Check flag_tree_loop_distribute_patterns.

From-SVN: r162822

13 years agore PR fortran/42051 ([OOP] ICE on array-valued function with CLASS formal argument)
Mikael Morin [Mon, 2 Aug 2010 15:30:47 +0000 (15:30 +0000)]
re PR fortran/42051 ([OOP] ICE on array-valued function with CLASS formal argument)

2010-08-02  Mikael Morin  <mikael@gcc.gnu.org>
    Janus Weil  <janus@gcc.gnu.org>

PR fortran/42051
PR fortran/44064
PR fortran/45151
* intrinsic.c (gfc_get_intrinsic_sub_symbol): Commit changed symbol.
* symbol.c (gen_cptr_param, gen_fptr_param, gen_shape_param,
gfc_copy_formal_args, gfc_copy_formal_args_intr,
gfc_copy_formal_args_ppc, generate_isocbinding_symbol): Ditto.
* parse.c (parse_derived_contains, parse_spec, parse_progunit):
Call reject_statement in case of error.
(match_deferred_characteritics): Call gfc_undo_symbols in case match
fails.

Co-Authored-By: Janus Weil <janus@gcc.gnu.org>
From-SVN: r162821

13 years agoarm.c (arm_rtx_costs_1): Remove second clause from the if statement which adds extra...
Bernd Schmidt [Mon, 2 Aug 2010 10:21:05 +0000 (10:21 +0000)]
arm.c (arm_rtx_costs_1): Remove second clause from the if statement which adds extra costs to...

* config/arm/arm.c (arm_rtx_costs_1): Remove second clause from the
if statement which adds extra costs to frame-related expressions.

From-SVN: r162816

13 years agore PR target/40457 (use stm and ldm to access consecutive memory words)
Bernd Schmidt [Mon, 2 Aug 2010 10:06:47 +0000 (10:06 +0000)]
re PR target/40457 (use stm and ldm to access consecutive memory words)

PR target/40457
* config/arm/arm.h (arm_regs_in_sequence): Declare.
* config/arm/arm-protos.h (emit_ldm_seq, emit_stm_seq,
load_multiple_sequence, store_multiple_sequence): Delete
declarations.
(arm_gen_load_multiple, arm_gen_store_multiple): Adjust
declarations.
* config/arm/ldmstm.md: New file.
* config/arm/arm.c (arm_regs_in_sequence): New array.
(load_multiple_sequence): Now static.  New args SAVED_ORDER,
CHECK_REGS.  All callers changed.
If SAVED_ORDER is nonnull, copy the computed order into it.
If CHECK_REGS is false, don't sort REGS.  Handle Thumb mode.
(store_multiple_sequence): Now static.  New args NOPS_TOTAL,
SAVED_ORDER, REG_RTXS and CHECK_REGS.  All callers changed.
If SAVED_ORDER is nonnull, copy the computed order into it.
If CHECK_REGS is false, don't sort REGS.  Set up REG_RTXS just
like REGS.  Handle Thumb mode.
(arm_gen_load_multiple_1): New function, broken out of
arm_gen_load_multiple.
(arm_gen_store_multiple_1): New function, broken out of
arm_gen_store_multiple.
(arm_gen_multiple_op): New function, with code from
arm_gen_load_multiple and arm_gen_store_multiple moved here.
(arm_gen_load_multiple, arm_gen_store_multiple): Now just
wrappers around arm_gen_multiple_op.  Remove argument UP, all callers
changed.
(gen_ldm_seq, gen_stm_seq, gen_const_stm_seq): New functions.
* config/arm/predicates.md (commutative_binary_operator): New.
(load_multiple_operation, store_multiple_operation): Handle more
variants of these patterns with different starting offsets.  Handle
Thumb-1.
* config/arm/arm.md: Include "ldmstm.md".
(ldmsi_postinc4, ldmsi_postinc4_thumb1, ldmsi_postinc3, ldmsi_postinc2,
ldmsi4, ldmsi3, ldmsi2, stmsi_postinc4, stmsi_postinc4_thumb1,
stmsi_postinc3, stmsi_postinc2, stmsi4, stmsi3, stmsi2 and related
peepholes): Delete.
* config/arm/ldmstm.md: New file.
* config/arm/arm-ldmstm.ml: New file.

testsuite/
PR target/40457
* gcc.target/arm/pr40457-1.c: New test.
* gcc.target/arm/pr40457-2.c: New test.

From-SVN: r162815

13 years agothumb2.md (thumb2_movdi, [...]): Delete patterns.
Bernd Schmidt [Mon, 2 Aug 2010 09:53:58 +0000 (09:53 +0000)]
thumb2.md (thumb2_movdi, [...]): Delete patterns.

* config/arm/thumb2.md (thumb2_movdi, thumb2_movsf_soft_insn,
thumb2_movdf_soft_insn): Delete patterns.
* config/arm/arm.md (arm_pool_range, thumb2_pool_range,
arm_neg_pool_range, thumb2_neg_pool_range): New attributes.
(pool_range, neg_pool_range): Use them to define defaults.
(movdi, arm_movsf_soft_insn, arm_movdf_soft_insn): Define them
and allow for TARGET_32BIT.

From-SVN: r162814

13 years agofinal.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
Bernd Schmidt [Mon, 2 Aug 2010 09:51:39 +0000 (09:51 +0000)]
final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.

* final.c (final_scan_insn): Call CC_STATUS_INIT unconditionally.
* config/arm/arm.c (thumb1_code): New variable.
(arm_override_options): Set it.
(thumb1_final_prescan_insn): Keep track of condition code status.
(arm_adjust_cost): For Thumb, try to keep cc-setting insns next to
jumps that depend on them.
* config/arm/arm.h (thumb1_code): Declare variable.
(struct machine_function): Guard with #ifndef GENERATOR_FILE.  Add
members thumb1_cc_insn, thumb1_cc_op0, thumb1_cc_op1 and
thumb1_cc_mode.
(CC_STATUS_INIT): New macro.
* config/arm/constraints.md (Pd): New constraint.
* config/arm/predicates.md (noov_comparison_operator): New predicate.
* config/arm/arm.md (is_thumb1): New define_attr.
(conds): Set default to "clob" when generating Thumb1 code.
(thumb1_bicsi3): Renamed from bicsi3.  All uses changed.  Condition
code are set.  Use two-operand assembly syntax.
(thumb1_subsi3_insn): Condition codes are set.  Now a properly named
pattern.
(thumb1_andsi3_insn, thumb1_iorsi3_insn, thumb1_xorsi3_insn): Condition
codes are set.  Use two-operand assembly syntax.
(zero_extendhisi splitter): Remove constraints.
(thumb1_movsi_insn, thumb1_movhi_insn, thumb1_movqi_insn, thumb1_movhf,
thumb1_movsf_insn): Set conds attribute as appropriate.
(cbranchsi4_insn): Use condition code status from struct
machine_function to determine whether the comparison can be eliminated.
Discourage the alternative using high registers.
(movsi_cbranchsi4, andsi3_cbranch, orrsi3_cbranch_scratch,
orrsi3_cbranch, xorsi3_cbranch_scratch, xorsi3_cbranch,
bicsi3_cbranch_scratch, bicsi3_cbranch, subsi3_cbranch_scratch,
subsi3_cbranch): Delete.
(movsi_cbranchsi4 peepholes): Rewrite to generate a sequence of
one subtract and one cbranch insn.

From-SVN: r162813

13 years agopostreload.c (reload_cse_simplify_operands): Take attribute enabled into account.
Bernd Schmidt [Mon, 2 Aug 2010 09:42:37 +0000 (09:42 +0000)]
postreload.c (reload_cse_simplify_operands): Take attribute enabled into account.

* postreload.c (reload_cse_simplify_operands): Take attribute enabled
into account.

From-SVN: r162812

13 years agoarm.c (COSTS_N_INSNS): Remove definition.
Ramana Radhakrishnan [Mon, 2 Aug 2010 08:52:15 +0000 (08:52 +0000)]
arm.c (COSTS_N_INSNS): Remove definition.

2010-08-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

* config/arm/arm.c (COSTS_N_INSNS): Remove definition.

From-SVN: r162811

13 years agoDon't update the position flag for non-seekable files, check for stell() error.
Janne Blomqvist [Mon, 2 Aug 2010 06:22:23 +0000 (09:22 +0300)]
Don't update the position flag for non-seekable files, check for stell() error.

From-SVN: r162810

13 years agoDaily bump.
GCC Administrator [Mon, 2 Aug 2010 00:17:15 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r162809

13 years agoupdate_web_docs_libstdcxx_svn: Do not compress generated .html files any more.
Gerald Pfeifer [Sun, 1 Aug 2010 21:10:55 +0000 (21:10 +0000)]
update_web_docs_libstdcxx_svn: Do not compress generated .html files any more.

* update_web_docs_libstdcxx_svn: Do not compress generated .html
files any more.

From-SVN: r162805

13 years agore PR fortran/44912 ([OOP] Segmentation fault on TBP)
Janus Weil [Sun, 1 Aug 2010 19:21:49 +0000 (21:21 +0200)]
re PR fortran/44912 ([OOP] Segmentation fault on TBP)

2010-08-01  Janus Weil  <janus@gcc.gnu.org>

PR fortran/44912
* class.c (gfc_build_class_symbol): Make '$vptr' component private.
(gfc_find_derived_vtab): Make vtabs and vtypes public.
* module.c (read_module): When reading module files, always import
vtab and vtype symbols.

2010-08-01  Janus Weil  <janus@gcc.gnu.org>

PR fortran/44912
* gfortran.dg/typebound_call_17.f03: New.

From-SVN: r162804

13 years agoUse access(2) instead of stat(2) to test file existence.
Janne Blomqvist [Sun, 1 Aug 2010 11:22:18 +0000 (14:22 +0300)]
Use access(2) instead of stat(2) to test file existence.

From-SVN: r162798

13 years agore PR target/45142 (split for *vec_set<mode>_0_sse2 incomplete)
Uros Bizjak [Sun, 1 Aug 2010 10:41:57 +0000 (12:41 +0200)]
re PR target/45142 (split for *vec_set<mode>_0_sse2 incomplete)

PR target/45142
* config/i386/sse.md (vec_set<mode>_0): Do not set mode attribute for
alternative 2.
(vec_set<moode>_0 splitter): Use SSEMODE4S mode iterator to also
split V4SI operands.

From-SVN: r162797

13 years agommix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
Anatoly Sokolov [Sun, 1 Aug 2010 08:29:20 +0000 (12:29 +0400)]
mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.

* config/mmix/mmix.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
* config/mmix/mmix-protos.h (mmix_asm_output_source_filename): Remove.
* config/mmix/mmix.c (mmix_asm_output_source_filename): Make static.
(TARGET_ASM_OUTPUT_SOURCE_FILENAME): Define.

From-SVN: r162793

13 years agoDaily bump.
GCC Administrator [Sun, 1 Aug 2010 00:17:09 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r162792

13 years ago* io/inquire.c: Include io.h before string.h.
David Edelsohn [Sat, 31 Jul 2010 21:37:25 +0000 (21:37 +0000)]
* io/inquire.c: Include io.h before string.h.

From-SVN: r162788

13 years agocppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before LOCAL_INCLUDE_DIR.
Kai Tietz [Sat, 31 Jul 2010 20:00:22 +0000 (20:00 +0000)]
cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before LOCAL_INCLUDE_DIR.

2010-07-31  Kai Tietz  <kai.tietz@onevision.com>

        * cppdefault.c (cpp_include_defaults): Move GCC_INCLUDE_DIR before
        LOCAL_INCLUDE_DIR.

From-SVN: r162787

13 years agoMove PR c++/45112 ChangeLog entry to correct location.
Ulrich Weigand [Sat, 31 Jul 2010 17:42:48 +0000 (17:42 +0000)]
Move PR c++/45112 ChangeLog entry to correct location.

From-SVN: r162785

13 years agotree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type used in the call to optab...
Richard Sandiford [Sat, 31 Jul 2010 15:51:17 +0000 (15:51 +0000)]
tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type used in the call to optab_for_tree_code.

gcc/
* tree-ssa-math-opts.c (convert_plusminus_to_widen): Fix type
used in the call to optab_for_tree_code.  Fix the second
is_widening_mult_p call.  Check that both unwidened operands
have the same sign.

From-SVN: r162784

13 years agoJohn Tytgat <John.Tytgat@aaug.net>
John Tytgat [Sat, 31 Jul 2010 14:27:53 +0000 (14:27 +0000)]
John Tytgat <John.Tytgat@aaug.net>

John Tytgat  <John.Tytgat@aaug.net>
* config/arm/arm.c (arm_function_arg): Remove superfluous test.

From-SVN: r162782

13 years agospu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.
Anatoly Sokolov [Sat, 31 Jul 2010 12:07:14 +0000 (16:07 +0400)]
spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.

* config/spu/spu.h (ASM_OUTPUT_SOURCE_FILENAME): Remove macro.

From-SVN: r162779

13 years agore PR fortran/42051 ([OOP] ICE on array-valued function with CLASS formal argument)
Mikael Morin [Sat, 31 Jul 2010 10:27:36 +0000 (10:27 +0000)]
re PR fortran/42051 ([OOP] ICE on array-valued function with CLASS formal argument)

2010-07-31  Mikael Morin  <mikael@gcc.gnu.org>

PR fortran/42051
PR fortran/44064
* symbol.c (changed_syms): Made non-static.
* parse.c (changed_syms): Declare new external.
(next_statement): Assert changed_syms is NULL at the beginning.

From-SVN: r162776

13 years agoi386.md (mov<SWIM:mode>cc and corresponding splitter): Use ordered_comparison_operato...
Uros Bizjak [Sat, 31 Jul 2010 09:33:19 +0000 (11:33 +0200)]
i386.md (mov<SWIM:mode>cc and corresponding splitter): Use ordered_comparison_operator predicate for operator1.

* config/i386/i386.md (mov<SWIM:mode>cc and corresponding splitter):
Use ordered_comparison_operator predicate for operator1.
(add<mode>cc): ditto.

From-SVN: r162775

13 years agopredicates.md (rx_constshift_operand): New.
DJ Delorie [Sat, 31 Jul 2010 02:32:08 +0000 (22:32 -0400)]
predicates.md (rx_constshift_operand): New.

* config/rx/predicates.md (rx_constshift_operand): New.
* config/rx/rx.md (zs_cond): New.
(cbranchsi4): Remove mode.
(*cbranchsi4_<code>): Likewise.
(*tstbranchsi4_<code>): New.
(*tstbranchsi4r_<code>): New.
(*tstbranchsi4m_eq): New.
(*tstbranchsi4m_ne): New.
(cbranchsf4): Remove mode.
(*cbranchsf4_<code>): Likewise.

From-SVN: r162731

13 years agoDaily bump.
GCC Administrator [Sat, 31 Jul 2010 00:17:24 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r162730

13 years agortlanal.c (simplify_subreg_regno): Don't treat HARD_FRAME_POINTER_REGNUM specially.
Bernd Schmidt [Fri, 30 Jul 2010 23:50:00 +0000 (23:50 +0000)]
rtlanal.c (simplify_subreg_regno): Don't treat HARD_FRAME_POINTER_REGNUM specially.

* rtlanal.c (simplify_subreg_regno): Don't treat
HARD_FRAME_POINTER_REGNUM specially.

From-SVN: r162726

13 years agore PR fortran/44929 ([OOP] Parsing error of derived type name starting with 'REAL')
Janus Weil [Fri, 30 Jul 2010 17:50:28 +0000 (19:50 +0200)]
re PR fortran/44929 ([OOP] Parsing error of  derived type name starting with 'REAL')

2010-07-30  Janus Weil  <janus@gcc.gnu.org>
    Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/44929
* match.c (match_type_spec): Try to parse derived types before
intrinsic types.

2010-07-30  Janus Weil  <janus@gcc.gnu.org>

PR fortran/44929
* gfortran.dg/allocate_derived_3.f90: New.

Co-Authored-By: Steven G. Kargl <kargl@gcc.gnu.org>
From-SVN: r162724

13 years agocommon.opt (-G): Don't define option here.
Joseph Myers [Fri, 30 Jul 2010 17:04:37 +0000 (18:04 +0100)]
common.opt (-G): Don't define option here.

* common.opt (-G): Don't define option here.
* config/g.opt: New.
* config.gcc: Use g.opt for alpha, frv, ia64, lm32, m32r, mips,
rs6000/powerpc and score targets.
* opts.c (common_handle_option): Don't handle -G here.
* config/alpha/alpha.c (alpha_handle_option): Handle -G.
* config/frv/frv.c (frv_handle_option): Handle -G.
* config/ia64/ia64.c (ia64_handle_option): Handle -G.
* config/lm32/lm32.c (lm32_handle_option, TARGET_HANDLE_OPTION):
New.
* config/m32r/m32r.c (m32r_handle_option): Handle -G.
* config/mips/mips.c (mips_handle_option): Handle -G.
* config/rs6000/rs6000.c (rs6000_handle_option) Handle -G.
* config/score/score.c (score_handle_option): Handle -G.

From-SVN: r162721

13 years agofix test
Xinliang David Li [Fri, 30 Jul 2010 16:44:24 +0000 (16:44 +0000)]
fix test

From-SVN: r162720

13 years agogfortran.h (gfc_release_symbol): New prototype.
Mikael Morin [Fri, 30 Jul 2010 16:41:55 +0000 (16:41 +0000)]
gfortran.h (gfc_release_symbol): New prototype.

2010-07-30  Mikael Morin  <mikael@gcc.gnu.org>

* gfortran.h (gfc_release_symbol): New prototype.
* symbol.c (gfc_release_symbol): New. Code taken from free_sym_tree.
(gfc_undo_symbols, free_sym_tree, gfc_free_finalizer):
Use gfc_release_symbol.
* parse.c (gfc_fixup_sibling_symbols): Ditto.
* resolve.c (resolve_symbol): Ditto.

From-SVN: r162719

13 years agommix.c: Include basic-block.h.
Anatoly Sokolov [Fri, 30 Jul 2010 16:33:10 +0000 (20:33 +0400)]
mmix.c: Include basic-block.h.

* config/mmix/mmix.c: Include basic-block.h.

From-SVN: r162718

13 years agore PR c++/45112 (Aligned attribute on static class member definition ignored)
Ulrich Weigand [Fri, 30 Jul 2010 15:49:34 +0000 (15:49 +0000)]
re PR c++/45112 (Aligned attribute on static class member definition ignored)

gcc/
PR c++/45112
* cp/decl.c (duplicate_decls): Merge DECL_USER_ALIGN and DECL_PACKED.

gcc/testsuite/
PR c++/45112
* testsuite/g++.dg/pr45112.C: New test.

From-SVN: r162716

13 years agore PR debug/45055 (another -fcompare-debug failure with uninitialised read in walk_gi...
Jakub Jelinek [Fri, 30 Jul 2010 14:36:56 +0000 (16:36 +0200)]
re PR debug/45055 (another -fcompare-debug failure with uninitialised read in walk_gimple_stmt)

PR debug/45055
PR rtl-optimization/45137
* rtl.h (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn): New
prototypes.
* emit-rtl.c (prev_nonnote_nondebug_insn, next_nonnote_nondebug_insn):
New functions.
* combine.c (next_nonnote_nondebug_insn): Removed.
* ifcvt.c (noce_process_if_block): Use prev_nonnote_nondebug_insn.
* haifa-sched.c (queue_to_ready): Use next_nonnote_nondebug_insn.
* sched-deps.c (sched_analyze_insn): Likewise.
(fixup_sched_groups, deps_start_bb): Use prev_nonnote_nondebug_insn.
* rtlanal.c (canonicalize_condition): Likewise.
* postreload.c (reload_combine_recognize_pattern): Likewise.
(reload_cse_move2add): Use next_nonnote_nondebug_insn.

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

From-SVN: r162714

13 years agoi386.md (int_cond): Remove code iterator.
Uros Bizjak [Fri, 30 Jul 2010 13:06:04 +0000 (15:06 +0200)]
i386.md (int_cond): Remove code iterator.

* config/i386/i386.md (int_cond): Remove code iterator.
(fp_cond): Ditto.
(cbranch<mode>4): Use ordered_comparison_operator predicate
for operator0.
(cstore<mode>4): Ditto for operator1.
(mov<SWIM:mode>cc): Ditto.

From-SVN: r162710

13 years agore PR lto/45141 (lto1 ICEs when linking cns_solve again)
Richard Guenther [Fri, 30 Jul 2010 11:01:22 +0000 (11:01 +0000)]
re PR lto/45141 (lto1 ICEs when linking cns_solve again)

2010-07-30  Richard Guenther  <rguenther@suse.de>

PR middle-end/45141
* expr.c (expand_expr_real_1): Check for not handled base address.

From-SVN: r162709

13 years agoJobStateReasons.java (add): Fix infinite recursion with call to super.
Andrew Haley [Fri, 30 Jul 2010 10:49:36 +0000 (10:49 +0000)]
JobStateReasons.java (add): Fix infinite recursion with call to super.

2010-07-30  Andrew Haley  <aph@redhat.com>

        * javax/print/attribute/standard/JobStateReasons.java (add): Fix
        infinite recursion with call to super.

From-SVN: r162708

13 years agoipa-prop.c (ipa_modify_formal_parameters): Use build_distinct_type_copy.
Richard Guenther [Fri, 30 Jul 2010 09:36:18 +0000 (09:36 +0000)]
ipa-prop.c (ipa_modify_formal_parameters): Use build_distinct_type_copy.

2010-07-30  Richard Guenther  <rguenther@suse.de>

* ipa-prop.c (ipa_modify_formal_parameters): Use
build_distinct_type_copy.

From-SVN: r162707

13 years agoAdd moxie-rtems configuration.
Anthony Green [Fri, 30 Jul 2010 07:14:59 +0000 (07:14 +0000)]
Add moxie-rtems configuration.

From-SVN: r162706

13 years agoTolerate half-hour timezones.
Alan Modra [Fri, 30 Jul 2010 06:56:17 +0000 (16:26 +0930)]
Tolerate half-hour timezones.

From-SVN: r162705

13 years agoDaily bump.
GCC Administrator [Fri, 30 Jul 2010 00:17:44 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r162701

13 years agodce.c (run_word_dce): Take flag_dce into account.
Bernd Schmidt [Thu, 29 Jul 2010 23:48:24 +0000 (23:48 +0000)]
dce.c (run_word_dce): Take flag_dce into account.

* dce.c (run_word_dce): Take flag_dce into account.  Clear and restore
df flags as in run_fast_df_dce.

From-SVN: r162697

13 years agore PR fortran/45087 (-fwhole-program: Miscompiled due to wrong decls)
Tobias Burnus [Thu, 29 Jul 2010 21:07:34 +0000 (23:07 +0200)]
re PR fortran/45087 (-fwhole-program: Miscompiled due to wrong decls)

2010-07-29  Tobias Burnus  <burnus@net-b.de>

        PR fortran/45087
        PR fortran/45125
        * trans-decl.c (gfc_get_extern_function_decl): Correctly handle
        external procedure declarations in modules.
        (gfc_get_symbol_decl): Modify assert.

2010-07-29  Tobias Burnus  <burnus@net-b.de>

        PR fortran/45087
        PR fortran/45125
        * gfortran.dg/whole_file_25.f90: New.
        * gfortran.dg/whole_file_26.f90: New.
        * gfortran.dg/whole_file_27.f90: New.

From-SVN: r162696

13 years agore PR fortran/44962 ([OOP] ICE with specification expression SIZE(<CLASS>))
Janus Weil [Thu, 29 Jul 2010 20:58:57 +0000 (22:58 +0200)]
re PR fortran/44962 ([OOP] ICE with specification expression SIZE(<CLASS>))

2010-07-29  Janus Weil  <janus@gcc.gnu.org>

PR fortran/44962
* resolve.c (resolve_fl_derived): Call gfc_resolve_array_spec.

2010-07-29  Janus Weil  <janus@gcc.gnu.org>

PR fortran/44962
* gfortran.dg/typebound_proc_17.f03: New.

From-SVN: r162695

13 years agorevert: rtl.def (NOTE): Swap operands 4 and 5.
Jakub Jelinek [Thu, 29 Jul 2010 19:48:03 +0000 (21:48 +0200)]
revert: rtl.def (NOTE): Swap operands 4 and 5.

Revert:
* rtl.def (NOTE): Swap operands 4 and 5.
        * rtl.h (NOTE_DATA, NOTE_DELETED_LABEL_NAME, NOTE_BLOCK,
NOTE_EH_HANDLER, NOTE_BASIC_BLOCK, NOTE_VAR_LOCATION, NOTE_KIND):
Adjust accordingly.
        * gengtype.c (adjust_field_rtx_def): Swap operands 4 and 5 of NOTEs.

From-SVN: r162692

13 years agore PR debug/45110 (GCC does not emit DW_AT_object_pointer)
Jakub Jelinek [Thu, 29 Jul 2010 19:47:02 +0000 (21:47 +0200)]
re PR debug/45110 (GCC does not emit DW_AT_object_pointer)

PR debug/45110
* dwarf2out.c (dwarf_attr_name): Handle DW_AT_object_pointer.
(gen_formal_types_die): Add DW_AT_object_pointer in methods.
(gen_subprogram_die): Likewise.  Remove it when removing declaration's
formal parameters.
(gen_decl_die): Change return type to dw_die_ref, return what
gen_formal_parameter_die returned.

From-SVN: r162691

13 years agore PR fortran/45004 ([OOP] Segfault with allocatable scalars and move_alloc)
Janus Weil [Thu, 29 Jul 2010 18:14:16 +0000 (20:14 +0200)]
re PR fortran/45004 ([OOP] Segfault with allocatable scalars and move_alloc)

2010-07-29  Janus Weil  <janus@gcc.gnu.org>

PR fortran/45004
* trans-stmt.h (gfc_trans_class_init_assign): New prototype.
(gfc_trans_class_assign): Modified prototype.
* trans.h (gfc_conv_intrinsic_move_alloc): New prototype.
* trans-expr.c (gfc_trans_class_init_assign): Split off from ...
(gfc_trans_class_assign): ... here. Modified actual arguments.
* trans-intrinsic.c (gfc_conv_intrinsic_move_alloc): New function to
handle the MOVE_ALLOC intrinsic with scalar and class arguments.
* trans.c (trans_code): Call 'gfc_conv_intrinsic_move_alloc'.

2010-07-29  Janus Weil  <janus@gcc.gnu.org>

PR fortran/45004
* gfortran.dg/move_alloc_2.f90: New.

From-SVN: r162688

13 years agofix PR45121
Xinliang David Li [Thu, 29 Jul 2010 17:20:05 +0000 (17:20 +0000)]
fix PR45121

From-SVN: r162687

13 years agodbgcnt.def (eipa_sra): New counter.
Martin Jambor [Thu, 29 Jul 2010 15:30:40 +0000 (17:30 +0200)]
dbgcnt.def (eipa_sra): New counter.

2010-07-29  Martin Jambor  <mjambor@suse.cz>

* dbgcnt.def (eipa_sra): New counter.
* tree-sra.c (ipa_early_sra_gate): Also check eipa_sra debug counter.

From-SVN: r162686

13 years agoRevert change in revision 162652.
Xinliang David Li [Thu, 29 Jul 2010 14:30:18 +0000 (14:30 +0000)]
Revert change in revision 162652.

2010-07-29  Xinliang David Li  <davidxl@google.com>

PR bootstrap/45119
* tree-ssa-loop-ivopts.c (get_address_cost): Revert change
in revision 162652.

From-SVN: r162683

13 years agotimevar.def (TV_TREE_STORE_COPY_PROP): Remove.
Richard Guenther [Thu, 29 Jul 2010 13:50:00 +0000 (13:50 +0000)]
timevar.def (TV_TREE_STORE_COPY_PROP): Remove.

2010-07-29  Richard Guenther  <rguenther@suse.de>

* timevar.def (TV_TREE_STORE_COPY_PROP): Remove.
(TV_TREE_STORE_CCP): Likewise.
(TV_TREE_REDPHI): Likewise.

From-SVN: r162682

13 years agodouble-int.h (double_int_and_not): New function.
Richard Guenther [Thu, 29 Jul 2010 13:45:47 +0000 (13:45 +0000)]
double-int.h (double_int_and_not): New function.

2010-07-28  Richard Guenther  <rguenther@suse.de>

* double-int.h (double_int_and_not): New function.
* combine.c (try_combine): Use it.
* tree-vrp.c (simplify_bit_ops_using_ranges): Likewise.

From-SVN: r162681

13 years agore PR rtl-optimization/42575 (arm-eabi-gcc 64-bit multiply weirdness)
Bernd Schmidt [Thu, 29 Jul 2010 12:39:57 +0000 (12:39 +0000)]
re PR rtl-optimization/42575 (arm-eabi-gcc 64-bit multiply weirdness)

PR rtl-optimization/42575
* dce.c (word_dce_process_block): Renamed from byte_dce_process_block.
Argument AU removed.  All callers changed.  Ignore artificial refs.
Use return value of df_word_lr_simulate_defs to decide whether an insn
is necessary.
(fast_dce): Rename arg to WORD_LEVEL.
(run_word_dce): Renamed from rest_of_handle_fast_byte_dce.  No longer
static.
(pass_fast_rtl_byte_dce): Delete.
* dce.h (run_word_dce): Declare.
* df-core.c (df_print_word_regset): Renamed from df_print_byteregset.
All callers changed.  Simplify code to only deal with two-word regs.
* df.h (DF_WORD_LR): Renamed from DF_BYTE_LR.
(DF_WORD_LR_BB_INFO): Renamed from DF_BYTE_LR_BB_INFO.
(DF_WORD_LR_IN): Renamed from DF_BYTE_LR_IN.
(DF_WORD_LR_OUT): Renamed from DF_BYTE_LR_OUT.
(struct df_word_lr_bb_info): Renamed from df_byte_lr_bb_info.
(df_word_lr_mark_ref): Declare.
(df_word_lr_add_problem, df_word_lr_mark_ref, df_word_lr_simulate_defs,
df_word_lr_simulate_uses): Declare or rename from byte variants.
(df_byte_lr_simulate_artificial_refs_at_top,
df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
df_byte_lr_get_regno_len, df_compute_accessed_bytes): Delete
declarations.
(df_word_lr_get_bb_info): Rename from df_byte_lr_get_bb_info.
(enum df_mm): Delete.
* df-byte-scan.c: Delete file.
* df-problems.c (df_word_lr_problem_data): Renamed from
df_byte_lr_problem_data, all members deleted except for
WORD_LR_BITMAPS, which is renamed from BYTE_LR_BITMAPS.  Uses changed.
(df_word_lr_expand_bitmap, df_byte_lr_simulate_artificial_refs_at_top,
df_byte_lr_simulate_artificial_refs_at_end, df_byte_lr_get_regno_start,
df_byte_lr_get_regno_len, df_byte_lr_check_regs,
df_byte_lr_confluence_0): Delete functions.
(df_word_lr_free_bb_info): Renamed from df_byte_lr_free_bb_info; all
callers changed.
(df_word_lr_alloc): Renamed from df_byte_lr_alloc; all callers changed.
Don't initialize members that were deleted, don't try to discover data
about registers.  Ignore hard regs.
(df_word_lr_reset): Renamed from df_byte_lr_reset; all callers changed.
(df_word_lr_mark_ref): New function.
(df_word_lr_bb_local_compute): Renamed from
df_byte_bb_lr_local_compute; all callers changed.  Use
df_word_lr_mark_ref.  Assert that artificial refs don't include
pseudos.  Ignore hard registers.
(df_word_lr_local_compute): Renamed from df_byte_lr_local_compute.
Assert that exit block uses don't contain pseudos.
(df_word_lr_init): Renamed from df_byte_lr_init; all callers changed.
(df_word_lr_confluence_n): Renamed from df_byte_lr_confluence_n; all
callers changed.  Ignore hard regs.
(df_word_lr_transfer_function): Renamed from
df_byte_lr_transfer_function; all callers changed.
(df_word_lr_free): Renamed from df_byte_lr_free; all callers changed.
(df_word_lr_top_dump): Renamed from df_byte_lr_top_dump; all callers
changed.
(df_word_lr_bottom_dump): Renamed from df_byte_lr_bottom_dump; all
callers changed.
(problem_WORD_LR): Renamed from problem_BYTE_LR; uses changed;
confluence operator 0 set to NULL.
(df_word_lr_add_problem): Renamed from df_byte_lr_add_problem; all
callers changed.
(df_word_lr_simulate_defs): Renamed from df_byte_lr_simulate_defs.
Return bool, true if bitmap changed or insn otherwise necessary.
All callers changed.  Simplify using df_word_lr_mark_ref.
(df_word_lr_simulate_uses): Renamed from df_byte_lr_simulate_uses;
all callers changed.  Simplify using df_word_lr_mark_ref.
* lower-subreg.c: Include "dce.h"
(decompose_multiword_subregs): Call run_word_dce if df available.
* Makefile.in (lower-subreg.o): Adjust dependencies.
(df-byte-scan.o): Delete.
* timevar.def (TV_DF_WORD_LR): Renamed from TV_DF_BYTE_LR.

From-SVN: r162678

13 years agotree.c (build_vector): Assert that the vector constant has enough elements.
Richard Guenther [Thu, 29 Jul 2010 12:31:29 +0000 (12:31 +0000)]
tree.c (build_vector): Assert that the vector constant has enough elements.

2010-07-29  Richard Guenther  <rguenther@suse.de>

* tree.c (build_vector): Assert that the vector constant
has enough elements.
(build_vector_from_ctor): Pad with trailing zeros.

From-SVN: r162677

13 years agore PR tree-optimization/45120 (-fipa-pta causes FAIL: gcc.c-torture/execute/pta-field...
Richard Guenther [Thu, 29 Jul 2010 12:30:09 +0000 (12:30 +0000)]
re PR tree-optimization/45120 (-fipa-pta causes FAIL: gcc.c-torture/execute/pta-field-2.c execution)

2010-07-29  Richard Guenther  <rguenther@suse.de>

PR tree-optimization/45120
* tree-ssa-structalias.c (get_constraint_for_component_ref):
Handle offset in DEREFs properly.
(get_constraint_for_1): Handle MEM_REF offset properly.

* gcc.dg/ipa/ipa-pta-15.c: New testcase.

From-SVN: r162676

13 years agore PR fortran/42051 ([OOP] ICE on array-valued function with CLASS formal argument)
Mikael Morin [Thu, 29 Jul 2010 11:22:40 +0000 (11:22 +0000)]
re PR fortran/42051 ([OOP] ICE on array-valued function with CLASS formal argument)

2010-07-29  Mikael Morin  <mikael@gcc.gnu.org>

PR fortran/42051
PR fortran/44064
* class.c (gfc_find_derived_vtab): Accept or discard newly created
symbols before returning.

2010-07-29  Mikael Morin  <mikael@gcc.gnu.org>

PR fortran/42051
PR fortran/44064
* gfortran.dg/pr42051.f03: New testcase.

From-SVN: r162674

13 years agore PR tree-optimization/45034 ("safe" conversion from unsigned to signed char gives...
Richard Guenther [Thu, 29 Jul 2010 10:59:54 +0000 (10:59 +0000)]
re PR tree-optimization/45034 ("safe" conversion from unsigned to signed char gives broken code)

2010-07-29  Richard Guenther  <rguenther@suse.de>

PR middle-end/45034
* convert.c (convert_to_integer): Always use an unsigned
type for narrowed negate and bitwise not.

* gcc.c-torture/execute/pr45034.c: New testcase.

From-SVN: r162673

13 years agolang.opt (cpp): Remove Joined and Separate markers.
Joseph Myers [Thu, 29 Jul 2010 09:45:08 +0000 (10:45 +0100)]
lang.opt (cpp): Remove Joined and Separate markers.

* lang.opt (cpp): Remove Joined and Separate markers.
(cpp=): New internal option.
* lang-specs.h (F951_CPP_OPTIONS): Generate -cpp= option.
* cpp.c (gfc_cpp_handle_option): Handle OPT_cpp_ instead of
OPT_cpp.

From-SVN: r162672

13 years agore PR fortran/45117 (Segfault in resolve_array_bound)
Daniel Kraft [Thu, 29 Jul 2010 09:06:53 +0000 (11:06 +0200)]
re PR fortran/45117 (Segfault in resolve_array_bound)

2010-07-29  Daniel Kraft  <d@domob.eu>

PR fortran/45117
* array.c (resolve_array_bound): Fix error message to properly handle
non-variable expressions.

From-SVN: r162670

13 years agotree-vect-loop.c (vect_create_epilog_for_reduction): Switch to outer loop when creati...
Ira Rosen [Thu, 29 Jul 2010 06:02:34 +0000 (06:02 +0000)]
tree-vect-loop.c (vect_create_epilog_for_reduction): Switch to outer loop when creating reduction epilogue for double reduction...

* tree-vect-loop.c (vect_create_epilog_for_reduction): Switch
to outer loop when creating reduction epilogue for double reduction,
and switch back to the inner loop when updating the phi nodes.
Update uses of outer loop exit phi nodes in double reduction (instead
of uses of reduction).

From-SVN: r162668

13 years agore PR fortran/44931 (For INPUT_UNIT, INQUIRE NAME= should not return "stdin")
Jerry DeLisle [Thu, 29 Jul 2010 01:32:23 +0000 (01:32 +0000)]
re PR fortran/44931 (For INPUT_UNIT, INQUIRE NAME= should not return "stdin")

2010-07-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR libfortran/44931
* io/inquire.c (inquire_via_unit): Use ttyname to return actual device
file name for stdin, stdout, and stderr.  If ttyname does not succeed
fall back to default names for these units. Include string.h to allow
using strlen function.
* unix.c: Remove typedef of unix_stream structure, move to unix.h.
* unix.h: Add typedef of unix_stream structure so that it is
accessible to inquire.c.

From-SVN: r162667

13 years agoDaily bump.
GCC Administrator [Thu, 29 Jul 2010 00:17:14 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r162666

13 years agore PR c++/45096 (g++.dg/cpp0x/auto3.C)
Paolo Carlini [Wed, 28 Jul 2010 20:02:56 +0000 (20:02 +0000)]
re PR c++/45096 (g++.dg/cpp0x/auto3.C)

2010-07-28  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/45096
* g++.dg/cpp0x/auto3.C: Tweak dg-error string.

From-SVN: r162657

13 years agoAdd power6 copysign/parity support
Michael Meissner [Wed, 28 Jul 2010 19:58:38 +0000 (19:58 +0000)]
Add power6 copysign/parity support

From-SVN: r162656

13 years agoIVOPT performance tuning patch.
Xinliang David Li [Wed, 28 Jul 2010 19:13:11 +0000 (19:13 +0000)]
IVOPT performance tuning patch.

IVOPT performance tuning patch. The main problem is a variant of maximal weight
bipartite matching/assignment problem -- i.e., there is an additional global
cost function. The complexity of the algorighm to find the optimial solution
> O(n^2). The existing algorithm in gcc tries to find the solution in 3 stages:
1) Find the initial solution set (dynamic programing style)
2) Extend the solution set
3) Prune the soultion set.

The problem is that in step 1, the initial set tends to be too large so that
the final solution is very likely local optimal.

This patch addresses the problem and sees very large SPEC improvements.

Another area of problem is that ivopts often creates loop invariant expressions, and
such expressions increase register pressure which is not counted. This is addressed
in this patch.

The third main problem is the profile data is not considered in cost computation

The forth problem is that loop invariant comptuation's cost is not properly adjusted.

There are more tuning opportuties, namely:

1) Do not check ivs dependency during ivs set pruning (this improves deallII 8% on core2)
2) Unconditionally consider all important candidates in partial set expansion (in addition
to the extended solutino based on selected candidates)
3) revisit the two stage initial set computation.

From-SVN: r162653

13 years agoi386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
Kai Tietz [Wed, 28 Jul 2010 18:00:09 +0000 (18:00 +0000)]
i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.

2010-07-28  Kai Tietz  <kai.tietz@onevision.com>

        * config/i386/i386.h (MCOUNT_NAME_BEFORE_PROLOGUE): New.
        * config/i386/i386.c (ix86_profile_before_prologue): New.
        (override_options): Add special handling for -mfentry.
        (ix86_function_regparm): Likewise.
        (ix86_function_sseregparm): Likewise.
        (ix86_frame_pointer_required): Likewise.
        (ix86_expand_prologue): Check for ms_hook_prologue.
        (x86_function_profiler): Adjust mcount output.
        (TARGET_PROFILE_BEFORE_PROLOGUE): Define hook.
        * config/i386/i386.opt (mfentry): New.
        * doc/invoke.texi (mfentry): Add documentation.
        * doc/tm.texi: Regenerated..
        * doc/tm.texi.in (TARGET_PROFILE_BEFORE_PROLOGUE): New.
        * final.c (final_start_function): Replace macro
        PROFILE_BEFORE_PROLOGUE by target hook.
        * function.c (thread_prologue_and_epilogue_insns): Likewise.
        * target.def (profile_before_prologue): New hook.
        * targhooks.c (default_profile_before_prologue): New.
        * targhooks.h (default_profile_before_prologue): New.

From-SVN: r162651

13 years agodecl.c (free_value): Also free repeat field.
Mikael Morin [Wed, 28 Jul 2010 17:33:37 +0000 (17:33 +0000)]
decl.c (free_value): Also free repeat field.

2010-07-28  Mikael Morin  <mikael@gcc.gnu.org>

* decl.c (free_value): Also free repeat field.
* data.c (gfc_assign_data_value): Always free offset before returning.

From-SVN: r162649

13 years agogfortran.h (gfc_build_intrinsic_call): New method.
Daniel Kraft [Wed, 28 Jul 2010 17:06:40 +0000 (19:06 +0200)]
gfortran.h (gfc_build_intrinsic_call): New method.

2010-07-28  Daniel Kraft  <d@domob.eu>

* gfortran.h (gfc_build_intrinsic_call): New method.
* expr.c (gfc_build_intrinsic_call): New method.
* simplify.c (range_check): Ignore non-constant value.
(simplify_bound_dim): Handle non-variable expressions and
fix memory leak with non-free'ed expression.
(simplify_bound): Handle non-variable expressions.
(gfc_simplify_shape): Ditto.
(gfc_simplify_size): Ditto, but only in certain cases possible.

2010-07-28  Daniel Kraft  <d@domob.eu>

* gfortran.dg/bound_8.f90: New test.

From-SVN: r162648

13 years agore PR debug/45105 (-fcompare-debug failure at -Os)
Jakub Jelinek [Wed, 28 Jul 2010 17:01:05 +0000 (19:01 +0200)]
re PR debug/45105 (-fcompare-debug failure at -Os)

PR debug/45105
* gcse.c (hoist_code): Use FOR_BB_INSNS macro.

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

From-SVN: r162647

13 years agore PR debug/45103 (DW_OP_reg* has too large valid range for noreturn funcs)
Jakub Jelinek [Wed, 28 Jul 2010 17:00:06 +0000 (19:00 +0200)]
re PR debug/45103 (DW_OP_reg* has too large valid range for noreturn funcs)

PR debug/45103
* dwarf2out.c (dwarf2out_var_location): Always consider
NOTE_DURING_CALL_P notes, even when not followed by real instructions.

From-SVN: r162646

13 years agore PR rtl-optimization/45107 (ICE: in insert_expr_in_table, at gcse.c:1213 with ...
Maxim Kuvyrkov [Wed, 28 Jul 2010 16:50:14 +0000 (16:50 +0000)]
re PR rtl-optimization/45107 (ICE: in insert_expr_in_table, at gcse.c:1213 with -Os -gcse-las (another one))

PR rtl-optimization/45107
* gcse.c (hash_scan_set): Use max_distance for gcse-las.

PR rtl-optimization/45107
* gcc.dg/pr45107.c: New test.

From-SVN: r162645

13 years agotree-ssa-ccp.c: Remove comment regarding STORE-CCP.
Richard Guenther [Wed, 28 Jul 2010 16:03:09 +0000 (16:03 +0000)]
tree-ssa-ccp.c: Remove comment regarding STORE-CCP.

2010-07-28  Richard Guenther  <rguenther@suse.de>

* tree-ssa-ccp.c: Remove comment regarding STORE-CCP.
(set_lattice_value): Do not query an old default value.
(get_value_for_expr): New function.  Properly canonicalize
float values.
(ccp_visit_phi_node): Use it.

From-SVN: r162638

13 years agoarm.c (arm_pcs_default): Remove static.
Chung-Lin Tang [Wed, 28 Jul 2010 15:40:58 +0000 (15:40 +0000)]
arm.c (arm_pcs_default): Remove static.

* config/arm/arm.c (arm_pcs_default): Remove static.
* config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_PCS or
__ARM_PCS_VFP to indicate soft/hard-float calling convention.
(arm_pcs_default): Declare.

From-SVN: r162637