Commit Graph

139327 Commits

Author SHA1 Message Date
GCC Administrator
b54a218913 Daily bump.
From-SVN: r225157
2015-06-30 00:16:13 +00:00
Nathan Sidwell
517665b38b nvptx.md (nvptx_reorg_subreg): New fn, broken out of ...
* config/nvptx/nvptx.md (nvptx_reorg_subreg): New fn, broken out of ...
	(nvptx_reorg): Here.  Keep the non-subreg pieces.

From-SVN: r225154
2015-06-29 23:23:10 +00:00
Paolo Carlini
71506d4107 re PR c++/65977 (Constexpr should be allowed in declaration of friend template specialization)
/cp
2015-06-29  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/65977
	* decl.c (grokfndecl): Allow constexpr declarations of friend
	template specializations.

/testsuite
2015-06-29  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/65977
	* g++.dg/cpp0x/constexpr-friend-3.C: New.
	* g++.dg/cpp0x/constexpr-friend-2.C: Adjust.

From-SVN: r225148
2015-06-29 22:02:08 +00:00
H.J. Lu
9b552079a1 Use PIE_SPEC/NO_PIE_SPEC for crtend.o/crtendS.o
We need to link with crtend.o and crtendS.o properly for GCC configured
to generate PIE by default.

	* config/gnu-user.h (GNU_USER_TARGET_ENDFILE_SPEC): Use
	PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.

From-SVN: r225144
2015-06-29 13:50:57 -07:00
François Dumont
24167c42e6 stl_iterator_base_types.h (_Iter_base): Limit definition to pre-C++11 mode.
2015-06-29  François Dumont  <fdumont@gcc.gnu.org>

	* include/bits/stl_iterator_base_types.h (_Iter_base): Limit definition
	to pre-C++11 mode.
	* include/debug/functions.h
	(__gnu_debug::__valid_range, __gnu_debug::__base): Move...
	* include/debug/safe_iterator.h
	(__gnu_debug::_Sequence_traits): New.
	(__gnu_debug::__get_distance_from_begin): New.
	(__gnu_debug::__get_distance_to_end): New.
	(__gnu_debug::_Safe_iterator<>::_M_valid_range): Expose iterator range
	distance information. Add optional check_dereferenceable parameter,
	default true.
	(__gnu_debug::_Distance_precision, __gnu_debug::__get_distance): Move
	default definition...
	(__gnu_debug::__get_distance): New overload for _Safe_iterator.
	(__gnu_debug::__unsafe): Likewise.
	* include/debug/helper_functions.h: ...here. New.
	(__gnu_debug::__unsafe): New helper function to remove safe iterator
	layer.
	* include/debug/stl_iterator.h: New. Include latter.
	* include/bits/stl_iterator.h: Include latter in debug mode.
	* include/debug/stl_iterator.tcc: Adapt.
	* include/debug/safe_local_iterator.h (__gnu_debug::__get_distance): Add
	overload for _Safe_local_iterator.
	(__gnu_debug::__unsafe): Likewise.
	* include/debug/safe_local_iterator.tcc: Adapt.
	* include/debug/macros.h (__glibcxx_check_valid_range2): New.
	(__glibcxx_check_insert_range): Add _Dist parameter.
	(__glibcxx_check_insert_range_after): Likewise.
	(__glibcxx_check_string, __glibcxx_check_string_len): Implement using
	_GLIBCXX_DEBUG_PEDASSERT.
	* include/debug/deque (deque<>::assign): Remove iterator debug layer
	when possible.
	(deque<>::insert): Likewise.
	* include/debug/forward_list (__glibcxx_check_valid_fl_range): New.
	(forward_list<>::splice_after): Use latter.
	(forward_list<>::assign): Remove iterator debug layer when possible.
	(forward_list<>::insert_after): Likewise.
	(__gnu_debug::_Sequence_traits<>): Partial specialization.
	* include/debug/list (list<>::assign): Remove iterator debug layer when
	possible.
	(list<>::insert): Likewise.
	[__gnu_debug::_Sequence_traits<>]: Partial specialization pre C++11 ABI.
	* include/debug/map.h (map<>::insert): Remove iterator debug layer when
	possible.
	* include/debug/multimap.h (multimap<>::insert): Likewise.
	* include/debug/set.h (set<>::insert): Likewise.
	* include/debug/multiset.h (multiset<>::insert): Likewise.
	* include/debug/string (basic_string<>::append, basic_string<>::assign,
	basic_string<>::insert, basic_string<>::replace): Likewise.
	* include/debug/unordered_map
	(unordered_map<>::insert, unordered_multimap<>::insert): Likewise.
	* include/debug/unordered_set
	(unordered_set<>::insert, unordered_multiset<>insert): Likewise.
	* include/debug/vector
	(vector<>::assign, vector<>::insert): Likewise.
	* include/Makefile.am: Add new debug headers.
	* include/Makefile.in: Regenerate.

From-SVN: r225143
2015-06-29 20:17:56 +00:00
Eric Botcazou
755c71faf3 re PR ada/63310 (Ada bootstrap error with -fcompare-debug)
PR ada/63310
	* gcc-interface/utils.c (gnat_write_global_declarations): Always
	build the dummy global variable if code was generated.

From-SVN: r225139
2015-06-29 17:45:34 +00:00
Uros Bizjak
94f11af109 i386.md (*jcc_1): Use %!
* config/i386/i386.md (*jcc_1): Use %! in asm template.
	Set attribute "length_nobnd" instead of "length".
	(*jcc_2): Ditto.
	(jump): Ditto.
	(*jcc_1_bnd, *jcc_2_bnd, jump_bnd): Remove insn patterns.

From-SVN: r225138
2015-06-29 19:18:17 +02:00
Sandra Loosemore
030b9d9059 nios2.c (nios2_delegitimize_address): Make assert less restrictive.
2015-06-29  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* config/nios2/nios2.c (nios2_delegitimize_address): Make
	assert less restrictive.

From-SVN: r225137
2015-06-29 13:01:52 -04:00
Manuel López-Ibáñez
da2e71c999 Wunused-parameter warnings are given from cgraph::finalize_function,
which is the middle-end. This is an oddity compared to other
-Wunused-* warnings. Moreover, Fortran has its own definition of
-Wunused-parameter that conflicts with the middle-end definition.

This patch moves the middle-end part of Wunused-parameter to the C/C++
FEs. I'm not sure if other FEs expected this warning to work. If so,
they do not seem to test for it. Ada, for example, explicitly disables
it.

gcc/ChangeLog:

2015-06-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR fortran/66605
	* cgraphunit.c (cgraph_node::finalize_function): Do not call
	do_warn_unused_parameter.
	* function.c (do_warn_unused_parameter): Move from here.
	* function.h (do_warn_unused_parameter): Do not declare.

gcc/c-family/ChangeLog:

2015-06-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR fortran/66605
	* c-common.c (do_warn_unused_parameter): Move here.
	* c-common.h (do_warn_unused_parameter): Declare.

gcc/ada/ChangeLog:

2015-06-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR fortran/66605
	* gcc-interface/misc.c (gnat_post_options): No need to disable
	warn_unused_parameter anymore.

gcc/cp/ChangeLog:

2015-06-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR fortran/66605
	* decl.c (finish_function): Call do_warn_unused_parameter.

gcc/testsuite/ChangeLog:

2015-06-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR fortran/66605
	* gfortran.dg/wunused-parameter.f90: New test.

gcc/c/ChangeLog:

2015-06-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR fortran/66605
	* c-decl.c (finish_function): Call do_warn_unused_parameter.

From-SVN: r225135
2015-06-29 16:25:26 +00:00
Matthew Wahab
77f3f9bf9e re PR target/65697 (__atomic memory barriers not strong enough for __sync builtins)
2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>

	PR target/65697
	* gcc.target/arm/armv-sync-comp-swap.c: New.
	* gcc.target/arm/armv-sync-op-acquire.c: New.
	* gcc.target/arm/armv-sync-op-full.c: New.
	* gcc.target/arm/armv-sync-op-release.c: New.

From-SVN: r225134
2015-06-29 16:12:12 +00:00
Matthew Wahab
a96297a280 re PR target/65697 (__atomic memory barriers not strong enough for __sync builtins)
2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>

	PR target/65697
	* config/armc/arm.c (arm_split_compare_and_swap): For ARMv8, replace an
	initial acquire barrier with final barrier.

From-SVN: r225133
2015-06-29 16:09:10 +00:00
Matthew Wahab
6b3a1ce9f4 re PR target/65697 (__atomic memory barriers not strong enough for __sync builtins)
2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>

	PR target/65697
	* config/armc/arm.c (arm_split_atomic_op): For ARMv8, replace an
	initial acquire barrier with final barrier.

From-SVN: r225132
2015-06-29 16:03:34 +00:00
Joseph Myers
e85f8bb8b3 * sv.po: Update.
From-SVN: r225130
2015-06-29 16:58:13 +01:00
Richard Henderson
f767f58360 i386: Implement asm flag outputs
* config/i386/constraints.md (Bf): New constraint.
        * config/i386/i386-c.c (ix86_target_macros): Define
        __GCC_ASM_FLAG_OUTPUTS__.
        * config/i386/i386.c (ix86_md_asm_adjust): Handle =@cc* constraints
        as flags outputs.
        * doc/extend.texi (FlagOutputOperands): Document them.
testsuite/
        * gcc.target/i386/asm-flag-1.c: New.
        * gcc.target/i386/asm-flag-2.c: New.
        * gcc.target/i386/asm-flag-3.c: New.
        * gcc.target/i386/asm-flag-4.c: New.
        * gcc.target/i386/asm-flag-5.c: New.

From-SVN: r225122
2015-06-29 07:35:19 -07:00
Jiong Wang
8fd17b982d [AArch64] Generalize TLSLE macro and pattern names
2015-06-29  Jiong Wang  <jiong.wang@arm.com>

	* config/arch64/aarch64.md (UNSPEC_TLSLE): New enumeration.
	* config/arch64/aarch64.md (tlsle_small): Rename to tlsle and use new
	unspec name.
	(tlsle_small_<mode>): Rename to tlsle_<mode> and use new unspec name.
	* config/arch64/aarch64-protos.h (arch64_symbol_type): Rename
	SYMBOL_SMALL_TPREL to SYMBOL_TLSLE.
	(aarch64_symbol_context): Ditto.
	* config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto
	and use new pattern name.
	(aarch64_expand_mov_immediate): Ditto.
	(aarch64_print_operand): Ditto.
	(aarch64_classify_tls_symbol): Ditto.

From-SVN: r225121
2015-06-29 14:20:50 +00:00
Marek Polacek
f461569a23 fold-const.c (fold_binary_loc): Move X - (X / Y) * Y -> X % Y to ...
* fold-const.c (fold_binary_loc): Move X - (X / Y) * Y -> X % Y to ...
	* match.pd: ... pattern here.

Co-Authored-By: Marc Glisse <marc.glisse@inria.fr>

From-SVN: r225120
2015-06-29 14:17:13 +00:00
Tom de Vries
fd7b3ef52a Simplify structure try_transform_to_exit_first_loop_alt
2015-06-29  Tom de Vries  <tom@codesourcery.com>

	* tree-parloops.c (try_transform_to_exit_first_loop_alt): Simplify
	function structure.

From-SVN: r225119
2015-06-29 13:53:32 +00:00
Matthew Wahab
1f8c015bb4 invoke.texi (Aarch64 Options, -march): Split out arch and feature description...
2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>

	* doc/invoke.texi (Aarch64 Options, -march): Split out arch and
	feature description, split out the native option, add a link to
	the feature documentation, rearrange and slightly rewrite text.
	(Aarch64 options, -mcpu): Likewise.
	(Aarch64 options, Feature Modifiers): Add an anchor.  Mention
	+rdma implies Adv. SIMD.

From-SVN: r225118
2015-06-29 13:50:42 +00:00
Marek Polacek
b155cfd928 re PR c/66322 (Linus Torvalds: -Wswitch-bool produces dubious warnings, fails to notice really bad things)
PR c/66322
	* c-common.c (check_case_bounds): Add bool * parameter.  Set
	OUTSIDE_RANGE_P.
	(c_add_case_label): Add bool * parameter.  Pass it down to
	check_case_bounds.
	(c_do_switch_warnings): Add bool parameters.  Implement -Wswitch-bool
	warning here.
	* c-common.h (c_add_case_label, c_do_switch_warnings): Update
	declarations.

	* c-typeck.c (struct c_switch): Add BOOL_COND_P and OUTSIDE_RANGE_P.
	(c_start_case): Set BOOL_COND_P and OUTSIDE_RANGE_P.  Don't warn
	about -Wswitch-bool here.
	(do_case): Update c_add_case_label call.
	(c_finish_case): Update c_do_switch_warnings call.

	* decl.c (struct cp_switch): Add OUTSIDE_RANGE_P.
	(push_switch): Set OUTSIDE_RANGE_P.
	(pop_switch): Update c_do_switch_warnings call.
	(finish_case_label): Update c_add_case_label call.
	* semantics.c (finish_switch_cond): Don't warn about -Wswitch-bool
	here.

	* function.c (stack_protect_epilogue): Remove a cast to int.
	* doc/invoke.texi: Update -Wswitch-bool description.

	* c-c++-common/pr60439.c: Add dg-prune-output and add switch cases.
	* c-c++-common/pr66322.c: New test.
	* g++.dg/eh/scope1.C: Remove dg-warning.

From-SVN: r225116
2015-06-29 13:12:44 +00:00
Richard Biener
99e943a2be genmatch.c (add_operator): Treat ADDR_EXPR as atom.
2015-06-29  Richard Biener  <rguenther@suse.de>

	* genmatch.c (add_operator): Treat ADDR_EXPR as atom.
	* fold-const.c (fold_binary_loc): Move &A - &B simplification
	via ptr_difference_const ...
	* match.pd: ... here.
	When matching (X ^ Y) == Y also match with swapped operands.

From-SVN: r225115
2015-06-29 11:28:17 +00:00
Richard Biener
2dcaddb8d7 lto-streamer.h (LTO_major_version): Bump to 5.
2015-06-29  Richard Biener  <rguenther@suse.de>

	* lto-streamer.h (LTO_major_version): Bump to 5.

From-SVN: r225113
2015-06-29 08:44:56 +00:00
Richard Biener
d90f84404c re PR tree-optimization/66677 (ICE: in vect_transform_stmt, at tree-vect-stmts.c:7626)
2015-06-29  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/66677
	* tree-vect-stmts.c (vect_transform_stmt): Make assert about
	STMT_VINFO_VEC_STMT clobbering less strict.

	* gcc.dg/vect/pr66677.c: New testcase.

From-SVN: r225112
2015-06-29 07:30:47 +00:00
GCC Administrator
04ab3d3aeb Daily bump.
From-SVN: r225111
2015-06-29 00:16:12 +00:00
Kugan Vivekanandarajah
c44b2a4fb3 re PR tree-optimization/64130 (vrp: handle non zero constant divided by range cannot be zero.)
gcc/ChangeLog:

2015-06-29  Kugan Vivekanandarajah  <kuganv@linaro.org>

	PR middle-end/64130
	* tree-vrp.c (extract_range_from_binary_expr_1): For unsigned
	division, compute max and min when value ranges for dividend and
	divisor are available.


gcc/testsuite/ChangeLog:

2015-06-29  Kugan Vivekanandarajah  <kuganv@linaro.org>

	PR middle-end/64130
	* gcc.dg/tree-ssa/pr64130.c: New test.

From-SVN: r225108
2015-06-29 00:15:41 +00:00
Uros Bizjak
1d1fe91a75 * Add forgotten ChangeLog entry.
From-SVN: r225107
2015-06-28 23:28:07 +02:00
Chung-Lin Tang
17369fbf51 regrename.h (regrename_do_replace): Change to return bool.
2015-06-28  Chung-Lin Tang <cltang@codesourcery.com>
	    Sandra Loosemore <sandra@codesourcery.com>

	gcc/
	* regrename.h (regrename_do_replace): Change to return bool.
	* regrename.c (rename_chains): Check return value of
	regname_do_replace.
	(regrename_do_replace): Re-validate the modified insns and
	return bool status.
	* config/aarch64/cortex-a57-fma-steering.c (rename_single_chain):
	Update to match rename_chains changes.
	* config/c6x/c6x.c (try_rename_operands): Assert that
	regrename_do_replace returns true.

Co-Authored-By: Sandra Loosemore <sandra@codesourcery.com>

From-SVN: r225106
2015-06-28 16:46:01 -04:00
Uros Bizjak
2aee355b5a i386.md (<mode>_ldx): Do not zero-extend non-Pmode operand 2 here.
* config/i386/i386.md (<mode>_ldx): Do not zero-extend non-Pmode
	operand 2 here.  Use copy_addr_to_reg to copy non-index
	register operand 2 to a temporary.
	(<mode>_stx): Ditto for operand 1.
	(*<mode>_ldx, *<mode>_stx): Remove enclosing parallel.
	* config/i386/i386.c (ix86_load_bounds): Zero-extend non-Pmode ptr here.
	(ix86_store_bounds): Ditto.

From-SVN: r225105
2015-06-28 21:38:56 +02:00
GCC Administrator
cb78dd578a Daily bump.
From-SVN: r225103
2015-06-28 00:16:12 +00:00
Patrick Palka
e8bfc7f817 Make debug_tree() print the length of a TREE_VEC
gcc/ChangeLog:

	* print-tree.c (print_node) [TREE_VEC]: Print its length.

From-SVN: r225100
2015-06-27 18:43:11 +00:00
Marek Polacek
b55b02ead4 call.c: Use VECTOR_TYPE_P.
* call.c: Use VECTOR_TYPE_P.
	* constexpr.c: Likewise.
	* cvt.c: Likewise.
	* decl.c: Likewise.
	* decl2.c: Likewise.
	* init.c: Likewise.
	* semantics.c: Likewise.
	* tree.c: Likewise.
	* typeck.c: Likewise.
	* typeck2.c: Likewise.

From-SVN: r225099
2015-06-27 10:40:21 +00:00
Marek Polacek
56a6f1d33f call.c (set_up_extended_ref_temp): Use VAR_P.
* call.c (set_up_extended_ref_temp): Use VAR_P.
	* class.c: Use VAR_P throughout.
	* constexpr.c (cxx_eval_constant_expression): Use VAR_P.
	* cp-array-notation.c (make_triplet_val_inv): Likewise.
	* decl.c: Use VAR_OR_FUNCTION_DECL_P or VAR_P
	throughout.
	* decl2.c: Likewise.
	* error.c (dump_decl): Use VAR_P.
	* mangle.c (decl_implicit_alias_p): Likewise.
	* parser.c: Use VAR_P throughout.
	* pt.c: Likewise.
	* semantics.c: Likewise.
	* vtable-class-hierarchy.c: Likewise.
	* tree.c (handle_abi_tag_attribute): Use VAR_OR_FUNCTION_DECL_P.

From-SVN: r225098
2015-06-27 10:39:31 +00:00
Andreas Schwab
e1cc235523 * pt.c (check_unstripped_args): Mark parameter as unused.
From-SVN: r225095
2015-06-27 08:40:34 +00:00
GCC Administrator
96aac251ab Daily bump.
From-SVN: r225093
2015-06-27 00:16:11 +00:00
Andrew MacLeod
5fa9163d3f gimple.c (gimple_call_set_fndecl): Remove.
2015-06-26  Andrew MacLeod  <amacleod@redhat.com>

	* gimple.c (gimple_call_set_fndecl): Remove.
	* gimple.h (gimple_call_set_fndecl): Relocate to gimple.h and call
	build1_loc directly instead of build_fold_addr_expr_loc.

From-SVN: r225090
2015-06-26 23:30:37 +00:00
Marek Polacek
315219515d c-common.c (check_main_parameter_types): Use VECTOR_TYPE_P or VECTOR_INTEGER_TYPE_P throughout.
* c-common.c (check_main_parameter_types): Use VECTOR_TYPE_P
	or VECTOR_INTEGER_TYPE_P throughout.
	* c-gimplify.c: Likewise.

	* c-typeck.c: Use VECTOR_TYPE_P throughout.

From-SVN: r225089
2015-06-26 22:35:29 +00:00
Jason Merrill
e0ff153d39 re PR c++/66216 (Defaulted Operators and constructors not working with aligned attribute)
PR c++/66216
	* class.c (finish_struct): Call fixup_attribute_variants.

From-SVN: r225087
2015-06-26 17:31:13 -04:00
Jason Merrill
9579e906e2 re PR c++/66684 (ICE in merge_exception_specifiers, at cp/typeck2.c:2114)
PR c++/66684
	* typeck2.c (merge_exception_specifiers): Allow different
	noexcept-specifiers if we've had errors.

From-SVN: r225086
2015-06-26 17:31:08 -04:00
Jason Merrill
7498239e97 re PR c++/66255 (ice in retrieve_specialization)
PR c++/66255
	* pt.c (check_unstripped_args): Split out from...
	(retrieve_specialization): ...here.  Allow typedefs in the type of
	a non-type argument.

From-SVN: r225084
2015-06-26 16:33:46 -04:00
Jason Merrill
d15364ce85 re PR c++/66067 (tree check ICE: accessed elt 1 of tree_vec with 0 elts in write_template_args, at cp/mangle.c:2574)
PR c++/66067
	* mangle.c (write_nested_name): Limit TYPENAME_TYPE handling to
	TYPE_DECLs.
	* mangle.c (write_template_args): Handle 0 length TREE_VEC.

From-SVN: r225083
2015-06-26 16:33:41 -04:00
Jason Merrill
7457279bae re PR c++/66654 (ice in digest_init_r, at cp/typeck2.c:1103)
PR c++/66654
	* typeck2.c (digest_init_r): Only expect reshaping if the class is
	aggregate.

From-SVN: r225082
2015-06-26 16:33:35 -04:00
Jonathan Wakely
a2b5fdcbdb Implement N4258 (Cleaning-up noexcept in the Library rev 3)
* doc/xml/manual/intro.xml: Document LWG 2108 status.
	* include/bits/alloc_traits.h (allocator_traits::is_always_equal):
	Define.
	* include/bits/allocator.h (allocator::is_always_equal): Likewise.
	* include/bits/forward_list.h
	(forward_list::operator=(forward_list&&)): Use __bool_constant.
	(forward_list::swap(forward_list&)): Add noexcept.
	* include/bits/hashtable.h (_Hashtable::operator=(_Hashtable&&)):
	Likewise.
	(_Hashtable::swap(_Hashtable&)): Likewise.
	* include/bits/stl_deque.h (_Deque_base::_Deque_base(_Deque_base&&)):
	Use _Alloc_traits::is_always_equal.
	(deque::operator=(deque&&)): Likewise.
	(deque::_M_move_assign1(deque&&, false_type)): Add comment and use
	__bool_constant.
	(swap(deque&, deque&)): Add noexcept.
	* include/bits/stl_list.h (list::operator=(list&&)): Use
	__bool_constant.
	(swap(list&, list&)): Add noexcept.
	* include/bits/stl_map.h (map::swap(map&)): Include _Compare in
	noexcept.
	(swap(map&, map&)): Add noexcept.
	* include/bits/stl_multimap.h (multimap::swap(multimap&)): Include
	_Compare in noexcept.
	(swap(multimap&, multimap&)): Add noexcept.
	* include/bits/stl_multiset.h (multiset::swap(multiset&)): Include
	_Compare in noexcept.
	(swap(multiset&, multiset&)): Add noexcept.
	* include/bits/stl_set.h (set::swap(set&)): Include _Compare in
	noexcept.
	(swap(set&, set&)): Add noexcept.
	* include/bits/stl_tree.h (_Rb_tree::operator=(_Rb_tree&&)): Include
	_Compare in noexcept.
	(_Rb_tree::_Rb_tree(_Rb_tree&&, _Node_alloc_type&&)): Use
	is_always_equal.
	* include/bits/stl_vector.h (vector::operator=(vector&&)): Use
	__bool_constant.
	(swap(vector&, vector&)): Add noexcept.
	* include/bits/unordered_map.h (swap(unordered_map&, unordered_map&),
	swap(unordered_multimap& unordered_multimap&)): Add noexcept.
	* include/bits/unordered_set.h (swap(unordered_set&, unordered_set&),
	swap(unordered_multiset& unordered_multiset&)): Add noexcept.
	* include/ext/alloc_traits.h (__allocator_always_compares_equal):
	Remove.
	(__alloc_traits::_S_always_equal()): Use is_always_equal instead of
	__allocator_always_compares_equal.
	* include/ext/array_allocator.h (array_allocator::is_always_equal):
	Define.
	* include/std/scoped_allocator (__any_of, __propagate_on_copy,
	__propagate_on_move, __propagate_on_swap): Remove.
	(scoped_allocator_adaptor::propagate_on_container_copy_assignment,
	scoped_allocator_adaptor::propagate_on_container_move_assignment,
	scoped_allocator_adaptor::propagate_on_container_swap): Define with
	__and_ instead of __any_of.
	(scoped_allocator_adaptor::is_always_equal): Define.
	* testsuite/20_util/allocator_traits/members/is_always_equal.cc: New.
	* testsuite/20_util/scoped_allocator/propagation.cc: Make traits
	derive from true_type or false_type.
	* testsuite/23_containers/deque/allocator/move_assign-2.cc: Add
	is_always_equal member and remove the trait specialization.
	* testsuite/23_containers/vector/52591.cc: Likewise.
	* testsuite/23_containers/deque/requirements/dr438/assign_neg.cc:
	Adjust dg-error line number.
	* testsuite/23_containers/deque/requirements/dr438/
	constructor_1_neg.cc: Likewise.
	* testsuite/23_containers/deque/requirements/dr438/
	constructor_2_neg.cc: Likewise.
	* testsuite/23_containers/deque/requirements/dr438/insert_neg.cc:
	Likewise.
	* testsuite/23_containers/list/requirements/dr438/assign_neg.cc:
	Likewise.
	* testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc:
	Likewise.
	* testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
	Likewise.
	* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
	Likewise.
	* testsuite/23_containers/vector/requirements/dr438/
	constructor_1_neg.cc: Likewise.
	* testsuite/23_containers/vector/requirements/dr438/
	constructor_2_neg.cc: Likewise.
	* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
	Likewise.

From-SVN: r225081
2015-06-26 21:10:24 +01:00
Marek Polacek
22d035258b array-notation-common.c (find_rank): Use INDIRECT_REF_P.
* array-notation-common.c (find_rank): Use INDIRECT_REF_P.
	* c-common.c (c_fully_fold_internal): Likewise.
	(c_alignof_expr): Likewise.
	* c-pretty-print.c (c_pretty_printer::postfix_expression): Likewise.
	* c-ubsan.c (ubsan_instrument_bounds): Likewise.
	* cilk.c (create_parm_list): Likewise. 

	* c-array-notation.c (fix_builtin_array_notation_fn): Use
	INDIRECT_REF_P.
	* c-typeck.c (array_to_pointer_conversion): Likewise.
	(build_unary_op): Likewise.
	(c_finish_return): Likewise.

From-SVN: r225080
2015-06-26 19:55:12 +00:00
Jonathan Wakely
504a5fe6fd stl_bvector.h (vector<bool>::vector()): Add noexcept.
* include/bits/stl_bvector.h (vector<bool>::vector()): Add noexcept.
	* include/bits/stl_map.h (map::map()): Likewise.
	* include/bits/stl_multimap.h (multimap::multimap()): Likewise.
	* include/bits/stl_multiset.h (multiset::multiset()): Likewise.
	* include/bits/stl_set.h (set::set()): Likewise.

From-SVN: r225024
2015-06-26 18:26:38 +01:00
Richard Sandiford
5265e7ba85 hash-map.h (hash_map::traverse): Use the definition of the Key typedef rather than the typedef itself.
gcc/
	* hash-map.h (hash_map::traverse): Use the definition of the
	Key typedef rather than the typedef itself.

From-SVN: r225021
2015-06-26 16:50:19 +00:00
Martin Jambor
1218f76f22 Fix PR 66301 - check for dump_file in eliminate_dom_walker::before_dom_children
2015-06-26  Martin Jambor  <mjambor@suse.cz>

	PR debug/66301
	* tree-ssa-pre.c (before_dom_children): Check that dump_file is not
	NULL instead of calling dump_enabled_p.

From-SVN: r225019
2015-06-26 16:59:11 +02:00
James Greenhalgh
8dec06f23a [Patch AArch64 4/4] Add -moverride tuning command, and wire it up for
control of fusion and fma-steering

gcc/

	* config/aarch64/aarch64.opt: (override): New.
	* doc/invoke.texi (override): Document.
	* config/aarch64/aarch64.c (aarch64_flag_desc): New
	(aarch64_fusible_pairs): Likewise.
	(aarch64_tuning_flags): Likewise.
	(aarch64_tuning_override_function): Likewise.
	(aarch64_tuning_override_functions): Likewise.
	(aarch64_parse_one_option_token): Likewise.
	(aarch64_parse_boolean_options): Likewise.
	(aarch64_parse_fuse_string): Likewise.
	(aarch64_parse_tune_string): Likewise.
	(aarch64_parse_one_override_token): Likewise.
	(aarch64_parse_override_string): Likewise.
	(aarch64_override_options): Parse the -override string if it
	is present.

From-SVN: r225018
2015-06-26 14:04:12 +00:00
Jiong Wang
1b1e81f847 [AArch64][2/2] Implement -fpic for -mcmodel=small
2015-06-26  Jiong Wang  <jiong.wang@arm.com>

gcc/
  * config/aarch64/aarch64-protos.h (aarch64_symbol_type): New type
  SYMBOL_SMALL_GOT_28K.
  * config/aarch64/aarch64.md: (ldr_got_small_<mode>): Support new GOT
  relocation modifiers.
  (unspec): New enum "UNSPEC_GOTMALLPIC28K.
  (ldr_got_small_28k_<mode>): New.
  (ldr_got_small_28k_sidi): New.
  * config/aarch64/iterators.md (got_modifier): New mode iterator.
  * config/aarch64/aarch64-otps.h (aarch64_code_model): New model.
  * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
  SYMBOL_SMALL_GOT_28K.
  (aarch64_rtx_costs): Add costs for new instruction sequences.
  (initialize_aarch64_code_model): Initialize new model.
  (aarch64_classify_symbol): Recognize new model and new symbol classification.
  (aarch64_asm_preferred_eh_data_format): Support new model.
  (aarch64_load_symref_appropriately): Generate new instruction
  sequences for -fpic.
  (TARGET_USE_PSEUDO_PIC_REG): New definition.
  (aarch64_use_pseudo_pic_reg): New function.

gcc/testsuite/
  * gcc.target/aarch64/pic-small.c: New testcase.

From-SVN: r225017
2015-06-26 14:00:56 +00:00
James Greenhalgh
b175b679a4 [Patch AArch64 3/4] De-const-ify struct tune_params
gcc/

	* config/aarch64/aarch64-protos.h (tune_params): Remove
	const from members.
	(aarch64_tune_params): Remove const, change to no longer be
	a pointer.
	* config/aarch64/aarch64.c (aarch64_tune_params): Remove const,
	change to no longer be a pointer, initialize to generic_tunings.
	(aarch64_min_divisions_for_recip_mul): Change dereference of
	aarch64_tune_params to member access.
	(aarch64_reassociation_width): Likewise.
	(aarch64_rtx_mult_cost): Likewise.
	(aarch64_address_cost): Likewise.
	(aarch64_branch_cost): Likewise.
	(aarch64_rtx_costs): Likewise.
	(aarch64_register_move_cost): Likewise.
	(aarch64_memory_move_cost): Likewise.
	(aarch64_sched_issue_rate): Likewise.
	(aarch64_builtin_vectorization_cost): Likewise.
	(aarch64_override_options): Take a copy of the selected tuning
	struct in to aarch64_tune_params, rather than just setting
	a pointer, change dereferences of aarch64_tune_params to member
	accesses.
	(aarch64_override_options_after_change): Change dereferences of
	aarch64_tune_params to member access.
	(aarch64_macro_fusion_p): Likewise.
	(aarch_macro_fusion_pair_p): Likewise.
	* config/aarch64/cortex-a57-fma-steering.c (gate): Likewise.

From-SVN: r225016
2015-06-26 13:58:29 +00:00
James Greenhalgh
dfba575ff3 [Patch AArch64 2/4] Control the FMA steering pass in tuning structures rather than as core property
gcc/

	* config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Delete.
	(aarch64_tune_flags): Likewise.
	(AARCH64_TUNE_FMA_STEERING): Likewise.
	* config/aarch64/aarch64-cores.def (cortex-a57): Remove reference
	to AARCH64_FL_USE_FMA_STEERING_PASS.
	(cortex-a57.cortex-a53): Likewise.
	(cortex-a72): Use cortexa72_tunings.
	(cortex-a72.cortex-a53): Likewise.
	(exynos-m1): Likewise.
	* config/aarch64/aarch64-protos.h (tune_params): Add
	a field: extra_tuning_flags.
	* config/aarch64/aarch64-tuning-flags.def: New.
	* config/aarch64/aarch64-protos.h (AARCH64_EXTRA_TUNING_OPTION): New.
	(aarch64_extra_tuning_flags): Likewise.
	(aarch64_tune_params): Declare here.
	* config/aarch64/aarch64.c (generic_tunings): Set extra_tuning_flags.
	(cortexa53_tunings): Likewise.
	(cortexa57_tunings): Likewise.
	(thunderx_tunings): Likewise.
	(xgene1_tunings): Likewise.
	(cortexa72_tunings): New.
	* config/aarch64/cortex-a57-fma-steering.c: Include aarch64-protos.h.
	 (gate): Check against aarch64_tune_params.
	* config/aarch64/t-aarch64 (cortex-a57-fma-steering.o): Depend on
	aarch64-protos.h.

From-SVN: r225015
2015-06-26 13:57:16 +00:00
James Greenhalgh
665dd6f3fa [Patch AArch64 1/4] Define candidates for instruction fusion in a .def file
gcc/

	* config/aarch64/aarch64-fusion-pairs.def: New.
	* config/aarch64/aarch64-protos.h (aarch64_fusion_pairs): New.
	* config/aarch64/aarch64.c (AARCH64_FUSE_NOTHING): Move to
	aarch64_fusion_pairs.
	(AARCH64_FUSE_MOV_MOVK): Likewise.
	(AARCH64_FUSE_ADRP_ADD): Likewise.
	(AARCH64_FUSE_MOVK_MOVK): Likewise.
	(AARCH64_FUSE_ADRP_LDR): Likewise.
	(AARCH64_FUSE_CMP_BRANCH): Likewise.

From-SVN: r225014
2015-06-26 13:54:53 +00:00