platform/upstream/gcc.git
9 years agore PR tree-optimization/64191 (indirect clobbers messes up dead code elimination...
Richard Biener [Wed, 10 Dec 2014 09:29:05 +0000 (09:29 +0000)]
re PR tree-optimization/64191 (indirect clobbers messes up dead code elimination in loop calling dtor)

2014-12-10  Richard Biener  <rguenther@suse.de>

PR tree-optimization/64191
* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Do not
mark clobbers as necessary.
(eliminate_unnecessary_stmts): Keep clobbers live if we can.

* g++.dg/pr64191.C: Make sure we can DCE empty loops with
indirect clobbers.

From-SVN: r218566

9 years agore PR target/63594 (ICE: in ix86_vector_duplicate_value, at config/i386/i386.c:39831...
Jakub Jelinek [Wed, 10 Dec 2014 09:00:50 +0000 (10:00 +0100)]
re PR target/63594 (ICE: in ix86_vector_duplicate_value, at config/i386/i386.c:39831 with -mavx512f)

PR target/63594
* config/i386/sse.md (vec_dupv4sf): Move after
<mask_codefor><avx512>_vec_dup_gpr<mode><mask_name> pattern.
(*vec_dupv4si, *vec_dupv2di): Likewise.
(<mask_codefor><avx512>_vec_dup_mem<mode><mask_name>): Merge into ...
(<mask_codefor><avx512>_vec_dup_gpr<mode><mask_name>): ... this
pattern.
(*vec_dup<mode> AVX2_VEC_DUP_MODE splitter): Disable for
TARGET_AVX512VL (for QI/HI scalar modes only if TARGET_AVX512BW
is set too).
* config/i386/i386.c (enum ix86_builtins): Remove
IX86_BUILTIN_PBROADCASTQ256_MEM_MASK,
IX86_BUILTIN_PBROADCASTQ128_MEM_MASK and
IX86_BUILTIN_PBROADCASTQ512_MEM.
(bdesc_args): Use __builtin_ia32_pbroadcastq512_gpr_mask,
__builtin_ia32_pbroadcastq256_gpr_mask and
__builtin_ia32_pbroadcastq128_gpr_mask instead of *_mem_mask
regardless of OPTION_MASK_ISA_64BIT.
* config/i386/avx512fintrin.h (_mm512_set1_epi64,
_mm512_mask_set1_epi64, _mm512_maskz_set1_epi64): Use *_gpr_mask
builtins regardless of whether TARGET_64BIT is defined or not.
* config/i386/avx512vlintrin.h (_mm256_mask_set1_epi64,
_mm256_maskz_set1_epi64, _mm_mask_set1_epi64, _mm_maskz_set1_epi64):
Likewise.

From-SVN: r218565

9 years agosse.md (*mov<mode>_internal, [...]): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE...
Jakub Jelinek [Wed, 10 Dec 2014 08:44:46 +0000 (09:44 +0100)]
sse.md (*mov<mode>_internal, [...]): Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).

* config/i386/sse.md (*mov<mode>_internal, *avx512f_gatherdi<mode>_2):
Use <MODE_SIZE> instead of GET_MODE_SIZE (<MODE>mode).

From-SVN: r218564

9 years agore PR target/53513 ([SH] Add support for fpchg insn and improve fenv support)
Oleg Endo [Wed, 10 Dec 2014 08:31:32 +0000 (08:31 +0000)]
re PR target/53513 ([SH] Add support for fpchg insn and improve fenv support)

gcc/
PR target/53513
* doc/extend.texi (__builtin_sh_set_fpscr): Fix typo.

From-SVN: r218563

9 years agore PR tree-optimization/61686 (Incorrect check in comparison function range_entry_cmp...
Marek Polacek [Wed, 10 Dec 2014 08:20:43 +0000 (08:20 +0000)]
re PR tree-optimization/61686 (Incorrect check in comparison function range_entry_cmp() in tree_ssa_reassoc.c)

PR tree-optimization/61686
* tree-ssa-reassoc.c (range_entry_cmp): Use q->high instead of
p->high.

From-SVN: r218560

9 years agolibgcc.texi: Update text to match implementation in libgcc/libgcc2.c
Kito Cheng [Wed, 10 Dec 2014 05:43:53 +0000 (05:43 +0000)]
libgcc.texi: Update text to match implementation in libgcc/libgcc2.c

* doc/libgcc.texi: Update text to match implementation in
libgcc/libgcc2.c

From-SVN: r218559

9 years agoremove gengtype support for param_is use_param, if_marked and splay tree allocators
Trevor Saunders [Wed, 10 Dec 2014 03:45:40 +0000 (03:45 +0000)]
remove gengtype support for param_is use_param, if_marked and splay tree allocators

gcc/

* plugin.c, plugin.def, ggc.h, ggc-common.c, gengtype.h, gengtype.c,
gengtype-state.c, gengtype-parse.c, gentype-lex.l, gcc-plugin.h,
doc/plugins.texi, doc/gty.texi: Remove support for if_marked and
param_is.

include/

* hashtab.h, splay-tree.h: Remove GTY markers.

From-SVN: r218558

9 years agore PR c++/64129 (ICE on invalid: in grokfndecl, at cp/decl.c:7658)
Jason Merrill [Wed, 10 Dec 2014 02:51:03 +0000 (21:51 -0500)]
re PR c++/64129 (ICE on invalid: in grokfndecl, at cp/decl.c:7658)

PR c++/64129
* decl.c (grokdeclarator): Recover from variable template
specialization declared as function.

From-SVN: r218557

9 years agore PR c++/64222 (error: ‘__FUNCTION__’ was not declared in this scope)
Jason Merrill [Wed, 10 Dec 2014 02:50:54 +0000 (21:50 -0500)]
re PR c++/64222 (error: ‘__FUNCTION__’ was not declared in this scope)

PR c++/64222
* parser.c (cp_parser_unqualified_id): Don't declare fname while
parsing function parms.

From-SVN: r218556

9 years agoImplement LWG DR 2329 and DR 2332.
Jonathan Wakely [Wed, 10 Dec 2014 01:37:37 +0000 (01:37 +0000)]
Implement LWG DR 2329 and DR 2332.

* include/bits/regex.h (regex_match, regex_search): LWG DR 2329,
add deleted overloads for rvalue strings.
(regex_iterator, regex_token_iterator): LWG DR 2332, add deleted
constructors for rvalue regexes.
* testsuite/28_regex/algorithms/regex_match/dr2329_neg.cc: New.
* testsuite/28_regex/algorithms/regex_search/dr2329_neg.cc: New.
* testsuite/28_regex/iterators/regex_iterator/ctors/char/dr2332_neg.cc:
New.
* testsuite/28_regex/iterators/regex_token_iterator/ctors/char/
dr2332_neg.cc: New.

From-SVN: r218555

9 years agocompiler: Don't track fields in compiler-generated hash and eq funcs.
Ian Lance Taylor [Wed, 10 Dec 2014 00:56:00 +0000 (00:56 +0000)]
compiler: Don't track fields in compiler-generated hash and eq funcs.

Also, lower field tracking calls.

From-SVN: r218554

9 years agofuture (__future_base::_Setter::operator(), [...]): Make call operators const.
Jonathan Wakely [Wed, 10 Dec 2014 00:39:37 +0000 (00:39 +0000)]
future (__future_base::_Setter::operator(), [...]): Make call operators const.

* include/std/future (__future_base::_Setter::operator(),
__future_base::_Task_setter::operator()): Make call operators const.

From-SVN: r218553

9 years agolocale_facets.tcc (numpunct::_M_cache): Avoid calling virtual functions twice.
Jonathan Wakely [Wed, 10 Dec 2014 00:21:37 +0000 (00:21 +0000)]
locale_facets.tcc (numpunct::_M_cache): Avoid calling virtual functions twice.

* include/bits/locale_facets.tcc (numpunct::_M_cache): Avoid calling
virtual functions twice. Only update _M_allocated after all
allocations have succeeded.
* include/bits/locale_facets_nonio.tcc (moneypunct::_M_cache):
Likewise.
* include/bits/locale_facets_nonio.h (__timepunct::_M_cache): Remove
unused declaration.

From-SVN: r218552

9 years agore PR target/53513 ([SH] Add support for fpchg insn and improve fenv support)
Oleg Endo [Wed, 10 Dec 2014 00:21:36 +0000 (00:21 +0000)]
re PR target/53513 ([SH] Add support for fpchg insn and improve fenv support)

gcc/
PR target/53513
* doc/extend.texi (__builtin_sh_get_fpscr, __builtin_sh_get_fpscr):
Document it.

From-SVN: r218551

9 years agoDaily bump.
GCC Administrator [Wed, 10 Dec 2014 00:16:28 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r218550

9 years agore PR middle-end/64225 (-funsafe-math-optimizations generates call to pow where multi...
Bill Schmidt [Tue, 9 Dec 2014 23:02:06 +0000 (23:02 +0000)]
re PR middle-end/64225 (-funsafe-math-optimizations generates call to pow where multiply instruction would do)

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

PR middle-end/64225
* tree-ssa-reassoc.c (acceptable_pow_call): Disable transformation
for BUILT_IN_POW when flag_errno_math is present.

From-SVN: r218546

9 years agolto-wrapper.c (compile_offload_image): Start processing in_argv from 0 instead of 1.
Ilya Verbin [Tue, 9 Dec 2014 22:44:16 +0000 (22:44 +0000)]
lto-wrapper.c (compile_offload_image): Start processing in_argv from 0 instead of 1.

gcc/
* lto-wrapper.c (compile_offload_image): Start processing in_argv
from 0 instead of 1.
(run_gcc): Put offload objects into offload_argv, put LTO objects and
possible preceding arguments into lto_argv.
Pass offload_argv to compile_images_for_offload_targets instead of argv.
Use lto_argv for LTO recompilation instead of argv.
lto-plugin/
* lto-plugin.c (offload_files, num_offload_files): New static variables.
(free_1): Use arguments instead of global variables.
(free_2): Free offload_files.
(all_symbols_read_handler): Add names from offload_files to lto-wrapper
arguments.
(claim_file_handler): Do not add file to claimed_files if it contains
offload sections without LTO sections.  Add it to offload_files instead.

From-SVN: r218543

9 years agoFix date in change log entry.
Oleg Endo [Tue, 9 Dec 2014 22:44:12 +0000 (22:44 +0000)]
Fix date in change log entry.

From-SVN: r218542

9 years agoAdd missing link to PR in change log entry.
Oleg Endo [Tue, 9 Dec 2014 22:40:20 +0000 (22:40 +0000)]
Add missing link to PR in change log entry.

From-SVN: r218541

9 years agotoyvm.c: use correct path in debuginfo
David Malcolm [Tue, 9 Dec 2014 20:55:18 +0000 (20:55 +0000)]
toyvm.c: use correct path in debuginfo

gcc/jit/ChangeLog:
* docs/examples/tut04-toyvm/toyvm.c (toyvm_function_compile): Move
logic for determine "funcname" to new function...
(get_function_name): ...here, adding logic to skip any leading
path from the filename.
(toyvm_function_parse): Use the filename for fn_filename, rather
than "name", so that the debugger can locate the source .toy
file.
(toyvm_function_parse): Don't fclose a NULL FILE *.

From-SVN: r218540

9 years ago(libgcc_s) Optional filename-based shared library versioning on AIX.
Michael Haubenwallner [Tue, 9 Dec 2014 20:48:48 +0000 (20:48 +0000)]
(libgcc_s) Optional filename-based shared library versioning on AIX.

2014-12-09  Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>

        (libgcc_s) Optional filename-based shared library versioning on AIX.
        * gcc/doc/install.texi: Describe --with-aix-soname option.
        * Makefile.in (with_aix_soname): Define.
        * config/rs6000/t-slibgcc-aix: Act upon --with-aix-soname option.
        * configure.ac: Accept --with-aix-soname=aix|svr4|both option.
        * configure: Recreate.

From-SVN: r218539

9 years agoPR jit/63854: Document how to run the jit testsuite under valgrind
David Malcolm [Tue, 9 Dec 2014 20:46:33 +0000 (20:46 +0000)]
PR jit/63854: Document how to run the jit testsuite under valgrind

gcc/jit/ChangeLog:
PR jit/63854
* docs/internals/index.rst (Running under valgrind): New
subsection.
(docs/_build/texinfo/libgccjit.texi): Regenerate.

From-SVN: r218538

9 years ago[AArch64]Remove aarch64_get_lanedi, unused
Alan Lawrence [Tue, 9 Dec 2014 20:28:44 +0000 (20:28 +0000)]
[AArch64]Remove aarch64_get_lanedi, unused

* config/aarch64/aarch64-simd.md (aarch64_get_lanedi): Remove.

From-SVN: r218537

9 years ago[AArch64]Remove be_checked_get_lane, check bounds with __builtin_aarch64_im_lane_boundsi.
Alan Lawrence [Tue, 9 Dec 2014 20:23:36 +0000 (20:23 +0000)]
[AArch64]Remove be_checked_get_lane, check bounds with __builtin_aarch64_im_lane_boundsi.

gcc/:

PR target/63870
* config/aarch64/aarch64-simd-builtins.def (be_checked_get_lane):
Delete.
* config/aarch64/aarch64-simd.md (aarch64_be_checked_get_lane<mode\>):
Delete.
* config/aarch64/arm_neon.h (aarch64_vget_lane_any): Use GCC
vector extensions, __aarch64_lane, __builtin_aarch64_im_lane_boundsi.
(__aarch64_vget_lane_f32, __aarch64_vget_lane_f64,
__aarch64_vget_lane_p8, __aarch64_vget_lane_p16,
__aarch64_vget_lane_s8, __aarch64_vget_lane_s16,
__aarch64_vget_lane_s32, __aarch64_vget_lane_s64,
__aarch64_vget_lane_u8, __aarch64_vget_lane_u16,
__aarch64_vget_lane_u32, __aarch64_vget_lane_u64,
__aarch64_vgetq_lane_f32, __aarch64_vgetq_lane_f64,
__aarch64_vgetq_lane_p8, __aarch64_vgetq_lane_p16,
__aarch64_vgetq_lane_s8, __aarch64_vgetq_lane_s16,
__aarch64_vgetq_lane_s32, __aarch64_vgetq_lane_s64,
__aarch64_vgetq_lane_u8, __aarch64_vgetq_lane_u16,
__aarch64_vgetq_lane_u32, __aarch64_vgetq_lane_u64): Delete.
(__aarch64_vdup_lane_any): Use __aarch64_vget_lane_any, remove
'q2' argument.
(__aarch64_vdup_lane_f32, __aarch64_vdup_lane_f64,
__aarch64_vdup_lane_p8, __aarch64_vdup_lane_p16,
__aarch64_vdup_lane_s8, __aarch64_vdup_lane_s16,
__aarch64_vdup_lane_s32, __aarch64_vdup_lane_s64,
__aarch64_vdup_lane_u8, __aarch64_vdup_lane_u16,
__aarch64_vdup_lane_u32, __aarch64_vdup_lane_u64,
__aarch64_vdup_laneq_f32, __aarch64_vdup_laneq_f64,
__aarch64_vdup_laneq_p8, __aarch64_vdup_laneq_p16,
__aarch64_vdup_laneq_s8, __aarch64_vdup_laneq_s16,
__aarch64_vdup_laneq_s32, __aarch64_vdup_laneq_s64,
__aarch64_vdup_laneq_u8, __aarch64_vdup_laneq_u16,
__aarch64_vdup_laneq_u32, __aarch64_vdup_laneq_u64): Remove argument
to __aarch64_vdup_lane_any.
(vget_lane_f32, vget_lane_f64, vget_lane_p8, vget_lane_p16,
vget_lane_s8, vget_lane_s16, vget_lane_s32, vget_lane_s64,
vget_lane_u8, vget_lane_u16, vget_lane_u32, vget_lane_u64,
vgetq_lane_f32, vgetq_lane_f64, vgetq_lane_p8, vgetq_lane_p16,
vgetq_lane_s8, vgetq_lane_s16, vgetq_lane_s32, vgetq_lane_s64,
vgetq_lane_u8, vgetq_lane_u16, vgetq_lane_u32, vgetq_lane_u64,
vdupb_lane_p8, vdupb_lane_s8, vdupb_lane_u8, vduph_lane_p16,
vduph_lane_s16, vduph_lane_u16, vdups_lane_f32, vdups_lane_s32,
vdups_lane_u32, vdupb_laneq_p8, vdupb_laneq_s8, vdupb_laneq_u8,
vduph_laneq_p16, vduph_laneq_s16, vduph_laneq_u16, vdups_laneq_f32,
vdups_laneq_s32, vdups_laneq_u32, vdupd_laneq_f64, vdupd_laneq_s64,
vdupd_laneq_u64, vfmas_lane_f32, vfma_laneq_f64, vfmad_laneq_f64,
vfmas_laneq_f32, vfmss_lane_f32, vfms_laneq_f64, vfmsd_laneq_f64,
vfmss_laneq_f32, vmla_lane_f32, vmla_lane_s16, vmla_lane_s32,
vmla_lane_u16, vmla_lane_u32, vmla_laneq_f32, vmla_laneq_s16,
vmla_laneq_s32, vmla_laneq_u16, vmla_laneq_u32, vmlaq_lane_f32,
vmlaq_lane_s16, vmlaq_lane_s32, vmlaq_lane_u16, vmlaq_lane_u32,
vmlaq_laneq_f32, vmlaq_laneq_s16, vmlaq_laneq_s32, vmlaq_laneq_u16,
vmlaq_laneq_u32, vmls_lane_f32, vmls_lane_s16, vmls_lane_s32,
vmls_lane_u16, vmls_lane_u32, vmls_laneq_f32, vmls_laneq_s16,
vmls_laneq_s32, vmls_laneq_u16, vmls_laneq_u32, vmlsq_lane_f32,
vmlsq_lane_s16, vmlsq_lane_s32, vmlsq_lane_u16, vmlsq_lane_u32,
vmlsq_laneq_f32, vmlsq_laneq_s16, vmlsq_laneq_s32, vmlsq_laneq_u16,
vmlsq_laneq_u32, vmul_lane_f32, vmul_lane_s16, vmul_lane_s32,
vmul_lane_u16, vmul_lane_u32, vmuld_lane_f64, vmuld_laneq_f64,
vmuls_lane_f32, vmuls_laneq_f32, vmul_laneq_f32, vmul_laneq_f64,
vmul_laneq_s16, vmul_laneq_s32, vmul_laneq_u16, vmul_laneq_u32,
vmulq_lane_f32, vmulq_lane_s16, vmulq_lane_s32, vmulq_lane_u16,
vmulq_lane_u32, vmulq_laneq_f32, vmulq_laneq_f64, vmulq_laneq_s16,
vmulq_laneq_s32, vmulq_laneq_u16, vmulq_laneq_u32) : Use
__aarch64_vget_lane_any.

gcc/testsuite/:

* gcc.target/aarch64/simd/vget_lane_f32_indices_1.c: New test.
* gcc.target/aarch64/simd/vget_lane_f64_indices_1.c: Likewise.
* gcc.target/aarch64/simd/vget_lane_p16_indices_1.c: Likewise.
* gcc.target/aarch64/simd/vget_lane_p8_indices_1.c: Likewise.
* gcc.target/aarch64/simd/vget_lane_s16_indices_1.c: Likewise.
* gcc.target/aarch64/simd/vget_lane_s32_indices_1.c: Likewise.
* gcc.target/aarch64/simd/vget_lane_s64_indices_1.c: Likewise.
* gcc.target/aarch64/simd/vget_lane_s8_indices_1.c: Likewise.
* gcc.target/aarch64/simd/vget_lane_u16_indices_1.c: Likewise.
* gcc.target/aarch64/simd/vget_lane_u32_indices_1.c: Likewise.
* gcc.target/aarch64/simd/vget_lane_u64_indices_1.c: Likewise.
* gcc.target/aarch64/simd/vget_lane_u8_indices_1.c: Likewise.
* gcc.target/aarch64/simd/vgetq_lane_f32_indices_1.c: Likewise.
* gcc.target/aarch64/simd/vgetq_lane_f64_indices_1.c: Likewise.
* gcc.target/aarch64/simd/vgetq_lane_p16_indices_1.c: Likewise.
* gcc.target/aarch64/simd/vgetq_lane_p8_indices_1.c: Likewise.
* gcc.target/aarch64/simd/vgetq_lane_s16_indices_1.c: Likewise.
* gcc.target/aarch64/simd/vgetq_lane_s32_indices_1.c: Likewise.
* gcc.target/aarch64/simd/vgetq_lane_s64_indices_1.c: Likewise.
* gcc.target/aarch64/simd/vgetq_lane_s8_indices_1.c: Likewise.
* gcc.target/aarch64/simd/vgetq_lane_u16_indices_1.c: Likewise.
* gcc.target/aarch64/simd/vgetq_lane_u32_indices_1.c: Likewise.
* gcc.target/aarch64/simd/vgetq_lane_u64_indices_1.c: Likewise.
* gcc.target/aarch64/simd/vgetq_lane_u8_indices_1.c: Likewise.

From-SVN: r218536

9 years agoAdd missing PR numbers to ChangeLog. Too late?
Alan Lawrence [Tue, 9 Dec 2014 20:13:52 +0000 (20:13 +0000)]
Add missing PR numbers to ChangeLog. Too late?

From-SVN: r218535

9 years ago[AArch64]Improve error message for non-constant immediates
Alan Lawrence [Tue, 9 Dec 2014 20:08:39 +0000 (20:08 +0000)]
[AArch64]Improve error message for non-constant immediates

gcc/:

* gcc/config/aarch64-builtins.c (aarch64_simd_expand_args): Update error
message for SIMD_ARG_CONSTANT.

gcc/testsuite/:

* gcc.target/aarch64/arg-type-diagnostics-1.c: Call intrinsic, update
expected error message.

From-SVN: r218534

9 years agoAdd jit-tempdir.{c|h}
David Malcolm [Tue, 9 Dec 2014 20:00:07 +0000 (20:00 +0000)]
Add jit-tempdir.{c|h}

gcc/jit/ChangeLog:
        PR jit/64206
* Make-lang.in (jit_OBJS): Add jit/jit-tempdir.o.
* jit-common.h (gcc::jit::tempdir): New forward decl.
* jit-playback.c: Include jit-tempdir.h.
(gcc::jit::playback::context::context): Initialize m_tempdir.
(gcc::jit::playback::context::~context): Move tempdir
cleanup to new file jit-tempdir.c
(make_tempdir_path_template): Move to new file jit-tempdir.c.
(gcc::jit::playback::context::compile): Move tempdir creation
to new tempdir object in new file jit-tempdir.c.
(gcc::jit::playback::context::make_fake_args): Get path from
tempdir object rather than from member data.
(gcc::jit::playback::context::convert_to_dso): Likewise.
(gcc::jit::playback::context::dlopen_built_dso): Likewise.
(gcc::jit::playback::context::dump_generated_code): Likewise.
(gcc::jit::playback::context::get_path_c_file): New function.
(gcc::jit::playback::context::get_path_s_file): New function.
(gcc::jit::playback::context::get_path_so_file): New function.
* jit-playback.h (gcc::jit::playback::context::get_path_c_file):
New function.
(gcc::jit::playback::context::get_path_s_file): New function.
(gcc::jit::playback::context::get_path_so_file): New function.
(gcc::jit::playback::context): Move fields "m_path_template",
"m_path_tempdir", "m_path_c_file", "m_path_s_file",
"m_path_so_file" to new jit::tempdir class; add field "m_tempdir".
* jit-tempdir.c: New file.
* jit-tempdir.h: New file.

From-SVN: r218533

9 years ago[AArch64] Fix ICE on non-constant indices to __builtin_aarch64_im_lane_boundsi
Alan Lawrence [Tue, 9 Dec 2014 19:52:22 +0000 (19:52 +0000)]
[AArch64] Fix ICE on non-constant indices to __builtin_aarch64_im_lane_boundsi

gcc/:

* config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
TYPES_BINOPV): Delete.
(enum aarch64_builtins): Add AARCH64_BUILTIN_SIMD_LANE_CHECK and
AARCH64_SIMD_PATTERN_START.
(aarch64_init_simd_builtins): Register
__builtin_aarch64_im_lane_boundsi; use  AARCH64_SIMD_PATTERN_START.
(aarch64_simd_expand_builtin): Handle AARCH64_BUILTIN_LANE_CHECK; use
AARCH64_SIMD_PATTERN_START.

* config/aarch64/aarch64-simd.md (aarch64_im_lane_boundsi): Delete.
* config/aarch64/aarch64-simd-builtins.def (im_lane_bound): Delete.

* config/aarch64/arm_neon.h (__AARCH64_LANE_CHECK): New.
(__aarch64_vget_lane_f64, __aarch64_vget_lane_s64,
__aarch64_vget_lane_u64, __aarch64_vset_lane_any, vdupd_lane_f64,
vdupd_lane_s64, vdupd_lane_u64, vext_f32, vext_f64, vext_p8, vext_p16,
vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
vextq_u64, vmulq_lane_f64): Use __AARCH64_LANE_CHECK.

gcc/testsuite/:

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

From-SVN: r218532

9 years ago[AArch64]Fix ICE at -O0 on vld1_lane intrinsics
Alan Lawrence [Tue, 9 Dec 2014 19:37:18 +0000 (19:37 +0000)]
[AArch64]Fix ICE at -O0 on vld1_lane intrinsics

gcc/:

* config/aarch64/arm_neon.h (__AARCH64_NUM_LANES, __aarch64_lane *2):
New.
(aarch64_vset_lane_any): Redefine using previous, same for BE + LE.
(vset_lane_f32, vset_lane_f64, vset_lane_p8, vset_lane_p16,
vset_lane_s8, vset_lane_s16, vset_lane_s32, vset_lane_s64,
vset_lane_u8, vset_lane_u16, vset_lane_u32, vset_lane_u64): Remove
number of lanes.
(vld1_lane_f32, vld1_lane_f64, vld1_lane_p8, vld1_lane_p16,
vld1_lane_s8, vld1_lane_s16, vld1_lane_s32, vld1_lane_s64,
vld1_lane_u8, vld1_lane_u16, vld1_lane_u32, vld1_lane_u64): Call
__aarch64_vset_lane_any rather than vset_lane_xxx.

gcc/testsuite/:

* gcc.target/aarch64/vld1_lane-o0.c: New test.

From-SVN: r218531

9 years agovabs_intrinsic_2.c: New test.
Alan Lawrence [Tue, 9 Dec 2014 19:19:54 +0000 (19:19 +0000)]
vabs_intrinsic_2.c: New test.

gcc/testsuite/:

        * gcc.target/aarch64/vabs_intrinsic_2.c: New test.

From-SVN: r218530

9 years agoFix bogus ChangeLog entry from r218521
David Malcolm [Tue, 9 Dec 2014 19:03:19 +0000 (19:03 +0000)]
Fix bogus ChangeLog entry from r218521

In r218521 I erroneously added the entries meant for gcc/jit/ChangeLog
to gcc/ChangeLog instead.

Move them to the correct ChangeLog file.

Sorry for the noise.

From-SVN: r218529

9 years agoGuard less code with the JIT mutex
David Malcolm [Tue, 9 Dec 2014 18:51:04 +0000 (18:51 +0000)]
Guard less code with the JIT mutex

gcc/jit/ChangeLog:
* jit-playback.c (gcc::jit::playback::context::compile): Acquire the
mutex here, immediately before using toplev, and release it here, on
each exit path after acquisition.
(jit_mutex): Move this variable here, from jit-recording.c.
(gcc::jit::playback::context::acquire_mutex): New function, based on
code in jit-recording.c.
(gcc::jit::playback::context::release_mutex): Likewise.
* jit-playback.h (gcc::jit::playback::context::acquire_mutex): New
function.
(gcc::jit::playback::context::release_mutex): New function.
* jit-recording.c (jit_mutex): Move this variable to jit-playback.c.
(gcc::jit::recording::context::compile): Move mutex-handling from
here into jit-playback.c's gcc::jit::playback::context::compile.
* notes.txt: Update to show the new locations of ACQUIRE_MUTEX
and RELEASE_MUTEX.

From-SVN: r218528

9 years agojit-playback.c: Move dlopen code into a new function
David Malcolm [Tue, 9 Dec 2014 18:40:40 +0000 (18:40 +0000)]
jit-playback.c: Move dlopen code into a new function

gcc/jit/ChangeLog:
* jit-playback.c (gcc::jit::playback::context::compile): Move the
dlopen code into...
(gcc::jit::playback::context::dlopen_built_dso): ...this new
function.
* jit-playback.h (gcc::jit::playback::context::dlopen_built_dso):
New function.

From-SVN: r218527

9 years ago[AArch64] Add TARGET_SCHED_REASSOCIATION_WIDTH
Wilco Dijkstra [Tue, 9 Dec 2014 18:26:04 +0000 (18:26 +0000)]
[AArch64] Add TARGET_SCHED_REASSOCIATION_WIDTH

2014-12-09  Wilco Dijkstra  <wilco.dijkstra@arm.com>

* gcc/config/aarch64/aarch64-protos.h (tune-params): Add reasociation
tuning parameters.
* gcc/config/aarch64/aarch64.c (TARGET_SCHED_REASSOCIATION_WIDTH):
Define.
(aarch64_reassociation_width): New function.
(generic_tunings): Add reassociation tuning parameters.
(cortexa53_tunings): Likewise.
(cortexa57_tunings): Likewise.
(thunderx_tunings): Likewise.

From-SVN: r218526

9 years ago[AARCH64][5/5] Add macro fusion support for cmp/b.X for ThunderX
Andrew Pinski [Tue, 9 Dec 2014 17:32:58 +0000 (17:32 +0000)]
[AARCH64][5/5] Add macro fusion support for cmp/b.X for ThunderX

* config/aarch64/aarch64.c (AARCH64_FUSE_CMP_BRANCH): New define.
(thunderx_tunings): Add AARCH64_FUSE_CMP_BRANCH to fuseable_ops.
(aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_CMP_BRANCH.

From-SVN: r218525

9 years agojit: Add new testcase missing from r218521
David Malcolm [Tue, 9 Dec 2014 15:52:48 +0000 (15:52 +0000)]
jit: Add new testcase missing from r218521

I intended for r218521 to contain this file:

gcc/testsuite/ChangeLog:
* jit.dg/test-error-unrecognized-dump.c: New file.

Add it.

From-SVN: r218522

9 years agoPR jit/64166: Add API entrypoint gcc_jit_context_enable_dump
David Malcolm [Tue, 9 Dec 2014 15:35:39 +0000 (15:35 +0000)]
PR jit/64166: Add API entrypoint gcc_jit_context_enable_dump

gcc/jit/ChangeLog:
PR jit/64166
* docs/topics/contexts.rst (Debugging): Add description of
gcc_jit_context_enable_dump.
* docs/_build/texinfo/libgccjit.texi: Regenerate.
* jit-playback.c: Include context.h.
(class auto_argvec): New class.
(auto_argvec::~auto_argvec): New function.
(gcc::jit::playback::context::compile): Convert fake_args to be
an auto_argvec, so that it can contain dynamically-allocated
strings.   Construct a vec of all requested dumps, and pass it to
make_fake_args.  Extract requested dumps between the calls to
toplev::main and toplev::finalize.
(gcc::jit::playback::context::make_fake_args): Convert param
"argvec" to be a vec <char *>, and gain a "requested_dumps"
param.  Convert to dynamically-allocated arg strings by converting
ADD_ARG to take a copy of the arg, and add ADD_ARG_TAKE_OWNERSHIP
for args that are already a copy.  Add args for all requested dumps.
(gcc::jit::playback::context::extract_any_requested_dumps): New
function.
(gcc::jit::playback::context::read_dump_file): New function.
* jit-playback.h (gcc::jit::playback::context::make_fake_args):
Convert param "argvec" to be a vec <char *>, and gain a
"requested_dumps" param.
(gcc::jit::playback::context::extract_any_requested_dumps): New
function.
(gcc::jit::playback::context::read_dump_file): New function.
* jit-recording.c (gcc::jit::recording::context::enable_dump): New
function.
(gcc::jit::recording::context::get_all_requested_dumps): New
function.
* jit-recording.h (gcc::jit::recording::requested_dump): New
struct.
(gcc::jit::recording::context::enable_dump): New function.
(gcc::jit::recording::context::get_all_requested_dumps): New
function.
(gcc::jit::recording::context::m_requested_dumps): New field.
* libgccjit.c (gcc_jit_context_enable_dump): New API entrypoint.
* libgccjit.h (gcc_jit_context_enable_dump): New API entrypoint.
* libgccjit.map (gcc_jit_context_enable_dump): New API entrypoint.

gcc/testsuite/ChangeLog:
PR jit/64166
PR jit/64020
* jit.dg/harness.h (CHECK_STRING_CONTAINS): New macro.
(check_string_contains): New function.
* jit.dg/test-error-unrecognized-dump.c: New file.
* jit.dg/test-functions.c (trig_sincos_dump): New variable.
(trig_statistics_dump): New variable.
(create_test_of_builtin_trig): Enable dumping of "sincos" and
"statistics" into "trig_sincos_dump" and "trig_statistics_dump".
(verify_test_of_builtin_trig): Verify the sincos and statistics
dumps.
* jit.dg/test-sum-of-squares.c (dump_vrp1): New variable.
(create_code): Enable dumping of "tree-vrp1" into dump_vrp1.
(verify_code): Verify the tree-vrp1 dump.

From-SVN: r218521

9 years agoPR jit/64166: Add methods to gcc::dump_manager needed by JIT testing
David Malcolm [Tue, 9 Dec 2014 15:25:11 +0000 (15:25 +0000)]
PR jit/64166: Add methods to gcc::dump_manager needed by JIT testing

gcc/ChangeLog:
PR jit/64166
* dumpfile.c (gcc::dump_manager::get_dump_file_info_by_switch):
New function.
(gcc::dump_manager::get_dump_file_name): Split out bulk of
implementation into a new overloaded variant taking a
dump_file_info *.
* dumpfile.h (gcc::dump_manager::get_dump_file_info_by_switch):
New function.
(gcc::dump_manager::get_dump_file_name): New overloaded variant of
this function, taking a dump_file_info *.

From-SVN: r218520

9 years agore PR bootstrap/64213 (gimple-match.c:1523:6: error: ‘GIMPLE’ was not declared in...
Uros Bizjak [Tue, 9 Dec 2014 14:34:32 +0000 (15:34 +0100)]
re PR bootstrap/64213 (gimple-match.c:1523:6: error: ‘GIMPLE’ was not declared in this scope)

PR bootstrap/64213
Revert:
2014-11-28  H.J. Lu  <hongjiu.lu@intel.com>

PR rtl-optimization/64037
* combine.c (setup_incoming_promotions): Pass the argument
before any promotions happen to promote_function_mode.

testsuite/ChangeLog:

PR bootstrap/64213
Revert:
2014-11-28  H.J. Lu  <hongjiu.lu@intel.com>

PR rtl-optimization/64037
* g++.dg/pr64037.C: New test.

From-SVN: r218516

9 years agore PR tree-optimization/64193 (Decreased performance after r173250)
Richard Biener [Tue, 9 Dec 2014 14:25:09 +0000 (14:25 +0000)]
re PR tree-optimization/64193 (Decreased performance after r173250)

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

PR tree-optimization/64193
* tree-ssa-alias.c (walk_non_aliased_vuses): Add valueize parameter
and valueize the VUSE before looking up the def stmt.
* tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype.
* tree-ssa-sccvn.c (vn_reference_lookup_pieces): Pass vn_valueize
to walk_non_aliased_vuses.
(vn_reference_lookup): Likewise.
* tree-ssa-dom.c (lookup_avail_expr): Pass NULL as valueize
callback to walk_non_aliased_vuses.

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

From-SVN: r218515

9 years agoLocal Vim config with GNU formatting.
Yury Gribov [Tue, 9 Dec 2014 13:45:47 +0000 (13:45 +0000)]
Local Vim config with GNU formatting.

2014-12-09  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
    Yury Gribov  <y.gribov@samsung.com>

/
* .gitignore: Added .local.vimrc and .lvimrc.
* Makefile.tpl (vimrc, .lvimrc, .local.vimrc): New targets.
* Makefile.in: Regenerate.

contrib/
* vimrc: New file.

From-SVN: r218514

9 years agore PR tree-optimization/64199 (ICE: tree check: expected class 'constant', have ...
Richard Biener [Tue, 9 Dec 2014 11:58:51 +0000 (11:58 +0000)]
re PR tree-optimization/64199 (ICE: tree check: expected class 'constant', have 'binary' (plus_expr) in fold_binary_loc, at fold-const.c:10404 with -ffast-math -frounding-math)

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

PR middle-end/64199
* fold-const.c (fold_binary_loc): Use TREE_OVERFLOW_P.

* gcc.dg/torture/pr64199.c: New testcase.

From-SVN: r218513

9 years agore PR libstdc++/64203 (shared_mutex compile errors on bare-metal targets)
Jonathan Wakely [Tue, 9 Dec 2014 11:03:57 +0000 (11:03 +0000)]
re PR libstdc++/64203 (shared_mutex compile errors on bare-metal targets)

PR libstdc++/64203
* include/std/shared_mutex: Fix preprocessor conditions.
* testsuite/experimental/feat-cxx14.cc: Check conditions.

From-SVN: r218511

9 years agore PR tree-optimization/64191 (indirect clobbers messes up dead code elimination...
Richard Biener [Tue, 9 Dec 2014 09:13:18 +0000 (09:13 +0000)]
re PR tree-optimization/64191 (indirect clobbers messes up dead code elimination in loop calling dtor)

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

PR tree-optimization/64191
* tree-vect-stmts.c (vect_stmt_relevant_p): Clobbers are
not relevant (nor are their uses).

From-SVN: r218509

9 years agolto-partition.c (privatize_symbol_name): Correctly privatize instrumentation clones.
Ilya Enkovich [Tue, 9 Dec 2014 08:00:52 +0000 (08:00 +0000)]
lto-partition.c (privatize_symbol_name): Correctly privatize instrumentation clones.

gcc/

* lto/lto-partition.c (privatize_symbol_name): Correctly
privatize instrumentation clones.

gcc/testsuite/

* gcc.dg/lto/lto.exp: Load mpx-dg.exp.
* gcc.dg/lto/chkp-privatize_0.c: New.
* gcc.dg/lto/chkp-privatize_1.c: New.

From-SVN: r218508

9 years agolto-cgraph.c (input_cgraph_1): Don't break existing instrumentation clone references.
Ilya Enkovich [Tue, 9 Dec 2014 07:56:26 +0000 (07:56 +0000)]
lto-cgraph.c (input_cgraph_1): Don't break existing instrumentation clone references.

* lto-cgraph.c (input_cgraph_1): Don't break existing
instrumentation clone references.
* lto/lto-symtab.c (lto_cgraph_replace_node): Redirect
instrumented_version references appropriately.

From-SVN: r218507

9 years agore PR bootstrap/63995 (Bootstrap error with -mmpx -fcheck-pointer-bounds)
Ilya Enkovich [Tue, 9 Dec 2014 07:53:17 +0000 (07:53 +0000)]
re PR bootstrap/63995 (Bootstrap error with -mmpx -fcheck-pointer-bounds)

gcc/

PR bootstrap/63995
* tree-chkp.c (chkp_make_static_bounds): Share bounds var
between nodes sharing assembler name.

gcc/testsuite/

PR bootstrap/63995
* g++.dg/dg.exp: Add mpx-dg.exp.
* g++.dg/pr63995-1.C: New.

From-SVN: r218506

9 years agore PR target/64204 (gcc.dg/c11-atomic-2.c fails on powerpc 64-bit little endian after...
Michael Meissner [Tue, 9 Dec 2014 03:56:28 +0000 (03:56 +0000)]
re PR target/64204 (gcc.dg/c11-atomic-2.c fails on powerpc 64-bit little endian after -mupper-regs patches went in)

2014-12-08  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/64204
* config/rs6000/rs6000.c (rs6000_emit_move): Do not split TFmode
constant moves if -mupper-regs-df.

* config/rs6000/rs6000.md (mov<mode>_64bit_dm): Optimize moving
0.0L to TFmode.
(movtd_64bit_nodm): Likewise.
(mov<mode>_32bit, FMOVE128 case): Likewise.

From-SVN: r218505

9 years agosimplify-rtx.c (simplify_relational_operation_1): Handle simplification identities...
Sandra Loosemore [Tue, 9 Dec 2014 02:53:00 +0000 (21:53 -0500)]
simplify-rtx.c (simplify_relational_operation_1): Handle simplification identities for BICS patterns.

2014-12-08  Sandra Loosemore  <sandra@codesourcery.com>

gcc/
* simplify-rtx.c (simplify_relational_operation_1): Handle
simplification identities for BICS patterns.

gcc/testsuite/
* gcc.target/aarch64/bics_4.c: New.

From-SVN: r218503

9 years agomove gimple_canonical_types htab out of gc memory
Trevor Saunders [Tue, 9 Dec 2014 02:30:13 +0000 (02:30 +0000)]
move gimple_canonical_types htab out of gc memory

lto/

* lto.c (read_cgraph_and_symbols): allocate gimple_canonical_types
htab with malloc instead of ggc.

From-SVN: r218502

9 years agoremove param_is from nvptx
Trevor Saunders [Tue, 9 Dec 2014 02:30:06 +0000 (02:30 +0000)]
remove param_is from nvptx

gcc/

* config/nvptx/nvptx.c: Convert htabs to hash_table.

From-SVN: r218501

9 years agoDaily bump.
GCC Administrator [Tue, 9 Dec 2014 00:16:30 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r218500

9 years agore PR target/64226 (Secondary reload incorrect TOC address)
David Edelsohn [Mon, 8 Dec 2014 23:47:39 +0000 (23:47 +0000)]
re PR target/64226 (Secondary reload incorrect TOC address)

        PR target/64226
        * config/rs6000/rs6000.c (rs6000_secondary_reload_inner)
        [SYMBOL_REF]: Do not explicitly call create_TOC_reference for
        TARGET_TOC. Always use rs6000_emit_move.

From-SVN: r218497

9 years agoDWARFv5 Emit DW_TAG_atomic_type for C11 _Atomic.
Mark Wielaard [Mon, 8 Dec 2014 22:32:23 +0000 (22:32 +0000)]
DWARFv5 Emit DW_TAG_atomic_type for C11 _Atomic.

This implements the DW_TAG_atomic_type for C11 _Atomic proposal as adopted
in the latest DWARF5 draft. http://dwarfstd.org/ShowIssue.php?issue=131112.1

gcc/ChangeLog

PR debug/60782
* dwarf2out.c (modified_type_die): Handle TYPE_QUAL_ATOMIC.

gcc/testsuite/ChangeLog

PR debug/60782
* gcc.dg/debug/dwarf2/atomic.c: New test.
* gcc.dg/debug/dwarf2/stacked-qualified-types-3.c: Likewise.

include/ChangeLog

PR debug/60782
* dwarf2.def: Add DWARFv5 DW_TAG_atomic_type.

From-SVN: r218496

9 years agoFix typo in ChangeLog
Jeff Law [Mon, 8 Dec 2014 22:11:42 +0000 (15:11 -0700)]
Fix typo in ChangeLog

From-SVN: r218495

9 years agore PR inline-asm/61692 (ICE in extract_insn in recog.c for asm with many parameters)
David Wohlferd [Mon, 8 Dec 2014 21:58:23 +0000 (21:58 +0000)]
re PR inline-asm/61692 (ICE in extract_insn in recog.c for asm with many parameters)

        PR target/61692
* cfgexpand.c (expand_asm_operands): Count all inline asm params.

PR target/61692
        * gcc.dg/pr61692.c: New test.

From-SVN: r218494

9 years agoAdded myself to Write After Approval list
Lynn Boger [Mon, 8 Dec 2014 20:12:23 +0000 (14:12 -0600)]
Added myself to Write After Approval list

From-SVN: r218491

9 years agoPR jit/63854: Introduce xstrdup_for_dump
David Malcolm [Mon, 8 Dec 2014 19:31:45 +0000 (19:31 +0000)]
PR jit/63854: Introduce xstrdup_for_dump

gcc/ChangeLog:
PR jit/63854
* cgraph.h (xstrdup_for_dump): New function.
* cgraph.c (cgraph_node::get_create): Replace use of xstrdup
within fprintf with xstrdup_for_dump.
(cgraph_edge::make_speculative): Likewise.
(cgraph_edge::resolve_speculation): Likewise.
(cgraph_edge::redirect_call_stmt_to_callee): Likewise.
(cgraph_node::dump): Likewise.
* cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
* ipa-cp.c (perhaps_add_new_callers): Likewise.
* ipa-inline.c (report_inline_failed_reason): Likewise.
(want_early_inline_function_p): Likewise.
(edge_badness): Likewise.
(update_edge_key): Likewise.
(flatten_function): Likewise.
(inline_always_inline_functions): Likewise.
* ipa-profile.c (ipa_profile): Likewise.
* ipa-prop.c (ipa_print_node_jump_functions): Likewise.
(ipa_make_edge_direct_to_target): Likewise.
(remove_described_reference): Likewise.
(propagate_controlled_uses): Likewise.
* ipa-utils.c (ipa_merge_profiles): Likewise.

From-SVN: r218490

9 years agolibgccjit++.h: use indentation to show inheritance
David Malcolm [Mon, 8 Dec 2014 19:05:01 +0000 (19:05 +0000)]
libgccjit++.h: use indentation to show inheritance

gcc/jit/ChangeLog:
* libgccjit++.h: Indent the forward declarations of the classes to
show the inheritance hierarchy.

From-SVN: r218489

9 years agoMake jit/notes.txt better reflect current status quo
David Malcolm [Mon, 8 Dec 2014 18:56:21 +0000 (18:56 +0000)]
Make jit/notes.txt better reflect current status quo

gcc/jit/ChangeLog:
* notes.txt: Show the beginning and ending of
recording::context::compile vs playback::context::compile.  Show
the creation and unlinking of the tempdir.  Show toplev::finalize.
Move "RELEASE MUTEX" to the correct location.  Show
gcc_jit_result_release, and indicate where the
dlopen/dlsym/dlclose occur.

From-SVN: r218488

9 years agore PR ipa/64049 (r215898 caused wrong code at -O3)
Bernd Edlinger [Mon, 8 Dec 2014 18:30:15 +0000 (18:30 +0000)]
re PR ipa/64049 (r215898 caused wrong code at -O3)

2014-12-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR ipa/64049
        * ipa-polymorphic-call.c
        (pa_polymorphic_call_context::ipa_polymorphic_call): Allow RESULT_DECL.

testsuite/ChangeLog:
2014-12-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR ipa/64049
        * g++.dg/ipa/pr64049.h: New.
        * g++.dg/ipa/pr64049-1.C: New.
        * g++.dg/ipa/pr64049-2.C: New.

From-SVN: r218487

9 years agoBics instruction generation for aarch64
Alex Velenko [Mon, 8 Dec 2014 18:10:39 +0000 (18:10 +0000)]
Bics instruction generation for aarch64

gcc/

* config/aarch64/aarch64.md (and_one_cmpl<mode>3_compare0_no_reuse):
New define_insn.
* (and_one_cmpl_<SHIFT:optab><mode>3_compare0_no_reuse):
Likewise.

gcc/testsuite/

* gcc.target/aarch64/bics_3.c : New testcase.

From-SVN: r218486

9 years agore PR go/64198 (ICE in gofrontend)
Ian Lance Taylor [Mon, 8 Dec 2014 18:05:30 +0000 (18:05 +0000)]
re PR go/64198 (ICE in gofrontend)

PR go/64198
compiler: Don't crash on invalid ++.

From-SVN: r218485

9 years agoarm_neon.h (vrecpe_u32, [...]): Rewrite using builtin functions.
Felix Yang [Mon, 8 Dec 2014 14:19:44 +0000 (14:19 +0000)]
arm_neon.h (vrecpe_u32, [...]): Rewrite using builtin functions.

        * config/aarch64/arm_neon.h (vrecpe_u32, vrecpeq_u32): Rewrite using
        builtin functions.
        (vfma_f32, vfmaq_f32, vfmaq_f64, vfma_n_f32, vfmaq_n_f32, vfmaq_n_f64,
        vfms_f32, vfmsq_f32, vfmsq_f64): Likewise.
        (vhsub_s8, vhsub_u8, vhsub_s16, vhsub_u16, vhsub_s32, vhsub_u32,
        vhsubq_s8, vhsubq_u8, vhsubq_s16, vhsubq_u16, vhsubq_s32, vhsubq_u32,
        vsubhn_s16, vsubhn_u16, vsubhn_s32, vsubhn_u32, vsubhn_s64, vsubhn_u66,
        vrsubhn_s16, vrsubhn_u16, vrsubhn_s32, vrsubhn_u32, vrsubhn_s64,
        vrsubhn_u64, vsubhn_high_s16, vsubhn_high_u16, vsubhn_high_s32,
        vsubhn_high_u32, vsubhn_high_s64, vsubhn_high_u64, vrsubhn_high_s16,
        vrsubhn_high_u16, vrsubhn_high_s32, vrsubhn_high_u32, vrsubhn_high_s64,
        vrsubhn_high_u64): Likewise.
        * config/aarch64/iterators.md (VDQ_SI): New mode iterator.
        * config/aarch64/aarch64.md (define_c_enum "unspec"): Add UNSPEC_URECPE.
        * config/aarch64/aarch64-simd.md (aarch64_urecpe<mode>): New pattern.
        * config/aarch64/aarch64-simd-builtins.def (shsub, uhsub, subhn, rsubhn,
        subhn2, rsubhn2, urecpe): New builtins.

Co-Authored-By: Haijian Zhang <z.zhanghaijian@huawei.com>
Co-Authored-By: Jiji Jiang <jiangjiji@huawei.com>
Co-Authored-By: Pengfei Sui <suipengfei@huawei.com>
From-SVN: r218484

9 years agoEnable non-const v64qi permutations.
Ilya Tocar [Mon, 8 Dec 2014 11:48:01 +0000 (11:48 +0000)]
Enable non-const v64qi permutations.

gcc/
* config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Handle v64qi.
* config/i386/sse.md (VEC_PERM_AVX2): Add v64qi.

From-SVN: r218483

9 years agoEnable const permutations for V64QImode.
Ilya Tocar [Mon, 8 Dec 2014 11:45:35 +0000 (11:45 +0000)]
Enable const permutations for V64QImode.

gcc/
* config/i386/i386.c (expand_vec_perm_broadcast_1): Handle v64qi.
(expand_vec_perm_vpermi2_vpshub2): New.
(ix86_expand_vec_perm_const_1): Use it.
(ix86_vectorize_vec_perm_const_ok): Handle v64qi.
* config/i386/sse.md (VEC_PERM_CONST): Add v64qi.

From-SVN: r218482

9 years agotree-chkp.c (chkp_build_returned_bound): Don't predict return bounds for strchr calls.
Ilya Enkovich [Mon, 8 Dec 2014 10:10:00 +0000 (10:10 +0000)]
tree-chkp.c (chkp_build_returned_bound): Don't predict return bounds for strchr calls.

* tree-chkp.c (chkp_build_returned_bound): Don't predict
return bounds for strchr calls.

From-SVN: r218479

9 years agotree-chkp.c (chkp_call_returns_bounds_p): New.
Ilya Enkovich [Mon, 8 Dec 2014 10:01:19 +0000 (10:01 +0000)]
tree-chkp.c (chkp_call_returns_bounds_p): New.

gcc/

* tree-chkp.c (chkp_call_returns_bounds_p): New.
(chkp_build_returned_bound): Use zero bounds as
returned by calls not returning bounds.

gcc/testsuite/

* gcc.target/i386/chkp-bndret.c: New.
* gcc.target/i386/chkp-strchr.c: New.

From-SVN: r218478

9 years agobuiltins.c (fold_builtin_0): Remove unused ignore parameter.
Richard Biener [Mon, 8 Dec 2014 09:20:35 +0000 (09:20 +0000)]
builtins.c (fold_builtin_0): Remove unused ignore parameter.

2014-12-08  Richard Biener  <rguenther@suse.de>

* builtins.c (fold_builtin_0): Remove unused ignore parameter.
(fold_builtin_1): Likewise.
(fold_builtin_3): Likewise.
(fold_builtin_varargs): Likewise.
(fold_builtin_2): Likewise.  Do not fold stpcpy here.
(fold_builtin_n): Adjust.
(fold_builtin_stpcpy): Move to gimple-fold.c.
(gimple_fold_builtin_stpcpy): Moved and gimplified from builtins.c.
(gimple_fold_builtin): Fold stpcpy here.

From-SVN: r218477

9 years agodon't ICE when section attribute is used on things in comdats
Trevor Saunders [Mon, 8 Dec 2014 00:35:33 +0000 (00:35 +0000)]
don't ICE when section attribute is used on things in comdats

gcc/

PR ipa/63621
* symtab.c (symtab_node::verify): Check for section attribute before
asserting something isn't in a section and a comdat group.

From-SVN: r218476

9 years agoDaily bump.
GCC Administrator [Mon, 8 Dec 2014 00:16:30 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r218475

9 years agore PR target/53513 ([SH] Add support for fpchg insn and improve fenv support)
Oleg Endo [Sun, 7 Dec 2014 23:19:59 +0000 (23:19 +0000)]
re PR target/53513 ([SH] Add support for fpchg insn and improve fenv support)

gcc/testsuite/
PR target/53513
* gcc.target/sh/pr54602-4.c: Fix matching of rte-nop sequence.

From-SVN: r218472

9 years agore PR target/50751 (SH Target: Displacement addressing does not work for QImode and...
Oleg Endo [Sun, 7 Dec 2014 22:57:11 +0000 (22:57 +0000)]
re PR target/50751 (SH Target: Displacement addressing does not work for QImode and HImode)

gcc/
PR target/50751
* config/sh/sh.md (extendqihi2): Allow only for TARGET_SH1.

From-SVN: r218469

9 years agocompare-elim.c: Fix head comment.
Eric Botcazou [Sun, 7 Dec 2014 21:55:47 +0000 (21:55 +0000)]
compare-elim.c: Fix head comment.

* compare-elim.c: Fix head comment.
(conforming_compare): Remove redundant test.
(can_eliminate_compare): New function extracted from...
(before_dom_children): ...here.  Use it, replace direct uses of
flag_non_call_exceptions and tidy up.
(maybe_select_cc_mode): Tidy up.

From-SVN: r218468

9 years agore PR testsuite/64038 (FAIL: gcc.dg/ipa/ipa-icf-5.c (test for excess errors))
John David Anglin [Sun, 7 Dec 2014 17:48:56 +0000 (17:48 +0000)]
re PR testsuite/64038 (FAIL: gcc.dg/ipa/ipa-icf-5.c (test for excess errors))

PR testsuite/64038
* gcc.dg/ipa/ipa-icf-5.c: Require c99_runtime.  Add c99_runtime options.
* gcc.dg/ipa/ipa-icf-7.c: Likewise.

From-SVN: r218467

9 years agoh8300.exp: Fix duplicated text.
Oleg Endo [Sun, 7 Dec 2014 16:42:45 +0000 (16:42 +0000)]
h8300.exp: Fix duplicated text.

gcc/testsuite/
* gcc.target/h8300/h8300.exp: Fix duplicated text.
* gcc.target/h8300/pragma-isr.c: Likewise.
* gcc.target/h8300/pragma-isr2.c: Likewise.

From-SVN: r218465

9 years agoaarch64-simd.md (clrsb<mode>2, [...]): New patterns.
Felix Yang [Sun, 7 Dec 2014 15:01:23 +0000 (15:01 +0000)]
aarch64-simd.md (clrsb<mode>2, [...]): New patterns.

        * config/aarch64/aarch64-simd.md (clrsb<mode>2, popcount<mode>2): New
        patterns.
        * config/aarch64/aarch64-simd-builtins.def (clrsb, popcount): New
        builtins.
        * config/aarch64/arm_neon.h (vcls_s8, vcls_s16, vcls_s32, vclsq_s8,
        vclsq_s16, vclsq_s32, vcnt_p8, vcnt_s8, vcnt_u8, vcntq_p8, vcntq_s8,
        vcntq_u8): Rewrite using builtin functions.

Co-Authored-By: Shanyao Chen <chenshanyao@huawei.com>
From-SVN: r218464

9 years ago[ARM,AArch64][testsuite] Fix vaddl and vaddw tests
Christophe Lyon [Sun, 7 Dec 2014 09:40:58 +0000 (09:40 +0000)]
[ARM,AArch64][testsuite] Fix vaddl and vaddw tests

2014-12-07  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/vaddhn.c: Actually execute
the test.
* gcc.target/aarch64/advsimd-intrinsics/vaddl.c: Actually execute
the test. Fix expected output.
* gcc.target/aarch64/advsimd-intrinsics/vaddw.c: Likewise.

From-SVN: r218463

9 years agosymtab.c (symtab_node::equal_address_to): New function.
Jan Hubicka [Sun, 7 Dec 2014 07:35:11 +0000 (08:35 +0100)]
symtab.c (symtab_node::equal_address_to): New function.

* symtab.c (symtab_node::equal_address_to): New function.
* cgraph.h (symtab_node::equal_address_to): Declare.
* fold-const.c (fold_comparison, fold_binary_loc): Use it.

* c-family/c-common.c: Refuse weaks for symbols that can not change
visibility.

* gcc.dg/addr_equal-1.c: New testcase.

From-SVN: r218462

9 years ago* doc/invoke.texi (Warning Options): Fix spelling and grammar.
Jonathan Wakely [Sun, 7 Dec 2014 00:51:37 +0000 (00:51 +0000)]
* doc/invoke.texi (Warning Options): Fix spelling and grammar.

From-SVN: r218461

9 years agoDaily bump.
GCC Administrator [Sun, 7 Dec 2014 00:16:29 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r218460

9 years agoextend jump thread for finite state automata
James Greenhalgh [Sat, 6 Dec 2014 19:19:37 +0000 (19:19 +0000)]
extend jump thread for finite state automata

PR tree-optimization/54742
* params.def (max-fsm-thread-path-insns, max-fsm-thread-length,
max-fsm-thread-paths): New.

* doc/invoke.texi (max-fsm-thread-path-insns, max-fsm-thread-length,
max-fsm-thread-paths): Documented.

* tree-cfg.c (split_edge_bb_loc): Export.
* tree-cfg.h (split_edge_bb_loc): Declared extern.

* tree-ssa-threadedge.c (simplify_control_stmt_condition): Restore the
original value of cond when simplification fails.
(fsm_find_thread_path): New.
(fsm_find_control_statement_thread_paths): New.
(thread_through_normal_block): Call find_control_statement_thread_paths.

* tree-ssa-threadupdate.c (dump_jump_thread_path): Pretty print
EDGE_FSM_THREAD.
(verify_seme): New.
(duplicate_seme_region): New.
(thread_through_all_blocks): Generate code for EDGE_FSM_THREAD edges
calling duplicate_seme_region.

* tree-ssa-threadupdate.h (jump_thread_edge_type): Add EDGE_FSM_THREAD.

* testsuite/gcc.dg/tree-ssa/ssa-dom-thread-6.c: New test.
* testsuite/gcc.dg/tree-ssa/ssa-dom-thread-7.c: New test.

Co-Authored-By: Brian Rzycki <b.rzycki@samsung.com>
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
From-SVN: r218451

9 years agoerror.c (gfc_error_check): Use bool not int.
Tobias Burnus [Sat, 6 Dec 2014 16:53:40 +0000 (17:53 +0100)]
error.c (gfc_error_check): Use bool not int.

2014-12-06  Tobias Burnus  <burnus@net-b.de>

        * error.c (gfc_error_check): Use bool not int.
        * gfortran.h (gfc_error_check): Update prototype.
        * match.c (gfc_match_if): Update call.
        * parse.c (decode_statement, decode_omp_directive,
        decode_gcc_attribute): Ditto.

From-SVN: r218450

9 years agoerror.c (gfc_buffer_error, [...]): Use bool not
Tobias Burnus [Sat, 6 Dec 2014 16:33:11 +0000 (17:33 +0100)]
error.c (gfc_buffer_error, [...]): Use bool not

2014-12-06  Tobias Burnus  <burnus@net-b.de>
            Manuel López-Ibáñez  <manu@gcc.gnu.org>

        * error.c (gfc_buffer_error, gfc_error_flag_test): Use bool not
        * int.
        (buffer_flag): Remove static variable.
        (buffered_p): Add static variable.
        (gfc_error_init_1): Call gfc_buffer_error.
        (gfc_warning_1, gfc_warning, gfc_warning_now_1, gfc_error,
        gfc_error_now_1): Update for static variable change.
        * gfortran.h (gfc_buffer_error, gfc_error_flag_test): Update
        prototype.
        * parse.c (use_modules, decode_specification_statement,
        next_fixed, next_statement, match_deferred_characteristics):
        Update calls.
        * decl.c (gfc_match_data_decl): Ditto.
        * match.c (gfc_match_name): Ditto.

Co-Authored-By: Manuel López-Ibáñez <manu@gcc.gnu.org>
From-SVN: r218449

9 years agoclarification
Bruce Korb [Sat, 6 Dec 2014 15:08:55 +0000 (15:08 +0000)]
clarification

From-SVN: r218448

9 years agore PR tree-optimization/64183 (Complete unroll doesn't happen for a while-loop)
Marek Polacek [Sat, 6 Dec 2014 13:10:31 +0000 (13:10 +0000)]
re PR tree-optimization/64183 (Complete unroll doesn't happen for a while-loop)

PR tree-optimization/64183
* c-gimplify.c (c_gimplify_expr): Don't convert the RHS of a
shift-expression if it is integer_type_node.  Use types_compatible_p.

* gcc.dg/tree-ssa/pr64183.c: New test.

From-SVN: r218447

9 years agoDon't assert "alg != libcall" for -minline-stringops-dynamically
H.J. Lu [Sat, 6 Dec 2014 11:32:46 +0000 (11:32 +0000)]
Don't assert "alg != libcall" for -minline-stringops-dynamically

gcc/

PR target/64200
* config/i386/i386.c (decide_alg): Don't assert "alg != libcall"
for TARGET_INLINE_STRINGOPS_DYNAMICALLY.

gcc/testsuite/

PR target/64200
* gcc.target/i386/memcpy-strategy-4.c: New test.

From-SVN: r218446

9 years agoFix ChangeLog format.
Tim Shen [Sat, 6 Dec 2014 11:31:12 +0000 (11:31 +0000)]
Fix ChangeLog format.

From-SVN: r218444

9 years agoDaily bump.
GCC Administrator [Sat, 6 Dec 2014 00:16:31 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r218443

9 years agore PR sanitizer/64170 (ICE compiling Linux Kernel drivers/media/rc/imon.c in imon_inc...
Jakub Jelinek [Fri, 5 Dec 2014 23:00:09 +0000 (00:00 +0100)]
re PR sanitizer/64170 (ICE compiling Linux Kernel drivers/media/rc/imon.c in imon_incoming_packet)

PR sanitizer/64170
* sanopt.c (maybe_optimize_asan_check_ifn): If base_checks is
non-NULL, call maybe_get_dominating_check on it even if g is
non-NULL.

* gcc.dg/asan/pr64170.c: New test.

From-SVN: r218440

9 years agomd.texi: Note problems using function calls to determine insn lengths and point reade...
Jeff Law [Fri, 5 Dec 2014 22:19:26 +0000 (15:19 -0700)]
md.texi: Note problems using function calls to determine insn lengths and point readers...

        * doc/md.texi: Note problems using function calls to determine
        insn lengths and point readers to a potential workaround.

From-SVN: r218439

9 years ago* combine.c (is_parallel_of_n_reg_sets)
Andreas Schwab [Fri, 5 Dec 2014 20:25:19 +0000 (20:25 +0000)]
* combine.c (is_parallel_of_n_reg_sets)
(can_split_parallel_of_n_reg_sets): Only define if !HAVE_cc0.

From-SVN: r218436

9 years agoaarch64-simd-builtins.def (bswap): Use CF2 rather than CF10 so 2 is appended on the...
Andrew Pinski [Fri, 5 Dec 2014 19:44:47 +0000 (19:44 +0000)]
aarch64-simd-builtins.def (bswap): Use CF2 rather than CF10 so 2 is appended on the code.

2014-12-05  Andrew Pinski  <apinski@cavium.com>

        * config/aarch64/aarch64-simd-builtins.def (bswap): Use CF2 rather
        than CF10 so 2 is appended on the code.
        * config/aarch64/aarch64-simd.md (bswap<mode>): Rename to ...
        (bswap<mode>2): This so it matches for the optabs.

From-SVN: r218435

9 years agoregrename.c (find_best_rename_reg): Rename to ...
Thomas Preud'homme [Fri, 5 Dec 2014 18:36:57 +0000 (18:36 +0000)]
regrename.c (find_best_rename_reg): Rename to ...

2014-12-05  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    * regrename.c (find_best_rename_reg): Rename to ...
    (find_rename_reg): This. Also add a parameter to skip tick check.
    * regrename.h: Likewise.
    * config/c6x/c6x.c (try_rename_operands): Adapt to above renaming.

From-SVN: r218434

9 years agore PR ipa/64192 (r218369 causes some regressions with -m32.)
Martin Jambor [Fri, 5 Dec 2014 18:14:37 +0000 (19:14 +0100)]
re PR ipa/64192 (r218369 causes some regressions with -m32.)

2014-12-05  Martin Jambor  <mjambor@suse.cz>

PR ipa/64192
* ipa-prop.c (ipa_compute_jump_functions_for_edge): Convert alignment
from bits to bytes after checking they are byte-aligned.

From-SVN: r218433

9 years ago[AArch64]Clarify the usage of SCHED in AARCH64_CORE macro
Renlin Li [Fri, 5 Dec 2014 18:00:55 +0000 (18:00 +0000)]
[AArch64]Clarify the usage of SCHED in AARCH64_CORE macro

gcc/

2014-12-05  Renlin Li  <renlin.li@arm.com>

* config/aarch64/aarch64-opts.h (AARCH64_CORE): Rename IDENT to SCHED.
* config/aarch64/aarch64.h (AARCH64_CORE): Likewise.
* config/aarch64/aarch64.c (AARCH64_CORE): Rename X to IDENT,
IDENT to SCHED.

From-SVN: r218432

9 years agore PR target/53199 (__builtin_bswap64 and __builtin_bswap32 generate errors if -mcpu...
Michael Meissner [Fri, 5 Dec 2014 17:50:40 +0000 (17:50 +0000)]
re PR target/53199 (__builtin_bswap64 and __builtin_bswap32 generate errors if -mcpu=power6)

2014-12-05  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/53199
* gcc.target/powerpc/pr53199.c: Limit tests to 64-bit.

From-SVN: r218431

9 years ago[AArch64]load store pair optimization using sched_fusion pass.
Bin Cheng [Fri, 5 Dec 2014 17:06:33 +0000 (17:06 +0000)]
[AArch64]load store pair optimization using sched_fusion pass.

From-SVN: r218430

9 years agodefaults.h: (DWARF_REG_TO_UNWIND_COLUMN): Define default.
Olivier Hainque [Fri, 5 Dec 2014 17:01:42 +0000 (17:01 +0000)]
defaults.h: (DWARF_REG_TO_UNWIND_COLUMN): Define default.

2014-12-05  Olivier Hainque  <hainque@adacore.com>

        gcc/
        * defaults.h: (DWARF_REG_TO_UNWIND_COLUMN): Define default.
        * dwarf2cfi.c (init_one_dwarf_reg_size): Honor
        DWARF_REG_TO_UNWIND_COLUMN.

        libgcc/
        * unwind-dw2.c (DWARF_REG_TO_UNWIND_COLUMN): Remove default def,
        now provided by defaults.h.

From-SVN: r218429

9 years agodwarf2cfi.c (init_one_dwarf_reg_size): New helper, processing one particular reg...
Olivier Hainque [Fri, 5 Dec 2014 16:53:22 +0000 (16:53 +0000)]
dwarf2cfi.c (init_one_dwarf_reg_size): New helper, processing one particular reg for expand_builtin_init_dwarf_reg_sizes.

2014-12-05  Olivier Hainque  <hainque@adacore.com>

        * dwarf2cfi.c (init_one_dwarf_reg_size): New helper, processing
        one particular reg for expand_builtin_init_dwarf_reg_sizes.
        (expand_builtin_init_dwarf_reg_sizes): Rework to use helper and
        account for dwarf register spans.

From-SVN: r218428