platform/upstream/gcc.git
10 years agore PR libstdc++/62313 (Data race in debug iterators)
François Dumont [Mon, 29 Sep 2014 21:22:17 +0000 (21:22 +0000)]
re PR libstdc++/62313 (Data race in debug iterators)

2014-09-29  François Dumont  <fdumont@gcc.gnu.org>

PR libstdc++/62313
* include/debug/safe_base.h
(_Safe_iterator_base(const _Safe_iterator_base&)): Delete declaration.
(_Safe_iterator_base& operator=(const _Safe_iterator_base&)): Likewise.
* include/debug/safe_iterator.h (_Safe_iterator<>): Move normal iterator
before _Safe_iterator_base in memory. Lock before modifying the iterator
in numerous places.
* include/debug/safe_local_iterator.h
(_Safe_local_iterator_base(const _Safe_local_iterator_base&)): Delete
declaration.
(_Safe_local_iterator_base& operator=(const _Safe_local_iterator_base&)):
Likewise.
* include/debug/safe_unordered_base.h (_Safe_local_iterator<>):  Move
normal iterator before _Safe_iterator_base in memory. Lock before
modifying the iterator in numerous places.
* include/debug/forward_list (_Safe_forward_list<>::_M_swap_aux): Adapt.
* include/debug/safe_sequence.tcc
(_Safe_sequence<>::_M_transfer_from_if): Adapt.

From-SVN: r215693

10 years agoMAINTAINERS: Add myself as libstdc++ special modes maintainer.
François Dumont [Mon, 29 Sep 2014 19:50:16 +0000 (19:50 +0000)]
MAINTAINERS: Add myself as libstdc++ special modes maintainer.

2014-09-29  François Dumont  <fdumont@gcc.gnu.org>

* MAINTAINERS:  Add myself as libstdc++ special modes maintainer.

From-SVN: r215692

10 years agoops.c: Remove calls to vec_splat...
Bill Schmidt [Mon, 29 Sep 2014 18:41:26 +0000 (18:41 +0000)]
ops.c: Remove calls to vec_splat...

2014-09-29  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>

* gcc.dg/vmx/ops.c: Remove calls to vec_splat, vec_vsplth,
vec_vspltw, and vec_vspltb for which the second argument is out of
range.

From-SVN: r215691

10 years agoFix ICE.
Chen Gang [Mon, 29 Sep 2014 16:40:10 +0000 (16:40 +0000)]
Fix ICE.

Fix ICE.  Need use VOID instead of SI, or when real VOIDmode comes, it does not
match SImode, so cause issue.

2014-09-25  Chen Gang  <gang.chen.5i5j@gmail.com>

gcc:
* config/microblaze/microblaze.md (call_internal1): Use VOID
instead of SI to fix "((void (*)(void)) 0)()" issue
gcc/testsuite:
* gcc.c-torture/compile/calls-void.c: New test.

From-SVN: r215684

10 years agomsp430.c (msp430_expand_prologue): Return a CLOBBER rtx for naked functions.
Nick Clifton [Mon, 29 Sep 2014 16:00:58 +0000 (16:00 +0000)]
msp430.c (msp430_expand_prologue): Return a CLOBBER rtx for naked functions.

* config/msp430/msp430.c (msp430_expand_prologue): Return a
CLOBBER rtx for naked functions.
(msp430_expand_epilogue): Likewise.
(msp430_use_f5_series_hwmult): Cache result.
(use_32bit_hwmult): Cache result.
(msp430_no_hwmult): New function.
(msp430_output_labelref): Use it.

From-SVN: r215683

10 years agoMAINTAINERS: Add myself as MIPS maintainer.
Catherine Moore [Mon, 29 Sep 2014 13:08:53 +0000 (09:08 -0400)]
MAINTAINERS: Add myself as MIPS maintainer.

2014-09-29  Catherine Moore  <clm@codesourcery.com>

* MAINTAINERS:  Add myself as MIPS maintainer.

From-SVN: r215682

10 years agotypeck.c (enum_cast_to_int): Use CONVERT_EXPR_P to check for conversions.
Richard Biener [Mon, 29 Sep 2014 10:42:16 +0000 (10:42 +0000)]
typeck.c (enum_cast_to_int): Use CONVERT_EXPR_P to check for conversions.

2014-09-29  Richard Biener  <rguenther@suse.de>

cp/
* typeck.c (enum_cast_to_int): Use CONVERT_EXPR_P to check
for conversions.

From-SVN: r215681

10 years agore PR c++/51385 (Unnecessary instantiation converting to pointer to template class...
Paolo Carlini [Mon, 29 Sep 2014 09:06:31 +0000 (09:06 +0000)]
re PR c++/51385 (Unnecessary instantiation converting to pointer to template class instance)

2014-09-29  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/51385
* g++.dg/template/pr51385.C: New.

From-SVN: r215680

10 years agore PR middle-end/63247 (fortran array alignment in omp target map)
Jakub Jelinek [Mon, 29 Sep 2014 05:20:52 +0000 (07:20 +0200)]
re PR middle-end/63247 (fortran array alignment in omp target map)

PR middle-end/63247
* omp-low.c (lower_omp_target): For OMP_CLAUSE_MAP_POINTER
of ARRAY_TYPE, if not OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION
use the alignment of avar rather than ovar.

From-SVN: r215678

10 years agoDaily bump.
GCC Administrator [Mon, 29 Sep 2014 00:16:27 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r215675

10 years agopa.c (pa_output_function_epilogue): Only update last_address when a nonnote insn...
John David Anglin [Sun, 28 Sep 2014 15:39:23 +0000 (15:39 +0000)]
pa.c (pa_output_function_epilogue): Only update last_address when a nonnote insn is found.

* config/pa/pa.c (pa_output_function_epilogue): Only update
last_address when a nonnote insn is found.

From-SVN: r215669

10 years agoUpdate MIPS maintainers.
Matthew Fortune [Sun, 28 Sep 2014 09:03:18 +0000 (09:03 +0000)]
Update MIPS maintainers.

/

* MAINTAINERS: Move myself to MIPS maintainers.

From-SVN: r215664

10 years agoTest to cover LRA fix in r215119.
Robert Suchanek [Sun, 28 Sep 2014 08:54:36 +0000 (08:54 +0000)]
Test to cover LRA fix in r215119.

gcc/testsuite/

* gcc.target/mips/20140928.c: New test.

From-SVN: r215663

10 years agoDaily bump.
GCC Administrator [Sun, 28 Sep 2014 00:16:45 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r215662

10 years agoRun new mcount tests only on Linux and not on PIC
Andi Kleen [Sat, 27 Sep 2014 18:50:59 +0000 (18:50 +0000)]
Run new mcount tests only on Linux and not on PIC

gcc/testsuite/:

2014-09-27  Andi Kleen  <ak@linux.intel.com>

* gcc.target/i386/nop-mcount.c: Only run on Linux.
* gcc.target/i386/record-mcount.c: dito.

Signed-off-by: Andi Kleen <ak@linux.intel.com>
From-SVN: r215659

10 years agoMAINTAINERS: Put all email addresses between '<' and '>'.
Jan-Benedict Glaw [Sat, 27 Sep 2014 11:51:20 +0000 (11:51 +0000)]
MAINTAINERS: Put all email addresses between '<' and '>'.

2014-09-23  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

* MAINTAINERS: Put all email addresses between '<' and '>'.

From-SVN: r215657

10 years agore PR ipa/60665 (gcc/ipa-devirt.c:1510:7: warning: variable 'can_refer' is used unini...
Jan Hubicka [Sat, 27 Sep 2014 00:21:33 +0000 (02:21 +0200)]
re PR ipa/60665 (gcc/ipa-devirt.c:1510:7: warning: variable 'can_refer' is used uninitialized whenever '?:' condition is false)

PR ipa/60665
* ipa-devirt.c (possible_polymorphic_call_targets): Silence clang warning.

From-SVN: r215656

10 years agore PR ipa/62121 (ICE: Segmentation fault in ipa-devirt.c:997)
Jan Hubicka [Sat, 27 Sep 2014 00:19:06 +0000 (02:19 +0200)]
re PR ipa/62121 (ICE: Segmentation fault in ipa-devirt.c:997)

PR ipa/62121
* ipa-polymorphic-call.c (ipa_polymorphic_call_context::restrict_to_inner_class):
fix pasto in checking array size.

* g++.dg/torture/pr62121.C: New testcase.

From-SVN: r215655

10 years agoDaily bump.
GCC Administrator [Sat, 27 Sep 2014 00:16:37 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r215654

10 years agore PR middle-end/35545 (tracer pass is run too late)
Jan Hubicka [Sat, 27 Sep 2014 00:03:23 +0000 (02:03 +0200)]
re PR middle-end/35545 (tracer pass is run too late)

PR middle-end/35545
* passes.def (pass_tracer): Move before last dominator pass.
* g++.dg/tree-prof/pr35545.C: New testcase.

From-SVN: r215651

10 years agomangle.c (is_std_substitution): Check for abi_tag.
Jason Merrill [Fri, 26 Sep 2014 19:57:37 +0000 (15:57 -0400)]
mangle.c (is_std_substitution): Check for abi_tag.

gcc/cp/
* mangle.c (is_std_substitution): Check for abi_tag.
libiberty/
* cp-demangle.c (d_substitution): Handle abi tags on abbreviation.

From-SVN: r215647

10 years agopr63335.c: Change effective target to vsx_hw.
Bill Schmidt [Fri, 26 Sep 2014 19:28:36 +0000 (19:28 +0000)]
pr63335.c: Change effective target to vsx_hw.

2014-09-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* gcc.target/powerpc/pr63335.c: Change effective target to
vsx_hw.

From-SVN: r215646

10 years agoSkip gcc.target/i386/shrink_wrap_1.c on ia32
H.J. Lu [Fri, 26 Sep 2014 15:27:01 +0000 (15:27 +0000)]
Skip gcc.target/i386/shrink_wrap_1.c on ia32

* gcc.target/i386/shrink_wrap_1.c: Skip ia32.

From-SVN: r215645

10 years agoFix -freport-bug patch.
Thomas Schwinge [Fri, 26 Sep 2014 13:43:34 +0000 (15:43 +0200)]
Fix -freport-bug patch.

gcc/
* gcc.c (try_generate_repro): Remove argument "prog".  Change all
users.
(run_attempt): Handle errors of "pex_run" invocation.

Fixes bootstrap failure/compiler warnings:

    [...]
    ../../master/gcc/gcc.c: In function 'attempt_status run_attempt(const char**, const char*, const char*, int, int)':
    ../../master/gcc/gcc.c:6319:15: error: variable 'errmsg' set but not used [-Werror=unused-but-set-variable]
       const char *errmsg;
                   ^
    ../../master/gcc/gcc.c: At global scope:
    ../../master/gcc/gcc.c:6412:33: error: unused parameter 'prog' [-Werror=unused-parameter]
     try_generate_repro (const char *prog, const char **argv)
                                     ^
    cc1plus: all warnings being treated as errors
    Makefile:1040: recipe for target 'gcc.o' failed
    make[3]: *** [gcc.o] Error 1
    make[3]: Leaving directory '/media/erich/home/thomas/tmp/gcc/hurd/master.build/gcc'
    Makefile:4285: recipe for target 'all-stage2-gcc' failed
    make[2]: *** [all-stage2-gcc] Error 2
    make[2]: Leaving directory '/media/erich/home/thomas/tmp/gcc/hurd/master.build'
    Makefile:21561: recipe for target 'stage2-bubble' failed
    make[1]: *** [stage2-bubble] Error 2
    make[1]: Leaving directory '/media/erich/home/thomas/tmp/gcc/hurd/master.build'
    Makefile:892: recipe for target 'all' failed
    make: *** [all] Error 2

From-SVN: r215644

10 years ago[AArch64] Enable Address Sanitizer.
Christophe Lyon [Fri, 26 Sep 2014 13:07:42 +0000 (13:07 +0000)]
[AArch64] Enable Address Sanitizer.

2014-09-26  Christophe Lyon  <christophe.lyon@linaro.org>

[AArch64] Enable Address Sanitizer.

gcc/
* config/aarch64/aarch64-linux.h (ASAN_CC1_SPEC): Define.
        (CC1_SPEC): Define.
        * config/aarch64/aarch64.c (aarch64_asan_shadow_offset): New function.
        (TARGET_ASAN_SHADOW_OFFSET): Define.

libsanitzer/
* configure.tgt: Enable build on aarch64*-linux.

From-SVN: r215642

10 years agocgraph.c (cgraph_node::release_body): New argument keep_arguments introduced.
Martin Liska [Fri, 26 Sep 2014 10:37:44 +0000 (12:37 +0200)]
cgraph.c (cgraph_node::release_body): New argument keep_arguments introduced.

* cgraph.c (cgraph_node::release_body): New argument keep_arguments
introduced.
* cgraph.h: Likewise.
* cgraphunit.c (cgraph_node::create_wrapper): Usage of new argument introduced.
* ipa-utils.h (polymorphic_type_binfo_p): Safe check for binfos created by Java.
* tree-ssa-alias.c (ao_ref_base_alias_set): Static function transformed to global.
* tree-ssa-alias.h: Likewise.

From-SVN: r215640

10 years agostruct-layout-1_generate.c: Add -Wno-abi to default options.
Jakub Jelinek [Fri, 26 Sep 2014 08:34:19 +0000 (10:34 +0200)]
struct-layout-1_generate.c: Add -Wno-abi to default options.

* g++.dg/compat/struct-layout-1_generate.c: Add -Wno-abi
to default options.

From-SVN: r215635

10 years agocommon.opt: New option.
Jakub Jelinek [Fri, 26 Sep 2014 08:03:09 +0000 (10:03 +0200)]
common.opt: New option.

gcc/

2014-09-26  Jakub Jelinek  <jakub@redhat.com>
    Max Ostapenko  <m.ostapenko@partner.samsung.com>

* common.opt: New option.
* doc/invoke.texi: Describe new option.
* gcc.c (execute): Don't free first string early, but at the end
of the function.  Call retry_ice if compiler exited with
ICE_EXIT_CODE.
(main): Factor out common code.
(print_configuration): New function.
(files_equal_p): Likewise.
(check_repro): Likewise.
(run_attempt): Likewise.
(do_report_bug): Likewise.
(append_text): Likewise.
(try_generate_repro): Likewise

Co-Authored-By: Max Ostapenko <m.ostapenko@partner.samsung.com>
From-SVN: r215633

10 years agopex-common.h (struct pex_funcs): Add new parameter for open_write field.
Max Ostapenko [Fri, 26 Sep 2014 07:58:04 +0000 (10:58 +0300)]
pex-common.h (struct pex_funcs): Add new parameter for open_write field.

libiberty/

2014-09-26  Max Ostapenko  <m.ostapenko@partner.samsung.com>

* pex-common.h (struct pex_funcs): Add new parameter for open_write field.
* pex-unix.c (pex_unix_open_write): Add support for new parameter.
* pex-djgpp.c (pex_djgpp_open_write): Likewise.
* pex-win32.c (pex_win32_open_write): Likewise.
* pex-common.c (pex_run_in_environment): Likewise.

include/

2014-09-26  Max Ostapenko  <m.ostapenko@partner.samsung.com>

* libiberty.h (PEX_STDOUT_APPEND): New flag.
(PEX_STDERR_APPEND): Likewise.

From-SVN: r215632

10 years agoAdd direct support for Linux kernel __fentry__ patching
Andi Kleen [Fri, 26 Sep 2014 04:06:40 +0000 (04:06 +0000)]
Add direct support for Linux kernel __fentry__ patching

The Linux kernel dynamically patches in __fentry__ calls in and
out at runtime. This allows using function tracing for debugging
in production kernels without (significant) performance penalty.

For this it needs a table pointing to each __fentry__ call.

The way it is currently implemented is that a special
perl script scans the object file, generates the table in a special
section. When the kernel boots up it nops the calls, and
then later patches in the calls again as needed.

The recordmcount.pl script in the kernel works, but it seems
cleaner and faster to support the code generation of the patch table
directly in gcc.

This also allows to nop the calls directly at code generation
time, which allows to skip a patching step at kernel boot.
I also expect that a patchable production tracing facility is also useful
for other applications.

For example it could be used in ftracer
(https://github.com/andikleen/ftracer)

Having a nop area at the beginning of each function can be also
also useful for other things. For example it can be used to patch
functions at runtime to point to different functions, to do
binary updates without restarting the program (like ksplice or
similar)

This patch implements two new options for the i386 target:

-mrecord-mcount
Generate a __mcount_loc section entry for each __fentry__ or mcount
call. The section is compatible with the kernel convention
and the data is put into a section loaded at runtime.

-mnop-mcount
Generate the mcount/__fentry__ call as 5 byte nop that can be
patched in later. The nop is generated as a single instruction,
as the Linux kernel run time patching relies on this.

Limitations:
- I didn't implement -mnop-mcount for -fPIC. This
would need a good single instruction 6 byte NOP and it seems a
bit pointless, as the patching would prevent text sharing.
- I didn't implement noping for targets that pass a variable
to mcount.
- The facility could be useful on architectures too. Currently
the mcount code is target specific, so I made it a i386 option.

gcc/:

2014-09-25  Andi Kleen  <ak@linux.intel.com>

* config/i386/i386.c (x86_print_call_or_nop): New function.
(x86_function_profiler): Support -mnop-mcount and
-mrecord-mcount.
* config/i386/i386.opt (-mnop-mcount, -mrecord-mcount): Add
* doc/invoke.texi: Document -mnop-mcount, -mrecord-mcount.

gcc/testsuite:

2014-09-25  Andi Kleen  <ak@linux.intel.com>

* gcc.target/i386/nop-mcount.c: New file.
* gcc.target/i386/record-mcount.c: New file.

From-SVN: r215629

10 years agoipa-prop.c (ipa_intraprocedural_devirtualization): Remove.
Jan Hubicka [Fri, 26 Sep 2014 01:49:40 +0000 (03:49 +0200)]
ipa-prop.c (ipa_intraprocedural_devirtualization): Remove.

* ipa-prop.c (ipa_intraprocedural_devirtualization): Remove.
* ipa-prop.h (ipa_intraprocedural_devirtualization): Remove.
* tree-ssa-prop.c (eliminate_dom_walker::before_dom_children):
Remove.

From-SVN: r215628

10 years agopr56933.c: Don't specify "dg-do run" explicitly.
Sandra Loosemore [Fri, 26 Sep 2014 00:51:26 +0000 (20:51 -0400)]
pr56933.c: Don't specify "dg-do run" explicitly.

2014-09-25  Sandra Loosemore  <sandra@codesourcery.com>

gcc/testsuite/
* gcc.dg/vect/pr56933.c: Don't specify "dg-do run" explicitly.
* gcc.dg/vect/pr57705.c: Likewise.
* gcc.dg/vect/pr57741-2.c: Likewise.
* gcc.dg/vect/pr57741-3.c: Likewise.
* gcc.dg/vect/pr59591-1.c: Likewise.
* gcc.dg/vect/pr59591-2.c: Likewise.
* gcc.dg/vect/pr60196-1.c: Likewise.
* gcc.dg/vect/pr60196-2.c: Likewise.
* gcc.dg/vect/pr60276.c: Likewise.
* gcc.dg/vect/pr61680.c: Likewise.
* gcc.dg/vect/pr63148.c: Likewise.
* gcc.dg/vect/pr63189.c: Likewise.
* gcc.dg/vect/vect-mask-load-1.c: Likewise.
* gcc.dg/vect/vect-mask-loadstore-1.c: Likewise.
* gcc.dg/vect/vect-nop-move.c: Likewise.
* gcc.dg/vect/vect-simd-clone-10.c: Likewise.
* gcc.dg/vect/vect-simd-clone-12.c: Likewise.

From-SVN: r215627

10 years agoDaily bump.
GCC Administrator [Fri, 26 Sep 2014 00:16:44 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r215626

10 years agoipa-utils.h (subbinfo_with_vtable_at_offset, [...]): Declare.
Jan Hubicka [Thu, 25 Sep 2014 19:52:20 +0000 (21:52 +0200)]
ipa-utils.h (subbinfo_with_vtable_at_offset, [...]): Declare.

* ipa-utils.h (subbinfo_with_vtable_at_offset, type_all_derivations_known_p,
type_known_to_have_no_deriavations_p, types_must_be_same_for_odr,
types_odr_comparable): Declare.
(polymorphic_type_binfo_p): Move here from ipa-devirt.c
* ipa-polymorphic-call.c: New file.
(contains_polymorphic_type_p, possible_placement_new,
ipa_polymorphic_call_context::restrict_to_inner_class,
contains_type_p, decl_maybe_in_construction_p,
ipa_polymorphic_call_context::stream_out,
ipa_polymorphic_call_context::debug,
ipa_polymorphic_call_context::stream_in,
ipa_polymorphic_call_context::set_by_decl,
ipa_polymorphic_call_context::set_by_invariant,
walk_ssa_copies,
ipa_polymorphic_call_context::ipa_polymorphic_call_context,
type_change_info, noncall_stmt_may_be_vtbl_ptr_store,
extr_type_from_vtbl_ptr_store, record_known_type
check_stmt_for_type_change,
ipa_polymorphic_call_context::get_dynamic_type): Move here from
ipa-devirt.c
* ipa-devirt.c: No longer include data-streamer.h, lto-streamer.h
and streamer-hooks.h
(contains_polymorphic_type_p, possible_placement_new,
ipa_polymorphic_call_context::restrict_to_inner_class,
contains_type_p, decl_maybe_in_construction_p,
ipa_polymorphic_call_context::stream_out,
ipa_polymorphic_call_context::debug,
ipa_polymorphic_call_context::stream_in,
ipa_polymorphic_call_context::set_by_decl,
ipa_polymorphic_call_context::set_by_invariant,
walk_ssa_copies,
ipa_polymorphic_call_context::ipa_polymorphic_call_context,
type_change_info, noncall_stmt_may_be_vtbl_ptr_store,
extr_type_from_vtbl_ptr_store, record_known_type
check_stmt_for_type_change,
ipa_polymorphic_call_context::get_dynamic_type): Move to
ipa-polymorphic-call.c
(type_all_derivations_known_p, types_odr_comparable,
types_must_be_same_for_odr): Export.
(type_known_to_have_no_deriavations_p): New function.
* Makefile.in: Add ipa-polymorphic-call.c

From-SVN: r215615

10 years agoipa-devirt.c (polymorphic_call_target_d): Add SPECULATIVE; reorder for better storage.
Jan Hubicka [Thu, 25 Sep 2014 18:57:44 +0000 (20:57 +0200)]
ipa-devirt.c (polymorphic_call_target_d): Add SPECULATIVE; reorder for better storage.

* ipa-devirt.c (polymorphic_call_target_d): Add SPECULATIVE; reorder
for better storage.
(polymorphic_call_target_hasher::hash): Hash SPECULATIVE.
(possible_polymorphic_call_targets): Instead of computing both
speculative and non-speculative answers, do just one at a time.
Replace NONSPECULATIVE_TARGETSP parameter with SPECULATIVE flag.
(dump_targets): Break out from ...
(dump_possible_polymorphic_call_targets): ... here; dump both speculative
and non-speculative lists.
(ipa_devirt): Update for new possible_polymorphic_call_targets API.
* ipa-utils.h (possible_polymorphic_call_targets): Update.

* testsuite/g++.dg/ipa/devirt-34.C: Update template.

From-SVN: r215614

10 years agore PR rtl-optimization/63348 (gcc.dg/pr43670.c fail on MIPS)
Uros Bizjak [Thu, 25 Sep 2014 17:58:35 +0000 (19:58 +0200)]
re PR rtl-optimization/63348 (gcc.dg/pr43670.c fail on MIPS)

PR rtl-optimization/63348
* emit-rtl.c (try_split): Do not emit extra barrier.

From-SVN: r215613

10 years ago[AArch64] Tighten predicates on SIMD shift intrinsics
James Greenhalgh [Thu, 25 Sep 2014 16:54:38 +0000 (16:54 +0000)]
[AArch64] Tighten predicates on SIMD shift intrinsics

gcc/

* config/aarch64/aarch64-protos.h (aarch64_simd_const_bounds): Delete.
* config/aarch64/aarch64-simd.md (aarch64_<sur>q<r>shl<mode>): Use
new predicates.
(aarch64_<sur>shll2_n<mode>): Likewise.
(aarch64_<sur>shr_n<mode>): Likewise.
(aarch64_<sur>sra_n<mode>: Likewise.
(aarch64_<sur>s<lr>i_n<mode>): Likewise.
(aarch64_<sur>qshl<u>_n<mode>): Likewise.
* config/aarch64/aarch64.c (aarch64_simd_const_bounds): Delete.
* config/aarch64/iterators.md (ve_mode): New.
(offsetlr): Remap to infix text for use in new predicates.
* config/aarch64/predicates.md (aarch64_simd_shift_imm_qi): New.
(aarch64_simd_shift_imm_hi): Likewise.
(aarch64_simd_shift_imm_si): Likewise.
(aarch64_simd_shift_imm_di): Likewise.
(aarch64_simd_shift_imm_offset_qi): Likewise.
(aarch64_simd_shift_imm_offset_hi): Likewise.
(aarch64_simd_shift_imm_offset_si): Likewise.
(aarch64_simd_shift_imm_offset_di): Likewise.
(aarch64_simd_shift_imm_bitsize_qi): Likewise.
(aarch64_simd_shift_imm_bitsize_hi): Likewise.
(aarch64_simd_shift_imm_bitsize_si): Likewise.
(aarch64_simd_shift_imm_bitsize_di): Likewise.

gcc/testsuite/

* gcc.target/aarch64/simd/vqshlb_1.c: New.

From-SVN: r215612

10 years agoImprove live-in calculation for splitted block
Jiong Wang [Thu, 25 Sep 2014 16:39:49 +0000 (16:39 +0000)]
Improve live-in calculation for splitted block

  gcc/
    * shrink-wrap.c (move_insn_for_shrink_wrap): Initialize the live-in of new
    created BB as the intersection of live-in from "old_dest" and live-out from
    "bb".

  gcc/testsuite/
    * gcc.target/i386/shrink_wrap_1.c: New test.

From-SVN: r215611

10 years agolra.c (lra_set_insn_recog_data): Fix typo in comment.
Felix Yang [Thu, 25 Sep 2014 16:34:03 +0000 (16:34 +0000)]
lra.c (lra_set_insn_recog_data): Fix typo in comment.

        * lra.c (lra_set_insn_recog_data): Fix typo in comment.
        * genautomata.c (merge_states): Ditto.

From-SVN: r215610

10 years agore PR target/62218 (gcc produces invalid SH instruction (stc r2,sr) when building...
Oleg Endo [Thu, 25 Sep 2014 15:50:38 +0000 (15:50 +0000)]
re PR target/62218 (gcc produces invalid SH instruction (stc r2,sr) when building libgcc)

gcc/
PR target/62218
* config/sh/sync.md (atomic_test_and_set_soft_imask): Fix typo
in instruction sequence.

From-SVN: r215607

10 years agoDR 1339
Jonathan Wakely [Thu, 25 Sep 2014 15:27:18 +0000 (16:27 +0100)]
DR 1339

DR 1339
* doc/xml/manual/status_cxx2011.xml: Update.
* include/bits/stl_uninitialized.h (uninitialized_fill_n): Return
an iterator.
(__uninitialized_fill_n_a, __uninitialized_default_n_a): Likewise.
* include/bits/stl_vector.h (vector::_M_fill_initialize,
vector::_M_default_initialize): Use returned iterator.
* include/bits/vector.tcc (vector::_M_fill_assign,
vector::_M_fill_insert, vector::_M_default_append): Likewise.
* testsuite/20_util/specialized_algorithms/uninitialized_fill_n/
16505.cc: Adjust return type.
* testsuite/20_util/specialized_algorithms/uninitialized_fill_n/
dr1339.cc: New.

From-SVN: r215606

10 years agore PR target/62218 (gcc produces invalid SH instruction (stc r2,sr) when building...
Nick Clifton [Thu, 25 Sep 2014 15:01:46 +0000 (15:01 +0000)]
re PR target/62218 (gcc produces invalid SH instruction (stc r2,sr) when building libgcc)

PR target/62218
* config/sh/sync.md (atomic_fetch_nand<mode>_soft_imask): Fix typo
in instruction sequence.

From-SVN: r215602

10 years agore PR target/63335 (GCC:failures for vector double on calls to bif vec_[all|any]_...
Bill Schmidt [Thu, 25 Sep 2014 14:06:09 +0000 (14:06 +0000)]
re PR target/63335 (GCC:failures for vector double on calls to bif vec_[all|any]_[nge|nle])

[gcc]

2014-09-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR target/63335
* config/rs6000/rs6000-c.c (altivec_build_resolved_builtin):
Exclude VSX_BUILTIN_XVCMPGEDP_P from special handling.

[gcc/testsuite]

2014-09-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR target/63335
* gcc.target/powerpc/pr63335.c: New test.

From-SVN: r215599

10 years agore PR c++/61945 (tree check fail with -Woverloaded-virtual)
Marek Polacek [Thu, 25 Sep 2014 12:56:57 +0000 (12:56 +0000)]
re PR c++/61945 (tree check fail with -Woverloaded-virtual)

PR c++/61945
* class.c (warn_hidden): Check for FUNCTION_DECL.

* g++.dg/warn/pr61945.C: New test.

From-SVN: r215597

10 years ago* include/bits/vector.tcc (vector::_M_fill_assign): Use _M_swap_data.
Jonathan Wakely [Thu, 25 Sep 2014 12:14:15 +0000 (13:14 +0100)]
* include/bits/vector.tcc (vector::_M_fill_assign): Use _M_swap_data.

From-SVN: r215596

10 years ago* testsuite/27_io/basic_ios/conv/bool_neg.cc: Add dg-do compile.
Jonathan Wakely [Thu, 25 Sep 2014 10:50:31 +0000 (11:50 +0100)]
* testsuite/27_io/basic_ios/conv/bool_neg.cc: Add dg-do compile.

From-SVN: r215593

10 years agobool_neg.cc: New.
Jonathan Wakely [Thu, 25 Sep 2014 10:22:51 +0000 (11:22 +0100)]
bool_neg.cc: New.

* testsuite/27_io/basic_ios/conv/bool_neg.cc: New.
* testsuite/27_io/basic_ios/conv/bool.cc: New.
* testsuite/27_io/basic_ios/conv/voidptr.cc: New.

From-SVN: r215592

10 years agoAVX-512. Extend `perm' insn patterns.
Alexander Ivchenko [Thu, 25 Sep 2014 08:25:56 +0000 (08:25 +0000)]
AVX-512. Extend `perm' insn patterns.

gcc/
* config/i386/sse.md
(define_expand "<avx2_avx512f>_perm<mode>"): Rename to ...
(define_expand "<avx2_avx512>_perm<mode>"): ... this.
(define_expand "avx512f_perm<mode>_mask"): Rename to ...
(define_expand "<avx512>_perm<mode>_mask"): ... this.
Use VI8F_256_512 mode iterator.
(define_insn "<avx2_avx512f>_perm<mode>_1<mask_name>"): Rename to ...
(define_insn "<avx2_avx512>_perm<mode>_1<mask_name>"): ... this.

Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com>
Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com>
Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>
Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com>
Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>
From-SVN: r215590

10 years agoAVX-512. Add mov[dlh]dup insns support.
Alexander Ivchenko [Thu, 25 Sep 2014 08:21:17 +0000 (08:21 +0000)]
AVX-512. Add mov[dlh]dup insns support.

gcc/
* config/i386/sse.md
(define_insn "avx_movshdup256<mask_name>"): Add masking.
(define_insn "sse3_movshdup<mask_name>"): Ditto.
(define_insn "avx_movsldup256<mask_name>"): Ditto.
(define_insn "sse3_movsldup<mask_name>"): Ditto.
(define_insn "vec_dupv2df<mask_name>"): Ditto.
(define_insn "*vec_concatv2df"): Add EVEX version.

Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com>
Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com>
Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>
Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com>
Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>
From-SVN: r215589

10 years agoAVX-512. Update vec_set<mode>_0 pattern.
Alexander Ivchenko [Thu, 25 Sep 2014 08:19:39 +0000 (08:19 +0000)]
AVX-512. Update vec_set<mode>_0 pattern.

gcc/
* config/i386/sse.md
(define_insn "vec_set<mode>_0"): Add EVEX version.

Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com>
Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com>
Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>
Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com>
Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>
From-SVN: r215588

10 years agoAVX-512. Add convert ps2pd and ps2dq.
Alexander Ivchenko [Thu, 25 Sep 2014 08:18:14 +0000 (08:18 +0000)]
AVX-512. Add convert ps2pd and ps2dq.

gcc/
* config/i386/sse.md
(define_insn
"<fixsuffix>fix_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>"):
New.
(define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
(define_insn "ufix_trunc<mode><sseintvecmodelower>2<mask_name>"): Ditto.
(define_insn "sse2_cvtss2sd<round_saeonly_name>"): Change
"nonimmediate_operand" to "<round_saeonly_nimm_predicate>".
(define_insn "avx_cvtpd2ps256<mask_name>"): Add masking.
(define_expand "sse2_cvtpd2ps_mask): New.
(define_insn "*sse2_cvtpd2ps<mask_name>"): Add masking.
(define_insn "sse2_cvtps2pd<mask_name>"): Add masking.

Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com>
Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com>
Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>
Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com>
Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>
From-SVN: r215586

10 years agoAVX-512. Add pd2dq and dq2pd converts.
Alexander Ivchenko [Thu, 25 Sep 2014 08:15:30 +0000 (08:15 +0000)]
AVX-512. Add pd2dq and dq2pd converts.

gcc/
* config/i386/i386.c
(avx512f_ufix_notruncv8dfv8si_mask_round): Rename to ...
(ufix_notruncv8dfv8si2_mask_round): ... this.
* config/i386/sse.md
(define_insn "avx512f_cvtdq2pd512_2): Update TARGET check.
(define_insn "avx_cvtdq2pd256_2"): Add EVEX version.
(define_insn "sse2_cvtdq2pd<mask_name>"): Add masking.
(define_insn "avx_cvtpd2dq256<mask_name>"): Ditto.
(define_expand "sse2_cvtpd2dq"): Delete.
(define_insn "sse2_cvtpd2dq<mask_name>"): Add masking and
make 2nd operand const0 vector.
(define_insn "avx512f_ufix_notruncv8dfv8si<mask_name><round_name>"):
Delete.
(define_mode_attr pd2udqsuff): New.
(define_insn
"ufix_notrunc<mode><si2dfmodelower>2<mask_name><round_name>"): Ditto.
(define_insn "ufix_notruncv2dfv2si2<mask_name>"): Ditto.
(define_insn "*avx_cvttpd2dq256_2"): Delete.
(define_expand "sse2_cvttpd2dq"): Ditto.
(define_insn "sse2_cvttpd2dq<mask_name>"): Add masking and
make 2nd operand const0 vector.

Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com>
Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com>
Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>
Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com>
Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>
From-SVN: r215584

10 years agore PR tree-optimization/63341 (Vectorization miscompilation with -mcpu=power7)
Jakub Jelinek [Thu, 25 Sep 2014 08:12:49 +0000 (10:12 +0200)]
re PR tree-optimization/63341 (Vectorization miscompilation with -mcpu=power7)

PR tree-optimization/63341
* tree-vectorizer.h (vect_create_data_ref_ptr,
vect_create_addr_base_for_vector_ref): Add another tree argument
defaulting to NULL_TREE.
* tree-vect-data-refs.c (vect_create_data_ref_ptr): Add byte_offset
argument, pass it down to vect_create_addr_base_for_vector_ref.
(vect_create_addr_base_for_vector_ref): Add byte_offset argument,
add that to base_offset too if non-NULL.
* tree-vect-stmts.c (vectorizable_load): Add byte_offset variable,
for dr_explicit_realign_optimized set it to vector byte size
- 1 instead of setting offset, pass byte_offset down to
vect_create_data_ref_ptr.

* gcc.dg/vect/pr63341-1.c: New test.
* gcc.dg/vect/pr63341-2.c: New test.

From-SVN: r215583

10 years ago[multiple changes]
Andreas Krebbel [Thu, 25 Sep 2014 07:37:36 +0000 (07:37 +0000)]
[multiple changes]

2014-09-25  Andreas Arnez  <arnez@linux.vnet.ibm.com>

PR 63300/debug
* tree.c (check_base_type): New.
(check_qualified_type): Exploit new helper function above.
* tree.h (check_base_type): New prototype.
* dwarf2out.c (get_nearest_type_subqualifiers): New.
(modified_type_die): Fix handling for qualifiers.  Qualifiers to
"peel off" are now determined using get_nearest_type_subqualifiers.

2014-09-25  Mark Wielaard  <mjw@redhat.com>

PR 63300/debug
* gcc.dg/debug/dwarf2/stacked-qualified-types-1.c: New testcase.
* gcc.dg/debug/dwarf2/stacked-qualified-types-2.c: Likewise.
* gcc.dg/guality/pr63300-const-volatile.c: New testcase.

From-SVN: r215582

10 years agore PR c++/63249 ([OpenMP] Spurious »set but not used« warnings when actually used...
Jakub Jelinek [Thu, 25 Sep 2014 06:47:43 +0000 (08:47 +0200)]
re PR c++/63249 ([OpenMP] Spurious »set but not used« warnings when actually used in OpenMP target's array section's lower-bound and length)

PR c++/63249
* semantics.c (handle_omp_array_sections_1): Call mark_rvalue_use
on low_bound and length.

* g++.dg/gomp/pr63249.C: New test.
* c-c++-common/gomp/pr63249.c: New test.

2014-09-25  Thomas Schwinge  <thomas@codesourcery.com>

PR c++/63249
* c-parser.c (c_parser_omp_variable_list): Call mark_exp_read
on low_bound and length.

From-SVN: r215580

10 years agocheck.c (check_co_collective): Renamed from
Tobias Burnus [Thu, 25 Sep 2014 06:07:15 +0000 (08:07 +0200)]
check.c (check_co_collective): Renamed from

2014-09-25  Tobias Burnus  <burnus@net-b.de>

gcc/fortran
        * check.c (check_co_collective): Renamed from
        * check_co_minmaxsum,
        handle co_reduce.
        (gfc_check_co_minmax, gfc_check_co_sum): Update call.
        (gfc_check_co_broadcast, gfc_check_co_reduce): New.
        * gfortran.h (gfc_isym_id): Add GFC_ISYM_CO_BROADCAST and
        GFC_ISYM_CO_REDUCE.
        * intrinsic.c (add_subroutines): Add co_reduce and co_broadcast.
        * intrinsic.h (gfc_check_co_broadcast, gfc_check_co_reduce): Add
        proto types.
        * intrinsic.texi (CO_BROADCAST): Add.
        * trans.h (gfor_fndecl_co_broadcast): New.
        * trans-decl.c (gfor_fndecl_co_broadcast): Ditto.
        (gfc_build_builtin_function_decls): Add decl for it,
        * trans-intrinsic.c (conv_co_collective): Renamed from
        conv_co_minmaxsum. Handle co_reduce.
        (gfc_conv_intrinsic_subroutine): Handle co_reduce.

gcc/testsuite/
        * gfortran.dg/coarray/collectives_3.f90: New.
        * gfortran.dg/coarray_collectives_9.f90: New.
        * gfortran.dg/coarray_collectives_10.f90: New.
        * gfortran.dg/coarray_collectives_11.f90: New.
        * gfortran.dg/coarray_collectives_12.f90: New.

libgfortran/
        * caf/libcaf.h (_gfortran_caf_co_broadcast): New prototype.
        * caf/single.c (_gfortran_caf_co_broadcast): New.

From-SVN: r215579

10 years agore PR libstdc++/63199 (Inserting std::wregex to std::vector loses some std::wregex...
Tim Shen [Thu, 25 Sep 2014 04:43:19 +0000 (04:43 +0000)]
re PR libstdc++/63199 (Inserting std::wregex to std::vector loses some std::wregex values)

PR libstdc++/63199
* include/bits/regex.h (basic_regex::basic_regex, basic_regex::assign,
basic_regex::imbue, basic_regex::getloc, basic_regex::swap): Add
_M_loc for basic_regex.
* include/bits/regex_automaton.h: Add _M_traits for _NFA.
* include/bits/regex_compiler.h (_Compiler::_M_get_nfa, __compile_nfa):
Make _Compiler::_M_nfa heap allocated.
* include/bits/regex_compiler.tcc (_Compiler::_Compiler): Make
_Compiler::_M_nfa heap allocated.
* include/bits/regex_executor.h (_Executor::_M_is_word):
Fix accessing _M_traits.
* include/bits/regex_executor.tcc (_Executor::_M_dfs):
Fix accessing _M_traits.
* testsuite/28_regex/algorithms/regex_match/ecma/wchar_t/63199.cc:
New testcase.

From-SVN: r215578

10 years agoipa-devirt.c (possible_polymorphic_call_targets): Remove forgotten debug output;...
Jan Hubicka [Thu, 25 Sep 2014 03:37:31 +0000 (05:37 +0200)]
ipa-devirt.c (possible_polymorphic_call_targets): Remove forgotten debug output; canonicalize querries more wtih LTO.

* ipa-devirt.c (possible_polymorphic_call_targets): Remove
forgotten debug output; canonicalize querries more wtih LTO.

From-SVN: r215577

10 years agoFix previous commit.
Jan Hubicka [Thu, 25 Sep 2014 02:11:13 +0000 (02:11 +0000)]
Fix previous commit.

From-SVN: r215576

10 years agocgraph.h (class ipa_polymorphic_call_context): Move here from ipa-utils.h; add stream...
Jan Hubicka [Thu, 25 Sep 2014 01:48:34 +0000 (03:48 +0200)]
cgraph.h (class ipa_polymorphic_call_context): Move here from ipa-utils.h; add stream_int and stream_out methods.

* cgraph.h (class ipa_polymorphic_call_context): Move here from
ipa-utils.h; add stream_int and stream_out methods.
(cgraph_indirect_call_info): Remove SPECILATIVE_OFFSET,
OUTER_TYPE, SPECULATIVE_OUTER_TYPE, MAYBE_IN_CONSTRUCTION
MAYBE_DERIVED_TYPE and SPECULATIEVE_MAYBE_DERIVED_TYPE;
add CONTEXT.
(ipa_polymorphic_call_context::ipa_polymorphic_call_context,
ipa_polymorphic_call_context::ipa_polymorphic_call_context,
ipa_polymorphic_call_context::clear_speculation,
ipa_polymorphic_call_context::clear_outer_type): Move here from
ipa-utils.h
* ipa-utils.h (class ipa_polymorphic_call_context): Move to cgraph.h
(ipa_polymorphic_call_context::ipa_polymorphic_call_context,
ipa_polymorphic_call_context::ipa_polymorphic_call_context,
ipa_polymorphic_call_context::clear_speculation,
ipa_polymorphic_call_context::clear_outer_type): Likewise.
* ipa-devirt.c: Include data-streamer.h, lto-streamer.h and
streamer-hooks.h
(ipa_polymorphic_call_context::stream_out): New method.
(ipa_polymorphic_call_context::stream_in): New method.
(noncall_stmt_may_be_vtbl_ptr_store): Add forgotten static.
* ipa-prop.c (ipa_analyze_indirect_call_uses): Do not care about
OUTER_TYPE.
(ipa_analyze_call_uses): Simplify.
(update_indirect_edges_after_inlining): Do not care about outer_type.
(ipa_write_indirect_edge_info): Update.
(ipa_write_indirect_edge_info): Likewise.
* cgraph.c (cgraph_node::create_indirect_edge): Simplify.
(dump_edge_flags): Break out from ...
(cgraph_node::dump): ... here; dump indirect edges.

From-SVN: r215575

10 years agoDaily bump.
GCC Administrator [Thu, 25 Sep 2014 00:16:48 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r215574

10 years agore PR libstdc++/56193 (ios_base should replace operator void* with explicit operator...
Jonathan Wakely [Wed, 24 Sep 2014 22:13:35 +0000 (23:13 +0100)]
re PR libstdc++/56193 (ios_base should replace operator void* with explicit operator bool in C++11 onwards.)

PR libstdc++/56193
* config/abi/pre/gnu.ver: Add new exports.
* include/bits/basic_ios.h (basic_ios::operator bool): Define.
* src/c++98/ios_locale.cc (basic_ios::operator void*): Instantiate.

From-SVN: r215571

10 years agognu.ver: Make GLIBCXX_3.4 patterns stricter so the new GLIBCXX_3.4.21 symbols don...
Jonathan Wakely [Wed, 24 Sep 2014 22:13:29 +0000 (23:13 +0100)]
gnu.ver: Make GLIBCXX_3.4 patterns stricter so the new GLIBCXX_3.4.21 symbols don't...

* config/abi/pre/gnu.ver: Make GLIBCXX_3.4 patterns stricter so the
new GLIBCXX_3.4.21 symbols don't match them.

From-SVN: r215570

10 years agoipa-utils.h (polymorphic_call_context): Add metdhos dump, debug and clear_outer_type.
Jan Hubicka [Wed, 24 Sep 2014 20:30:21 +0000 (22:30 +0200)]
ipa-utils.h (polymorphic_call_context): Add metdhos dump, debug and clear_outer_type.

* ipa-utils.h (polymorphic_call_context): Add
metdhos dump, debug and clear_outer_type.
(ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
(ipa_polymorphic_call_context::clear_outer_type): New method.
* ipa-prop.c (ipa_analyze_call_uses): Do not overwrite offset.
* ipa-devirt.c (types_odr_comparable): New function.
(types_must_be_same_for_odr): New function.
(odr_subtypes_equivalent_p): Simplify.
(possible_placement_new): Break out from ...
(ipa_polymorphic_call_context::restrict_to_inner_type): ... here;
be more cuatious about returning false in cases the context may be
valid in derived type or via placement new.
(contains_type_p): Clear maybe_derived_type
(ipa_polymorphic_call_context::dump): New method.
(ipa_polymorphic_call_context::debug): New method.
(ipa_polymorphic_call_context::set_by_decl): Cleanup comment.
(ipa_polymorphic_call_context::set_by_invariant): Simplify.
(ipa_polymorphic_call_context::ipa_polymorphic_call_context): Simplify.
(possible_polymorphic_call_targets): Trust context.restrict_to_inner_class
to suceed on all valid cases; remove confused sanity check.
(dump_possible_polymorphic_call_targets): Simplify.

From-SVN: r215569

10 years agore PR libstdc++/29988 (More stl_tree.h enhancements: improving operator=)
François Dumont [Wed, 24 Sep 2014 19:55:35 +0000 (19:55 +0000)]
re PR libstdc++/29988 (More stl_tree.h enhancements: improving operator=)

2014-09-24  François Dumont  <fdumont@gcc.gnu.org>

PR libstdc++/29988
* include/bits/stl_tree.h (_Rb_tree_reuse_or_alloc_node<>): New.
(_Rb_tree_alloc_node<>): New.
(_Rb_tree<>::operator=(_Rb_tree<>&&)): New.
(_Rb_tree<>::_M_assign_unique): New.
(_Rb_tree<>::_M_assign_equal): New.
(_Rb_tree<>): Adapt to reuse allocated nodes as much as possible.
* include/bits/stl_map.h
(std::map<>::operator=(std::map<>&&)): Default implementation.
(std::map<>::operator=(initializer_list<>)): Adapt to use
_Rb_tree::_M_assign_unique.
* include/bits/stl_multimap.h
(std::multimap<>::operator=(std::multimap<>&&)): Default implementation.
(std::multimap<>::operator=(initializer_list<>)): Adapt to use
_Rb_tree::_M_assign_equal.
* include/bits/stl_set.h
(std::set<>::operator=(std::set<>&&)): Default implementation.
(std::set<>::operator=(initializer_list<>)): Adapt to use
_Rb_tree::_M_assign_unique.
* include/bits/stl_multiset.h
(std::multiset<>::operator=(std::multiset<>&&)): Default implementation.
(std::multiset<>::operator=(initializer_list<>)): Adapt to use
_Rb_tree::_M_assign_equal.
* testsuite/23_containers/map/allocator/copy_assign.cc (test03): New.
* testsuite/23_containers/map/allocator/init-list.cc: New.
* testsuite/23_containers/map/allocator/move_assign.cc (test03): New.
* testsuite/23_containers/multimap/allocator/copy_assign.cc
(test03): New.
* testsuite/23_containers/multimap/allocator/init-list.cc: New.
* testsuite/23_containers/multimap/allocator/move_assign.cc
(test03): New.
* testsuite/23_containers/multiset/allocator/copy_assign.cc
(test03): New.
* testsuite/23_containers/multiset/allocator/init-list.cc: New.
* testsuite/23_containers/multiset/allocator/move_assign.cc
(test03): New.
* testsuite/23_containers/set/allocator/copy_assign.cc (test03): New.
* testsuite/23_containers/set/allocator/init-list.cc: New.
* testsuite/23_containers/set/allocator/move_assign.cc (test03): New.

From-SVN: r215568

10 years agocgraph.h, [...]: Rename all instances of DECL_ABSTRACT to DECL_ABSTRACT_P.
Aldy Hernandez [Wed, 24 Sep 2014 19:50:24 +0000 (19:50 +0000)]
cgraph.h, [...]: Rename all instances of DECL_ABSTRACT to DECL_ABSTRACT_P.

     * cgraph.h, dbxout.c, dwarfout2.c, gimple-fold.c,
     lto-streamer-out.c, print-tree.c, symtab.c, tree-inline.c,
     tree-streamer-in.c, tree-streamer-out.c, tree.c, tree.h,
     varpool.c: Rename all instances of DECL_ABSTRACT to
     DECL_ABSTRACT_P.

    cp/
     * class.c, decl.c, optimize.c: Rename all instances of
     DECL_ABSTRACT to DECL_ABSTRACT_P.

    lto/
     * lto-symtab.c, lto.c: Rename all instances of DECL_ABSTRACT to
     DECL_ABSTRACT_P.

From-SVN: r215567

10 years agors6000.c (insn_is_swappable_p): Don't provide special handling for stores whose SET_S...
Bill Schmidt [Wed, 24 Sep 2014 18:35:33 +0000 (18:35 +0000)]
rs6000.c (insn_is_swappable_p): Don't provide special handling for stores whose SET_SRC is an UNSPEC (such as...

[gcc]

2014-09-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* config/rs6000/rs6000.c (insn_is_swappable_p): Don't provide
special handling for stores whose SET_SRC is an UNSPEC (such as
UNSPEC_STVE).

[gcc/testsuite]

2014-09-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* gcc.target/powerpc/swaps-p8-17.c: New test.

From-SVN: r215564

10 years agoImprove prepare_shrink_wrap to sink more instructions
Jiong Wang [Wed, 24 Sep 2014 18:30:34 +0000 (18:30 +0000)]
Improve prepare_shrink_wrap to sink more instructions

  gcc/
    * shrink-wrap.c (move_insn_for_shrink_wrap): Add further check when
    !REG_P (src) to release more instruction sink opportunities.

  gcc/testsuite/
    * gcc.target/aarch64/shrink_wrap_symbol_ref_1.c: New testcase.

From-SVN: r215563

10 years ago[AArch64] Improve regmove_costs for 128-bit types.
Wilco Dijkstra [Wed, 24 Sep 2014 18:22:50 +0000 (18:22 +0000)]
[AArch64] Improve regmove_costs for 128-bit types.

  2014-09-24  Wilco Dijkstra <wdijkstr@arm.com>

  gcc/
    * config/aarch64/aarch64.c (aarch64_register_move_cost): Add register move
    costs for 128-bit types.

From-SVN: r215562

10 years agoipa-prop.c (ipa_edge_duplication_hook): Update controlled_use_count when duplicating...
Martin Jambor [Wed, 24 Sep 2014 17:49:16 +0000 (19:49 +0200)]
ipa-prop.c (ipa_edge_duplication_hook): Update controlled_use_count when duplicating a PASS_THROUGH jump function when...

2014-09-24  Martin Jambor  <mjambor@suse.cz>

* ipa-prop.c (ipa_edge_duplication_hook): Update controlled_use_count
when duplicating a PASS_THROUGH jump function when creating a
speculative edge.

From-SVN: r215560

10 years agore PR c/61405 (Not emitting "enumeration value not handled in switch" warning for...
Marek Polacek [Wed, 24 Sep 2014 17:23:56 +0000 (17:23 +0000)]
re PR c/61405 (Not emitting "enumeration value not handled in switch" warning for bit-field enums)

PR c/61405
PR c/53874
gcc/
* asan.c (maybe_instrument_call): Add default case.
* ipa-pure-const.c (special_builtin_state): Likewise.
* predict.c (expr_expected_value_1): Likewise.
* lto-streamer-out.c (write_symbol): Initialize variable.
gcc/c-family/
* c-common.h (struct c_common_resword): Don't define CPP_KEYWORD.
gcc/c/
* c-parser.c: Don't define CPP_KEYWORD.
(c_parser_switch_statement): Pass original type to c_finish_case.
* c-tree.h (c_finish_case): Update declaration.
* c-typeck.c (c_finish_case): Add TYPE parameter.  Pass it
conditionally to c_do_switch_warnings.
gcc/cp/
* semantics.c (finish_switch_cond): Call unlowered_expr_type.
* tree.c (bot_manip): Add default case.
* parser.c (cp_parser_primary_expression): Cast the controlling
expression of a switch to an int.
(cp_parser_unqualified_id): Likewise.
gcc/testsuite/
* c-c++-common/pr53874.c: New test.
* c-c++-common/pr61405.c: New test.
libcpp/
* include/cpplib.h (enum cpp_ttype): Define CPP_KEYWORD.

From-SVN: r215559

10 years ago[AArch64] Use __aarch64_vget_lane* macros for getting the lane in some lane multiply...
Kyrylo Tkachov [Wed, 24 Sep 2014 12:47:59 +0000 (12:47 +0000)]
[AArch64] Use __aarch64_vget_lane* macros for getting the lane in some lane multiply intrinsics.

* config/aarch64/arm_neon.h (vmuld_lane_f64): Use macro for getting
the lane.
(vmuld_laneq_f64): Likewise.
(vmuls_lane_f32): Likewise.
(vmuls_laneq_f32): Likewise.

* gcc.target/aarch64/simd/vmul_lane_const_lane_1.c: New test.

From-SVN: r215553

10 years agore PR bootstrap/63235 (building fails with --disable-bootstrap)
Kirill Yukhin [Wed, 24 Sep 2014 12:27:30 +0000 (12:27 +0000)]
re PR bootstrap/63235 (building fails with --disable-bootstrap)

PR bootstrap/63235

gcc/
* varpool.c (varpool_node::add): Pass decl attributes
to lookup_attribute.

From-SVN: r215552

10 years agore PR libstdc++/63353 (libstdc++-v3/src/c++11/ios.cc:232: possible typo ?)
Jonathan Wakely [Wed, 24 Sep 2014 09:40:10 +0000 (10:40 +0100)]
re PR libstdc++/63353 (libstdc++-v3/src/c++11/ios.cc:232: possible typo ?)

PR libstdc++/63353
* src/c++11/ios.cc (ios_base::_M_swap): Fix typo.

From-SVN: r215549

10 years agore PR sanitizer/63316 (False asan positive)
Jakub Jelinek [Wed, 24 Sep 2014 09:14:17 +0000 (11:14 +0200)]
re PR sanitizer/63316 (False asan positive)

PR sanitizer/63316
* asan.c (asan_expand_check_ifn): Fix up align >= 8 optimization.

* c-c++-common/asan/pr63316.c: New test.

From-SVN: r215547

10 years agore PR tree-optimization/63266 (Test regression: gcc.target/sh/pr53568-1.c)
Thomas Preud'homme [Wed, 24 Sep 2014 08:27:21 +0000 (08:27 +0000)]
re PR tree-optimization/63266 (Test regression: gcc.target/sh/pr53568-1.c)

2014-09-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    PR tree-optimization/63266
    * tree-ssa-math-opts.c (struct symbolic_number): Add comment about
    marker for unknown byte value.
    (MARKER_MASK): New macro.
    (MARKER_BYTE_UNKNOWN): New macro.
    (HEAD_MARKER): New macro.
    (do_shift_rotate): Mark bytes with unknown values due to sign
    extension when doing an arithmetic right shift. Replace hardcoded
    mask for marker by new MARKER_MASK macro.
    (find_bswap_or_nop_1): Likewise and adjust ORing of two symbolic
    numbers accordingly.

    gcc/testsuite/
    PR tree-optimization/63266
    * gcc.dg/optimize-bswapsi-1.c (swap32_d): New bswap pass test.

From-SVN: r215546

10 years agoAVX-512. Add cvtps2 insn patterns.
Alexander Ivchenko [Wed, 24 Sep 2014 08:06:30 +0000 (08:06 +0000)]
AVX-512. Add cvtps2 insn patterns.

gcc/
* config/i386/sse.md
(define_insn
"<sse2_avx_avx512f>_fix_notrunc<sf2simodelower><mode><mask_name>"):
Add masking.
(define_insn "fix_truncv8sfv8si2<mask_name>"): Ditto.
(define_insn "fix_truncv4sfv4si2<mask_name>"): Ditto.

Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com>
Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com>
Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>
Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com>
Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>
From-SVN: r215545

10 years agoAVX-512. Add vpshuf[lh]w insn patterns.
Alexander Ivchenko [Wed, 24 Sep 2014 08:05:17 +0000 (08:05 +0000)]
AVX-512. Add vpshuf[lh]w insn patterns.

gcc/
* config/i386/sse.md
(define_c_enum "unspec"): Add UNSPEC_PSHUFHW, UNSPEC_PSHUFLW.
(define_insn "<mask_codefor>avx512bw_pshuflwv32hi<mask_name>"): New.
(define_expand "avx512vl_pshuflwv3_mask"): Ditto.
(define_insn "avx2_pshuflw_1<mask_name>"): Add masking.
(define_expand "avx512vl_pshuflw_mask"): New.
(define_insn "sse2_pshuflw_1<mask_name>"): Add masking.
(define_insn "<mask_codefor>avx512bw_pshufhwv32hi<mask_name>"): New.
(define_expand "avx512vl_pshufhwv3_mask"): Ditto.
(define_insn "avx2_pshufhw_1<mask_name>"): Add masking.
(define_expand "avx512vl_pshufhw_mask"): New.
(define_insn "sse2_pshufhw_1<mask_name>"): Add masking.

Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com>
Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com>
Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>
Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com>
Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>
From-SVN: r215544

10 years agoAVX-512. Add shuffles (pd, 32x4, etc.).
Alexander Ivchenko [Wed, 24 Sep 2014 08:04:04 +0000 (08:04 +0000)]
AVX-512. Add shuffles (pd, 32x4, etc.).

gcc/
* config/i386/i386.c
(ix86_expand_args_builtin): Handle CODE_FOR_sse2_shufpd,
CODE_FOR_sse2_sse2_shufpd_mask, CODE_FOR_sse2_avx512dq_shuf_f64x2_mask,
CODE_FOR_sse2_avx512dq_shuf_i64x2_mask,
CODE_FOR_sse2_avx512vl_shuf_i32x4_mask and
CODE_FOR_sse2_avx512vl_shuf_f32x4_mask.
* config/i386/sse.md
(define_expand "avx512dq_shuf_<shuffletype>64x2_mask"): New.
(define_insn
"<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>"): Ditto.
(define_expand "avx512vl_shuf_<shuffletype>32x4_mask"): Ditto.
(define_insn
"<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>"): Ditto.
(define_expand "avx512vl_pshufdv3_mask"): Ditto.
(define_insn "avx2_pshufd_1<mask_name>"): Add masking.
(define_expand "avx512vl_pshufd_mask"): New.
(define_insn "sse2_pshufd_1<mask_name>"): Add masking.

Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com>
Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com>
Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>
Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com>
Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>
From-SVN: r215543

10 years agoAVX-512. Add insert insn patterns.
Alexander Ivchenko [Wed, 24 Sep 2014 08:02:30 +0000 (08:02 +0000)]
AVX-512. Add insert insn patterns.

gcc/
* config/i386/i386.c
(CODE_FOR_avx2_extracti128): Rename to ...
(CODE_FOR_avx_vextractf128v4di): this.
(CODE_FOR_avx2_inserti128): Rename to ...
(CODE_FOR_avx_vinsertf128v4di): this.
(ix86_expand_args_builtin): Handle CODE_FOR_avx_vinsertf128v4di,
CODE_FOR_avx_vextractf128v4di.
(ix86_expand_args_builtin): Handle CODE_FOR_avx512dq_vinsertf32x8_mask,
CODE_FOR_avx512dq_vinserti32x8_mask, CODE_FOR_avx512vl_vinsertv4df,
CODE_FOR_avx512vl_vinsertv4di, CODE_FOR_avx512vl_vinsertv8sf,
CODE_FOR_avx512vl_vinsertv8si.
* config/i386/sse.md
(define_expand
"<extract_type>_vinsert<shuffletype><extract_suf>_mask"): Use
AVX512_VEC mode iterator.
(define_insn
"<mask_codefor><extract_type>_vinsert<shuffletype><extract_suf>_1<mask_name>"):
Ditto.
(define_expand
"<extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask"): Use
AVX512_VEC_2 mode iterator.
(define_insn "vec_set_lo_<mode><mask_name>"): New.
(define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
(define_expand "avx512vl_vinsert<mode>"): Ditto.
(define_insn "avx2_vec_set_lo_v4di"): Delete.
(define_insn "avx2_vec_set_hi_v4di"): Ditto.
(define_insn "vec_set_lo_<mode><mask_name>"): Add masking.
(define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
(define_insn "vec_set_lo_<mode><mask_name>"): Ditto.
(define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
(define_expand "avx2_extracti128"): Delete.
(define_expand "avx2_inserti128"): Ditto.

Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com>
Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com>
Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>
Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com>
Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>
From-SVN: r215542

10 years agoAVX-512. Add widening pmov.
Alexander Ivchenko [Wed, 24 Sep 2014 08:00:35 +0000 (08:00 +0000)]
AVX-512. Add widening pmov.

gcc/
* config/i386/sse.md
(define_insn "avx2_<code>v16qiv16hi2<mask_name>"): Add masking.
(define_insn "avx512bw_<code>v32qiv32hi2<mask_name>"): New.
(define_insn "sse4_1_<code>v8qiv8hi2<mask_name>"): Add masking.
(define_insn "avx2_<code>v8qiv8si2<mask_name>"): Ditto.
(define_insn "sse4_1_<code>v4qiv4si2<mask_name>"): Ditto.
(define_insn "avx2_<code>v8hiv8si2<mask_name>"): Ditto.
(define_insn "sse4_1_<code>v4hiv4si2<mask_name>"): Ditto.
(define_insn "avx2_<code>v4qiv4di2<mask_name>"): Ditto.
(define_insn "sse4_1_<code>v2qiv2di2<mask_name>"): Ditto.
(define_insn "avx2_<code>v4hiv4di2<mask_name>"): Ditto.
(define_insn "sse4_1_<code>v2hiv2di2<mask_name>"): Ditto.
(define_insn "avx2_<code>v4siv4di2<mask_name>"): Ditto.
(define_insn "sse4_1_<code>v2siv2di2<mask_name>"): Ditto.

Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com>
Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com>
Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>
Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com>
Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>
From-SVN: r215541

10 years agore PR rtl-optimization/63210 (ira does not select the best register compared with...
Zhenqiang Chen [Wed, 24 Sep 2014 07:00:55 +0000 (07:00 +0000)]
re PR rtl-optimization/63210 (ira does not select the best register compared with gcc 4.8 for ARM THUMB1)

ChangeLog:
2014-09-24  Zhenqiang Chen  <zhenqiang.chen@arm.com>

PR rtl-optimization/63210
* ira-color.c (assign_hard_reg): Ignore conflict cost if the
HARD_REGNO is not availabe for CONFLICT_A.

testsuite/ChangeLog:
2014-09-24  Zhenqiang Chen  <zhenqiang.chen@arm.com>

* gcc.target/arm/pr63210.c: New test.

From-SVN: r215540

10 years agoAdd test cases for noreorder
Andi Kleen [Wed, 24 Sep 2014 03:29:37 +0000 (03:29 +0000)]
Add test cases for noreorder

Add some simple test cases for noreorder behaving like
-fno-toplevel-reorder and -fno-toplevel-reorder still working.

gcc/testsuite/:

2014-09-23  Andi Kleen  <ak@linux.intel.com>

* gcc.dg/noreorder.c: New test.
* gcc.dg/noreorder2.c: New test.
* gcc.dg/noreorder3.c: New test.
* gcc.dg/noreorder4.c: New test.

From-SVN: r215538

10 years agoAdd an no_reorder attribute for LTO
Andi Kleen [Wed, 24 Sep 2014 03:29:24 +0000 (03:29 +0000)]
Add an no_reorder attribute for LTO

Some projects need to prevent reordering of specific top level
declarations with LTO, in particular declarations defining init calls.

The only way to do that with LTO was to use -fno-toplevel-reorder,
which stops reordering for all declarations and makes LTO partitioning
less efficient.

This patch adds a new no_reorder attribute that stops reordering only
for the marked declaration. The program can then only mark e.g. the
initcalls and leave all the other declarations alone.

The patch does:

- Adds the new no_reorder attribute for the C family.
- Initializes a new no_reorder flag in the symtab_nodes in the
function visibility flag.
- Maintains the no_reorder flag when creating new nodes.
- Changes the partition code to always keep a separate
sorted queue of ordered nodes and flush them in order with the other
nodes. This is used by all nodes with -fno-toplevel-reorder,
and only the marked ones without it.
Parts of the old -fno-toplevel-reorder code paths are reused.
- Adds various checks throughout the tree to make no_reorder
marked functions behave the same as with -fno-toplevel-reorder
- Changes the LTO streamer to serialize the no_reorder attribute.

gcc/c-family/:

2014-09-23  Andi Kleen  <ak@linux.intel.com>

* c-common.c (handle_no_reorder_attribute): New function.
(c_common_attribute_table): Add no_reorder attribute.

gcc/:

2014-09-23  Andi Kleen  <ak@linux.intel.com>

* cgraph.h (symtab_node): Add no_reorder attribute.
(symbol_table::output_asm_statements): Remove.
* cgraphclones.c (cgraph_node::create_clone): Copy no_reorder.
(cgraph_node::create_version_clone): Dito.
(symbol_table::output_asm_statements): Remove.
* trans-mem.c (ipa_tm_create_version_alias): Dito.
* cgraphunit.c (varpool_node::finalize_decl): Check no_reorder.
(output_in_order): Add no_reorder flag. Only handle no_reorder
nodes when set.
(symbol_table::compile): Add separate pass for no_reorder nodes.
(process_common_attributes): Set no_reorder flag in symtab node.
Add node argument.
(process_function_and_variable_attributes): Pass symtab nodes to
process_common_attributes.
* doc/extend.texi (no_reorder): Document no_reorder attribute.
* lto-cgraph.c (lto_output_node): Serialize no_reorder.
(lto_output_varpool_node): Dito.
(input_overwrite_node): Dito.
(input_varpool_node): Dito.
* varpool.c (varpool_node::add): Set no_reorder attribute.
(symbol_table::remove_unreferenced_decls): Handle no_reorder.
(symbol_table::output_variables): Dito.
* symtab.c (symtab_node::dump_base): Print no_reorder.

gcc/lto/:

2014-09-23  Andi Kleen  <ak@linux.intel.com>

* lto-partition.c (node_cmp): Update comment.
(varpool_node_cmp): Use symtab_node for comparison.
(add_sorted_nodes): New function.
(lto_balanced_map): Change to keep ordered queue
of ordered node. Handle no_reorder attribute.

From-SVN: r215537

10 years agoDaily bump.
GCC Administrator [Wed, 24 Sep 2014 00:16:50 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r215536

10 years agoFix compile time warning caused by PIC_OFFSET_TABLE_REGNUM be INVALID_REGNUM
Jiong Wang [Tue, 23 Sep 2014 21:19:28 +0000 (21:19 +0000)]
Fix compile time warning caused by PIC_OFFSET_TABLE_REGNUM be INVALID_REGNUM

2014-09-23  Jiong Wang  <jiong.wang@arm.com>

gcc/
  * shrink-wrap.c (try_shrink_wrapping): Check PIC_OFFSET_TABLE_REGNUM not
    be INVALID_REGNUM.

From-SVN: r215533

10 years agoProperly regenerate gcc/configure.
Thomas Schwinge [Tue, 23 Sep 2014 21:15:36 +0000 (23:15 +0200)]
Properly regenerate gcc/configure.

gcc/
* configure: Regenerate.

From-SVN: r215532

10 years agoRelax check against commuting XOR and ASHIFTRT in combine.c
Alan Lawrence [Tue, 23 Sep 2014 18:48:50 +0000 (18:48 +0000)]
Relax check against commuting XOR and ASHIFTRT in combine.c

gcc/:
* combine.c (simplify_shift_const_1): Allow commuting (ashiftrt (xor))
when result_mode == shift_mode.

gcc/testsuite/:
* gcc.dg/combine_ashiftrt_1.c: New test.
* gcc.dg/combine_ashiftrt_2.c: Likewise.
* gcc.target/aarch64/singleton_intrinsics_1.c: Remove scan-assembler
workarounds for cmge.
* gcc.target/aarch64/simd/int_comparisons_1.c: Likewise; also check for
absence of mvn.

From-SVN: r215531

10 years agodemangle.h (DMGL_DLANG): New macro.
Iain Buclaw [Tue, 23 Sep 2014 18:36:14 +0000 (18:36 +0000)]
demangle.h (DMGL_DLANG): New macro.

include/:
* demangle.h (DMGL_DLANG): New macro.
(DMGL_STYLE_MASK): Add DMGL_DLANG.
(demangling_styles): Add dlang_demangling.
(DLANG_DEMANGLING_STYLE_STRING): New macro.
(DLANG_DEMANGLING): New macro.
(dlang_demangle): New prototype.
libiberty/:
* Makefile.in (CFILES): Add d-demangle.c.
(REQUIRED_OFILES): Add d-demangle.o.
* cplus-dem.c (libiberty_demanglers): Add dlang_demangling case.
(cplus_demangle): Likewise.
* d-demangle.c: New file.
* testsuite/Makefile.in (really-check): Add check-d-demangle.
* testsuite/d-demangle-expected: New file.

From-SVN: r215530

10 years agore PR c++/61857 (An init-capturing lambda is parsed incorrectly when used in a braced...
Paolo Carlini [Tue, 23 Sep 2014 18:07:59 +0000 (18:07 +0000)]
re PR c++/61857 (An init-capturing lambda is parsed incorrectly when used in a braced-init-list)

/cp
2014-09-23  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/61857
* parser.c (cp_parser_skip_to_closing_square_bracket,
cp_parser_array_designator_p): New.
(cp_parser_initializer_list): Use the latter.

/testsuite
2014-09-23  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/61857
* g++.dg/cpp1y/lambda-init10.C: New.

From-SVN: r215528

10 years ago[libsanitizer merge from upstream r218156]
Kostya Serebryany [Tue, 23 Sep 2014 17:59:53 +0000 (17:59 +0000)]
[libsanitizer merge from upstream r218156]

From-SVN: r215527

10 years agors6000.md (f32_vsx): New mode attributes to refine the constraints used on 32/64...
Michael Meissner [Tue, 23 Sep 2014 17:11:07 +0000 (17:11 +0000)]
rs6000.md (f32_vsx): New mode attributes to refine the constraints used on 32/64-bit floating point...

2014-09-23  Michael Meissner  <meissner@linux.vnet.ibm.com>

* config/rs6000/rs6000.md (f32_vsx): New mode attributes to
refine the constraints used on 32/64-bit floating point moves.
(f32_av): Likewise.
(f64_vsx): Likewise.
(f64_dm): Likewise.
(f64_av): Likewise.
(BOOL_REGS_OUTPUT): Use wt constraint for TImode instead of wa.
(BOOL_REGS_OP1): Likewise.
(BOOL_REGS_OP2): Likewise.
(BOOL_REGS_UNARY): Likewise.
(mov<mode>_hardfloat, SFmode/SDmode): Tighten down constraints for
32/64-bit floating point moves.  Do not use wa, instead use ww/ws
for moves involving VSX registers.  Do not use constraints that
target VSX registers for decimal types.
(mov<mode>_hardfloat32, DFmode/DDmode): Likewise.
(mov<mode>_hardfloat64, DFmode/DDmode): Likewise.

From-SVN: r215521

10 years agotree.h (int_bit_position): Turn into inline function; implement using wide int.
Jan Hubicka [Tue, 23 Sep 2014 16:08:16 +0000 (18:08 +0200)]
tree.h (int_bit_position): Turn into inline function; implement using wide int.

* tree.h (int_bit_position): Turn into inline function;
implement using wide int.
* tree.c (int_bit_position): Remove.

From-SVN: r215518

10 years agore PR fortran/63331 (Fortran -fcompare-debug issues)
Jakub Jelinek [Tue, 23 Sep 2014 15:25:55 +0000 (17:25 +0200)]
re PR fortran/63331 (Fortran -fcompare-debug issues)

PR fortran/63331
* trans-types.c (gfc_get_array_descr_info): Build DEBUG_EXPR_DECL
instead of VAR_DECL for base_decl.

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

From-SVN: r215516

10 years agore PR bootstrap/63280 (Double free in GCC compiled with LTO and -O3.)
Richard Sandiford [Tue, 23 Sep 2014 14:47:45 +0000 (14:47 +0000)]
re PR bootstrap/63280 (Double free in GCC compiled with LTO and -O3.)

gcc/
PR bootstrap/63280
* target-globals.c (target_globals::~target_globals): Fix location
of ira_int destruction.

From-SVN: r215515

10 years agognu.ver: Adjust basic_ostream exports.
Jonathan Wakely [Tue, 23 Sep 2014 13:17:42 +0000 (14:17 +0100)]
gnu.ver: Adjust basic_ostream exports.

* config/abi/pre/gnu.ver: Adjust basic_ostream exports.
* include/std/istream (basic_iostream(basic_iostream&&)): Pass *this
to ostream constructor.
* include/std/ostream (basic_ostream(basic_iostream*)): Change to take
parameter by reference, to avoid ambiguity.
* testsuite/27_io/basic_ostream/cons/char/null.cc: New.

From-SVN: r215510

10 years ago[AArch64] Enable shrink wrapping.
Renlin Li [Tue, 23 Sep 2014 12:38:37 +0000 (12:38 +0000)]
[AArch64] Enable shrink wrapping.

From-SVN: r215508

10 years ago[AArch64] Default to -fsched-pressure
Wilco Dijkstra [Tue, 23 Sep 2014 11:14:42 +0000 (11:14 +0000)]
[AArch64] Default to -fsched-pressure

From-SVN: r215503

10 years agoMake all gcc.dg/guality/const-volatile.c subtests PASS under LTO.
Mark Wielaard [Tue, 23 Sep 2014 11:07:08 +0000 (11:07 +0000)]
Make all gcc.dg/guality/const-volatile.c subtests PASS under LTO.

Some subtests were reported as UNSUPPORTED when running under LTO.
That was just because the relevant variables were optimized out.
Mark those variables as used. Now const-volatile reports 192 PASS.

gcc/testsuite/ChangeLog

* gcc.dg/guality/const-volatile.c (i): Mark as used.
(ci): Likewise.
(pci): Likewise.
(pvi): Likewise.
(pcvi): Likewise.
(cip): Likewise.
(foo): Likewise.
(cfoo): Likewise.

From-SVN: r215502

10 years agogcc-gdb-test.exp: Handle old GDB "short int" and "long int" types.
Mark Wielaard [Tue, 23 Sep 2014 11:06:57 +0000 (11:06 +0000)]
gcc-gdb-test.exp: Handle old GDB "short int" and "long int" types.

Old GDB might show short and long as short int and long int. This made
gcc.dg/guality/const-volatile.c ans restrict.c fail on older GDBs.
According to the patch that changed this in newer versions of GDB
this was a bug: https://sourceware.org/ml/gdb-patches/2012-09/msg00455.html

The patch transforms the types "short int" and "long int" coming from
GDB to plain "short" and "long". And a variant has been added to the
const-volatile.c testcase to make sure short and long long are handled
correctly now with older GDB.

gcc/testsuite/ChangeLog

* lib/gcc-gdb-test.exp (gdb-test): Transform gdb types "short int"
and "long int" to plain "short" and "long".
* gcc.dg/guality/const-volatile.c (struct bar): New struct
containing short and long long fields.
(bar): New variable to test the type.

From-SVN: r215501