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

9 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

9 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

9 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

9 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

9 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

9 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

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

From-SVN: r215675

9 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

9 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

9 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

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

From-SVN: r215662

9 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

9 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

9 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

9 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

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

From-SVN: r215654

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

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

From-SVN: r215626

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

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

From-SVN: r215576

9 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

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

From-SVN: r215574

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

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

From-SVN: r215536

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 years agocfgcleanup.c (try_optimize_cfg): Do not remove label with LABEL_PRESERVE_P flag set.
Ilya Enkovich [Tue, 23 Sep 2014 08:26:34 +0000 (08:26 +0000)]
cfgcleanup.c (try_optimize_cfg): Do not remove label with LABEL_PRESERVE_P flag set.

gcc/
* cfgcleanup.c (try_optimize_cfg): Do not remove label
with LABEL_PRESERVE_P flag set.

From-SVN: r215498

9 years agore PR c++/62155 (ICE in tsubst_copy, at cp/pt.c:12544)
Paolo Carlini [Tue, 23 Sep 2014 08:09:14 +0000 (08:09 +0000)]
re PR c++/62155 (ICE in tsubst_copy, at cp/pt.c:12544)

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

PR c++/62155
* g++.dg/cpp0x/lambda/lambda-62155.C: New.

From-SVN: r215497