Commit Graph

147484 Commits

Author SHA1 Message Date
Jonathan Wakely
427f68c6c2 * testsuite/20_util/forward/1_neg.cc: Move dg-error to right line.
From-SVN: r238793
2016-07-27 18:32:45 +01:00
David Malcolm
a01fc54920 Move make_location from tree.h/c to input.h/c
For some reason I added make_location and some related functions to
tree.h/c, rather than to input.h/c.  Move them there, so we can use them
without requiring tree, and add some selftest coverage.

gcc/ChangeLog:
	* input.c (get_pure_location): Move here from tree.c.
	(make_location): Likewise.  Add header comment.
	(selftest::test_accessing_ordinary_linemaps): Verify
	pure_location_p, make_location, get_location_from_adhoc_loc and
	get_range_from_loc.
	* input.h (get_pure_location): Move declaration here from tree.h.
	(get_finish): Likewise for inline function.
	(make_location): Likewise for declaration.
	* tree.c (get_pure_location): Move to input.c.
	(make_location): Likewise.
	* tree.h (get_pure_location): Move declaration to tree.h.
	(get_finish): Likewise for inline function.
	(make_location): Likewise for declaration.

libcpp/ChangeLog:
	* include/line-map.h (source_location): Fix line numbers in
	comment.

From-SVN: r238792
2016-07-27 17:21:20 +00:00
Segher Boessenkool
182f2f648a Add missing PR marker to Changelog for 71216 fix
From-SVN: r238790
2016-07-27 18:16:12 +02:00
Prathamesh Kulkarni
8c6961cab0 re PR middle-end/71078 (x/abs(x) -> sign(1.0,x))
2016-07-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	PR middle-end/71078
	* match.pd (x / abs(x) -> copysign(1.0, x)): New pattern.

testsuite/
	* gcc.dg/tree-ssa/pr71078-1.c: New test-case.
	* gcc.dg/tree-ssa/pr71078-2.c: Likewise.
	* gcc.dg/tree-ssa/pr71078-3.c: Likewise.

From-SVN: r238787
2016-07-27 15:09:10 +00:00
David Malcolm
81a12b7606 Use static_assert for STATIC_ASSERT for C++11 onwards
C++11 has a
  static_assert (COND, MESSAGE)
which gives more readable error messages for STATIC_ASSERT than our
current implementation.

This patch makes us use it if __cplusplus >= 201103L

There's also a provisional static_assert (COND) in C++1z, but presumably
we should wait until that one is fully standardized before using it.

gcc/ChangeLog:
	* system.h (STATIC_ASSERT): Use static_assert if building
	with C++11 onwards.

From-SVN: r238786
2016-07-27 14:49:06 +00:00
Jason Merrill
270430ff3e PR c++/71747 - ICE with self-referential partial spec
* pt.c (get_partial_spec_bindings): Replace tparms and spec_args
	parameters with spec_tmpl.  Call push_tinst_level.
	(most_specialized_partial_spec): Adjust.
	(more_specialized_partial_spec): Adjust.

From-SVN: r238785
2016-07-27 10:31:30 -04:00
Richard Biener
8de22ea0b1 costmodel-pr68961.c: Remove.
2016-07-27  Richard Biener  <rguenther@suse.de>

	* gcc.dg/vect/costmodel/x86_64/costmodel-pr68961.c: Remove.

From-SVN: r238784
2016-07-27 11:11:22 +00:00
Richard Biener
dd583351ac re PR tree-optimization/72517 (436.cactusADM: More than 40% regression in O3 and Ofast on AMD bdver4 m/c.)
2016-07-27  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/72517
	* tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
	Revert change to not compute read-read dependences.

From-SVN: r238783
2016-07-27 11:10:25 +00:00
Richard Biener
5693aed094 predict.c (set_even_probabilities): Make nedges unsigned.
2016-07-27  Richard Biener  <rguenther@suse.de>

	* predict.c (set_even_probabilities): Make nedges unsigned.

From-SVN: r238782
2016-07-27 10:33:02 +00:00
Martin Liska
5d9da222b9 predict.c: merge multi-edges
* gcc.dg/predict-13.c: New test.
	* gcc.dg/predict-14.c: New test.
	* predict.c (set_even_probabilities): Handle unlikely edges.
	(combine_predictions_for_bb): Likewise.

From-SVN: r238781
2016-07-27 08:46:12 +00:00
Senthil Kumar Selvaraj
af9e275f45 Use __{U,}INTPTR_TYPE__ to avoid including stdint.h
gcc/testsuite/

	* gcc.dg/torture/pr69352.c: Use  __INTPTR_TYPE__ instead of 
	including stdint.h.
	* gcc.dg/torture/pr71866.c: Use __UINTPTR_TYPE__ isntead of
	including stdint.h.

From-SVN: r238780
2016-07-27 05:22:08 +00:00
Michael Meissner
71abba1e35 re PR target/71869 (__builtin_isgreater raises an invalid exception on PPC64 using __float128 inputs.)
[gcc]
2016-07-26  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/71869
	* config/rs6000/rs6000.c (rs6000_generate_compare): Rework
	__float128 support when we don't have hardware support, so that
	the IEEE built-in functions like isgreater, first call __unordkf3
	to make sure neither operand is a NaN, and if both operands are
	ordered, do the normal comparison.

[gcc/testsuite]
2016-07-26  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/71869
	* gcc.target/powerpc/float128-cmp.c: New test to make sure that
	IEEE built-in functions handle quiet and signalling NaNs
	correctly.

From-SVN: r238779
2016-07-27 04:45:59 +00:00
GCC Administrator
2f65c3b337 Daily bump.
From-SVN: r238778
2016-07-27 00:16:13 +00:00
Steven G. Kargl
9cd74e8fa8 re PR fortran/71862 (ICE in gfc_add_component_ref, at fortran/class.c:241)
2016-07-22  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/71862
	* class.c: Remove assert.  Iterate over component only if non-null.

2016-07-22  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/71862
	* gfortran.dg/pr71862.f90: New test.

From-SVN: r238774
2016-07-26 22:42:49 +00:00
Martin Sebor
0d48446ff3 pr71675.c: Replace the unsupported c11 target selector with dg-options.
gcc/testsuite/ChangeLog:
	* gcc.dg/atomic/pr71675.c: Replace the unsupported c11 target
	selector with dg-options.

From-SVN: r238766
2016-07-26 14:48:20 -06:00
Nathan Sidwell
9e63c3aab1 Missed changelog entries for commit 238252. Sorry,
2016-07-12  Nathan Sidwell  <nathan@acm.org>

	* config/arm/arm.c (arm_option_override): Set MASK_SINGLE_PIC_BASE
	when -mno-pic-data-is-text-relative is in effect, by default.
	* doc/invoke.texi (mpic-data-is-text-relative): Document new
	behavior and clarify.

2016-07-12  Nathan Sidwell  <nathan@acm.org>

	* gcc.target/arm/data-rel-1.c: New.
	* gcc.target/arm/data-rel-2.c: New.
	* gcc.target/arm/data-rel-3.c: New.

From-SVN: r238763
2016-07-26 17:07:26 +00:00
Patrick Palka
e04de66743 Minor changes in tree-vrp.c
gcc/ChangeLog:

	* tree-vrp.c (dump_asserts_for): Print loc->expr instead of
	name.
	(extract_code_and_val_from_cond_with_ops): Verify that name is
	either cond_op0 or cond_op1.

From-SVN: r238762
2016-07-26 15:21:29 +00:00
Patrick Palka
524cf1e47a Teach VRP to register assertions along default switch labels (PR18046)
gcc/ChangeLog:

	PR tree-optimization/18046
	* genmodes.c (emit_mode_size_inline): Emit an assert that
	verifies that mode is a valid array index.
	(emit_mode_nuinits_inline): Likewise.
	(emit_mode_inner_inline): Likewise.
	(emit_mode_unit_size_inline): Likewise.
	(emit_mode_unit_precision_inline): Likewise.
	* tree-vrp.c: Include params.h.
	(find_switch_asserts): Register edge assertions for the default
	label which correspond to the anti-ranges of each case label.
	* params.def (PARAM_MAX_VRP_SWITCH_ASSERTIONS): New.
	* doc/invoke.texi: Document it.

gcc/testsuite/ChangeLog:

	PR tree-optimization/18046
	* gcc.dg/tree-ssa/ssa-dom-thread-6.c: Bump FSM count to 5.
	* gcc.dg/tree-ssa/vrp103.c: New test.
	* gcc.dg/tree-ssa/vrp104.c: New test.

From-SVN: r238761
2016-07-26 15:19:58 +00:00
William Schmidt
100665d8d7 Move ChangeLog entry to the right place
From-SVN: r238760
2016-07-26 14:25:20 +00:00
Bill Schmidt
ed26375bcb pr63354.c: Require lp64 since -mprofile-kernel is not legal with -m32.
2016-07-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* gcc.target/powerpc/pr63354.c: Require lp64 since
	-mprofile-kernel is not legal with -m32.

From-SVN: r238759
2016-07-26 14:24:16 +00:00
Bill Schmidt
6e281ce309 gimple-ssa-strength-reduction.c (slsr_process_phi): Remove dead and unnecessary call to gimple_bb.
2016-07-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* gimple-ssa-strength-reduction.c (slsr_process_phi): Remove dead
	and unnecessary call to gimple_bb.

From-SVN: r238758
2016-07-26 14:13:52 +00:00
Richard Biener
0b64ca40f3 re PR rtl-optimization/71984 (wrong code with -O -mavx512cd)
2016-07-26  Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/71984
	* simplify-rtx.c (simplify_subreg): Use GET_MODE_SIZE and prepare
	for VOIDmode.

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

From-SVN: r238757
2016-07-26 14:11:21 +00:00
Richard Biener
ab2b55c109 re PR tree-optimization/72517 (436.cactusADM: More than 40% regression in O3 and Ofast on AMD bdver4 m/c.)
2016-07-26  Richard Biener  <rguenther@suse.de>

	PR middle-end/72517
	* expmed.c (extract_bit_field_1): Constrain the vector mode
	with element size matching the extraction mode size when
	choosing a better vector mode to do the extraction from.

From-SVN: r238756
2016-07-26 14:07:05 +00:00
Robert Suchanek
9b7937cf8a Add support to run auto-vectorization tests for multiple effective targets.
gcc/testsuite/

	* g++.dg/vect/vect.exp: Add and set new global EFFECTIVE_TARGETS. Call
	g++-dg-runtest via et-dg-runtest.
	* gcc.dg/graphite/graphite.exp: Likewise, but for dg-runtest.
	* gcc.dg/vect/vect.exp: Likewise.
	* gfortran.dg/graphite/graphite.exp: Likewise, but for
	gfortran-dg-runtest.
	* gfortran.dg/vect/vect.exp: Likewise.
	* lib/target-supports.exp (check_mpaired_single_hw_available): New.
	(check_mips_loongson_hw_available): Likewise.
	(check_effective_target_mpaired_single_runtime): Likewise.
	(check_effective_target_mips_loongson_runtime): Likewise.
	(add_options_for_mpaired_single): Likewise.
	(check_effective_target_vect_int): Add global et_index.
	Check and save the supported feature for a target selected by
	the et_index target.  Break long lines where appropriate.  Call
	et-is-effective-target for MIPS with an argument instead of
	check_effective_target_* where appropriate.
	(check_effective_target_vect_intfloat_cvt): Likewise.
	(check_effective_target_vect_uintfloat_cvt): Likewise.
	(check_effective_target_vect_floatint_cvt): Likewise.
	(check_effective_target_vect_floatuint_cvt): Likewise.
	(check_effective_target_vect_simd_clones): Likewise.
	(check_effective_target_vect_shift): ewise.
	(check_effective_target_whole_vector_shift): Likewise.
	(check_effective_target_vect_bswap): Likewise.
	(check_effective_target_vect_shift_char): Likewise.
	(check_effective_target_vect_long): Likewise.
	(check_effective_target_vect_float): Likewise.
	(check_effective_target_vect_double): Likewise.
	(check_effective_target_vect_long_long): Likewise.
	(check_effective_target_vect_no_int_max): Likewise.
	(check_effective_target_vect_no_int_add): Likewise.
	(check_effective_target_vect_no_bitwise): Likewise.
	(check_effective_target_vect_widen_shift): Likewise.
	(check_effective_target_vect_no_align): Likewise.
	(check_effective_target_vect_hw_misalign): Likewise.
	(check_effective_target_vect_element_align): Likewise.
	(check_effective_target_vect_condition): Likewise.
	(check_effective_target_vect_cond_mixed): Likewise.
	(check_effective_target_vect_char_mult): Likewise.
	(check_effective_target_vect_short_mult): Likewise.
	(check_effective_target_vect_int_mult): Likewise.
	(check_effective_target_vect_extract_even_odd): Likewise.
	(check_effective_target_vect_interleave): Likewise.
	(check_effective_target_vect_stridedN): Likewise.
	(check_effective_target_vect_multiple_sizes): Likewise.
	(check_effective_target_vect64): Likewise.
	(check_effective_target_vect_call_copysignf): Likewise.
	(check_effective_target_vect_call_sqrtf): Likewise.
	(check_effective_target_vect_call_btrunc): Likewise.
	(check_effective_target_vect_call_btruncf): Likewise.
	(check_effective_target_vect_call_ceil): Likewise.
	(check_effective_target_vect_call_ceilf): Likewise.
	(check_effective_target_vect_call_floor): Likewise.
	(check_effective_target_vect_call_floorf): Likewise.
	(check_effective_target_vect_call_lceil): Likewise.
	(check_effective_target_vect_call_lfloor): Likewise.
	(check_effective_target_vect_call_nearbyint): Likewise.
	(check_effective_target_vect_call_nearbyintf): Likewise.
	(check_effective_target_vect_call_round): Likewise.
	(check_effective_target_vect_call_roundf): Likewise.
	(check_effective_target_vect_perm): Likewise, but also append *_saved
	to the existing global name to properly cache the result.
	(check_effective_target_vect_perm_byte): Likewise.
	(check_effective_target_vect_perm_short): Likewise.
	(check_effective_target_vect_widen_sum_hi_to_si_pattern): Likewise.
	(check_effective_target_vect_widen_sum_hi_to_si): Likewise.
	(check_effective_target_vect_widen_sum_qi_to_hi): Likewise.
	(check_effective_target_vect_widen_sum_qi_to_si): Likewise.
	(check_effective_target_vect_widen_mult_qi_to_hi_pattern): Likewise.
	(check_effective_target_vect_widen_mult_qi_to_hi): Likewise.
	(check_effective_target_vect_widen_mult_hi_to_si_pattern): Likewise.
	(check_effective_target_vect_widen_mult_si_to_di_pattern): Likewise.
	(check_effective_target_vect_sdot_qi): Likewise.
	(check_effective_target_vect_udot_qi): Likewise.
	(check_effective_target_vect_sdot_hi): Likewise.
	(check_effective_target_vect_udot_hi): Likewise.
	(check_effective_target_vect_usad_char): Likewise.
	(check_effective_target_vect_pack_trunc): Likewise.
	(check_effective_target_vect_unpack): Likewise.
	(check_effective_target_vect_aligned_arrays): Likewise.
	(check_effective_target_vect_natural_alignment): Likewise.
	(check_effective_target_vector_alignment_reachable): Likewise.
	(check_effective_target_vector_alignment_reachable_for_64bit): Likewise.
	(is-effective-target): Initialize et_index if undefined.
	(et-dg-runtest): New.
	(et-is-effective-target): Likewise.
	(check_vect_support_and_set_flags): Add supported MIPS targets to
	EFFECTIVE_TARGETS list.  Return the number of supported targets.

From-SVN: r238755
2016-07-26 13:20:03 +00:00
Richard Biener
8f63caf682 re PR middle-end/70920 (if ((intptr_t)ptr == 0) doesn't get simplified to if (ptr == 0))
2016-07-26  Richard Biener  <rguenther@suse.de>
	    Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>

	PR middle-end/70920
	* match.pd ((intptr)x eq/ne CST to x eq/ne (typeof x) CST): New
	pattern.

testsuite/
	* gcc.dg/pr70920-1.c: New test-case.
	* gcc.dg/pr70902-2.c: Likewise.
	* gcc.dg/pr70920-3.c: Likewise.
	* gcc.dg/pr70920-4.c: Likewise
	* gcc.dg/tree-ssa/ssa-dom-branch-1.c: Change scan-tree-dump-times to
	2 instead of 3.

Co-Authored-By: Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>

From-SVN: r238754
2016-07-26 13:10:33 +00:00
Richard Biener
c4f820552a update_version_svn: Ignore the GCC 4.9 branch.
2016-07-26  Richard Biener  <rguenther@suse.de>

	* update_version_svn: Ignore the GCC 4.9 branch.

From-SVN: r238753
2016-07-26 12:30:18 +00:00
Richard Biener
7055b2bbf1 crontab: Remove entry for the GCC 4.9 branch.
2016-07-26  Richard Biener  <rguenther@suse.de>

	* crontab: Remove entry for the GCC 4.9 branch.

From-SVN: r238752
2016-07-26 12:27:16 +00:00
Trevor Saunders
b46e8e6aa4 add [cd]tors to scc_info
gcc/ChangeLog:

2016-07-26  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* tree-ssa-structalias.c (struct scc_info): Change types of
	members to auto_sbitmap and auto_vec.
	(scc_info::scc_info): New constructor.
	(scc_info::~scc_info): New destructor.
	(init_scc_info): Remove.
	(free_scc_info): Remove.
	(find_indirect_cycles): Adjust.
	(perform_var_substitution): Likewise.
	(free_var_substitution_info): Likewise.

From-SVN: r238751
2016-07-26 10:44:31 +00:00
Trevor Saunders
61801db927 add a constructor to elim_graph
gcc/ChangeLog:

2016-07-26  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* tree-outof-ssa.c (struct elim_graph): Change type of members
	to auto_vec and auto_sbitmap.
	(elim_graph::elim_graph): New constructor.
	(delete_elim_graph): Remove.
	(expand_phi_nodes): Adjust.

From-SVN: r238750
2016-07-26 10:44:25 +00:00
Trevor Saunders
c8b1ebd997 remove elim_graph typedef
gcc/ChangeLog:

2016-07-26  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* tree-outof-ssa.c (struct elim_graph): Remove typedef.
	(new_elim_graph): Adjust.
	(clear_elim_graph): Likewise.
	(delete_elim_graph): Likewise.
	(elim_graph_size): Likewise.
	(elim_graph_add_node): Likewise.
	(elim_graph_add_edge): Likewise.
	(elim_graph_remove_succ_edge): Likewise.
	(eliminate_name): Likewise.
	(eliminate_build): Likewise.
	(elim_forward): Likewise.
	(elim_unvisited_predecessor): Likewise.
	(elim_backward): Likewise.
	(elim_create): Likewise.
	(eliminate_phi): Likewise.
	(expand_phi_nodes): Likewise.

From-SVN: r238749
2016-07-26 10:44:15 +00:00
Trevor Saunders
7ba9e72de9 use auto_sbitmap in various places
gcc/ChangeLog:

2016-07-26  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* bt-load.c (compute_out): Use auto_sbitmap class.
	(link_btr_uses): Likewise.
	* cfganal.c (mark_dfs_back_edges): Likewise.
	(post_order_compute): Likewise.
	(inverted_post_order_compute): Likewise.
	(pre_and_rev_post_order_compute_fn): Likewise.
	(single_pred_before_succ_order): Likewise.
	* cfgexpand.c (pass_expand::execute): Likewise.
	* cfgloop.c (verify_loop_structure): Likewise.
	* cfgloopmanip.c (fix_bb_placements): Likewise.
	(remove_path): Likewise.
	(update_dominators_in_loop): Likewise.
	* cfgrtl.c (break_superblocks): Likewise.
	* ddg.c (check_sccs): Likewise.
	(create_ddg_all_sccs): Likewise.
	* df-core.c (df_worklist_dataflow): Likewise.
	* dse.c (dse_step3): Likewise.
	* except.c (eh_region_outermost): Likewise.
	* function.c (thread_prologue_and_epilogue_insns): Likewise.
	* gcse.c (prune_expressions): Likewise.
	(prune_insertions_deletions): Likewise.
	* gimple-ssa-backprop.c (backprop::~backprop): Likewise.
	* graph.c (draw_cfg_nodes_no_loops): Likewise.
	* ira-lives.c (remove_some_program_points_and_update_live_ranges): Likewise.
	* lcm.c (compute_earliest): Likewise.
	(compute_farthest): Likewise.
	* loop-unroll.c (unroll_loop_constant_iterations): Likewise.
	(unroll_loop_runtime_iterations): Likewise.
	(unroll_loop_stupid): Likewise.
	* lower-subreg.c (decompose_multiword_subregs): Likewise.
	* lra-lives.c: Likewise.
	* lra.c (lra): Likewise.
	* modulo-sched.c (schedule_reg_moves): Likewise.
	(optimize_sc): Likewise.
	(get_sched_window): Likewise.
	(sms_schedule_by_order): Likewise.
	(check_nodes_order): Likewise.
	(order_nodes_of_sccs): Likewise.
	(order_nodes_in_scc): Likewise.
	* recog.c (split_all_insns): Likewise.
	* regcprop.c (pass_cprop_hardreg::execute): Likewise.
	* reload1.c (reload): Likewise.
	* sched-rgn.c (haifa_find_rgns): Likewise.
	(split_edges): Likewise.
	(compute_trg_info): Likewise.
	* sel-sched.c (init_seqno): Likewise.
	* store-motion.c (remove_reachable_equiv_notes): Likewise.
	* tree-into-ssa.c (update_ssa): Likewise.
	* tree-ssa-live.c (live_worklist): Likewise.
	* tree-ssa-loop-im.c (fill_always_executed_in): Likewise.
	* tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
	* Likewise.
	(try_peel_loop): Likewise.
	* tree-ssa-loop-manip.c (tree_transform_and_unroll_loop):
	* Likewise.
	* tree-ssa-pre.c (compute_antic): Likewise.
	* tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
	* tree-stdarg.c (reachable_at_most_once): Likewise.
	* tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Likewise.
	* var-tracking.c (vt_find_locations): Likewise.

From-SVN: r238748
2016-07-26 10:44:08 +00:00
Trevor Saunders
62e2078514 add auto_sbitmap class
gcc/ChangeLog:

2016-07-26  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* sbitmap.h (auto_sbitmap): New class.

From-SVN: r238747
2016-07-26 10:43:58 +00:00
Alan Modra
3ef7d2236b [RS6000] push_secondary_reload ICE
PR target/72103
	* config/rs6000/rs6000.c (rs6000_secondary_reload): Initialize
	sri->t_icode.

From-SVN: r238744
2016-07-26 19:57:34 +09:30
Ian Lance Taylor
c5fe5e8032 libgo: bump library version number for 1.7
Reviewed-on: https://go-review.googlesource.com/25211

From-SVN: r238743
2016-07-26 01:53:27 +00:00
Ian Lance Taylor
870e8ca5a7 os/user: fix Solaris declaration.
Patch from Rainer Orth.
    
    Reviewed-on: https://go-review.googlesource.com/25210

From-SVN: r238742
2016-07-26 01:38:33 +00:00
GCC Administrator
4c2726ef99 Daily bump.
From-SVN: r238741
2016-07-26 00:16:20 +00:00
Jason Merrill
1509db2360 PR c++/65970 - revert loop location change
* cp-gimplify.c (genericize_cp_loop): Revert location change.

From-SVN: r238737
2016-07-25 17:25:04 -04:00
Jason Merrill
47265942fa PR c++/71837 - pack expansion in init-capture
* lambda.c (add_capture): Leave a pack expansion in a TREE_LIST.
	(build_lambda_object): Call build_x_compound_expr_from_list.
	* pt.c (tsubst) [DECLTYPE_TYPE]: Likewise.

From-SVN: r238733
2016-07-25 15:16:16 -04:00
David Malcolm
e27f0bc9ca Fix selftest::temp_source_file ctor
gcc/ChangeLog:
	* input.c (selftest::temp_source_file::temp_source_file): Fix
	missing "%s" in fprintf.

From-SVN: r238732
2016-07-25 19:15:22 +00:00
Jason Merrill
fd8b207a76 PR c++/71833 - member template with two parameter packs
PR c++/54440
	* pt.c (coerce_template_parameter_pack): Fix logic for
	pack index.

From-SVN: r238731
2016-07-25 15:10:41 -04:00
Jason Merrill
5ec2cd9f66 PR c++/65970 - constexpr infinite loop
gcc/c-family/
	* c.opt (fconstexpr-loop-limit): New.
gcc/cp/
	* constexpr.c (cxx_eval_loop_expr): Count iterations.
	* cp-gimplify.c (genericize_cp_loop): Use start_locus even for
	infinite loops.

From-SVN: r238730
2016-07-25 14:32:13 -04:00
Jason Merrill
fd2bfee51e PR c++/71972 - constexpr array self-modification
* constexpr.c (cxx_eval_array_reference): Handle looking for the
	value of an element we're currently modifying.

From-SVN: r238729
2016-07-25 14:32:06 -04:00
Jason Merrill
8d6833755c * g++.dg/init/elide5.C: Don't use unsigned long for size_t.
From-SVN: r238728
2016-07-25 14:32:00 -04:00
John David Anglin
007b405bbf re PR middle-end/71732 (FAIL: gcc.dg/torture/pr71532.c at -O2 and above)
PR middle-end/71732
	* cselib.c (cselib_process_insn): Invalidate argument slots for
	const/pure calls.

From-SVN: r238727
2016-07-25 17:32:44 +00:00
Alexander Monakov
7d575fffd2 testsuite: add two missing label_values annotations
2016-07-25  Alexander Monakov  <amonakov@ispras.ru>

	* gcc.c-torture/execute/pr71494.c: Require label_values.
	* gcc.dg/pr16973.c: Ditto.

From-SVN: r238726
2016-07-25 19:16:27 +03:00
Jiong Wang
bb6131dbd1 [AArch64][10/10] ARMv8.2-A FP16 lane scalar intrinsics
gcc/
	* config/aarch64/arm_neon.h (vfmah_lane_f16, vfmah_laneq_f16,
	vfmsh_lane_f16, vfmsh_laneq_f16, vmulh_lane_f16, vmulh_laneq_f16,
	vmulxh_lane_f16, vmulxh_laneq_f16): New.

From-SVN: r238725
2016-07-25 16:15:34 +00:00
Jiong Wang
9a594ad6ef [AArch64][9/10] ARMv8.2-A FP16 three operands scalar intrinsics
gcc/
	* config/aarch64/aarch64-simd-builtins.def: Register new builtins.
	* config/aarch64/aarch64.md (fma, fnma): Support HF.
	* config/aarch64/arm_fp16.h (vfmah_f16, vfmsh_f16): New.

From-SVN: r238724
2016-07-25 16:13:22 +00:00
Jiong Wang
68ad28c34a [AArch64][8/10] ARMv8.2-A FP16 two operands scalar intrinsics
gcc/
	* config/aarch64/aarch64-simd-builtins.def: Register new builtins.
	* config/aarch64/aarch64.md (<FCVT_F2FIXED:fcvt_fixed_insn>hf<mode>3):
	New.
	(<FCVT_FIXED2F:fcvt_fixed_insn><mode>hf3): Likewise.
	(add<mode>3): Likewise.
	(sub<mode>3): Likewise.
	(mul<mode>3): Likewise.
	(div<mode>3): Likewise.
	(*div<mode>3): Likewise.
	(<fmaxmin><mode>3): Extend to HF.
	* config/aarch64/aarch64-simd.md (aarch64_rsqrts<mode>): Likewise.
	(fabd<mode>3): Likewise.
	(<FCVT_F2FIXED:fcvt_fixed_insn><VHSDF_HSDF:mode>3): Likewise.
	(<FCVT_FIXED2F:fcvt_fixed_insn><VHSDI_HSDI:mode>3): Likewise.
	(aarch64_fmulx<mode>): Likewise.
	(aarch64_fac<optab><mode>): Likewise.
	(aarch64_frecps<mode>): Likewise.
	(<FCVT_F2FIXED:fcvt_fixed_insn>hfhi3): New.
	(<FCVT_FIXED2F:fcvt_fixed_insn>hihf3): Likewise.
	* config/aarch64/iterators.md (VHSDF_SDF): Delete.
	(VSDQ_HSDI): Support HI.
	(fcvt_target, FCVT_TARGET): Likewise.
	* config/aarch64/arm_fp16.h (vaddh_f16, vsubh_f16, vabdh_f16,
	vcageh_f16, vcagth_f16, vcaleh_f16, vcalth_f16, vceqh_f16, vcgeh_f16,
	vcgth_f16, vcleh_f16, vclth_f16, vcvth_n_f16_s16, vcvth_n_f16_s32,
	vcvth_n_f16_s64, vcvth_n_f16_u16, vcvth_n_f16_u32, vcvth_n_f16_u64,
	vcvth_n_s16_f16, vcvth_n_s32_f16, vcvth_n_s64_f16, vcvth_n_u16_f16,
	vcvth_n_u32_f16, vcvth_n_u64_f16, vdivh_f16, vmaxh_f16, vmaxnmh_f16,
	vminh_f16, vminnmh_f16, vmulh_f16, vmulxh_f16, vrecpsh_f16,
	vrsqrtsh_f16): New.

From-SVN: r238723
2016-07-25 16:10:52 +00:00
Jiong Wang
d7f33f07d8 [AArch64][7/10] ARMv8.2-A FP16 one operand scalar intrinsics
gcc/
	* config.gcc (aarch64*-*-*): Install arm_fp16.h.
	* config/aarch64/aarch64-builtins.c (hi_UP): New.
	* config/aarch64/aarch64-simd-builtins.def: Register new builtins.
	* config/aarch64/aarch64-simd.md (aarch64_frsqrte<mode>): Extend to HF
	mode.
	(aarch64_frecp<FRECP:frecp_suffix><mode>): Likewise.
	(aarch64_cm<optab><mode>): Likewise.
	* config/aarch64/aarch64.md (<frint_pattern><mode>2): Likewise.
	(l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Likewise.
	(fix_trunc<GPF:mode><GPI:mode>2): Likewise.
	(sqrt<mode>2): Likewise.
	(abs<mode>2): Likewise.
	(<optab><mode>hf2): New pattern for HF mode.
	(<optab>hihf2): Likewise.
	* config/aarch64/arm_neon.h: Include arm_fp16.h.
	* config/aarch64/iterators.md (GPF_F16, GPI_F16, VHSDF_HSDF): New.
	(w1, w2, v, s, q, Vmtype, V_cmp_result, fcvt_iesize, FCVT_IESIZE):
	Support HF mode.
	* config/aarch64/arm_fp16.h: New file.
	(vabsh_f16, vceqzh_f16, vcgezh_f16, vcgtzh_f16, vclezh_f16, vcltzh_f16,
	vcvth_f16_s16, vcvth_f16_s32, vcvth_f16_s64, vcvth_f16_u16,
	vcvth_f16_u32, vcvth_f16_u64, vcvth_s16_f16, vcvth_s32_f16,
	vcvth_s64_f16, vcvth_u16_f16, vcvth_u32_f16, vcvth_u64_f16,
	vcvtah_s16_f16, vcvtah_s32_f16, vcvtah_s64_f16, vcvtah_u16_f16,
	vcvtah_u32_f16, vcvtah_u64_f16, vcvtmh_s16_f16, vcvtmh_s32_f16,
	vcvtmh_s64_f16, vcvtmh_u16_f16, vcvtmh_u32_f16, vcvtmh_u64_f16,
	vcvtnh_s16_f16, vcvtnh_s32_f16, vcvtnh_s64_f16, vcvtnh_u16_f16,
	vcvtnh_u32_f16, vcvtnh_u64_f16, vcvtph_s16_f16, vcvtph_s32_f16,
	vcvtph_s64_f16, vcvtph_u16_f16, vcvtph_u32_f16, vcvtph_u64_f16,
	vnegh_f16, vrecpeh_f16, vrecpxh_f16, vrndh_f16, vrndah_f16, vrndih_f16,
	vrndmh_f16, vrndnh_f16, vrndph_f16, vrndxh_f16, vrsqrteh_f16,
	vsqrth_f16): New.

From-SVN: r238722
2016-07-25 16:00:28 +00:00
Jiong Wang
703bbcdfe9 [AArch64][6/14] ARMv8.2-A FP16 reduction vector intrinsics
gcc/
	* config/aarch64/aarch64-simd-builtins.def (reduc_smax_scal_,
	reduc_smin_scal_): Use VDQIF_F16.
	(reduc_smax_nan_scal_, reduc_smin_nan_scal_): Use VHSDF.
	* config/aarch64/aarch64-simd.md (reduc_<maxmin_uns>_scal_<mode>):
	Use VHSDF.
	(aarch64_reduc_<maxmin_uns>_internal<mode>): Likewise.
	* config/aarch64/iterators.md (VDQIF_F16): New.
	(vp): Support HF modes.
	* config/aarch64/arm_neon.h (vmaxv_f16, vmaxvq_f16, vminv_f16,
	vminvq_f16, vmaxnmv_f16, vmaxnmvq_f16, vminnmv_f16, vminnmvq_f16): New.

From-SVN: r238721
2016-07-25 15:00:14 +00:00