gcc.git
12 years agoDaily bump.
GCC Administrator [Sat, 8 Oct 2011 00:18:22 +0000 (00:18 +0000)]
Daily bump.

From-SVN: r179707

12 years ago* generic-morestack-thread.c: #include <errno.h>.
Ian Lance Taylor [Fri, 7 Oct 2011 22:52:28 +0000 (22:52 +0000)]
* generic-morestack-thread.c: #include <errno.h>.

From-SVN: r179703

12 years agore PR target/46093 (code compiled with -fsplit-stack crashes when passing large struct)
Ian Lance Taylor [Fri, 7 Oct 2011 22:51:11 +0000 (22:51 +0000)]
re PR target/46093 (code compiled with -fsplit-stack crashes when passing large struct)

PR target/46093
* generic-morestack.c (__generic_morestack): Make sure the segment
is large enough for both the stack frame and the copied
parameters.

From-SVN: r179702

12 years agoRename vshuffle/vec_shuffle to vec_perm.
Richard Henderson [Fri, 7 Oct 2011 22:41:48 +0000 (15:41 -0700)]
Rename vshuffle/vec_shuffle to vec_perm.

        * doc/extend.texi (__builtin_shuffle): Improve the description to
        include the modulus of the selector.  Mention OpenCL.
        * doc/md.texi (vec_perm, vec_perm_const): Document named patterns.

        * tree.def (VEC_PERM_EXPR): Rename from VEC_SHUFFLE_EXPR.
        * genopinit.c (optabs): Rename vshuffle to vec_perm.
        * c-typeck.c (c_build_vec_perm_expr): Rename from
        c_build_vec_shuffle_expr.  Update for name changes.
        * optabs.c (expand_vec_perm_expr_p): Rename from
        expand_vec_shuffle_expr_p.
        (expand_vec_perm_expr): Rename from expand_vec_shuffle_expr.
        * optabs.h (OTI_vec_perm): Rename from DOI_vshuffle.
        (vec_perm_optab): Rename from vshuffle_optab.
        * expr.c, gimple-pretty-print.c, gimple.c, gimplify.c,
        c-tree.h, c-parser.c, tree-cfg.c, tree-inline.c, tree-pretty-print.c,
        tree-ssa-operands.c, tree-vect-generic.c: Update for name changes.

        * config/i386/i386.c (ix86_expand_vec_perm): Rename from
        ix86_expand_vshuffle.
        * config/i386/i386-protos.h: Update.
        * config/i386/sse.md (VEC_PERM_AVX2): Rename from VSHUFFLE_AVX2.
        (vec_perm<VEC_PERM_AVX2>): Rename from vshuffle<VSHUFFLE_AVX2>.

From-SVN: r179701

12 years agoi386: Fixup last pblendw change.
Richard Henderson [Fri, 7 Oct 2011 22:12:18 +0000 (15:12 -0700)]
i386: Fixup last pblendw change.

Missed changing one predicate to AVX2.  Add parenthesis
to avoid bootstrap -Werror.

From-SVN: r179700

12 years agoi386: Fix representation of 256-bit vpblendw.
Richard Henderson [Fri, 7 Oct 2011 21:07:10 +0000 (14:07 -0700)]
i386: Fix representation of 256-bit vpblendw.

From-SVN: r179697

12 years agotrans-array.c (gfc_conv_expr_descriptor): Remove trailing whitespace.
Mikael Morin [Fri, 7 Oct 2011 20:56:31 +0000 (22:56 +0200)]
trans-array.c (gfc_conv_expr_descriptor): Remove trailing whitespace.

* trans-array.c (gfc_conv_expr_descriptor): Remove trailing whitespace.

From-SVN: r179695

12 years agotrans-array.c (gfc_conv_ss_startstride): Merge two switch cases.
Mikael Morin [Fri, 7 Oct 2011 20:35:47 +0000 (22:35 +0200)]
trans-array.c (gfc_conv_ss_startstride): Merge two switch cases.

* trans-array.c (gfc_conv_ss_startstride): Merge two switch cases.

From-SVN: r179694

12 years agotrans-array.c (gfc_conv_section_startstride): Remove coarray argument.
Mikael Morin [Fri, 7 Oct 2011 20:32:37 +0000 (22:32 +0200)]
trans-array.c (gfc_conv_section_startstride): Remove coarray argument.

* trans-array.c (gfc_conv_section_startstride): Remove coarray argument.
Remove conditions on coarray.
(gfc_conv_ss_startstride): Update call to gfc_conv_section_startstride.
(gfc_conv_expr_descriptor): Ditto. Add assertions before the call.

From-SVN: r179693

12 years agotrans-array.c (gfc_conv_section_startstride): Remove coarray_last argument.
Mikael Morin [Fri, 7 Oct 2011 20:29:27 +0000 (22:29 +0200)]
trans-array.c (gfc_conv_section_startstride): Remove coarray_last argument.

* trans-array.c (gfc_conv_section_startstride): Remove coarray_last
argument. Remove condition on coarray_last.
(gfc_conv_ss_startstride): Update call to gfc_conv_section_startstride.
(gfc_conv_expr_descriptor): Ditto.

From-SVN: r179692

12 years agotrans-array.c (gfc_walk_variable_expr): Remove scalar coarray handling.
Mikael Morin [Fri, 7 Oct 2011 20:26:11 +0000 (22:26 +0200)]
trans-array.c (gfc_walk_variable_expr): Remove scalar coarray handling.

* trans-array.c (gfc_walk_variable_expr): Remove scalar coarray
handling.  Don't reset array ref's corank and codimensions' types
in the full array ref case.  Update loop upper limit.
Remove DIMEN_THIS_IMAGE case.  Remove unnecessary conditions.

From-SVN: r179691

12 years agotrans.h (gfc_ss_info): Remove codimen field.
Mikael Morin [Fri, 7 Oct 2011 20:22:50 +0000 (22:22 +0200)]
trans.h (gfc_ss_info): Remove codimen field.

* trans.h (gfc_ss_info): Remove codimen field.
* trans-array.c (gfc_get_array_ss): Don't set codimen field.
(gfc_trans_create_temp_array): Don't set descriptor's cobounds.
(gfc_trans_constant_array_constructor): Update loop upper limit.
(gfc_conv_ss_startstride): Don't set codimen field.
Don't get descriptor's cobounds.
(gfc_walk_variable_expr): Update dimension index.
* trans-intrinsic.c (trans_this_image, trans_image_index,
conv_intrinsic_cobound): Don't set codimen field

From-SVN: r179690

12 years agotrans.h (gfc_loopinfo): Remove codimen field.
Mikael Morin [Fri, 7 Oct 2011 20:14:44 +0000 (22:14 +0200)]
trans.h (gfc_loopinfo): Remove codimen field.

* trans.h (gfc_loopinfo): Remove codimen field.
* trans-array.c (gfc_set_vector_loop_bounds,
gfc_trans_scalarizing_loops, gfc_conv_loop_setup): Update loop upper
limit.
(gfc_set_loop_bounds_from_array_spec): Ditto. Remove skip on last
codimension.
(gfc_start_scalarized_body): Update loop lower limit.
(gfc_conv_ss_startstride): Don't set loop's codimen field.
(gfc_conv_loop_setup): Remove unnecessary condition.
(gfc_conv_expr_descriptor): Don't use loop's codimen field as corank.

From-SVN: r179689

12 years agotrans.h (gfc_ss): Remove data.temp.codimen field.
Mikael Morin [Fri, 7 Oct 2011 20:05:35 +0000 (22:05 +0200)]
trans.h (gfc_ss): Remove data.temp.codimen field.

* trans.h (gfc_ss): Remove data.temp.codimen field.
* trans-array.c (gfc_conv_resolve_dependencies,
gfc_conv_expr_descriptor): Don't set temp's codimen field.

From-SVN: r179686

12 years agoresolve.c (resolve_array_ref): Set array_ref's dimen field (and the associated dimen_...
Mikael Morin [Fri, 7 Oct 2011 19:56:11 +0000 (21:56 +0200)]
resolve.c (resolve_array_ref): Set array_ref's dimen field (and the associated dimen_type) in the full array...

* resolve.c (resolve_array_ref): Set array_ref's dimen field (and the
associated dimen_type) in the full array ref case.

From-SVN: r179685

12 years agotrans-intrinsic.c (walk_coarray): New function.
Mikael Morin [Fri, 7 Oct 2011 19:52:34 +0000 (21:52 +0200)]
trans-intrinsic.c (walk_coarray): New function.

* trans-intrinsic.c (walk_coarray): New function.
(convert_element_to_coarray_ref): Move code to walk_coarray. Remove.
(trans-this_image, trans_image_index, conv_intrinsic_cobound):
Use walk_coarray.

From-SVN: r179684

12 years agotrans-array.c (gfc_conv_expr_descriptor): Add out-of-the-scalarizer cobounds evaluation.
Mikael Morin [Fri, 7 Oct 2011 19:47:07 +0000 (21:47 +0200)]
trans-array.c (gfc_conv_expr_descriptor): Add out-of-the-scalarizer cobounds evaluation.

* trans-array.c (gfc_conv_expr_descriptor): Add out-of-the-scalarizer
cobounds evaluation.

From-SVN: r179683

12 years agotrans-array.c (gfc_conv_ss_startstride): Support zero rank loop.
Mikael Morin [Fri, 7 Oct 2011 19:43:21 +0000 (21:43 +0200)]
trans-array.c (gfc_conv_ss_startstride): Support zero rank loop.

* trans-array.c (gfc_conv_ss_startstride): Support zero rank loop.

From-SVN: r179682

12 years agotrans-array.c (gfc_conv_section_startstride): Move code to evaluate_bound.
Mikael Morin [Fri, 7 Oct 2011 19:39:22 +0000 (21:39 +0200)]
trans-array.c (gfc_conv_section_startstride): Move code to evaluate_bound.

* trans-array.c (gfc_conv_section_startstride): Move code to
evaluate_bound.  Use evaluate_bound.
(evaluate_bound): New function.

From-SVN: r179681

12 years agotrans-array.c (gfc_conv_section_startstride): Update assertion to also accept coarrays.
Mikael Morin [Fri, 7 Oct 2011 19:36:20 +0000 (21:36 +0200)]
trans-array.c (gfc_conv_section_startstride): Update assertion to also accept coarrays.

* trans-array.c (gfc_conv_section_startstride): Update assertion to
also accept coarrays.

From-SVN: r179680

12 years agotrans-array.c (gfc_conv_section_startstride): Factor common array ref references.
Mikael Morin [Fri, 7 Oct 2011 19:33:10 +0000 (21:33 +0200)]
trans-array.c (gfc_conv_section_startstride): Factor common array ref references.

* trans-array.c (gfc_conv_section_startstride): Factor common
array ref references.

From-SVN: r179679

12 years agotrans-array.c (gfc_conv_expr_descriptor): Use codim instead of loop.codimen as argume...
Mikael Morin [Fri, 7 Oct 2011 19:28:55 +0000 (21:28 +0200)]
trans-array.c (gfc_conv_expr_descriptor): Use codim instead of loop.codimen as argument to gfc_get_array_type_bounds.

* trans-array.c (gfc_conv_expr_descriptor): Use codim instead of
loop.codimen as argument to gfc_get_array_type_bounds.

From-SVN: r179677

12 years agotrans-array.h (struct gfc_se): New flag want_coarray.
Mikael Morin [Fri, 7 Oct 2011 19:24:07 +0000 (21:24 +0200)]
trans-array.h (struct gfc_se): New flag want_coarray.

* trans-array.h (struct gfc_se): New flag want_coarray.
* trans-intrinsic.c (trans_this_image, trans_image_index,
conv_intrinsic_cobound): Set want_coarray.
* trans_array.c (gfc_conv_expr_descriptor): Evaluate codimension
earlier and without relying on the scalarizer.

From-SVN: r179676

12 years agoexpr.c (gfc_get_corank): Return 0 if input expression is not a coarray.
Mikael Morin [Fri, 7 Oct 2011 19:14:07 +0000 (21:14 +0200)]
expr.c (gfc_get_corank): Return 0 if input expression is not a coarray.

* expr.c (gfc_get_corank): Return 0 if input expression is not a
coarray.

From-SVN: r179675

12 years agotrans-array.c (gfc_conv_expr_descriptor): Simplify coarray descriptor setup code.
Mikael Morin [Fri, 7 Oct 2011 19:11:01 +0000 (21:11 +0200)]
trans-array.c (gfc_conv_expr_descriptor): Simplify coarray descriptor setup code.

* trans-array.c (gfc_conv_expr_descriptor): Simplify coarray
descriptor setup code.

From-SVN: r179674

12 years agoresolve.c (compare_spec_to_ref): Move coarray ref initialization code...
Mikael Morin [Fri, 7 Oct 2011 19:07:04 +0000 (21:07 +0200)]
resolve.c (compare_spec_to_ref): Move coarray ref initialization code...

* resolve.c (compare_spec_to_ref): Move coarray ref initialization
code...
(resolve_array_ref): ... here.

From-SVN: r179672

12 years agocheck.c (is_coarray): Remove.
Mikael Morin [Fri, 7 Oct 2011 19:02:36 +0000 (21:02 +0200)]
check.c (is_coarray): Remove.

* check.c (is_coarray): Remove.
(coarray_check): Use gfc_is_coarray.

From-SVN: r179671

12 years agoDelete incorrect representations of avx2 shifts.
Richard Henderson [Fri, 7 Oct 2011 18:19:50 +0000 (11:19 -0700)]
Delete incorrect representations of avx2 shifts.

* config/i386/i386.c (bdesc_args): Update code for
__builtin_ia32_palignr256.  Change type of __builtin_ia32_pslldqi256,
and __builtin_ia32_psrldqi256 to V4DI_FTYPE_V4DI_INT_CONVERT.
(ix86_expand_args_builtin): Handle V4DI_FTYPE_V4DI_INT_CONVERT.
* config/i386/sse.md (mode iterator V16): Add V2TI.
(mode iterator SSESCALARMODE): Use V2TI not V4DI.
(mode attr ssse3_avx2): Add V2TI.
(avx2_lshrqv4di3, avx2_lshlqv4di3): Remove.

From-SVN: r179668

12 years agoFix VIS3 assembler check and conditionalize testsuite on VIS3 support.
David S. Miller [Fri, 7 Oct 2011 17:23:47 +0000 (10:23 -0700)]
Fix VIS3 assembler check and conditionalize testsuite on VIS3 support.

gcc/

PR 50655
* configure.ac: Add .register directives to VIS3 test.
* configure: Regenerate.

gcc/testsuite/

PR 50655
* gcc.target/sparc/sparc.exp: Add vis3 target test.
* gcc.target/sparc/cmask.c: Use it.
* gcc.target/sparc/fhalve.c: Likewise.
* gcc.target/sparc/fnegop.c: Likewise.
* gcc.target/sparc/fpadds.c: Likewise.
* gcc.target/sparc/fshift.c: Likewise.
* gcc.target/sparc/fucmp.c: Likewise.
* gcc.target/sparc/lzd.c: Likewise.
* gcc.target/sparc/vis3misc.c: Likewise.
* gcc.target/sparc/xmul.c: Likewise.

From-SVN: r179667

12 years agoFix avx256 test cases for AVX2.
Richard Henderson [Fri, 7 Oct 2011 17:01:43 +0000 (10:01 -0700)]
Fix avx256 test cases for AVX2.

From-SVN: r179666

12 years agotestsuite_allocator.h (uneq_allocator): Add propagate_on_container_swap typedef for...
Jonathan Wakely [Fri, 7 Oct 2011 16:20:31 +0000 (16:20 +0000)]
testsuite_allocator.h (uneq_allocator): Add propagate_on_container_swap typedef for C++0x testing.

2011-10-07  Jonathan Wakely  <jwakely.gcc@gmail.com>

* testsuite/util/testsuite_allocator.h (uneq_allocator): Add
propagate_on_container_swap typedef for C++0x testing.

From-SVN: r179665

12 years ago* config.gcc (x86_64-*): Add core-avx-i, core-avx2 for with_cpu.
Richard Henderson [Fri, 7 Oct 2011 15:43:12 +0000 (08:43 -0700)]
* config.gcc (x86_64-*): Add core-avx-i, core-avx2 for with_cpu.

From-SVN: r179664

12 years agore PR other/49752 (Non-existing struct `tree_type' in fold_checksum_tree in fold...
Richard Henderson [Fri, 7 Oct 2011 15:35:49 +0000 (08:35 -0700)]
re PR other/49752 (Non-existing struct `tree_type' in fold_checksum_tree in fold-const.c, can't build with `--enable-checking=fold')

PR 49752
        * fold-const.c (fold_checksum_tree): Remove out-of-date assert.

From-SVN: r179663

12 years agopredicates.md (shift_amount_operand): Remove constant range check.
Andrew Stubbs [Fri, 7 Oct 2011 15:00:06 +0000 (15:00 +0000)]
predicates.md (shift_amount_operand): Remove constant range check.

2011-10-07  Andrew Stubbs  <ams@codesourcery.com>

gcc/
* config/arm/predicates.md (shift_amount_operand): Remove constant
range check.
(shift_operator): Check range of constants for all shift operators.

gcc/testsuite/
* gcc.dg/pr50193-1.c: New file.
* gcc.target/arm/shiftable.c: New file.

From-SVN: r179662

12 years agopredicates.md (shift_amount_operand): Remove constant range check.
Andrew Stubbs [Fri, 7 Oct 2011 14:59:37 +0000 (14:59 +0000)]
predicates.md (shift_amount_operand): Remove constant range check.

2011-10-07  Andrew Stubbs  <ams@codesourcery.com>

gcc/
* config/arm/predicates.md (shift_amount_operand): Remove constant
range check.
(shift_operator): Check range of constants for all shift operators.

gcc/testsuite/
* gcc.dg/pr50193-1.c: New file.
* gcc.target/arm/shiftable.c: New file.

From-SVN: r179661

12 years agore PR fortran/50625 ([OOP] ALLOCATABLE attribute lost for module CLASS variables)
Janus Weil [Fri, 7 Oct 2011 14:40:14 +0000 (16:40 +0200)]
re PR fortran/50625 ([OOP] ALLOCATABLE attribute lost for module CLASS variables)

2011-10-07  Janus Weil  <janus@gcc.gnu.org>

PR fortran/50625
* class.c (gfc_build_class_symbol): Fix whitespace.
* module.c (mio_symbol): Set 'class_ok' attribute.
* trans-decl.c (gfc_get_symbol_decl): Make sure the backend_decl has
been built for class symbols.

2011-10-07  Janus Weil  <janus@gcc.gnu.org>

PR fortran/50625
* gfortran.dg/class_46.f03: New.

From-SVN: r179660

12 years agopr47276.c (ASMNAME, [...]): Define.
Joern Rennecke [Fri, 7 Oct 2011 13:52:17 +0000 (13:52 +0000)]
pr47276.c (ASMNAME, [...]): Define.

        * gcc.dg/pr47276.c (ASMNAME, ASMNAME2, STRING): Define.
        (__EI___vsyslog_chk, __EI_syslog, __EI_vsyslog): Use ASMNAME.
        (syslog, vsyslog, __vsyslog_chk): Likewise.

        * gcc.dg/lto/20081222_1.c (ASMNAME, ASMNAME2, STRING): Define.
        (x, EXT_x): Use ASMNAME.

        * gcc.dg/torture/pr48044.c (ASMNAME, ASMNAME2, STRING): Define.
        (a, c): Use ASMNAME.

From-SVN: r179659

12 years agos390.c (s390_emit_tls_call_insn): Remove assertion.
Andreas Krebbel [Fri, 7 Oct 2011 13:50:01 +0000 (13:50 +0000)]
s390.c (s390_emit_tls_call_insn): Remove assertion.

2011-10-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

* config/s390/s390.c (s390_emit_tls_call_insn): Remove assertion.
Load GOT pointer for non-pic builds.
(s390_load_got): Replace pic_offset_table_rtx with hardcoded r12.
(s390_emit_call): Likewise.

From-SVN: r179658

12 years agore PR middle-end/50527 (inconsistent vla align)
Tom de Vries [Fri, 7 Oct 2011 12:49:56 +0000 (12:49 +0000)]
re PR middle-end/50527 (inconsistent vla align)

2011-10-07  Tom de Vries  <tom@codesourcery.com>

PR middle-end/50527
* gcc.dg/pr50527.c: New test.

From-SVN: r179656

12 years agore PR middle-end/50527 (inconsistent vla align)
Tom de Vries [Fri, 7 Oct 2011 12:49:49 +0000 (12:49 +0000)]
re PR middle-end/50527 (inconsistent vla align)

2011-10-07  Tom de Vries  <tom@codesourcery.com>

PR middle-end/50527
* tree.c (build_common_builtin_nodes): Add local_define_builtin for
BUILT_IN_ALLOCA_WITH_ALIGN.  Mark that BUILT_IN_ALLOCA_WITH_ALIGN can
throw.
* builtins.c (expand_builtin_alloca): Handle BUILT_IN_ALLOCA_WITH_ALIGN
arglist.  Set align for BUILT_IN_ALLOCA_WITH_ALIGN.
(expand_builtin): Handle BUILT_IN_ALLOCA_WITH_ALIGN.
(is_inexpensive_builtin): Handle BUILT_IN_ALLOCA_WITH_ALIGN.
* tree-ssa-ccp.c (evaluate_stmt): Set align for
BUILT_IN_ALLOCA_WITH_ALIGN.
(fold_builtin_alloca_for_var): Rename to ...
(fold_builtin_alloca_with_align): Set DECL_ALIGN from 2nd
BUILT_IN_ALLOCA_WITH_ALIGN argument.
(ccp_fold_stmt): Try folding BUILT_IN_ALLOCA_WITH_ALIGN using
fold_builtin_alloca_with_align.
(optimize_stack_restore): Handle BUILT_IN_ALLOCA_WITH_ALIGN.
* builtins.def (BUILT_IN_ALLOCA_WITH_ALIGN): Declare using
DEF_BUILTIN_STUB.
* ipa-pure-const.c (special_builtin_state): Handle
BUILT_IN_ALLOCA_WITH_ALIGN.
* tree-ssa-alias.c (ref_maybe_used_by_call_p_1)
(call_may_clobber_ref_p_1): Same.
* function.c (gimplify_parameters): Lower vla to
BUILT_IN_ALLOCA_WITH_ALIGN.
* gimplify.c (gimplify_vla_decl): Same.
* cfgexpand.c (expand_call_stmt): Handle BUILT_IN_ALLOCA_WITH_ALIGN.
* tree-mudflap.c (mf_xform_statements): Same.
* tree-ssa-dce.c (mark_stmt_if_obviously_necessary)
(mark_all_reaching_defs_necessary_1, propagate_necessity): Same.
* varasm.c (incorporeal_function_p): Same.
* tree-object-size.c (alloc_object_size): Same.
* gimple.c (gimple_build_call_from_tree): Same.

From-SVN: r179655

12 years agofunction.c (frame_required_for_rtx): Remove function.
Bernd Schmidt [Fri, 7 Oct 2011 12:20:17 +0000 (12:20 +0000)]
function.c (frame_required_for_rtx): Remove function.

* function.c (frame_required_for_rtx): Remove function.
(requires_stack_frame_p): New arg set_up_by_prologue.  All callers
changed.  Compute a set of mentioned registers and compare against
the new arg rather than calling frame_required_for_rtx.
(thread_prologue_and_epilogue_insns): Compute the set_up_by_prologue
reg set.  Convert the unconverted_simple_returns mechanism to store
jump insns rather than their basic blocks.  Also check the
orig_entry_edge destination for new blocks.

From-SVN: r179654

12 years agore PR middle-end/50650 (ICE in vect_is_simple_use_1, at tree-vect-stmts.c:5689)
Jakub Jelinek [Fri, 7 Oct 2011 11:48:03 +0000 (13:48 +0200)]
re PR middle-end/50650 (ICE in vect_is_simple_use_1, at tree-vect-stmts.c:5689)

PR tree-optimization/50650
* tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): Don't
call vect_is_simple_cond here, instead fail if cond_expr isn't
COMPARISON_CLASS_P or if get_vectype_for_scalar_type returns NULL
for cond_expr's first operand.
* tree-vect-stmts.c (vect_is_simple_cond): Static again.
* tree-vectorizer.h (vect_is_simple_cond): Remove prototype.

* gcc.c-torture/compile/pr50650.c: New test.

From-SVN: r179653

12 years agore PR lto/50492 (Ada bootstrap failure --with-build-config=bootstrap-lto)
Eric Botcazou [Fri, 7 Oct 2011 11:43:03 +0000 (11:43 +0000)]
re PR lto/50492 (Ada bootstrap failure --with-build-config=bootstrap-lto)

PR lto/50492
* gcc-interface/gigi.h (gnat_pushdecl): Adjust comment.
* gcc-interface/utils.c (global_context): New variable.
(gnat_pushdecl): Initialize it and set it as the DECL_CONTEXT of DECLs
that are either public external or at top level.  Use "No" macro.
(end_subprog_body): Call decl_function_context.
(rest_of_subprog_body_compilation): Likewise.

From-SVN: r179652

12 years agoDisable ABI warnings for gcc.c-torture/execute/vector-compare-2.c (PR tree-optimizati...
Rainer Orth [Fri, 7 Oct 2011 11:32:59 +0000 (11:32 +0000)]
Disable ABI warnings for gcc.c-torture/execute/vector-compare-2.c (PR tree-optimization/50575)

PR tree-optimization/50575
* gcc.c-torture/execute/vector-compare-2.x: New file.

From-SVN: r179651

12 years agogigi.h (gnat_useless_type_conversion): Declare.
Eric Botcazou [Fri, 7 Oct 2011 11:17:55 +0000 (11:17 +0000)]
gigi.h (gnat_useless_type_conversion): Declare.

* gcc-interface/gigi.h (gnat_useless_type_conversion): Declare.
(rest_of_subprog_body_compilation): Likewise.
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: For renaming,
test for useless conversions by means of gnat_useless_type_conversion.
* gcc-interface/trans.c: Include bitmap.h and cgraph.h.
(language_function): Add named_ret_val and other_ret_val.
(f_named_ret_val): New macro.
(f_other_ret_val): Likewise.
(gigi): Call rest_of_subprog_body_compilation.
(struct nrv_data): New structure.
(is_nrv_p): New predicate.
(prune_nrv_r): New helper function.
(prune_nrv_in_block): New function.
(finalize_nrv_r): New helper function.
(finalize_nrv): New function.
(return_value_ok_for_nrv_p): New predicate.
(build_return_expr): If optimization is enabled, record candidates for
the Named Return Value optimization.
(build_function_stub): Call rest_of_subprog_body_compilation.
(Subprogram_Body_to_gnu): If optimization is enabled and there are
candidates, finalize the Named Return Value optimization.
Call rest_of_subprog_body_compilation.
(call_to_gnu): At the end, if a return value is needed, simplify the
result before wrapping it up in a COMPOUND_EXPR.
* gcc-interface/utils.c (end_subprog_body): Split into...
(rest_of_subprog_body_compilation): ...this.  New function.
(gnat_useless_type_conversion): Likewise.

From-SVN: r179650

12 years agoDon't XFAIL gcc.dg/uninit-B.c etc. (PR middle-end/50125)
Rainer Orth [Fri, 7 Oct 2011 09:02:13 +0000 (09:02 +0000)]
Don't XFAIL gcc.dg/uninit-B.c etc. (PR middle-end/50125)

PR middle-end/50125
* gcc.dg/uninit-B.c (baz): Remove xfail *-*-*.
* gcc.dg/uninit-pr19430.c (main): Remove xfail *-*-*.
(bar3): Likewise.

From-SVN: r179649

12 years agore PR testsuite/50637 (gcc.dg/vect/vect-align-2.c is invalid (FAILs with -O2 -flto...
Richard Guenther [Fri, 7 Oct 2011 08:28:48 +0000 (08:28 +0000)]
re PR testsuite/50637 (gcc.dg/vect/vect-align-2.c is invalid (FAILs with -O2 -flto -fpeel-loops))

2011-10-07  Richard Guenther  <rguenther@suse.de>

PR testsuite/50637
* gcc.dg/vect/vect-align-2.c: Increase array size.

From-SVN: r179648

12 years agos390.md (DWH, dwh): New mode macros.
Andreas Krebbel [Fri, 7 Oct 2011 06:51:26 +0000 (06:51 +0000)]
s390.md (DWH, dwh): New mode macros.

2011-10-07  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

* config/s390/s390.md (DWH, dwh): New mode macros.
("umulsidi3"): Extend to support "umulditi3" as well.

From-SVN: r179647

12 years agore PR target/50603 ([x32] Unnecessary lea)
Uros Bizjak [Fri, 7 Oct 2011 06:43:17 +0000 (08:43 +0200)]
re PR target/50603 ([x32] Unnecessary lea)

PR target/50603
* config/i386/i386.c (ix86_fixup_binary_operands): Force src2 of
integer PLUS RTX to a register to improve address combine.

testsuite/ChangeLog:

PR target/50603
* gcc.target/i386/pr50603.c: New test.

From-SVN: r179646

12 years agoDaily bump.
GCC Administrator [Fri, 7 Oct 2011 00:19:37 +0000 (00:19 +0000)]
Daily bump.

From-SVN: r179642

12 years agore PR middle-end/50632 (FAIL: gcc.dg/pr50132.c)
Richard Henderson [Thu, 6 Oct 2011 22:22:11 +0000 (15:22 -0700)]
re PR middle-end/50632 (FAIL: gcc.dg/pr50132.c)

PR 50632

        * combine-stack-adjust.c (maybe_move_args_size_note): Add after
        parameter; use it to decide whether to merge two notes.
        (combine_stack_adjustments_for_block): Use maybe_move_args_size_note
        for the deallocation case as well.

From-SVN: r179637

12 years agore PR c++/39164 ([C++0x] defaulted dtor redefinition not caught)
Jason Merrill [Thu, 6 Oct 2011 19:56:53 +0000 (15:56 -0400)]
re PR c++/39164 ([C++0x] defaulted dtor redefinition not caught)

PR c++/39164
* decl.c (grokfndecl): Diagnose redefinition of defaulted fn.

From-SVN: r179634

12 years ago[multiple changes]
Arnaud Charlet [Thu, 6 Oct 2011 19:37:25 +0000 (21:37 +0200)]
[multiple changes]

2011-10-06  Thomas Quinot  <quinot@adacore.com>

* einfo.ads, exp_attr.adb, exp_ch3.adb, exp_ch4.adb, exp_ch7.adb,
exp_ch9.adb, exp_ch9.ads, exp_strm.adb, exp_util.adb, freeze.adb,
g-debpoo.ads, opt.ads, par-ch12.adb, par-ch2.adb, par-ch3.adb,
par-ch5.adb, par-ch6.adb, sem_aggr.adb, sem_attr.adb, sem_cat.adb,
sem_ch10.adb, sem_ch12.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb,
sem_ch6.adb, sem_intr.adb, sem_res.ads, sem_type.adb, sem_util.adb,
s-regpat.adb, s-tpopde-vms.ads: Minor reformatting.
* s-osinte-freebsd.ads: Fix for tasking failures on FreeBSD.

2011-10-06  Ed Schonberg  <schonberg@adacore.com>

* a-cihase.adb, a-ciorma.adb: Avoid accessibility checks in container
references.

2011-10-06  Matthew Heaney  <heaney@adacore.com>

* a-cuprqu.ads, a-cuprqu.adb, a-cbprqu.ads, a-cbprqu.adb
(Dequeue_Only_High_Priority): Protected procedure now implemented.

2011-10-06  Vincent Celier  <celier@adacore.com>

* g-trasym.adb: Replace old implementation with the default
implementation that returns list of addresses as "0x...".
* g-trasym.ads: Update the list of platforms with the full
capability.  Indicate that there is a default implementation
for other platforms.
* g-trasym-unimplemented.ads, g-trasym-unimplemented.adb: Remove.
* gcc-interface/Makefile.in: Remove g-trasym-unimplemented, as there
is now a default implementation for all platforms without the full
capability.

From-SVN: r179631

12 years agosystem.h (OUTPUT_ADDR_CONST_EXTRA): Poison.
Anatoly Sokolov [Thu, 6 Oct 2011 19:25:53 +0000 (23:25 +0400)]
system.h (OUTPUT_ADDR_CONST_EXTRA): Poison.

* system.h (OUTPUT_ADDR_CONST_EXTRA): Poison.
* doc/tm.texi.in (OUTPUT_ADDR_CONST_EXTRA): Remove documentation.
* doc/tm.texi: Regenerate.
* target.def (output_addr_const_extra): Use
hook_bool_FILEptr_rtx_false.
* targhooks.c (default_asm_output_addr_const_extra): Remove.
* targhooks.h (default_asm_output_addr_const_extra): Remove.
* hooks.c (hook_bool_FILEptr_rtx_false): New functions.
* hooks.h (hook_bool_FILEptr_rtx_false): Declare.

From-SVN: r179630

12 years ago[multiple changes]
Arnaud Charlet [Thu, 6 Oct 2011 19:24:49 +0000 (21:24 +0200)]
[multiple changes]

2011-10-06  Robert Dewar  <dewar@adacore.com>

* a-ciorse.adb, a-cihase.adb, a-cihase.ads, a-coorse.adb,
a-cborse.adb, a-comutr.adb, a-ciorma.adb, a-cbmutr.adb,
a-cbmutr.ads, a-cbhase.adb, a-cbhase.ads: Minor reformatting and code
reorganization (use conditional expressions).

2011-10-06  Robert Dewar  <dewar@adacore.com>

* sem_res.adb (Resolve_Arithmetic_Op): Fix bad warning for
floating divide by zero.

2011-10-06  Ed Schonberg  <schonberg@adacore.com>

* sem_ch6.adb: Limited interfaces that are not immutably limited
are OK in return statements.

From-SVN: r179629

12 years agoCorrect errors in sparc SImode popcount/clz patterns when 64-bit.
David S. Miller [Thu, 6 Oct 2011 19:15:39 +0000 (19:15 +0000)]
Correct errors in sparc SImode popcount/clz patterns when 64-bit.

* config/sparc/sparc.md (popcount<mode>2, clz<mode>2): Split up into...
(popcountdi2, popcountsi2, clzdi2, clzsi2): Explicit expanders, in the
SI mode 64-bit code gen case explicitly zero-extend and truncate.
(*popcount<mode>_sp64): Split up into...
(*popcountdi_sp64, *popcountsi_64): Explicit instantiations, and in the
SImode case use truncate.
(*clzsi_sp64): Rewrite to use truncate, and let the expander emit the
subtract so the compiler can optimize it.
(SIDI): Remove unused mode iterator.

From-SVN: r179628

12 years agofunction.c (thread_prologue_and_epilogue_insns): Emit split prologue on the orig_entr...
Bernd Schmidt [Thu, 6 Oct 2011 18:59:36 +0000 (18:59 +0000)]
function.c (thread_prologue_and_epilogue_insns): Emit split prologue on the orig_entry_edge.

* function.c (thread_prologue_and_epilogue_insns): Emit split
prologue on the orig_entry_edge. Don't account for it in
prologue_clobbered.

From-SVN: r179627

12 years agore PR tree-optimization/50596 (Problems in vectorization of condition expression)
Jakub Jelinek [Thu, 6 Oct 2011 17:49:36 +0000 (19:49 +0200)]
re PR tree-optimization/50596 (Problems in vectorization of condition expression)

PR tree-optimization/50596
* tree-vectorizer.h (vect_is_simple_cond): New prototype.
(NUM_PATTERNS): Change to 6.
* tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): New
function.
(vect_vect_recog_func_ptrs): Add vect_recog_mixed_size_cond_pattern.
(vect_mark_pattern_stmts): Don't create stmt_vinfo for def_stmt
if it already has one, and don't set STMT_VINFO_VECTYPE in it
if it is already set.
* tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Handle
COND_EXPR in pattern stmts.
(vect_is_simple_cond): No longer static.

* lib/target-supports.exp (check_effective_target_vect_cond_mixed):
New.
* gcc.dg/vect/vect-cond-8.c: New test.

From-SVN: r179626

12 years agoi386: Use the proper mode for blend in vshuffle.
Richard Henderson [Thu, 6 Oct 2011 17:12:44 +0000 (10:12 -0700)]
i386: Use the proper mode for blend in vshuffle.

From-SVN: r179625

12 years agoi386: Add AVX2 support to ix86_expand_vshuffle.
Richard Henderson [Thu, 6 Oct 2011 17:12:36 +0000 (10:12 -0700)]
i386: Add AVX2 support to ix86_expand_vshuffle.

From-SVN: r179624

12 years agoRework vector shuffle tests.
Richard Henderson [Thu, 6 Oct 2011 17:12:28 +0000 (10:12 -0700)]
Rework vector shuffle tests.

Test vector sizes 8, 16, and 32.  Test most data types for each size.

From-SVN: r179623

12 years agovshuffle: Use correct mode for mask operand.
Richard Henderson [Thu, 6 Oct 2011 17:12:19 +0000 (10:12 -0700)]
vshuffle: Use correct mode for mask operand.

From-SVN: r179622

12 years agotree-vect-patterns.c (vect_pattern_recog_1): Use vect_recog_func_ptr typedef for...
Jakub Jelinek [Thu, 6 Oct 2011 16:50:23 +0000 (18:50 +0200)]
tree-vect-patterns.c (vect_pattern_recog_1): Use vect_recog_func_ptr typedef for the first argument.

* tree-vect-patterns.c (vect_pattern_recog_1): Use
vect_recog_func_ptr typedef for the first argument.
(vect_pattern_recog): Rename vect_recog_func_ptr variable
to vect_recog_func, use vect_recog_func_ptr typedef for it.

From-SVN: r179621

12 years agore PR tree-optimization/49279 (Optimization incorrectly presuming constant variable...
Jakub Jelinek [Thu, 6 Oct 2011 16:38:29 +0000 (18:38 +0200)]
re PR tree-optimization/49279 (Optimization incorrectly presuming constant variable inside loop in g++ 4.5 and 4.6 with -O2 and -O3 for x86_64 targets)

PR tree-optimization/49279
* tree-ssa-structalias.c (find_func_aliases): Don't handle
CAST_RESTRICT.
* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Allow
restrict propagation.
* tree-ssa.c (useless_type_conversion_p): Don't return false
if TYPE_RESTRICT differs.

* gcc.dg/tree-ssa/restrict-4.c: XFAIL.
* gcc.c-torture/execute/pr49279.c: New test.

From-SVN: r179620

12 years agofunction.c (thread_prologue_and_epilogue_insns): Build a vector of unconverted simple...
Bernd Schmidt [Thu, 6 Oct 2011 15:59:53 +0000 (15:59 +0000)]
function.c (thread_prologue_and_epilogue_insns): Build a vector of unconverted simple return blocks rather than trying to...

* function.c (thread_prologue_and_epilogue_insns): Build a vector
of unconverted simple return blocks rather than trying to
recompute them later based on bb_flags bitmap tests.

From-SVN: r179619

12 years agotree-flow.h (get_var_ann): Don't declare.
Michael Matz [Thu, 6 Oct 2011 15:18:12 +0000 (15:18 +0000)]
tree-flow.h (get_var_ann): Don't declare.

* tree-flow.h (get_var_ann): Don't declare.
* tree-flow-inline.h (get_var_ann): Remove.
(set_is_used): Use var_ann, not get_var_ann.
* tree-dfa.c (add_referenced_var): Inline body of get_var_ann.
* tree-profile.c (gimple_gen_edge_profiler): Call
find_referenced_var_in.
(gimple_gen_interval_profiler): Ditto.
(gimple_gen_pow2_profiler): Ditto.
(gimple_gen_one_value_profiler): Ditto.
(gimple_gen_average_profiler): Ditto.
(gimple_gen_ior_profiler): Ditto.
(gimple_gen_ic_profiler): Ditto plus call add_referenced_var.
(gimple_gen_ic_func_profiler): Call add_referenced_var.
* tree-mudflap.c (execute_mudflap_function_ops): Call
add_referenced_var.

From-SVN: r179618

12 years agoassign_neg.cc: Tidy dg- directives, for C++0x testing too.
Paolo Carlini [Thu, 6 Oct 2011 14:43:26 +0000 (14:43 +0000)]
assign_neg.cc: Tidy dg- directives, for C++0x testing too.

2011-10-06  Paolo Carlini  <paolo.carlini@oracle.com>

* testsuite/27_io/ios_base/cons/assign_neg.cc: Tidy dg- directives,
for C++0x testing too.
* testsuite/27_io/ios_base/cons/copy_neg.cc: Likewise.
* testsuite/ext/pb_ds/example/hash_resize_neg.cc: Likewise.
* testsuite/24_iterators/istreambuf_iterator/requirements/
base_classes.cc: Adjust for C++0x testing.
* testsuite/ext/codecvt/char-1.cc: Avoid warnings in C++0x mode.
* testsuite/ext/codecvt/char-2.cc: Likewise.
* testsuite/ext/codecvt/wchar_t.cc: Likewise.

From-SVN: r179616

12 years agotree-vect-patterns.c (vect_handle_widen_mult_by_const): For lhs don't set SSA_NAME_DE...
Jakub Jelinek [Thu, 6 Oct 2011 14:36:44 +0000 (16:36 +0200)]
tree-vect-patterns.c (vect_handle_widen_mult_by_const): For lhs don't set SSA_NAME_DEF_STMT that has been already set by...

* tree-vect-patterns.c (vect_handle_widen_mult_by_const): For lhs
don't set SSA_NAME_DEF_STMT that has been already set by
gimple_build_assign_with_ops.
(vect_recog_pow_pattern, vect_recog_widen_sum_pattern,
vect_operation_fits_smaller_type, vect_recog_over_widening_pattern):
Likewise.

From-SVN: r179615

12 years agotree.h (avoid_folding_inline_builtin): New prototype.
Jakub Jelinek [Thu, 6 Oct 2011 14:34:48 +0000 (16:34 +0200)]
tree.h (avoid_folding_inline_builtin): New prototype.

* tree.h (avoid_folding_inline_builtin): New prototype.
* builtins.c (avoid_folding_inline_builtin): No longer static.
* gimple-fold.c (gimple_fold_builtin): Give up if
avoid_folding_inline_builtin returns true.

From-SVN: r179614

12 years agotree-vect-generic.c (vector_element): Look at previous generated results.
Richard Guenther [Thu, 6 Oct 2011 14:28:47 +0000 (14:28 +0000)]
tree-vect-generic.c (vector_element): Look at previous generated results.

2011-10-06  Richard Guenther  <rguenther@suse.de>

* tree-vect-generic.c (vector_element): Look at previous
generated results.

From-SVN: r179613

12 years agore PR c++/39950 (__unix__ macro is not predefined on AIX platform (C and C++))
David Edelsohn [Thu, 6 Oct 2011 14:05:54 +0000 (14:05 +0000)]
re PR c++/39950 (__unix__ macro is not predefined on AIX platform (C and C++))

        PR target/39950
        * config/rs6000/aix.h (TARGET_OS_AIX_CPP_BUILTINS): Define
        __powerpc__, __PPC__, __unix__.

From-SVN: r179612

12 years agoRestore FreeBSD/SPARC bootstrap (PR bootstrap/49804)
Rainer Orth [Thu, 6 Oct 2011 13:48:14 +0000 (13:48 +0000)]
Restore FreeBSD/SPARC bootstrap (PR bootstrap/49804)

From-SVN: r179610

12 years agoi386.opt (recip_mask, [...]): New variables and cl_target member.
Michael Matz [Thu, 6 Oct 2011 13:27:47 +0000 (13:27 +0000)]
i386.opt (recip_mask, [...]): New variables and cl_target member.

* i386/i386.opt (recip_mask, recip_mask_explicit,
x_recip_mask_explicit): New variables and cl_target member.
(mrecip=): New option.
* i386/i386.h (RECIP_MASK_DIV, RECIP_MASK_SQRT, RECIP_MASK_VEC_DIV,
RECIP_MASK_VEC_SQRT, RECIP_MASK_ALL, RECIP_MASK_NONE): New bitmasks.
(TARGET_RECIP_DIV, TARGET_RECIP_SQRT, TARGET_RECIP_VEC_DIV,
TARGET_RECIP_VEC_SQRT): New tests.
* i386/i386.md (divsf3): Check TARGET_RECIP_DIV.
(sqrt<mode>2): Check TARGET_RECIP_SQRT.
* i386/sse.md (div<mode>3): Check TARGET_RECIP_VEC_DIV.
(sqrt<mode>2): Check TARGET_RECIP_VEC_SQRT.
* i386/i386.c (ix86_option_override_internal): Set recip_mask
for -mrecip and -mrecip=options.
(ix86_function_specific_save): Save recip_mask_explicit.
(ix86_function_specific_restore): Restore recip_mask_explicit.

* doc/invoke.texi (ix86 Options): Document the new option.

From-SVN: r179608

12 years agore PR target/49049 (ICE in copyprop_hardreg_forward_1, at regcprop.c:767)
Bernd Schmidt [Thu, 6 Oct 2011 13:12:50 +0000 (13:12 +0000)]
re PR target/49049 (ICE in copyprop_hardreg_forward_1, at regcprop.c:767)

PR target/49049
* config/arm/arm.md (arm_subsi3_insn): Lose the last alternative.

* gcc.c-torture/compile/pr49049.c: New test.

From-SVN: r179607

12 years agore PR target/50305 (Inline asm reload failure when building Linux kernel)
Ulrich Weigand [Thu, 6 Oct 2011 11:50:26 +0000 (11:50 +0000)]
re PR target/50305 (Inline asm reload failure when building Linux kernel)

gcc/
PR target/50305
* config/arm/arm.c (arm_legitimize_reload_address): Recognize
output of a previous pass through legitimize_reload_address.
Do not attempt to optimize addresses if the base register is
equivalent to a constant.

gcc/testsuite/
PR target/50305
* gcc.target/arm/pr50305.c: New test.

From-SVN: r179603

12 years agofunction.c (thread_prologue_and_epilogue_insns): Mark last_bb_active as possibly...
Andreas Krebbel [Thu, 6 Oct 2011 11:44:51 +0000 (11:44 +0000)]
function.c (thread_prologue_and_epilogue_insns): Mark last_bb_active as possibly unused.

2011-10-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>

* function.c (thread_prologue_and_epilogue_insns): Mark
last_bb_active as possibly unused.  It is unused for targets which
do neither have "return" nor "simple_return" expanders.

From-SVN: r179601

12 years agofold-const.c (fold_ternary_loc): Also fold non-constant vector CONSTRUCTORs.
Richard Biener [Thu, 6 Oct 2011 10:35:20 +0000 (10:35 +0000)]
fold-const.c (fold_ternary_loc): Also fold non-constant vector CONSTRUCTORs.

2011-10-06  Richard Guenther  <rguenther@suse.de>

* fold-const.c (fold_ternary_loc): Also fold non-constant
vector CONSTRUCTORs.  Make more efficient.
* tree-ssa-dom.c (cprop_operand): Don't handle virtual operands.
(cprop_into_stmt): Don't propagate into virtual operands.
(optimize_stmt): Really dump original statement.

From-SVN: r179598

12 years agofold-const.c (fold_ternary_loc): Also fold non-constant vector CONSTRUCTORs.
Richard Guenther [Thu, 6 Oct 2011 10:34:18 +0000 (10:34 +0000)]
fold-const.c (fold_ternary_loc): Also fold non-constant vector CONSTRUCTORs.

2011-10-06  Richard Guenther  <rguenther@suse.de>

* fold-const.c (fold_ternary_loc): Also fold non-constant
vector CONSTRUCTORs.  Make more efficient.
* tree-ssa-dom.c (cprop_operand): Don't handle virtual operands.
(cprop_into_stmt): Don't propagate into virtual operands.
(optimize_stmt): Really dump original statement.

From-SVN: r179597

12 years ago* config/rx/rx.md (smin3): Revert previous delta.
Nick Clifton [Thu, 6 Oct 2011 10:17:48 +0000 (10:17 +0000)]
* config/rx/rx.md (smin3): Revert previous delta.

From-SVN: r179596

12 years agore PR tree-optimization/38884 (missed FRE with __real and __imag)
Richard Guenther [Thu, 6 Oct 2011 08:41:44 +0000 (08:41 +0000)]
re PR tree-optimization/38884 (missed FRE with __real and __imag)

2011-10-06  Richard Guenther  <rguenther@suse.de>

PR tree-optimization/38884
* tree-ssa-sccvn.c (vn_reference_lookup_3): Handle partial
reads from aggregate SSA names.

* gcc.dg/tree-ssa/ssa-fre-34.c: New testcase.
* gcc.dg/tree-ssa/ssa-fre-35.c: Likewise.

From-SVN: r179593

12 years agotree-vect-patterns.c (vect_pattern_recog_1): Add stmts_to_replace argument...
Jakub Jelinek [Thu, 6 Oct 2011 06:58:21 +0000 (08:58 +0200)]
tree-vect-patterns.c (vect_pattern_recog_1): Add stmts_to_replace argument...

* tree-vect-patterns.c (vect_pattern_recog_1): Add stmts_to_replace
argument, truncate it at the beginning instead of allocating there
and freeing at the end.
(vect_pattern_recog): Allocate stmts_to_replace here and free at end,
pass its address to vect_pattern_recog_1.

From-SVN: r179592

12 years agoAdd support for lzd and popc instructions on sparc.
David S. Miller [Thu, 6 Oct 2011 06:28:35 +0000 (06:28 +0000)]
Add support for lzd and popc instructions on sparc.

gcc/

* config/sparc/sparc.opt (POPC): New option.
* doc/invoke.texi: Document it.
* config/sparc/sparc.c (sparc_option_override): Enable MASK_POPC by
default on Niagara-2 and later.
* config/sparc/sparc.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
* config/sparc/sparc.md (SIDI): New mode iterator.
(ffsdi2): Delete commented out pattern and comments.
(popcount<mode>2, clz<mode>2): New expanders.
(*popcount<mode>_sp64, popcountsi_v8plus, popcountdi_v8plus,
*clzdi_sp64, clzdi_v8plus, *clzsi_sp64, clzsi_v8plus): New insns.

gcc/testsuite/

* gcc.target/sparc/lzd.c: New test.
* gcc.target/sparc/popc.c: New test.

From-SVN: r179591

12 years agoFixes the spacing in ChangeLog entry.
Artjoms Sinkarovs [Thu, 6 Oct 2011 02:39:55 +0000 (02:39 +0000)]
Fixes the spacing in ChangeLog entry.

From-SVN: r179589

12 years agoFix bconstp-3.c failure in PR50607.
Artjoms Sinkarovs [Thu, 6 Oct 2011 01:57:27 +0000 (01:57 +0000)]
Fix bconstp-3.c failure in PR50607.

From-SVN: r179588

12 years agopod_char_traits.h: Avoid warnings in C++0x mode when int_type is unsigned.
Paolo Carlini [Thu, 6 Oct 2011 01:41:49 +0000 (01:41 +0000)]
pod_char_traits.h: Avoid warnings in C++0x mode when int_type is unsigned.

2011-10-05  Paolo Carlini  <paolo.carlini@oracle.com>

* include/ext/pod_char_traits.h: Avoid warnings in C++0x mode
when int_type is unsigned.

From-SVN: r179587

12 years agoDaily bump.
GCC Administrator [Thu, 6 Oct 2011 00:19:02 +0000 (00:19 +0000)]
Daily bump.

From-SVN: r179586

12 years agostrlenopt-21.c (dg-options): Remove -fdump-tree-optimized.
Uros Bizjak [Wed, 5 Oct 2011 21:02:59 +0000 (23:02 +0200)]
strlenopt-21.c (dg-options): Remove -fdump-tree-optimized.

* gcc.dg/strlenopt-21.c (dg-options): Remove -fdump-tree-optimized.
* gcc.dg/ipa/inline-5.c: Cleanup inline ipa dump.
* g++.dg/other/final1.C: Cleanup original tree dump.

From-SVN: r179579

12 years agofunction.c (thread_prologue_and_epilogue_insns): Don't shrink-wrap if profiling after...
Bernd Schmidt [Wed, 5 Oct 2011 20:42:21 +0000 (20:42 +0000)]
function.c (thread_prologue_and_epilogue_insns): Don't shrink-wrap if profiling after the prologue.

* function.c (thread_prologue_and_epilogue_insns): Don't shrink-wrap
if profiling after the prologue.

From-SVN: r179577

12 years ago* ChangeLog: Update my previous entry.
Uros Bizjak [Wed, 5 Oct 2011 19:41:27 +0000 (21:41 +0200)]
* ChangeLog: Update my previous entry.

From-SVN: r179574

12 years agovect.exp (VEC_CFLAGS): Append "-fdump-tree-veclower2".
Uros Bizjak [Wed, 5 Oct 2011 19:40:14 +0000 (21:40 +0200)]
vect.exp (VEC_CFLAGS): Append "-fdump-tree-veclower2".

* gcc.dg/vect/vect.exp (VEC_CFLAGS): Append "-fdump-tree-veclower2".
* gcc.dg/vect/vec-scal-opt.c: Scan and cleanup veclower2 tree dump.
* gcc.dg/vect/vec-scal-opt1.c: Ditto.
* gcc.dg/vect/vec-scal-opt2.c: Ditto.

From-SVN: r179573

12 years agore PR tree-optimization/50613 (ICE: tree check: expected ssa_name, have addr_expr...
Jakub Jelinek [Wed, 5 Oct 2011 18:09:56 +0000 (20:09 +0200)]
re PR tree-optimization/50613 (ICE: tree check: expected ssa_name, have addr_expr in find_equal_ptrs, at tree-ssa-strlen.c:712 with -foptimize-strlen -fno-tree-ccp)

PR tree-optimization/50613
* tree-ssa-strlen.c (find_equal_ptrs): If CASE_CONVERT
operand is ADDR_EXPR, fallthru into ADDR_EXPR handling,
and if it is neither that not SSA_NAME, give up.

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

From-SVN: r179567

12 years agoFix vect-shuffle-* test cases.
Richard Henderson [Wed, 5 Oct 2011 17:45:36 +0000 (10:45 -0700)]
Fix vect-shuffle-* test cases.

From-SVN: r179566

12 years agovect.exp (VEC_CFLAGS): Move initialization after DEFAULT_VECTFLAGS initialization.
Uros Bizjak [Wed, 5 Oct 2011 17:41:01 +0000 (19:41 +0200)]
vect.exp (VEC_CFLAGS): Move initialization after DEFAULT_VECTFLAGS initialization.

* gcc.dg/vect/vect.exp (VEC_CFLAGS): Move initialization after
DEFAULT_VECTFLAGS initialization.

From-SVN: r179565

12 years agoi386: Rewrite ix86_expand_vshuffle.
Richard Henderson [Wed, 5 Oct 2011 17:40:58 +0000 (10:40 -0700)]
i386: Rewrite ix86_expand_vshuffle.

1: Handle TARGET_XOP.
2: Reduce code duplication.
3: Use ASHIFT instead of MULT for scaling.
4: Fix errors in building convert-to-v16qi indicies.
5: Handle v2di without sse4.1.

From-SVN: r179564

12 years agoFix lower_vec_shuffle.
Richard Henderson [Wed, 5 Oct 2011 17:40:49 +0000 (10:40 -0700)]
Fix lower_vec_shuffle.

1: It can never fail.
2: It should mask the input indicies.

From-SVN: r179563

12 years agoi386.c (distance_non_agu_define): Simplify calculation of "found".
Uros Bizjak [Wed, 5 Oct 2011 17:24:01 +0000 (19:24 +0200)]
i386.c (distance_non_agu_define): Simplify calculation of "found".

* config/i386/i386.c (distance_non_agu_define): Simplify calculation
of "found".  Simplify return value calculation.
(distance_agu_use): Ditto.

From-SVN: r179561

12 years agore PR bootstrap/50621 (Bootstrap failure)
Bernd Schmidt [Wed, 5 Oct 2011 17:17:12 +0000 (17:17 +0000)]
re PR bootstrap/50621 (Bootstrap failure)

PR bootstrap/50621
* config/i386/i386.c (ix86_add_cfa_restore_note): Omit notes only
if the function was not shrink-wrapped.
(ix86_expand_epilogue): Ensure queued cfa_adjust notes are attached
to an insn.
* function.c (thread_prologue_and_epilogue_insns): Make sure the
shrink_wrapped flag is set even if there is no dump file.

From-SVN: r179560

12 years agorx.opt (mpid): Define.
DJ Delorie [Wed, 5 Oct 2011 15:07:21 +0000 (11:07 -0400)]
rx.opt (mpid): Define.

* config/rx/rx.opt (mpid): Define.
* config/rx/t-rx (MULTILIB_OPTIONS): Add -mpid
(MULTILIB_DIRNAMES): Add pid.
* config/rx/rx.c (rx_gp_base_regnum_val, rx_pid_base_regnum_val)
(rx_num_interrupt_regs): New variable.
(rx_gp_base_regnum): New function.  Returns the number of the
small data area register.
(rx_pid_base_regnum): New function.  Returns the number of the pid
base register.
(rx_decl_for_addr): New function.  Returns the symbolic part of a
MEM.
(rx_pid_data_operand): New function.  Returns whether an object is
in the position independent data area.
(rx_legitimize_address): New function.  Puts undecided PID
objects in the PID data area.
(rx_is_legitimate_address): Add support for PID operands.
(rx_print_operand_address): Likewise.
(rx_print_operand): Likewise.
(rx_maybe_pidify_operand): New function.  Determine if an operand
is suitable for PID addressing.
(rx_gen_move_template): Add PID support.
(rx_conditional_register_usage): Likewise.
(rx_option_override): Initialise rx_num_interrupt_regs.
(rx_is_legitimate_constant): Add support for PID constants.
(TARGET_LEGITIMIZE_ADDRESS): Define.
* config/rx/constraints.md (Rpid): Define.
(Rpda): Define.
* config/rx/rx.md (UNSPEC_PID_ADDR): Define.
(tablejump): Add PID support.
(mov<>): Likewise.
(mov<>_internal): Likewise.
(addsi3): Convert to an expander.  Add PID support.
(pid_addr): New pattern.
* config/rx/rx.h (CPP_SPEC): Define.
(ASM_SPEC): Pass -mpid and -mint-register on to assembler.
(CASE_VECTOR_PC_RELATIVE): Define.
(JUMP_TABLES_IN_TEXT_SECTION): Enable for PID mode.
* config/rx/rx-protos.h (rx_maybe_pidify_operand): Prototype.
* doc/invoke.texi (RX Options): Document -mpid command line
option.

Co-Authored-By: Nick Clifton <nickc@redhat.com>
From-SVN: r179558

12 years agore PR tree-optimization/38885 (missed FRE with BIT_FIELD_REF and vectors)
Richard Guenther [Wed, 5 Oct 2011 14:35:15 +0000 (14:35 +0000)]
re PR tree-optimization/38885 (missed FRE with BIT_FIELD_REF and vectors)

2011-10-05  Richard Guenther  <rguenther@suse.de>

PR tree-optimization/38885
* tree-ssa-sccvn.c (vn_reference_lookup_3): Handle partial reads
from constants.

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

From-SVN: r179556

12 years agoinvoke.texi (-fshrink-wrap): Document.
Bernd Schmidt [Wed, 5 Oct 2011 12:59:23 +0000 (12:59 +0000)]
invoke.texi (-fshrink-wrap): Document.

* doc/invoke.texi (-fshrink-wrap): Document.
* opts.c (default_options_table): Add it.
* common.opt (fshrink-wrap): Add.
* function.c (emit_return_into_block): Remove useless declaration.
(record_hard_reg_uses_1, record_hard_reg_uses, frame_required_for_rtx,
requires_stack_frame_p, gen_return_pattern): New static functions.
(emit_return_into_block): New arg simple_p.  All callers changed.
Use gen_return_pattern.
(thread_prologue_and_epilogue_insns): Implement shrink-wrapping.
* config/i386/i386.md (return): Expand into a simple_return.
(simple_return): New expander):
(simple_return_internal, simple_return_internal_long,
simple_return_pop_internal_long, simple_return_indirect_internal):
Renamed from return_internal, return_internal_long,
return_pop_internal_long and return_indirect_internal; changed to use
simple_return.
* config/i386/i386.c (ix86_expand_epilogue): Adjust to expand
simple returns.
(ix86_pad_returns): Likewise.
* function.h (struct rtl_data): Add member shrink_wrapped.
* cfgcleanup.c (outgoing_edges_match): If shrink-wrapped, edges that
are not jumps or sibcalls can't be compared.

* gcc.target/i386/sw-1.c: New test.

From-SVN: r179553