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

12 years agotree-ssa-sccvn.c (vn_get_expr_for): Handle CONSTRUCTOR of vector type.
Richard Guenther [Wed, 5 Oct 2011 12:25:35 +0000 (12:25 +0000)]
tree-ssa-sccvn.c (vn_get_expr_for): Handle CONSTRUCTOR of vector type.

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

* tree-ssa-sccvn.c (vn_get_expr_for): Handle CONSTRUCTOR of
vector type.
(simplify_unary_expression): Handle BIT_FIELD_REFs.
(try_to_simplify): Handle BIT_FIELD_REFs.

From-SVN: r179549

12 years agoavx256-unaligned-load-3.c (dg-options): Add -mtune=generic.
Uros Bizjak [Wed, 5 Oct 2011 12:21:30 +0000 (14:21 +0200)]
avx256-unaligned-load-3.c (dg-options): Add -mtune=generic.

* gcc.target/i386/avx256-unaligned-load-3.c (dg-options): Add
-mtune=generic.
* gcc.target/i386/avx256-unaligned-store-3.c (dg-options): Ditto.

From-SVN: r179548

12 years agoavr-protos.h (avr_out_addto_sp): New prototype.
Georg-Johann Lay [Wed, 5 Oct 2011 11:16:10 +0000 (11:16 +0000)]
avr-protos.h (avr_out_addto_sp): New prototype.

* config/avr/avr-protos.h (avr_out_addto_sp): New prototype.
* config/avr/avr.c (avr_out_addto_sp): New function.
(adjust_insn_length): Handle ADJUST_LEN_ADDTO_SP.
* config/avr/avr.md (adjust_len): Add "addto_sp".
(*movhi_sp): Remove insn.
(*addhi3_sp_R_pc2, *addhi3_sp_R_pc3): Merge to *addhi3_sp_R.

From-SVN: r179544

12 years agogimple-fold.c (gimple_fold_stmt_to_constant_1): For ternary ops with an embedded...
Richard Guenther [Wed, 5 Oct 2011 10:54:14 +0000 (10:54 +0000)]
gimple-fold.c (gimple_fold_stmt_to_constant_1): For ternary ops with an embedded expression valueize and fold that as well.

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

* gimple-fold.c (gimple_fold_stmt_to_constant_1): For
ternary ops with an embedded expression valueize and fold
that as well.
* tree-ssa-sccvn.c (try_to_simplify): Also allow SSA name
results from gimple_fold_stmt_to_constant_1.

From-SVN: r179543

12 years agorx.md (tablejump): Add missing label.
Nick Clifton [Wed, 5 Oct 2011 10:26:58 +0000 (10:26 +0000)]
rx.md (tablejump): Add missing label.

* config/rx/rx.md (tablejump): Add missing label.
(adddi3_internal): Mark operand 0 as early-clobbered.
(smaxsi3): Revert previous delta.
(adc_internal): Fix whitespace in generated asm.
(adc_flags): Likewise.

From-SVN: r179542

12 years agoexpmed.c (expand_mult_highpart_optab): Replace optab_handler with the new widening_op...
Andreas Krebbel [Wed, 5 Oct 2011 10:20:04 +0000 (10:20 +0000)]
expmed.c (expand_mult_highpart_optab): Replace optab_handler with the new widening_optab_handler.

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

* expmed.c (expand_mult_highpart_optab): Replace optab_handler
with the new widening_optab_handler.

From-SVN: r179541

12 years agore PR middle-end/50609 (FAIL: gcc.c-torture/execute/pr23135.c compilation, -O2 ...
Richard Guenther [Wed, 5 Oct 2011 09:31:40 +0000 (09:31 +0000)]
re PR middle-end/50609 (FAIL: gcc.c-torture/execute/pr23135.c compilation,  -O2 -flto (ICE))

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

PR tree-optimization/50609
* gimple-fold.c (fold_array_ctor_reference): Also handle
vector typed constructors.
(fold_ctor_reference): Dispatch to fold_array_ctor_reference
for vector typed constructors.

From-SVN: r179540

12 years agoi386.c (ix86_emit_binop): New static function.
Uros Bizjak [Wed, 5 Oct 2011 08:05:14 +0000 (10:05 +0200)]
i386.c (ix86_emit_binop): New static function.

* config/i386/i386.c (ix86_emit_binop): New static function.
(ix86_split_lea_for_addr): Use ix86_emit_binop to emit add and shl
instructions.
(x86_output_mi_thunk): Use ix86_emit_binop to emit add instructions.

From-SVN: r179537

12 years agobuiltin-complex-1.c: Use dg-add-options ieee.
Uros Bizjak [Wed, 5 Oct 2011 06:12:39 +0000 (08:12 +0200)]
builtin-complex-1.c: Use dg-add-options ieee.

* gcc.dg/torture/builtin-complex-1.c: Use dg-add-options ieee.

From-SVN: r179536

12 years agoAdd support for more sparc VIS 3.0 instructions.
David S. Miller [Wed, 5 Oct 2011 03:25:58 +0000 (03:25 +0000)]
Add support for more sparc VIS 3.0 instructions.

gcc/

* config/sparc/sparc.md (UNSPEC_FHADD, UNSPEC_FHSUB,
UNSPEC_XMUL): New unspecs.
(muldi3_v8plus): Use output_v8plus_mult.
(*naddsf3, *nadddf3, *nmulsf3, *nmuldf3, *nmuldf3_extend):
New VIS 3.0 combiner patterns.
(fhaddsf_vis, fhadddf_vis, fhsubsf_vis, fhsubdf_vis,
fnhaddsf_vis, fnhaddf_vis, umulxhi_vis, *umulxhi_sp64,
umulxhi_v8plus, xmulx_vis, *xmulx_sp64, xmulx_v8plus,
xmulxhi_vis, *xmulxhi_sp64, xmulxhi_v8plus): New VIS 3.0
builtins patterns.
* config/sparc/sparc.c (sparc_vis_init_builtins): Emit new
builtins.
(output_v8plus_mult): New function.
* config/sparc/sparc-protos.h: Declare it.
* config/sparc/visintrin.h (__vis_fhadds, __vis_fhaddd,
__vis_fhsubs, __vis_fhsubd, __vis_fnhadds, __vis_fnhaddd,
__vis_umulxhi, __vis_xmulx, __vis_xmulxhi): New intrinsics.
* doc/extend.texi: Document new builtins.

gcc/testsuite/

* gcc.target/sparc/fhalve.c: New test.
* gcc.target/sparc/fnegop.c: New test.
* gcc.target/sparc/xmul.c: New test.

From-SVN: r179535

12 years agoDaily bump.
GCC Administrator [Wed, 5 Oct 2011 00:26:24 +0000 (00:26 +0000)]
Daily bump.

From-SVN: r179534

12 years agoFix global var initialized to function call with calls as arguments.
Ian Lance Taylor [Tue, 4 Oct 2011 23:16:32 +0000 (23:16 +0000)]
Fix global var initialized to function call with calls as arguments.

From-SVN: r179529

12 years agore PR libstdc++/49561 ([C++0x] std::list::size complexity)
Paolo Carlini [Tue, 4 Oct 2011 22:19:44 +0000 (22:19 +0000)]
re PR libstdc++/49561 ([C++0x] std::list::size complexity)

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

PR libstdc++/49561
* include/bits/stl_list.h (_List_base<>::_List_impl::_M_size):
Add in C++0x mode.
(_List_base<>::_List_impl, _List_base<>::_M_get_node,
_List_base<>::_M_put_node, _List_base<>::_List_base(_List_base&&),
list<>::size, list<>::swap, list<>::splice): Use it.
(operator==(const list<>&, const list<>&)): Rewrite in C++0x mode.
* include/bits/list.tcc (list<>::erase): Likewise.
(list<>::merge): Adjust in C++0x mode.
* testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
Adjust dg-error line number.
* testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
Likewise.
* testsuite/23_containers/list/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/list/requirements/dr438/
constructor_2_neg.cc: Likewise.

From-SVN: r179528

12 years ago48698.cc (g): Fix return type, avoid -Wall warning.
Paolo Carlini [Tue, 4 Oct 2011 21:42:43 +0000 (21:42 +0000)]
48698.cc (g): Fix return type, avoid -Wall warning.

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

* testsuite/20_util/bind/48698.cc (g): Fix return type, avoid -Wall
warning.

From-SVN: r179526

12 years agoc-typeck.c (c_build_vec_shuffle_expr): Fix uninitialized variable.
Richard Henderson [Tue, 4 Oct 2011 21:04:10 +0000 (14:04 -0700)]
c-typeck.c (c_build_vec_shuffle_expr): Fix uninitialized variable.

* c-typeck.c (c_build_vec_shuffle_expr): Fix uninitialized variable.
Avoid save_expr unless two_arguments.

From-SVN: r179525

12 years agoalloc_traits.h (__alloc_traits::max_size): Define.
Jonathan Wakely [Tue, 4 Oct 2011 20:34:54 +0000 (20:34 +0000)]
alloc_traits.h (__alloc_traits::max_size): Define.

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

* include/ext/alloc_traits.h (__alloc_traits::max_size): Define.
(__alloc_traits::rebind): Define.
* include/bits/stl_vector.h: Use them.
* testsuite/util/testsuite_allocator.h (SimpleAllocator): Define.
* testsuite/23_containers/vector/allocator/minimal.cc: New.
* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
Adjust dg-error line numbers.
* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
Likewise.
* testsuite/23_containers/vector/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/
constructor_2_neg.cc: Likewise.

From-SVN: r179523

12 years agore PR fortran/35831 ([F95] Shape mismatch check missing for dummy procedure argument)
Janus Weil [Tue, 4 Oct 2011 18:37:13 +0000 (20:37 +0200)]
re PR fortran/35831 ([F95] Shape mismatch check missing for dummy procedure argument)

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

PR fortran/35831
* interface.c (check_dummy_characteristics): Check the array shape.

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

PR fortran/35831
* gfortran.dg/dummy_procedure_6.f90: New.

From-SVN: r179520

12 years agomingw-w64.h (CPP_SPEC): Rename _REENTRANCE to _REENTRANT.
Ozkan Sezer [Tue, 4 Oct 2011 16:42:35 +0000 (16:42 +0000)]
mingw-w64.h (CPP_SPEC): Rename _REENTRANCE to _REENTRANT.

2011-10-04  Ozkan Sezer  <sezeroz@gmail.com>

        * config/i386/mingw-w64.h (CPP_SPEC): Rename _REENTRANCE to
        _REENTRANT.
        * config/i386/mingw32.h (CPP_SPEC): Likewise.

From-SVN: r179511

12 years agoSmall -m{cpu,tune}=native fix under Linux/Sparc.
David S. Miller [Tue, 4 Oct 2011 15:45:49 +0000 (15:45 +0000)]
Small -m{cpu,tune}=native fix under Linux/Sparc.

* config/sparc/driver-sparc.c (cpu_names): Fix string for supersparc
under Linux.

From-SVN: r179510

12 years agore PR middle-end/50604 (verify_gimple failed: type mismatch in binary expression)
Jakub Jelinek [Tue, 4 Oct 2011 15:25:53 +0000 (17:25 +0200)]
re PR middle-end/50604 (verify_gimple failed: type mismatch in binary expression)

PR tree-optimization/50604
* builtins.c (fold_builtin_strcpy, fold_builtin_stpcpy,
fold_builtin_strncpy, fold_builtin_stxcpy_chk): Ensure
last argument to memcpy has size_type_node type instead of
ssizetype.
* tree-ssa-strlen.c (handle_builtin_memcpy): Use size_type_node
instead of TREE_TYPE (len) as type for newlen.

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

From-SVN: r179508