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