134984 Commits

Author SHA1 Message Date
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
Richard Biener
85fd4c288a 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
2014-12-09 11:58:51 +00:00
Jonathan Wakely
60b6534a84 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
2014-12-09 11:03:57 +00:00
Richard Biener
ac6aeab4d7 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
2014-12-09 09:13:18 +00:00
Ilya Enkovich
6c77972738 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
2014-12-09 08:00:52 +00:00
Ilya Enkovich
6a73516d83 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
2014-12-09 07:56:26 +00:00
Ilya Enkovich
227eabce47 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
2014-12-09 07:53:17 +00:00
Michael Meissner
f9ea9950e0 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
2014-12-09 03:56:28 +00:00
Sandra Loosemore
10828a0194 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
2014-12-08 21:53:00 -05:00
Trevor Saunders
58dddbd21a 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
2014-12-09 02:30:13 +00:00
Trevor Saunders
f3dba89405 remove param_is from nvptx
gcc/

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

From-SVN: r218501
2014-12-09 02:30:06 +00:00
GCC Administrator
13ef90907a Daily bump.
From-SVN: r218500
2014-12-09 00:16:30 +00:00
David Edelsohn
ca9f165c10 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
2014-12-08 18:47:39 -05:00
Mark Wielaard
bc3518da23 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
2014-12-08 22:32:23 +00:00
Jeff Law
009a34807e Fix typo in ChangeLog
From-SVN: r218495
2014-12-08 15:11:42 -07:00
David Wohlferd
c475c36cf6 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
2014-12-08 14:58:23 -07:00
Lynn Boger
eecea65c8b Added myself to Write After Approval list
From-SVN: r218491
2014-12-08 14:12:23 -06:00
David Malcolm
2a72a9538f 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
2014-12-08 19:31:45 +00:00
David Malcolm
53b730ff90 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
2014-12-08 19:05:01 +00:00
David Malcolm
0f37944592 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
2014-12-08 18:56:21 +00:00
Bernd Edlinger
b09e592eee 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
2014-12-08 18:30:15 +00:00
Alex Velenko
cd8fc5ee0d 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
2014-12-08 18:10:39 +00:00
Ian Lance Taylor
942f7f5af3 re PR go/64198 (ICE in gofrontend)
PR go/64198
compiler: Don't crash on invalid ++.

From-SVN: r218485
2014-12-08 18:05:30 +00:00
Felix Yang
58a3bd25ba 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
2014-12-08 14:19:44 +00:00
Ilya Tocar
28adf6e75e 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
2014-12-08 14:48:01 +03:00
Ilya Tocar
9f9f61155a 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
2014-12-08 14:45:35 +03:00
Ilya Enkovich
d3fb44cbf6 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
2014-12-08 10:10:00 +00:00
Ilya Enkovich
985f48f7b5 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
2014-12-08 10:01:19 +00:00
Richard Biener
2625bb5df5 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
2014-12-08 09:20:35 +00:00
Trevor Saunders
b0122457bc 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
2014-12-08 00:35:33 +00:00
GCC Administrator
35efb9ac39 Daily bump.
From-SVN: r218475
2014-12-08 00:16:30 +00:00
Oleg Endo
10d1762223 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
2014-12-07 23:19:59 +00:00
Oleg Endo
b63e26d5ef 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
2014-12-07 22:57:11 +00:00
Eric Botcazou
6c6a593dc0 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
2014-12-07 21:55:47 +00:00
John David Anglin
bbea402544 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
2014-12-07 17:48:56 +00:00