Commit Graph

135118 Commits

Author SHA1 Message Date
Martin Liska
42c0b54df5 re PR ipa/63909 (ICE: SIGSEGV in ipa_icf_gimple::func_checker::compare_bb())
PR ipa/63909

        * gimple-iterator.h (gsi_start_bb_nondebug): New function.
	* ipa-icf-gimple.c (func_checker::compare_bb): Correct iteration
	replaces loop based on precomputed number of non-debug statements.
	* gcc.dg/ipa/pr63909.c: New test.

From-SVN: r218578
2014-12-10 14:07:47 +00:00
Alexander Ivchenko
ef9b7fad36 linux.c (linux_has_ifunc_p): Remove.
gcc/
	* config/linux.c (linux_has_ifunc_p): Remove.
	* config/linux.h (TARGET_HAS_IFUNC_P): Use default version.

From-SVN: r218577
2014-12-10 13:49:19 +00:00
Varvara Rainchik
f50eecba13 config.h.in: Regenerate.
libgomp/
        * config.h.in: Regenerate.
        * configure: Regenerate.
        * configure.ac: Add GCC_CHECK_EMUTLS.
        * libgomp.h: Add check for USE_EMUTLS: this case
        is equal to HAVE_TLS.
        * team.c: Likewise.

From-SVN: r218576
2014-12-10 13:42:20 +00:00
Mantas Mikaitis
d0d7c35782 check_GNU_style.sh "80 characters exceeded" error fix
2014-12-10  Mantas Mikaitis  <mantas.mikaitis@arm.com>

	* contrib/check_GNU_style.sh (col): Got rid of cut operation
	from the pipe chain and instead added cut inside awk command.

From-SVN: r218575
2014-12-10 11:46:08 +00:00
Kai Tietz
73d1736364 re PR c++/64127 (ICE on invalid: tree check: expected identifier_node, have template_id_expr in cp_parser_diagnose_invalid_type_name, at cp/parser.c:2980)
PR c++/64127
	* g++.dg/cpp/pr64127.C: New file.

From-SVN: r218574
2014-12-10 12:32:00 +01:00
Kai Tietz
e6f2df09a5 re PR c++/64127 (ICE on invalid: tree check: expected identifier_node, have template_id_expr in cp_parser_diagnose_invalid_type_name, at cp/parser.c:2980)
PR c++/64127
	* parser.c (cp_parser_diagnose_invalid_type_name): Check id
	for being an identifier before accessing it.

From-SVN: r218573
2014-12-10 12:29:22 +01:00
Kai Tietz
6cc92f7d80 re PR c++/64100 (A static assert using the the current class in a noexcept test leads to a segfault)
PR c++/64100
	* g++.dg/template/pr64100.C: New file.

From-SVN: r218572
2014-12-10 12:26:47 +01:00
Kai Tietz
e383e095ce re PR c++/64100 (A static assert using the the current class in a noexcept test leads to a segfault)
PR c++/64100
	* typeck.c (lookup_destructor): Handle incomplete type.

From-SVN: r218571
2014-12-10 12:22:34 +01:00
Matthew Fortune
e2c04e0888 ChangeLog fix for r218307
Remove entry from ChangeLog.
Insert entry into appropriate location of gcc/ChangeLog.

From-SVN: r218570
2014-12-10 10:40:41 +00:00
Richard Biener
128227683a 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
2014-12-10 09:29:05 +00:00
Jakub Jelinek
092444af04 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
2014-12-10 10:00:50 +01:00
Jakub Jelinek
f2864cc4e1 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
2014-12-10 09:44:46 +01:00
Oleg Endo
da57182d07 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
2014-12-10 08:31:32 +00:00
Marek Polacek
77e6008875 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
2014-12-10 08:20:43 +00:00
Kito Cheng
5d56a5854f 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
2014-12-10 05:43:53 +00:00
Trevor Saunders
63f5d5b818 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
2014-12-10 03:45:40 +00:00
Jason Merrill
59bce71381 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
2014-12-09 21:51:03 -05:00
Jason Merrill
9c78f8e605 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
2014-12-09 21:50:54 -05:00
Jonathan Wakely
6789ccfa46 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
2014-12-10 01:37:37 +00:00
Ian Lance Taylor
2a664a279a compiler: Don't track fields in compiler-generated hash and eq funcs.
Also, lower field tracking calls.

From-SVN: r218554
2014-12-10 00:56:00 +00:00
Jonathan Wakely
9131b50960 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
2014-12-10 00:39:37 +00:00
Jonathan Wakely
d6f64424aa 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
2014-12-10 00:21:37 +00:00
Oleg Endo
9c53a5b423 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
2014-12-10 00:21:36 +00:00
GCC Administrator
a3ff84f2d4 Daily bump.
From-SVN: r218550
2014-12-10 00:16:28 +00:00
Bill Schmidt
c293be1a19 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
2014-12-09 23:02:06 +00:00
Ilya Verbin
443743fd95 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
2014-12-09 22:44:16 +00:00
Oleg Endo
3f6ad8df42 Fix date in change log entry.
From-SVN: r218542
2014-12-09 22:44:12 +00:00
Oleg Endo
7d0ee249ba Add missing link to PR in change log entry.
From-SVN: r218541
2014-12-09 22:40:20 +00:00
David Malcolm
5cd614cecc 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
2014-12-09 20:55:18 +00:00
Michael Haubenwallner
dd91332382 (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
2014-12-09 15:48:48 -05:00
David Malcolm
2712de7892 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
2014-12-09 20:46:33 +00:00
Alan Lawrence
07ad57c401 [AArch64]Remove aarch64_get_lanedi, unused
* config/aarch64/aarch64-simd.md (aarch64_get_lanedi): Remove.

From-SVN: r218537
2014-12-09 20:28:44 +00:00
Alan Lawrence
ed225d0c7b [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
2014-12-09 20:23:36 +00:00
Alan Lawrence
fdead6a4b4 Add missing PR numbers to ChangeLog. Too late?
From-SVN: r218535
2014-12-09 20:13:52 +00:00
Alan Lawrence
fca051af18 [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
2014-12-09 20:08:39 +00:00
David Malcolm
d1e5f2c7e2 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
2014-12-09 20:00:07 +00:00
Alan Lawrence
661fce82a6 [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
2014-12-09 19:52:22 +00:00
Alan Lawrence
2310e29f49 [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
2014-12-09 19:37:18 +00:00
Alan Lawrence
8f905d691e vabs_intrinsic_2.c: New test.
gcc/testsuite/:

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

From-SVN: r218530
2014-12-09 19:19:54 +00:00
David Malcolm
82e0c91499 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
2014-12-09 19:03:19 +00:00
David Malcolm
38771e4e1f 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
2014-12-09 18:51:04 +00:00
David Malcolm
38f4f64124 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
2014-12-09 18:40:40 +00:00
Wilco Dijkstra
cee66c6853 [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
2014-12-09 18:26:04 +00:00
Andrew Pinski
3759108f07 [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
2014-12-09 17:32:58 +00:00
David Malcolm
3b21bfb10e 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
2014-12-09 15:52:48 +00:00
David Malcolm
463366a06a 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
2014-12-09 15:35:39 +00:00
David Malcolm
799505ae0c 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
2014-12-09 15:25:11 +00:00
Uros Bizjak
0cc67c94cf 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
2014-12-09 15:34:32 +01:00
Richard Biener
92a5094e04 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
2014-12-09 14:25:09 +00:00
Yury Gribov
c3e1e6936a 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
2014-12-09 13:45:47 +00:00