Commit Graph

170497 Commits

Author SHA1 Message Date
Martin Liska e006ead523 Properly detect working jobserver in gcc driver.
2019-08-02  Martin Liska  <mliska@suse.cz>

	PR lto/91313
	* gcc.c (driver::maybe_run_linker): Call detect_jobserver
	to detect working job server.
	(driver::detect_jobserver): Test whether jobserver
	is active from GCC driver. That will prevent situation where
	GCC is invoked from a LD plugin and the linker already uses
	file descriptors suggested by make.  That leads to a wrong
	detection.
	* gcc.h (driver): Add detect_jobserver.
	* lto-wrapper.c (jobserver_active_p): Simplify sscanf by
	not scanning for --jobserver-auth prefix.

From-SVN: r274003
2019-08-02 09:23:56 +00:00
Paolo Carlini c0cc62604f tree.c (handle_nodiscard_attribute): Do not warn about nodiscard applied to a constructor.
/cp
2019-08-02  Paolo Carlini  <paolo.carlini@oracle.com>

	* tree.c (handle_nodiscard_attribute): Do not warn about nodiscard
	applied to a constructor.

/testsuite
2019-08-02  Paolo Carlini  <paolo.carlini@oracle.com>

	* g++.dg/cpp1z/nodiscard6.C: New.

From-SVN: r274002
2019-08-02 08:52:42 +00:00
Senthil Kumar Selvaraj a684432bf7 Fix gcc.dg/torture/ssa-fre-{5,7}.c failure for avr
The test assumes 32 bit integers (and pointers), and therefore
fails for the avr target, which has 16 bit integers.
    
Fix failure for avr by adding dg-require-effective-target int32.

gcc/testsuite/ChangeLog:

2019-08-02  Senthil Kumar Selvaraj  <senthilkumar.selvaraj@microchip.com>

	* gcc.dg/torture/ssa-fre-5.c: Add dg-require-effective-target int32.
	* gcc.dg/torture/ssa-fre-7.c: Likewise.

From-SVN: r274001
2019-08-02 08:47:04 +00:00
Uros Bizjak 5006570d8f pr88140.c: Move to ...
* gcc.c-torture/pr88140.c: Move to ...
	* gcc.c-torture/compile/pr88140.c: ... here.

From-SVN: r273999
2019-08-02 10:39:09 +02:00
Jakub Jelinek f66e6e2bea re PR tree-optimization/91201 (SIMD not generated for horizontal sum of bytes in array)
PR tree-optimization/91201
	* config/i386/i386-expand.c (ix86_expand_vector_extract): For elt == 0
	V16QImode extraction without sse4.1 try to use V4SImode lowpart
	extraction.

	* gcc.target/i386/sse2-pr91201-3.c: New test.
	* gcc.target/i386/sse2-pr91201-4.c: New test.
	* gcc.target/i386/sse2-pr91201-5.c: New test.
	* gcc.target/i386/sse2-pr91201-6.c: New test.

From-SVN: r273998
2019-08-02 10:28:31 +02:00
Jakub Jelinek 3bad953b2b quadmath.h (M_Eq, [...]): Use two more decimal places.
* quadmath.h (M_Eq, M_LOG2Eq, M_LOG10Eq, M_LN2q, M_LN10q, M_PIq,
	M_PI_2q, M_PI_4q, M_1_PIq, M_2_PIq, M_2_SQRTPIq, M_SQRT2q,
	M_SQRT1_2q): Use two more decimal places.

From-SVN: r273997
2019-08-02 09:59:19 +02:00
Martin Liska 8e8e7af514 Mark DECL_SET_IS_OPERATOR_DELETE for user-provided delete operators.
2019-08-02  Martin Liska  <mliska@suse.cz>

	* decl.c (grok_op_properties):
	Mark DECL_SET_IS_OPERATOR_DELETE for user-provided delete operators.
2019-08-02  Martin Liska  <mliska@suse.cz>

	* g++.dg/cpp1y/new2.C: New test.

From-SVN: r273996
2019-08-02 06:07:15 +00:00
Senthil Kumar Selvaraj 5bae71d1aa Fix gcc.dg/torture/ssa-fre-6.c failure for avr
The test assumes 32 bit integers (and pointers), and therefore
fails for the avr target, which has 16 bit integers.
    
Fix failure for avr by adding dg-require-effective-target int32.
    
gcc/testsuite/ChangeLog
    
2019-08-02  Senthil Kumar Selvaraj  <senthilkumar.selvaraj@microchip.com>
    
	* gcc.dg/torture/ssa-fre-6.c: Add dg-require-effective-target int32.

From-SVN: r273995
2019-08-02 05:27:15 +00:00
Kito Cheng 930dd62797 Check -shared is available for pr87906_0.C
gcc/testsuite/ChangeLog:

	* g++.dg/lto/pr87906_0.C: Add dg-require-effective-target shared check.

From-SVN: r273994
2019-08-02 03:15:44 +00:00
GCC Administrator bd289cdb80 Daily bump.
From-SVN: r273993
2019-08-02 00:16:15 +00:00
Martin Sebor b74f15a88e PR c++/90947 - Simple lookup table of array of strings is miscompiled
gcc/cp/ChangeLog:

	PR c++/90947
	* decl.c (reshape_init_array_1): Avoid truncating initializer
	lists containing string literals.

gcc/testsuite/ChangeLog:

	PR c++/90947
	* c-c++-common/array-1.c: New test.
	* g++.dg/abi/mangle73.C: New test.
	* g++.dg/cpp2a/nontype-class23.C: New test.
	* g++.dg/init/array53.C: New test.

gcc/ChangeLog:

	PR c++/90947
	* tree.c (type_initializer_zero_p): Define.
	* tree.h (type_initializer_zero_p): New function.

From-SVN: r273989
2019-08-01 17:45:36 -06:00
Eric Botcazou f3b4eae6c3 * cfgrtl.c (relink_block_chain): Add line returns in dump file.
From-SVN: r273988
2019-08-01 21:02:17 +00:00
Eric Botcazou bf321336fc cgraph.h (cgraph_edge::maybe_hot_p): Tweak comment.
* cgraph.h (cgraph_edge::maybe_hot_p): Tweak comment.
	* cgraph.c (cgraph_edge::maybe_hot_p): Likewise.  Remove useless test.
	* predict.c (maybe_hot_count_p): Likewise.
	(maybe_hot_bb_p): Tweak comment.
	(maybe_hot_edge_p): Likewise.
	(probably_never_executed): Likewise.  Minor tweak.
	(probably_never_executed_bb_p): Likewise.
	(unlikely_executed_edge_p): Likewise.
	(probably_never_executed_edge_p): Likewise.
	(optimize_function_for_size_p): Likewise.
	(optimize_function_for_speed_p): Likewise.
	(function_optimization_type): Likewise.
	(optimize_bb_for_size_p): Likewise.
	(optimize_bb_for_speed_p): Likewise.
	(bb_optimization_type): Likewise.
	(optimize_edge_for_size_p): Likewise.
	(optimize_edge_for_speed_p): Likewise.
	(optimize_insn_for_size_p): Likewise.
	(optimize_insn_for_speed_p): Likewise.
	(optimize_loop_for_size_p): Likewise.
	(optimize_loop_for_speed_p): Likewise.
	(optimize_loop_nest_for_speed_p): Likewise.
	(optimize_loop_nest_for_size_p): Likewise.
	(predictable_edge_p): Likewise.
	(handle_missing_profiles): Minor tweak.

From-SVN: r273983
2019-08-01 20:15:19 +00:00
Michael Meissner f7eaa84e53 Fix comment about use of @pcrel@got.
2019-08-01  Michael Meissner  <meissner@linux.ibm.com>

	* config/rs6000/predicates.md (pcrel_external_address): Update
	comment.

From-SVN: r273982
2019-08-01 18:35:49 +00:00
Uros Bizjak 45230a4019 re PR tree-optimization/85693 (Generation of SAD (Sum of Absolute Difference) instruction)
PR target/85693
	* config/i386/mmx.md (usadv8qi): New expander.

testsuite/ChangeLog:

	PR target/85693
	* gcc.target/i386/pr85693-1.c: New test.

From-SVN: r273981
2019-08-01 20:07:19 +02:00
Matthew Beliveau ce529ffca7 re PR c++/90590 (enumeration value not handled in switch warning for std::ios_base::seek_dir)
PR c++/90590

	* c-warn.c (c_do_switch_warnings): Suppress warning for enumerators
	with reserved names that are in a system header.

	* c-c++-common/pr90590-1.c: New test.
	* c-c++-common/pr90590-1.h: New test.
	* c-c++-common/pr90590-2.c: New test.
	* c-c++-common/pr90590-2.h: New test.

From-SVN: r273980
2019-08-01 18:04:23 +00:00
Uros Bizjak 2c726f9444 mmx.md (vec_extractv2si_0): Add (r,x) alternative.
* config/i386/mmx.md (vec_extractv2si_0): Add (r,x) alternative.
	(*vec_extractv2si_0_zext_sse4): New insn pattern.
	(*vec_extractv2si_0_zext): Ditto.
	(*vec_extractv2si_1): Add (rm,x) alternative.
	(*vec_extractv2si_1_zext): New insn pattern.
	(*vec_extractv2si_zext_mem): Add "TARGET_MMX || TARGET_MMX_WITH_SSE"
	insn constraint.

From-SVN: r273979
2019-08-01 19:32:13 +02:00
Richard Biener 51007dc16a domwalk: use gcc_sort_r
2019-08-01  Richard Biener  <rguenther@suse.de>

	* domwalk.c (bb_postorder): Remove static variable.
	(cmp_bb_postorder): Adjust.
	(sort_bbs_postorder): Adjust and use gcc_sort_r.
	(dom_walker::walk): Adjust.

From-SVN: r273978
2019-08-01 20:16:48 +03:00
Alexander Monakov ce0454d941 sort.cc: introduce gcc_sort_r
* sort.cc (sort_r_ctx): New struct.
	(reorder23): Make templated on context type.
	(reorder45): Ditto.
	(cmp1): Ditto.  Adjust signature.
	(netsort): Ditto.
	(mergesort): Ditto.
	[CHECKING_P] (cmp2to3): New static function.  Use it...
	(gcc_qsort) [CHECKING_P]: ...here.
	(gcc_sort_r): New function.
	* system.h (sort_r_cmp_fn): New function typedef.
	(qsort_chk): Adjust signature.
	(gcc_sort_r): Declare.
	* vec.c (qsort_chk_error): Adjust.
	(qsort_chk): Adjust.

From-SVN: r273977
2019-08-01 20:14:53 +03:00
Marek Polacek f339eb6607 PR c++/90805 - detect narrowing in case values.
* decl.c (case_conversion): Detect narrowing in case values.

	* c-c++-common/pr89888.c: Update expected dg-error.
	* g++.dg/cpp0x/Wnarrowing17.C: New test.
	* g++.dg/cpp0x/enum28.C: Update expected dg-error.

From-SVN: r273976
2019-08-01 16:27:04 +00:00
Edward Smith-Rowland 3a66e68ad9 Implement C++20 p0202 - Add Constexpr Modifiers to Functions in <algorithm> and <utility> Headers.
2019-08-01  Edward Smith-Rowland  <3dw4rd@verizon.net>

	Implement C++20 p0202 - Add Constexpr Modifiers to Functions
	in <algorithm> and <utility> Headers.
	Implement C++20 p1023 - constexpr comparison operators for std::array.
	* include/bits/algorithmfwd.h (all_of, any_of, binary_search, copy,
	copy_backward, copy_if, copy_n, equal_range, fill, find_end,
	find_if_not, includes, is_heap, is_heap_until, is_partitioned,
	is_permutation, is_sorted, is_sorted_until, iter_swap, lower_bound,
	none_of, partition_copy, partition_point, remove, remove_if,
	remove_copy, remove_copy_if, replace_copy, replace_copy_if,
	reverse_copy, rotate_copy, uunique, upper_bound, adjacent_find, count,
	count_if, equal, find, find_first_of, find_if, for_each, generate,
	generate_n, lexicographical_compare, merge, mismatch, replace,
	replace_if, search, search_n, set_difference, set_intersection,
	set_symmetric_difference, set_union, transform, unique_copy):
	Mark constexpr.
	* include/bits/cpp_type_traits.h (__miter_base): Mark constexpr.
	* include/bits/predefined_ops.h (_Iter_less_val::operator(),
	_Val_less_iter::operator(), _Iter_equal_to_iter::operator(),
	_Iter_equal_to_val::operator(), _Iter_equals_val::operator()):
	 Use const ref instead of ref arg;
	(_Iter_less_val, __iter_less_val, _Val_less_iter, __val_less_iter,
	__iter_equal_to_iter, __iter_equal_to_val, __iter_comp_val,
	_Iter_comp_val, _Val_comp_iter, __val_comp_iter, __iter_equals_val,
	_Iter_equals_iter, __iter_comp_iter, _Iter_pred, __pred_iter,
	_Iter_comp_to_val, __iter_comp_val, _Iter_comp_to_iter,
	__iter_comp_iter): Mark constexpr.
	* include/bits/stl_algo.h (__find_if, __find_if_not, __find_if_not_n,
	__search, __search_n_aux, __search_n, __find_end, find_end, all_of,
	none_of, any_of, find_if_not, is_partitioned, partition_point,
	__remove_copy_if, remove_copy, remove_copy_if, copy_if, __copy_n,
	copy_n, partition_copy, __remove_if, remove, remove_if, __adjacent_find,
	__unique, unique, __unique_copy, reverse_copy, rotate_copy,
	__unguarded_linear_insert, __insertion_sort, __unguarded_insertion_sort,
	__final_insertion_sort, lower_bound, __upper_bound, upper_bound,
	__equal_range, equal_range, binary_search, __includes, includes,
	__next_permutation, __prev_permutation, __replace_copy_if, replace_copy,
	replace_copy_if, __count_if, is_sorted, __is_sorted_until,
	is_sorted_until, __is_permutation, is_permutation, for_each, find,
	find_if, find_first_of, adjacent_find, count, count_if, search,
	search_n, transform, replace, replace_if, generate, generate_n,
	unique_copy, __merge, merge, __set_union, set_union, __set_intersection,
	set_intersection, __set_difference, set_difference,
	__set_symmetric_difference, set_symmetric_difference):  Mark constexpr.
	* include/bits/stl_algobase.h (__memmove, __memcmp): New maybe constexpr
	wrappers around __builtin_memmove and __builtin_memcmp
	respectively;
	(__niter_base, __niter_wrap, __copy_m, __copy_move_a, __copy_move_a2,
	copy, move, __copy_move_b, __copy_move_backward_a,
	__copy_move_backward_a2, copy_backward, move_backward, __fill_a, fill,
	__fill_n_a, fill_n, equal, __lc_rai::__newlast1, __lc_rai::__cnd2,
	__lexicographical_compare_impl, __lexicographical_compare,
	__lexicographical_compare<true>::__lc, __lexicographical_compare_aux,
	__lower_bound, lower_bound, equal, __equal4, lexicographical_compare,
	__mismatch, mismatch, __is_heap_until, __is_heap, is_heap_until,
	is_heap): Mark constexpr.
	* include/bits/stl_heap.h (__is_heap_until, __is_heap, is_heap_until,
	is_heap): Mark constexpr.
	* include/bits/stl_iterator.h (__niter_base, __miter_base): Mark constexpr.
	* include/std/array: Make comparison ops constexpr.
	* include/std/utility: Make exchange constexpr.
	* include/std/version (__cpp_lib_constexpr_algorithms): New macro.
	* testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust.
	* testsuite/23_containers/array/tuple_interface/
	tuple_element_neg.cc: Adjust.
	* testsuite/20_util/exchange/constexpr.cc: New.
	* testsuite/23_containers/array/comparison_operators/constexpr.cc: New.
	* testsuite/25_algorithms/constexpr_macro.cc: New.
	* testsuite/25_algorithms/adjacent_find/constexpr.cc: New.
	* testsuite/25_algorithms/all_of/constexpr.cc: New.
	* testsuite/25_algorithms/any_of/constexpr.cc: New.
	* testsuite/25_algorithms/binary_search/constexpr.cc: New.
	* testsuite/25_algorithms/copy/constexpr.cc: New.
	* testsuite/25_algorithms/copy_backward/constexpr.cc: New.
	* testsuite/25_algorithms/copy_if/constexpr.cc: New.
	* testsuite/25_algorithms/copy_n/constexpr.cc: New.
	* testsuite/25_algorithms/count/constexpr.cc: New.
	* testsuite/25_algorithms/count_if/constexpr.cc: New.
	* testsuite/25_algorithms/equal/constexpr.cc: New.
	* testsuite/25_algorithms/equal_range/constexpr.cc: New.
	* testsuite/25_algorithms/fill/constexpr.cc: New.
	* testsuite/25_algorithms/fill_n/constexpr.cc: New.
	* testsuite/25_algorithms/find/constexpr.cc: New.
	* testsuite/25_algorithms/find_end/constexpr.cc: New.
	* testsuite/25_algorithms/find_first_of/constexpr.cc: New.
	* testsuite/25_algorithms/find_if/constexpr.cc: New.
	* testsuite/25_algorithms/find_if_not/constexpr.cc: New.
	* testsuite/25_algorithms/for_each/constexpr.cc: New.
	* testsuite/25_algorithms/generate/constexpr.cc: New.
	* testsuite/25_algorithms/generate_n/constexpr.cc: New.
	* testsuite/25_algorithms/is_heap/constexpr.cc: New.
	* testsuite/25_algorithms/is_heap_until/constexpr.cc: New.
	* testsuite/25_algorithms/is_partitioned/constexpr.cc: New.
	* testsuite/25_algorithms/is_permutation/constexpr.cc: New.
	* testsuite/25_algorithms/is_sorted/constexpr.cc: New.
	* testsuite/25_algorithms/is_sorted_until/constexpr.cc: New.
	* testsuite/25_algorithms/lexicographical_compare/constexpr.cc: New.
	* testsuite/25_algorithms/lower_bound/constexpr.cc: New.
	* testsuite/25_algorithms/merge/constexpr.cc: New.
	* testsuite/25_algorithms/mismatch/constexpr.cc: New.
	* testsuite/25_algorithms/none_of/constexpr.cc: New.
	* testsuite/25_algorithms/partition_copy/constexpr.cc: New.
	* testsuite/25_algorithms/partition_point/constexpr.cc: New.
	* testsuite/25_algorithms/remove/constexpr.cc: New.
	* testsuite/25_algorithms/remove_copy/constexpr.cc: New.
	* testsuite/25_algorithms/remove_copy_if/constexpr.cc: New.
	* testsuite/25_algorithms/remove_if/constexpr.cc: New.
	* testsuite/25_algorithms/replace_copy/constexpr.cc: New.
	* testsuite/25_algorithms/replace_copy_if/constexpr.cc: New.
	* testsuite/25_algorithms/replace_if/constexpr.cc: New.
	* testsuite/25_algorithms/reverse_copy/constexpr.cc: New.
	* testsuite/25_algorithms/rotate_copy/constexpr.cc: New.
	* testsuite/25_algorithms/search/constexpr.cc: New.
	* testsuite/25_algorithms/search_n/constexpr.cc: New.
	* testsuite/25_algorithms/set_difference/constexpr.cc: New.
	* testsuite/25_algorithms/set_intersection/constexpr.cc: New.
	* testsuite/25_algorithms/set_symmetric_difference/constexpr.cc: New.
	* testsuite/25_algorithms/set_union/constexpr.cc: New.
	* testsuite/25_algorithms/transform/constexpr.cc: New.
	* testsuite/25_algorithms/unique/constexpr.cc: New.
	* testsuite/25_algorithms/unique_copy/constexpr.cc: New.
	* testsuite/25_algorithms/upper_bound/constexpr.cc: New.

From-SVN: r273975
2019-08-01 15:25:42 +00:00
Wilco Dijkstra dd1f6968d6 Fix pr89330_0.C test
Fix pr89330_0.C test by adding missing effective target shared.
Committed as obvious.

   testsuite/
	* gcc/testsuite/g++.dg/lto/pr89330_0.C: Add effective-target shared.

From-SVN: r273973
2019-08-01 12:54:23 +00:00
Richard Biener 95bbf4751b tree-ssa-pre.c (has_abnormal_preds): Remove global var.
2019-08-01  Richard Biener  <rguenther@suse.de>

	* tree-ssa-pre.c (has_abnormal_preds): Remove global var.
	(compute_antic): Localize it here.

From-SVN: r273971
2019-08-01 11:37:22 +00:00
Bernd Edlinger 6e42c90c06 Make-lang.in (lto.install-common): Remove unnecessary slash between $(DESTDIR) and $(bindir).
2019-08-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * Make-lang.in (lto.install-common): Remove unnecessary slash
        between $(DESTDIR) and $(bindir).

From-SVN: r273969
2019-08-01 08:45:29 +00:00
Kito Cheng ee9021bc15 RISC-V: Fix testcase on rv64
gcc/testsuite/ChangeLog:

	* gcc.target/riscv/attribute-10.c: Fix testcase on rv64.

From-SVN: r273968
2019-08-01 06:33:48 +00:00
GCC Administrator b13e319661 Daily bump.
From-SVN: r273960
2019-08-01 00:16:17 +00:00
Paolo Carlini 6b58e2b525 decl2.c (delete_sanity): Improve diagnostic locations, use cp_expr_loc_or_loc in four places.
/cp
2019-07-31  Paolo Carlini  <paolo.carlini@oracle.com>

	* decl2.c (delete_sanity): Improve diagnostic locations, use
	cp_expr_loc_or_loc in four places.

/testsuite
2019-07-31  Paolo Carlini  <paolo.carlini@oracle.com>

	* g++.dg/diagnostic/delete1.C: New.

From-SVN: r273952
2019-07-31 21:50:04 +00:00
Maxim Blinov 285cf766c1 RISC-V: Raise error on unexpected ISA string at end.
2019-07-31  Maxim Blinov  <maxim.blinov@embecosm.com>
	gcc/
	* common/config/riscv/riscv-common.c: Check -march string ends
	with null.
	gcc/testsuite/
	* gcc.target/riscv/attribute-10.c: New test.

From-SVN: r273951
2019-07-31 14:36:41 -07:00
Jonathan Wakely 3090082cbe Qualify call to prevent ADL
* include/std/memory (make_obj_using_allocator): Qualify call to
	uses_allocator_construction_args.

From-SVN: r273945
2019-07-31 20:08:56 +01:00
Jason Merrill 10acaf4db9 PR c++/90538 - multiple expansions of capture packs
Previously, with init-capture the type of the closure field was a
DECLTYPE_TYPE of the initializer.  But since each time we tsubst a lambda we
get a different lambda, that meant that if the initializer is a lambda, we'd
end up with different closure types in the field and initializer after
substitution (PR 87322).  We dealt with this by remembering the lambda
instantiation within each pack expansion element, using
local_specialization_stack to separate the elements.  But that broke this
testcase, because it lost lambda capture proxies that also use
local_specializations.

So, this patch removes the local_specializations changes from that patch and
fixes 87322 differently, by giving init-capture fields 'auto' type and doing
deduction later.  There's a bit of a kludge to get the right number of
fields by pretending that 'auto...' uses the parameter packs from the
initializer, but it does the trick.

	* cp-tree.h (DECLTYPE_FOR_INIT_CAPTURE): Remove.
	* lambda.c (add_capture): Copy parameter packs from init.
	(lambda_capture_field_type): Always use auto for init-capture.
	* pt.c (uses_parameter_packs): Return tree.
	(tsubst) [DECLTYPE_TYPE]: Remove init-capture handling.
	(gen_elem_of_pack_expansion_instantiation): Don't push
	local_specialization_stack.
	(prepend_one_capture): New.
	(tsubst_lambda_expr): Use it.  Don't touch local_specializations.
	(do_auto_deduction): Avoid redundant error.

From-SVN: r273944
2019-07-31 14:50:00 -04:00
Jason Merrill fc79fc4966 Fix copy_node of TEMPLATE_INFO.
build_clone uses copy_node to duplicate the TEMPLATE_INFO for a clone, but
this clears TREE_CHAIN, which was TI_ARGS in a TEMPLATE_INFO.

	* cp-tree.h (struct tree_template_info): Use tree_base instead of
	tree_common.  Add tmpl and args fields.
	(TI_TEMPLATE, TI_ARGS): Adjust.

From-SVN: r273943
2019-07-31 14:49:28 -04:00
Alexander Monakov b6de302895 ipa-devirt: make qsort helpers static
* ipa-devirt.c (type_warning_cmp): Make static.
	(decl_warning_cmp): Ditto.

From-SVN: r273942
2019-07-31 20:55:04 +03:00
Peter Bergner 98ae96d2ad re PR target/91050 (-mdejagnu-cpu=<cpu> does not affect the -m<cpu> assembler option)
PR target/91050
	* config/rs6000/rs6000.opt (mdejagnu-cpu=): Delete option.
	* config/rs6000/rs6000.c (rs6000_option_override_internal): Remove
	use of deleted rs6000_dejagnu_cpu_index variable.
	* config/rs6000/rs6000.h (DRIVER_SELF_SPECS): Define.
	(SUBTARGET_DRIVER_SELF_SPECS): Likewise.
	* config/darwin.h (DRIVER_SELF_SPECS): Rename from this ...
	(SUBTARGET_DRIVER_SELF_SPECS): ...to this.
	* config/i386/i386.h (DRIVER_SELF_SPECS): Define.
	(SUBTARGET_DRIVER_SELF_SPECS): Likewise.

From-SVN: r273941
2019-07-31 12:18:40 -05:00
Jonathan Wakely 960b9ae05a Implement "P0631R4 Math Constants" for C++20
The values of the constants are taken from Glibc where the equivalent
constant exists, or by rounding the actual constant to the same number
of digits as the Glibc constants have.

	P0631R4 Math Constants
	* include/Makefile.am: Add new header.
	* include/Makefile.in: Regenerate.
	* include/precompiled/stdc++.h: Include new header.
	* include/std/numbers: New header.
	* include/std/version (__cpp_lib_math_constants): Define.
	* testsuite/26_numerics/numbers/1.cc: New test.
	* testsuite/26_numerics/numbers/2.cc: New test.
	* testsuite/26_numerics/numbers/3.cc: New test.
	* testsuite/26_numerics/numbers/nonfloat_neg.cc: New test.

From-SVN: r273940
2019-07-31 17:40:39 +01:00
Jonathan Wakely 27e6c1f406 Add Doxygen comments to <bit> header
* include/std/bit: Add Doxygen comments.

From-SVN: r273938
2019-07-31 15:38:50 +01:00
Jonathan Wakely 949fdadb9d PR libstdc++/91308 fix constraints on unique_ptr assignment
PR libstdc++/91308
	* include/bits/unique_ptr.h (unique_ptr::__safe_conversion_up): Remove
	constraints on deleter that should only apply to the constructor.
	(unique_ptr<T[], D>::__safe_conversion_up): Likewise.
	(unique_ptr<T[], D>::unique_ptr(unique_ptr<U, D>&&)): Restore
	constraints on deleter here.
	* testsuite/20_util/unique_ptr/assign/91308.cc: New test.

From-SVN: r273937
2019-07-31 15:38:26 +01:00
Richard Biener 208149b720 re PR tree-optimization/91280 (ICE in get_constraint_for_component_ref, at tree-ssa-structalias.c:3259 since r260354)
2019-07-31  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/91280
	* tree-ssa-structalias.c (get_constraint_for_component_ref):
	Decompose MEM_REF manually for offset handling.

	* g++.dg/torture/pr91280.C: New testcase.

From-SVN: r273936
2019-07-31 14:38:21 +00:00
Jakub Jelinek a28351e7f5 re PR c/91192 (non-deterministic ICE on invalid)
PR c/91192
	* c-parser.c (c_parser_sizeof_expression): Call set_c_expr_source_range
	even if finish is UNKNOWN_LOCATION, just use start as finish in that
	case.

From-SVN: r273935
2019-07-31 16:32:24 +02:00
Richard Biener 2153fa7b60 re PR tree-optimization/91293 (Wrong code with -O3 -mavx2)
2019-07-31  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/91293
	* tree-vect-slp.c (vect_build_slp_tree_2): Do not swap operands
	of reduction stmts.

	* gcc.dg/vect/pr91293-1.c: New testcase.
	* gcc.dg/vect/pr91293-2.c: Likewise.
	* gcc.dg/vect/pr91293-3.c: Likewise.

From-SVN: r273934
2019-07-31 14:15:37 +00:00
Matt Thomas 428642b132 config.gcc (hppa*-*-netbsd*): New target.
gcc/ChangeLog:
	* config.gcc (hppa*-*-netbsd*): New target.
	* config/pa/pa-netbsd.h: New file.
	* config/pa/pa32-netbsd.h: New file.

libgcc/ChangeLog:
	* config.host (hppa*-*-netbsd*): New case.
	* config/pa/t-netbsd: New file.


Co-Authored-By: Matthew Green <mrg@eterna.com.au>
Co-Authored-By: Maya Rashish <coypu@sdf.org>
Co-Authored-By: Nick Hudson <nick@nthcliff.demon.co.uk>

From-SVN: r273933
2019-07-31 14:11:16 +00:00
Jakub Jelinek 538e4cdc15 re PR tree-optimization/91201 (SIMD not generated for horizontal sum of bytes in array)
PR tree-optimization/91201
	* config/i386/mmx.md (reduc_plus_scal_v8qi): New expander.

	* gcc.target/i386/sse2-pr91201-2.c: New test.

From-SVN: r273932
2019-07-31 15:49:26 +02:00
Andrew Stubbs 930c55993f Remove amdgcn expcnt waits.
2019-07-31  Andrew Stubbs  <ams@codesourcery.com>

	gcc/
	* config/gcn/gcn-valu.md
	(scatter<mode>_insn_1offset<exec_scatter>): Remove s_waitcnt.
	(scatter<mode>_insn_1offset_ds<exec_scatter>): Likewise.
	(scatter<mode>_insn_2offsets<exec_scatter>): Likewise.
	* config/gcn/gcn.c (gcn_md_reorg): Add delayeduse and reads to
	struct ilist. Add nops for delayeduse insns.
	* config/gcn/gcn.md (delayeduse): New attribute.
	(*movbi): Remove s_waitcnt from stores.
	(*mov<mode>_insn): Likewise.
	(*movti_insn): Likewise. Add delayeduse attribute.
	(sync_compare_and_swap<mode>_insn): Add delayeduse attribute.
	(atomic_store<mode>): Remove or adjust s_waitcnt.

From-SVN: r273931
2019-07-31 11:51:21 +00:00
Richard Biener f86c2e7196 vr-values.h (vr_values::swap_vr_value): New.
2019-07-31  Richard Biener  <rguenther@suse.de>

	* vr-values.h (vr_values::swap_vr_value): New.
	(vr_values::free_value_range): likewise.
	* vr-values.c (vr_values::swap_vr_value): Implement.
	* gimple-ssa-evrp-analyze.h (evrp_range_analyzer::pop_value_range):
	Do not return a range or take a var.
	(evrp_range_analyzer::stack): Change back to recording a non-const
	value_range *.
	* gimple-ssa-evrp-analyze.c
	(evrp_range_analyzer::record_ranges_from_stmt): Free unused
	value-range.
	(evrp_range_analyzer::pop_to_marker): Adjust.
	(evrp_range_analyzer::push_value_range): Use new swap_vr_value.
	(evrp_range_analyzer::pop_value_range): Likewise.  Free the
	no longer needed value-range.

From-SVN: r273930
2019-07-31 10:55:27 +00:00
Martin Liska f39b06395e Mark necessary 2nd and later args for delete op.
2019-07-31  Martin Liska  <mliska@suse.cz>

	* tree-ssa-dce.c (propagate_necessity): Delete operator can
	have size and (or) alignment as 2nd and later arguments.
	Mark all of them as necessary.

From-SVN: r273929
2019-07-31 10:02:30 +00:00
Richard Biener 0fbdb0c088 re PR tree-optimization/91178 (Infinite recursion in split_constant_offset in slp after r260289)
2019-07-31  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/91178
	* tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
	Use tail-recursion.

	* gcc.dg/torture/pr91178-2.c: New testcase.

From-SVN: r273928
2019-07-31 09:46:18 +00:00
Jakub Jelinek 1104467f39 re PR tree-optimization/91201 (SIMD not generated for horizontal sum of bytes in array)
PR tree-optimization/91201
	* config/i386/sse.md (reduc_plus_scal_v16qi): New expander.
	(REDUC_PLUS_MODE): Add V32QImode for TARGET_AVX and V64QImode for
	TARGET_AVX512F.
	(reduc_plus_scal_<mode>): Improve formatting by introducing
	a temporary.

	* gcc.target/i386/sse2-pr91201.c: New test.
	* gcc.target/i386/avx2-pr91201.c: New test.
	* gcc.target/i386/avx512bw-pr91201.c: New test.

From-SVN: r273927
2019-07-31 11:22:48 +02:00
Sudakshina Das 89626179b6 [GCC, AArch64] Enable Transactional Memory Extension
This patch enables the new Transactional Memory Extension announced recently
as part of Arm's new architecture technologies.
We introduce a new optional extension "tme" to enable this. The following
instructions are part of the extension:
   * tstart <Xt>
   * ttest <Xt>
   * tcommit
   * tcancel #<imm>
We have also added ACLE intrinsics for the instructions.

*** gcc/ChangeLog ***

2019-07-31  Sudakshina Das  <sudi.das@arm.com>

	* config/aarch64/aarch64-builtins.c (enum aarch64_builtins): Add
	AARCH64_TME_BUILTIN_TSTART, AARCH64_TME_BUILTIN_TCOMMIT,
	AARCH64_TME_BUILTIN_TTEST and AARCH64_TME_BUILTIN_TCANCEL.
	(aarch64_init_tme_builtins): New.
	(aarch64_init_builtins): Call aarch64_init_tme_builtins.
	(aarch64_expand_builtin_tme): New.
	(aarch64_expand_builtin): Handle TME builtins.
	* config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
	__ARM_FEATURE_TME when enabled.
	* config/aarch64/aarch64-option-extensions.def: Add "tme".
	* config/aarch64/aarch64.h (AARCH64_FL_TME, AARCH64_ISA_TME): New.
	(TARGET_TME): New.
	* config/aarch64/aarch64.md (define_c_enum "unspec"): Add UNSPEC_TTEST.
	(define_c_enum "unspecv"): Add UNSPECV_TSTART, UNSPECV_TCOMMIT and
	UNSPECV_TCANCEL.
	(tstart, ttest, tcommit, tcancel): New instructions.
	* config/aarch64/arm_acle.h (__tstart, __tcommit): New.
	(__tcancel, __ttest): New.
	(_TMFAILURE_REASON, _TMFAILURE_RTRY, _TMFAILURE_CNCL): New macro.
	(_TMFAILURE_MEM, _TMFAILURE_IMP, _TMFAILURE_ERR): Likewise.
	(_TMFAILURE_SIZE, _TMFAILURE_NEST, _TMFAILURE_DBG): Likewise.
	(_TMFAILURE_INT, _TMFAILURE_TRIVIAL): Likewise.
	* config/arm/types.md: Add new tme type attr.
	* doc/invoke.texi: Document "tme".

*** gcc/testsuite/ChangeLog ***

2019-07-31  Sudakshina Das  <sudi.das@arm.com>

	* gcc.target/aarch64/acle/tme.c: New test.
	* gcc.target/aarch64/pragma_cpp_predefs_2.c: New test.

From-SVN: r273926
2019-07-31 09:19:53 +00:00
Joel Hutton f0efd92502 [Arm][CMSE]Add warn_unused_return attribute to cmse functions
At present it is possible to call the CMSE functions for checking
addresses (such as cmse_check_address_range) and  forget to check/use
the return value. This patch makes the interfaces more robust against
programmer error by marking these functions with the warn_unused_result
attribute. With this set, any use of these functions that does not use
the result will produce a warning.

This produces a warning on default warn levels when the result of the
cmse functions is not used.

For the following function:
void foo()
{
     int *data;
     cmse_check_address_range((int*)data, 0, 0);
}
The following warning is emitted:
warning: ignoring return value of 'cmse_check_address_range' declared
with attribute 'warn_unused_result' [-Wunused-result]
     6 |  cmse_check_address_range((int*)data, 0, 0);
        |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

gcc/ChangeLog:

2019-07-31  Joel Hutton  <Joel.Hutton@arm.com>

         * config/arm/arm_cmse.h (cmse_nonsecure_caller): Add
warn_unused_result attribute.
         (cmse_check_address_range): Add warn_unused_result attribute.

libgcc/ChangeLog:

2019-07-31  Joel Hutton  <Joel.Hutton@arm.com>

         * config/arm/cmse.c (cmse_check_address_range): Add
warn_unused_result attribute.

2019-07-31  Joel Hutton  <Joel.Hutton@arm.com>

         * gcc.target/arm/cmse/cmse-17.c: New test.

From-SVN: r273924
2019-07-31 08:56:35 +00:00
Richard Biener ce52e0ffb4 re PR tree-optimization/91257 (Compile-time and memory-hog hog)
2019-07-31  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/91257
	* tree-vrp.c (union_ranges): Unify equality and less tests
	by using compare_values.  Re-order cheap tests first.

From-SVN: r273923
2019-07-31 07:53:11 +00:00
Jakub Jelinek c3ac76aa40 re PR middle-end/91301 (ICE in omp_add_variable on random access iterator distribute parallel for private (iterator))
PR middle-end/91301
	* gimplify.c (gimplify_omp_for): If for class iterator on
	distribute parallel for there is no data sharing clause
	on inner_for_stmt, look for private clause on combined
	parallel too and if found, move it to inner_for_stmt.

	* testsuite/libgomp.c++/for-27.C: New test.

From-SVN: r273922
2019-07-31 09:49:56 +02:00