platform/upstream/linaro-gcc.git
9 years agoFix -freport-bug patch.
tschwinge [Fri, 26 Sep 2014 13:43:34 +0000 (13:43 +0000)]
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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215644 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-09-26 Christophe Lyon <christophe.lyon@linaro.org>
clyon [Fri, 26 Sep 2014 13:07:42 +0000 (13:07 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215642 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * cgraph.c (cgraph_node::release_body): New argument keep_arguments
marxin [Fri, 26 Sep 2014 10:37:44 +0000 (10:37 +0000)]
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215640 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * g++.dg/compat/struct-layout-1_generate.c: Add -Wno-abi
jakub [Fri, 26 Sep 2014 08:34:19 +0000 (08:34 +0000)]
* g++.dg/compat/struct-layout-1_generate.c: Add -Wno-abi
to default options.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215635 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/
chefmax [Fri, 26 Sep 2014 08:03:09 +0000 (08:03 +0000)]
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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215633 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agolibiberty/
chefmax [Fri, 26 Sep 2014 07:58:04 +0000 (07:58 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215632 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoAdd direct support for Linux kernel __fentry__ patching
ak [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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215629 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * ipa-prop.c (ipa_intraprocedural_devirtualization): Remove.
hubicka [Fri, 26 Sep 2014 01:49:40 +0000 (01:49 +0000)]
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215628 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-09-25 Sandra Loosemore <sandra@codesourcery.com>
sandra [Fri, 26 Sep 2014 00:51:26 +0000 (00:51 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215627 138bc75d-0d04-0410-961f-82ee72b054a4

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215626 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * ipa-utils.h (subbinfo_with_vtable_at_offset, type_all_derivations_known_p,
hubicka [Thu, 25 Sep 2014 19:52:20 +0000 (19:52 +0000)]
* 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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215615 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * ipa-devirt.c (polymorphic_call_target_d): Add SPECULATIVE; reorder
hubicka [Thu, 25 Sep 2014 18:57:44 +0000 (18:57 +0000)]
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215614 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago PR rtl-optimization/63348
uros [Thu, 25 Sep 2014 17:58:35 +0000 (17:58 +0000)]
PR rtl-optimization/63348
* emit-rtl.c (try_split): Do not emit extra barrier.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215613 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago[AArch64] Tighten predicates on SIMD shift intrinsics
jgreenhalgh [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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215612 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoImprove live-in calculation for splitted block
jiwang [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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215611 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * lra.c (lra_set_insn_recog_data): Fix typo in comment.
law [Thu, 25 Sep 2014 16:34:03 +0000 (16:34 +0000)]
    * lra.c (lra_set_insn_recog_data): Fix typo in comment.
        * genautomata.c (merge_states): Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215610 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/
olegendo [Thu, 25 Sep 2014 15:50:38 +0000 (15:50 +0000)]
gcc/
PR target/62218
* config/sh/sync.md (atomic_test_and_set_soft_imask): Fix typo
in instruction sequence.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215607 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago DR 1339
redi [Thu, 25 Sep 2014 15:27:18 +0000 (15:27 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215606 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago PR target/62218
nickc [Thu, 25 Sep 2014 15:01:46 +0000 (15:01 +0000)]
PR target/62218
* config/sh/sync.md (atomic_fetch_nand<mode>_soft_imask): Fix typo
in instruction sequence.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215602 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago[gcc]
wschmidt [Thu, 25 Sep 2014 14:06:09 +0000 (14:06 +0000)]
[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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215599 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago PR c++/61945
mpolacek [Thu, 25 Sep 2014 12:56:57 +0000 (12:56 +0000)]
PR c++/61945
* class.c (warn_hidden): Check for FUNCTION_DECL.

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215597 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * include/bits/vector.tcc (vector::_M_fill_assign): Use _M_swap_data.
redi [Thu, 25 Sep 2014 12:14:15 +0000 (12:14 +0000)]
* include/bits/vector.tcc (vector::_M_fill_assign): Use _M_swap_data.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215596 138bc75d-0d04-0410-961f-82ee72b054a4

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215593 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * testsuite/27_io/basic_ios/conv/bool_neg.cc: New.
redi [Thu, 25 Sep 2014 10:22:51 +0000 (10:22 +0000)]
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215592 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoAVX-512. Extend `perm' insn patterns.
kyukhin [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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215590 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoAVX-512. Add mov[dlh]dup insns support.
kyukhin [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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215589 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoAVX-512. Update vec_set<mode>_0 pattern.
kyukhin [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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215588 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoAVX-512. Add convert ps2pd and ps2dq.
kyukhin [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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215586 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoAVX-512. Add pd2dq and dq2pd converts.
kyukhin [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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215584 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago PR tree-optimization/63341
jakub [Thu, 25 Sep 2014 08:12:49 +0000 (08:12 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215583 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-09-25 Andreas Arnez <arnez@linux.vnet.ibm.com>
krebbel [Thu, 25 Sep 2014 07:37:36 +0000 (07:37 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215582 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago PR c++/63249
jakub [Thu, 25 Sep 2014 06:47:43 +0000 (06:47 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215580 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-09-25 Tobias Burnus <burnus@net-b.de>
burnus [Thu, 25 Sep 2014 06:07:15 +0000 (06:07 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215579 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago PR libstdc++/63199
timshen [Thu, 25 Sep 2014 04:43:19 +0000 (04:43 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215578 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * ipa-devirt.c (possible_polymorphic_call_targets): Remove
hubicka [Thu, 25 Sep 2014 03:37:31 +0000 (03:37 +0000)]
* ipa-devirt.c (possible_polymorphic_call_targets): Remove
forgotten debug output; canonicalize querries more wtih LTO.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215577 138bc75d-0d04-0410-961f-82ee72b054a4

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215576 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * cgraph.h (class ipa_polymorphic_call_context): Move here from
hubicka [Thu, 25 Sep 2014 01:48:34 +0000 (01:48 +0000)]
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215575 138bc75d-0d04-0410-961f-82ee72b054a4

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215574 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago PR libstdc++/56193
redi [Wed, 24 Sep 2014 22:13:35 +0000 (22:13 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215571 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * config/abi/pre/gnu.ver: Make GLIBCXX_3.4 patterns stricter so the
redi [Wed, 24 Sep 2014 22:13:29 +0000 (22:13 +0000)]
* config/abi/pre/gnu.ver: Make GLIBCXX_3.4 patterns stricter so the
new GLIBCXX_3.4.21 symbols don't match them.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215570 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * ipa-utils.h (polymorphic_call_context): Add
hubicka [Wed, 24 Sep 2014 20:30:21 +0000 (20:30 +0000)]
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215569 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-09-24 François Dumont <fdumont@gcc.gnu.org>
fdumont [Wed, 24 Sep 2014 19:55:35 +0000 (19:55 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215568 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * cgraph.h, dbxout.c, dwarfout2.c, gimple-fold.c,
aldyh [Wed, 24 Sep 2014 19:50:24 +0000 (19:50 +0000)]
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215567 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago[gcc]
wschmidt [Wed, 24 Sep 2014 18:35:33 +0000 (18:35 +0000)]
[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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215564 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoImprove prepare_shrink_wrap to sink more instructions
jiwang [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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215563 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago[AArch64] Improve regmove_costs for 128-bit types.
jiwang [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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215562 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-09-24 Martin Jambor <mjambor@suse.cz>
jamborm [Wed, 24 Sep 2014 17:49:16 +0000 (17:49 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215560 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago PR c/61405
mpolacek [Wed, 24 Sep 2014 17:23:56 +0000 (17:23 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215559 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago[AArch64] Use __aarch64_vget_lane* macros for getting the lane in some lane multiply...
ktkachov [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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215553 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoPR bootstrap/63235
kyukhin [Wed, 24 Sep 2014 12:27:30 +0000 (12:27 +0000)]
PR bootstrap/63235

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215552 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago PR libstdc++/63353
redi [Wed, 24 Sep 2014 09:40:10 +0000 (09:40 +0000)]
PR libstdc++/63353
* src/c++11/ios.cc (ios_base::_M_swap): Fix typo.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215549 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago PR sanitizer/63316
jakub [Wed, 24 Sep 2014 09:14:17 +0000 (09:14 +0000)]
PR sanitizer/63316
* asan.c (asan_expand_check_ifn): Fix up align >= 8 optimization.

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215547 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-09-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
thopre01 [Wed, 24 Sep 2014 08:27:21 +0000 (08:27 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215546 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoAVX-512. Add cvtps2 insn patterns.
kyukhin [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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215545 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoAVX-512. Add vpshuf[lh]w insn patterns.
kyukhin [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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215544 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoAVX-512. Add shuffles (pd, 32x4, etc.).
kyukhin [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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215543 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoAVX-512. Add insert insn patterns.
kyukhin [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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215542 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoAVX-512. Add widening pmov.
kyukhin [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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215541 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoChangeLog:
zqchen [Wed, 24 Sep 2014 07:00:55 +0000 (07:00 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215540 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoAdd test cases for noreorder
ak [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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215538 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoAdd an no_reorder attribute for LTO
ak [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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215537 138bc75d-0d04-0410-961f-82ee72b054a4

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215536 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoFix compile time warning caused by PIC_OFFSET_TABLE_REGNUM be INVALID_REGNUM
jiwang [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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215533 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoProperly regenerate gcc/configure.
tschwinge [Tue, 23 Sep 2014 21:15:36 +0000 (21:15 +0000)]
Properly regenerate gcc/configure.

gcc/
* configure: Regenerate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215532 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoRelax check against commuting XOR and ASHIFTRT in combine.c
alalaw01 [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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215531 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoinclude/:
ian [Tue, 23 Sep 2014 18:36:14 +0000 (18:36 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215530 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago/cp
paolo [Tue, 23 Sep 2014 18:07:59 +0000 (18:07 +0000)]
/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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215528 138bc75d-0d04-0410-961f-82ee72b054a4

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215527 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-09-23 Michael Meissner <meissner@linux.vnet.ibm.com>
meissner [Tue, 23 Sep 2014 17:11:07 +0000 (17:11 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215521 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * tree.h (int_bit_position): Turn into inline function;
hubicka [Tue, 23 Sep 2014 16:08:16 +0000 (16:08 +0000)]
* tree.h (int_bit_position): Turn into inline function;
implement using wide int.
* tree.c (int_bit_position): Remove.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215518 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago PR fortran/63331
jakub [Tue, 23 Sep 2014 15:25:55 +0000 (15:25 +0000)]
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215516 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/
rsandifo [Tue, 23 Sep 2014 14:47:45 +0000 (14:47 +0000)]
gcc/
PR bootstrap/63280
* target-globals.c (target_globals::~target_globals): Fix location
of ira_int destruction.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215515 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * config/abi/pre/gnu.ver: Adjust basic_ostream exports.
redi [Tue, 23 Sep 2014 13:17:42 +0000 (13:17 +0000)]
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215510 138bc75d-0d04-0410-961f-82ee72b054a4

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215508 138bc75d-0d04-0410-961f-82ee72b054a4

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215503 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoMake all gcc.dg/guality/const-volatile.c subtests PASS under LTO.
mark [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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215502 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc-gdb-test.exp: Handle old GDB "short int" and "long int" types.
mark [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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215501 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/
kyukhin [Tue, 23 Sep 2014 08:26:34 +0000 (08:26 +0000)]
gcc/
* cfgcleanup.c (try_optimize_cfg): Do not remove label
with LABEL_PRESERVE_P flag set.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215498 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2014-09-23 Paolo Carlini <paolo.carlini@oracle.com>
paolo [Tue, 23 Sep 2014 08:09:14 +0000 (08:09 +0000)]
2014-09-23  Paolo Carlini  <paolo.carlini@oracle.com>

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215497 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoAVX-512. Add vshufpd insn patterns.
kyukhin [Tue, 23 Sep 2014 07:21:32 +0000 (07:21 +0000)]
AVX-512. Add vshufpd insn patterns.

gcc/
* config/i386/sse.md
(define_expand "avx_shufpd256<mask_expand4_name>"): Add masking.
(define_insn "avx_shufpd256_1<mask_name>"): Ditto.
(define_expand "sse2_shufpd<mask_expand4_name>"): Ditto.
(define_insn "sse2_shufpd_v2df_mask"): New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215496 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoAVX-512. Add vshufps insn patterns.
kyukhin [Tue, 23 Sep 2014 07:20:37 +0000 (07:20 +0000)]
AVX-512. Add vshufps insn patterns.

gcc/
* config/i386/sse.md
(define_expand "avx_shufps256<mask_expand4_name>"): Add masking.
(define_insn "avx_shufps256_1<mask_name>"): Ditto.
(define_expand "sse_shufps<mask_expand4_name>"): Ditto.
(define_insn "sse_shufps_v4sf_mask"): New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215495 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoAVX-512. Add rest of vunpck[lh]ps.
kyukhin [Tue, 23 Sep 2014 07:19:00 +0000 (07:19 +0000)]
AVX-512. Add rest of vunpck[lh]ps.

gcc/
* config/i386/sse.md
(define_insn "avx_unpckhps256<mask_name>"): Add masking.
(define_insn "vec_interleave_highv4sf<mask_name>"): Ditto.
(define_insn "avx_unpcklps256<mask_name>"): Ditto.
(define_insn "unpcklps128_mask"): New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215494 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoAVX-512. Add masked vunpck[lh]pd.
kyukhin [Tue, 23 Sep 2014 07:17:19 +0000 (07:17 +0000)]
AVX-512. Add masked vunpck[lh]pd.

gcc/
* config/i386/sse.md
(define_insn "avx_unpckhpd256<mask_name>"): Add masking.
(define_insn "avx512vl_unpckhpd128_mask"): New.
(define_expand "avx_movddup256<mask_name>"): Add masking.
(define_expand "avx_unpcklpd256<mask_name>"): Ditto.
(define_insn "*avx_unpcklpd256<mask_name>"): Ditto.
(define_insn "avx512vl_unpcklpd128_mask"): New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215493 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoRemove LIBGCC2_LONG_DOUBLE_TYPE_SIZE target macro.
jsm28 [Tue, 23 Sep 2014 00:48:46 +0000 (00:48 +0000)]
Remove LIBGCC2_LONG_DOUBLE_TYPE_SIZE target macro.

This patch removes the target macro LIBGCC2_LONG_DOUBLE_TYPE_SIZE.

After recent changes, this macro was used in two ways in libgcc: to
determine the mode of long double in dfp-bit.h, and to determine
whether a particular mode has excess precision for use in complex
multiplication.

The former is concerned specifically with long double: it relates to
use of strtold for converting between decimal and binary floating
point.  This is replaced by comparing __LDBL_MANT_DIG__ with the
appropriate __LIBGCC_*_MANT_DIG__ macro.  The latter is replaced
__LIBGCC_*_EXCESS_PRECISION__ predefined macros.

Remarks:

* Comparing (__LDBL_MANT_DIG__ == __LIBGCC_XF_MANT_DIG__) is more
  fragile than it looks; it's possible for XFmode to have 53-bit
  mantissa (TARGET_96_ROUND_53_LONG_DOUBLE, on FreeBSD and
  DragonFlyBSD 32-bit), in which case such a comparison would not
  distinguish XFmode and DFmode as possible modes for long double.
  Fortunately, no target supporting that form of XFmode also supports
  long double = double (but if some target did, we'd need e.g. an
  additional macro giving the exponent range of each mode).

  Furthermore, this code doesn't actually get used for x86 (or any
  other target with XFmode support), because x86 uses BID not DPD and
  BID has its own conversion code (which handles conversions for both
  XFmode and TFmode without needing to go via strtold).  And FreeBSD
  and DragonFlyBSD aren't among the targets with DFP support.  So
  while in principle this code is fragile and it's a deficiency that
  it can't support both XFmode and TFmode at once (something that
  can't be solved with the string conversion approach without libc
  having TS 18661 functions such as strtof128), all these issues
  should not be a problem in practice.

* If other cases of excess precision are supported in future, the code
  for defining __LIBGCC_*_EXCESS_PRECISION__ may need updating.
  Although the most likely such cases might not actually involve
  excess precision for any mode used in libgcc - FLT_EVAL_METHOD being
  32 to do _Float16 arithmetic on _Float32 should have the effect of
  _Complex _Float16 arithmetic using __mulsc3 and __divsc3, rather
  than currently nonexistent __mulhc3 and __divhc3 as in bug 63250 for
  ARM.

* As has been noted in the context of simultaneous support for
  __float128 and __ibm128 on Power, the semantics of macros such as
  LONG_DOUBLE_TYPE_SIZE are problematic because they rely on a
  poorly-defined precision value for floating-point modes (which seems
  to be intended as the number of significant bits in the
  representation, e.g. 80 for XFmode which may be either 12 or 16
  bytes) uniquely identifying a mode (although defining an arbitrarily
  different value for one of the modes you wish to distinguish may
  work as a hack).  It would be cleaner to have a target hook that
  gives a machine mode directly for float, double and long double,
  rather than going via these precision values.  By eliminating all
  use of these macros (FLOAT_TYPE_SIZE, DOUBLE_TYPE_SIZE,
  LONG_DOUBLE_TYPE_SIZE) from code built for the target, this patch
  facilitates such a conversion to a hook (which I suppose would take
  some suitable enum as an argument to identify which of the three
  types to return a mode for).

  (The issue of multiple type support for DFP conversions would apply
  in that Power case.
  <https://gcc.gnu.org/ml/gcc-patches/2014-07/msg01084.html> doesn't
  seem to touch on it, but it would seem reasonable to punt on it
  initially as hard to fix.  There would also be the issue of getting
  functions such as __powikf2, __mulkc3, __divkc3 defined, but that's
  rather easier to address.)

Bootstrapped with no regressions on x86_64-unknown-linux-gnu.

gcc:
* doc/tm.texi.in (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
* doc/tm.texi: Regenerate.
* system.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Poison.
* config/alpha/alpha.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
* config/i386/i386-interix.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
Remove.
* config/i386/i386.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
* config/i386/rtemself.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
* config/ia64/ia64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
* config/m68k/m68k.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
* config/m68k/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
Remove.
* config/mips/mips.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
* config/mips/n32-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
* config/msp430/msp430.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
* config/rl78/rl78.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
* config/rs6000/rs6000.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
* config/rx/rx.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
* config/s390/s390.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
* config/sparc/freebsd.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
* config/sparc/linux.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
* config/sparc/linux64.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
* config/sparc/netbsd-elf.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE):
Remove.

gcc/c-family:
* c-cppbuiltin.c (c_cpp_builtins): Define
__LIBGCC_*_EXCESS_PRECISION__ macros for supported floating-point
modes.

libgcc:
* dfp-bit.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.
(__LIBGCC_XF_MANT_DIG__): Define if not already defined.
(LONG_DOUBLE_HAS_XF_MODE): Define in terms of
__LIBGCC_XF_MANT_DIG__.
(__LIBGCC_TF_MANT_DIG__): Define if not already defined.
(LONG_DOUBLE_HAS_TF_MODE): Define in terms of
__LIBGCC_TF_MANT_DIG__.
* libgcc2.c (NOTRUNC): Define in terms of
__LIBGCC_*_EXCESS_PRECISION__, not LIBGCC2_LONG_DOUBLE_TYPE_SIZE.
* libgcc2.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Remove.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215491 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoDaily bump.
gccadmin [Tue, 23 Sep 2014 00:16:30 +0000 (00:16 +0000)]
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215489 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoruntime: Mark runtime_goexit function as noinline.
ian [Mon, 22 Sep 2014 21:14:43 +0000 (21:14 +0000)]
runtime: Mark runtime_goexit function as noinline.

If the compiler inlines this function into kickoff, it may reuse
the TLS block address to load g. However, this is not necessarily
correct, as the call to g->entry in kickoff may cause the TLS
address to change. If the wrong value is loaded for g->status in
runtime_goexit, it may cause a runtime panic.

By marking the function as noinline we prevent the compiler from
reusing the TLS address.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215484 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * charset.c (conversion): Rename to ...
hubicka [Mon, 22 Sep 2014 19:43:02 +0000 (19:43 +0000)]
* charset.c (conversion): Rename to ...
(cpp_conversion): ... this one; update.
* files.c (file_hash_entry): Rename to ...
(cpp_file_hash_entry): ... this one ; update.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215482 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * tree-ssa-ccp.c (prop_value_d): Rename to ...
hubicka [Mon, 22 Sep 2014 19:41:02 +0000 (19:41 +0000)]
* tree-ssa-ccp.c (prop_value_d): Rename to ...
(ccp_prop_value_t): ... this one to avoid ODR violation; update uses.
* ipa-prop.c (struct type_change_info): Rename to ...
(prop_type_change_info): ... this; update uses.
* ggc-page.c (globals): Rename to ...
(static struct ggc_globals): ... this; update uses.
* tree-ssa-loop-im.c (mem_ref): Rename to ...
(im_mem_ref): ... this; update uses.
* ggc-common.c (loc_descriptor): Rename to ...
(ggc_loc_descriptor): ... this; update uses.
* lra-eliminations.c (elim_table): Rename to ...
(lra_elim_table): ... this; update uses.
* bitmap.c (output_info): Rename to ...
(bitmap_output_info): ... this; update uses.
* gcse.c (expr): Rename to ...
(gcse_expr) ... this; update uses.
(occr): Rename to ...
(gcse_occr): .. this; update uses.
* tree-ssa-copy.c (prop_value_d): Rename to ...
(prop_value_t): ... this.
* predict.c (block_info_def): Rename to ...
(block_info): ... this; update uses.
(edge_info_def): Rename to ...
(edge_info): ... this; update uses.
* profile.c (bb_info): Rename to ...
(bb_profile_info): ... this; update uses.
* alloc-pool.c (output_info): Rename to ...
(pool_output_info): ... this; update uses.
* ipa-cp.c (topo_info): Rename to ..
(ipa_topo_info): ... this; update uses.
* tree-nrv.c (nrv_data): Rename to ...
(nrv_data_t): ... this; update uses.
* ipa-split.c (bb_info): Rename to ...
(split_bb_info): ... this one.
* profile.h (edge_info): Rename to ...
(edge_profile_info): ... this one; update uses.
* dse.c (bb_info): Rename to ...
(dse_bb_info): ... this one; update uses.
* cprop.c (occr): Rename to ...
(cprop_occr): ... this one; update uses.
(expr): Rename to ...
(cprop_expr): ... this one; update uses.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215481 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * tree-ssa-ccp.c (prop_value_d): Rename to ...
hubicka [Mon, 22 Sep 2014 19:39:44 +0000 (19:39 +0000)]
* tree-ssa-ccp.c (prop_value_d): Rename to ...
(ccp_prop_value_t): ... this one to avoid ODR violation; update uses.
* ipa-prop.c (struct type_change_info): Rename to ...
(prop_type_change_info): ... this; update uses.
* ggc-page.c (globals): Rename to ...
(static struct ggc_globals): ... this; update uses.
* tree-ssa-loop-im.c (mem_ref): Rename to ...
(im_mem_ref): ... this; update uses.
* ggc-common.c (loc_descriptor): Rename to ...
(ggc_loc_descriptor): ... this; update uses.
* lra-eliminations.c (elim_table): Rename to ...
(lra_elim_table): ... this; update uses.
* bitmap.c (output_info): Rename to ...
(bitmap_output_info): ... this; update uses.
* gcse.c (expr): Rename to ...
(gcse_expr) ... this; update uses.
(occr): Rename to ...
(gcse_occr): .. this; update uses.
* tree-ssa-copy.c (prop_value_d): Rename to ...
(prop_value_t): ... this.
* predict.c (block_info_def): Rename to ...
(block_info): ... this; update uses.
(edge_info_def): Rename to ...
(edge_info): ... this; update uses.
* profile.c (bb_info): Rename to ...
(bb_profile_info): ... this; update uses.
* alloc-pool.c (output_info): Rename to ...
(pool_output_info): ... this; update uses.
* ipa-cp.c (topo_info): Rename to ..
(ipa_topo_info): ... this; update uses.
* tree-nrv.c (nrv_data): Rename to ...
(nrv_data_t): ... this; update uses.
* ipa-split.c (bb_info): Rename to ...
(split_bb_info): ... this one.
* profile.h (edge_info): Rename to ...
(edge_profile_info): ... this one; update uses.
* dse.c (bb_info): Rename to ...
(dse_bb_info): ... this one; update uses.
* cprop.c (occr): Rename to ...
(cprop_occr): ... this one; update uses.
(expr): Rename to ...
(cprop_expr): ... this one; update uses.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215480 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * semantics.c (finish_non_static_data_member): In diagnostic, give
jason [Mon, 22 Sep 2014 19:22:37 +0000 (19:22 +0000)]
* semantics.c (finish_non_static_data_member): In diagnostic, give
error at point of use and note at point of declaration.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215479 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago PR c++/63320
jason [Mon, 22 Sep 2014 19:22:11 +0000 (19:22 +0000)]
PR c++/63320
PR c++/60463
PR c++/60755
* lambda.c (maybe_resolve_dummy, lambda_expr_this_capture): Handle
not finding 'this'.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215478 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago/cp
paolo [Mon, 22 Sep 2014 19:21:20 +0000 (19:21 +0000)]
/cp
2014-09-22  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/62219
* pt.c (check_default_tmpl_args): Check LAMBDA_FUNCTION_P.

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

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215477 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago[Testsuite] Add tests of reductions using whole-vector-shifts (ior)
alalaw01 [Mon, 22 Sep 2014 16:36:06 +0000 (16:36 +0000)]
[Testsuite] Add tests of reductions using whole-vector-shifts (ior)

* gcc.dg/vect/vect-reduc-or_1.c: New test.
* gcc.dg/vect/vect-reduc-or_2.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215475 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/
jason [Mon, 22 Sep 2014 16:33:35 +0000 (16:33 +0000)]
gcc/
* Makefile.in (check-parallel-%): Add @.
libstdc++-v3/
* testsuite/Makefile.am (%/site.exp): Add @.
(check-DEJAGNU): Likewise.
* testsuite/Makefile.in: Regenerate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215474 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago[Testsuite] Add tests of reductions using whole-vector-shifts (multiplication)
alalaw01 [Mon, 22 Sep 2014 16:33:05 +0000 (16:33 +0000)]
[Testsuite] Add tests of reductions using whole-vector-shifts (multiplication)

* lib/target-supports.exp (check_effective_target_whole_vector_shift):
New.

* gcc.dg/vect/vect-reduc-mul_1.c: New test.
* gcc.dg/vect/vect-reduc-mul_2.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215473 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * decl.c (poplevel): Don't warn about unused vars in template scope.
jason [Mon, 22 Sep 2014 16:31:09 +0000 (16:31 +0000)]
* decl.c (poplevel): Don't warn about unused vars in template scope.
* error.c (dump_decl): Handle variable templates.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215472 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago[AArch64] Auto-generate the "BUILTIN_" macros for aarch64-builtins.c
jgreenhalgh [Mon, 22 Sep 2014 16:24:57 +0000 (16:24 +0000)]
[AArch64] Auto-generate the "BUILTIN_" macros for aarch64-builtins.c

gcc/

* config/aarch64/geniterators.sh: New.
* config/aarch64/iterators.md (VDQF_DF): New.
* config/aarch64/t-aarch64: Generate aarch64-builtin-iterators.h.
* config/aarch64/aarch64-builtins.c (BUILTIN_*) Remove.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215471 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoInclude <bits/uses_allocator.h> in <stack> and <queue>.
redi [Mon, 22 Sep 2014 16:01:53 +0000 (16:01 +0000)]
Include <bits/uses_allocator.h> in <stack> and <queue>.

* include/bits/stl_queue.h: Include missing header.
* include/bits/stl_stack.h: Likewise.
* testsuite/23_containers/priority_queue/requirements/
uses_allocator.cc: New.
* testsuite/23_containers/queue/requirements/uses_allocator.cc: New.
* testsuite/23_containers/stack/requirements/uses_allocator.cc: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215470 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * config/msp430/msp430.h (LIB_SPEC): Remove automatic addition of
nickc [Mon, 22 Sep 2014 15:47:31 +0000 (15:47 +0000)]
* config/msp430/msp430.h (LIB_SPEC): Remove automatic addition of
-lnosys when -msim absent.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215469 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * doc/xml/manual/status_cxx2011.xml: Update C++11 status.
redi [Mon, 22 Sep 2014 15:25:37 +0000 (15:25 +0000)]
* doc/xml/manual/status_cxx2011.xml: Update C++11 status.
* doc/xml/manual/status_cxx2014.xml: Update TS status.
* doc/html/manual/status.html: Regenerate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@215468 138bc75d-0d04-0410-961f-82ee72b054a4