aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2015-06-30Daily bump.GCC Administrator1-1/+1
From-SVN: r225157
2015-06-29nvptx.md (nvptx_reorg_subreg): New fn, broken out of ...Nathan Sidwell2-12/+39
* 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-29re PR c++/65977 (Constexpr should be allowed in declaration of friend ↵Paolo Carlini5-10/+40
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-29Use PIE_SPEC/NO_PIE_SPEC for crtend.o/crtendS.oH.J. Lu2-0/+14
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-29stl_iterator_base_types.h (_Iter_base): Limit definition to pre-C++11 mode.François Dumont24-246/+904
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-29re PR ada/63310 (Ada bootstrap error with -fcompare-debug)Eric Botcazou2-7/+15
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-29i386.md (*jcc_1): Use %!Uros Bizjak2-76/+36
* 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-29nios2.c (nios2_delegitimize_address): Make assert less restrictive.Sandra Loosemore2-1/+6
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-29Wunused-parameter warnings are given from cgraph::finalize_function,Manuel López-Ibáñez15-22/+78
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-29re PR target/65697 (__atomic memory barriers not strong enough for __sync ↵Matthew Wahab5-0/+46
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-29re PR target/65697 (__atomic memory barriers not strong enough for __sync ↵Matthew Wahab2-1/+15
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-29re PR target/65697 (__atomic memory barriers not strong enough for __sync ↵Matthew Wahab2-1/+15
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* sv.po: Update.Joseph Myers2-897/+204
From-SVN: r225130
2015-06-29i386: Implement asm flag outputsRichard Henderson12-7/+352
* 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[AArch64] Generalize TLSLE macro and pattern namesJiong Wang4-17/+31
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-29fold-const.c (fold_binary_loc): Move X - (X / Y) * Y -> X % Y to ...Marek Polacek3-13/+12
* 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-29Simplify structure try_transform_to_exit_first_loop_altTom de Vries2-44/+20
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-29invoke.texi (Aarch64 Options, -march): Split out arch and feature description...Matthew Wahab2-37/+49
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-29re PR c/66322 (Linus Torvalds: -Wswitch-bool produces dubious warnings, ↵Marek Polacek15-46/+368
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-29genmatch.c (add_operator): Treat ADDR_EXPR as atom.Richard Biener4-11/+27
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-29lto-streamer.h (LTO_major_version): Bump to 5.Richard Biener2-1/+5
2015-06-29 Richard Biener <rguenther@suse.de> * lto-streamer.h (LTO_major_version): Bump to 5. From-SVN: r225113
2015-06-29re PR tree-optimization/66677 (ICE: in vect_transform_stmt, at ↵Richard Biener4-8/+28
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-29Daily bump.GCC Administrator1-1/+1
From-SVN: r225111
2015-06-29re PR tree-optimization/64130 (vrp: handle non zero constant divided by ↵Kugan Vivekanandarajah4-2/+51
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-28* Add forgotten ChangeLog entry.Uros Bizjak1-0/+10
From-SVN: r225107
2015-06-28regrename.h (regrename_do_replace): Change to return bool.Chung-Lin Tang5-19/+58
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-28i386.md (<mode>_ldx): Do not zero-extend non-Pmode operand 2 here.Uros Bizjak2-90/+82
* 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-28Daily bump.GCC Administrator1-1/+1
From-SVN: r225103
2015-06-27Make debug_tree() print the length of a TREE_VECPatrick Palka2-0/+5
gcc/ChangeLog: * print-tree.c (print_node) [TREE_VEC]: Print its length. From-SVN: r225100
2015-06-27call.c: Use VECTOR_TYPE_P.Marek Polacek11-31/+42
* 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-27call.c (set_up_extended_ref_temp): Use VAR_P.Marek Polacek14-50/+63
* 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* pt.c (check_unstripped_args): Mark parameter as unused.Andreas Schwab2-1/+5
From-SVN: r225095
2015-06-27Daily bump.GCC Administrator1-1/+1
From-SVN: r225093
2015-06-26gimple.c (gimple_call_set_fndecl): Remove.Andrew MacLeod3-11/+19
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-26c-common.c (check_main_parameter_types): Use VECTOR_TYPE_P or ↵Marek Polacek5-20/+27
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-26re PR c++/66216 (Defaulted Operators and constructors not working with ↵Jason Merrill3-0/+19
aligned attribute) PR c++/66216 * class.c (finish_struct): Call fixup_attribute_variants. From-SVN: r225087
2015-06-26re PR c++/66684 (ICE in merge_exception_specifiers, at cp/typeck2.c:2114)Jason Merrill3-0/+25
PR c++/66684 * typeck2.c (merge_exception_specifiers): Allow different noexcept-specifiers if we've had errors. From-SVN: r225086
2015-06-26re PR c++/66255 (ice in retrieve_specialization)Jason Merrill3-7/+44
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-26re PR c++/66067 (tree check ICE: accessed elt 1 of tree_vec with 0 elts in ↵Jason Merrill4-2/+243
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-26re PR c++/66654 (ice in digest_init_r, at cp/typeck2.c:1103)Jason Merrill3-1/+17
PR c++/66654 * typeck2.c (digest_init_r): Only expect reshaping if the class is aggregate. From-SVN: r225082
2015-06-26Implement N4258 (Cleaning-up noexcept in the Library rev 3)Jonathan Wakely34-141/+277
* 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-26array-notation-common.c (find_rank): Use INDIRECT_REF_P.Marek Polacek9-15/+30
* 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-26stl_bvector.h (vector<bool>::vector()): Add noexcept.Jonathan Wakely6-0/+23
* 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-26hash-map.h (hash_map::traverse): Use the definition of the Key typedef ↵Richard Sandiford2-2/+9
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-26Fix PR 66301 - check for dump_file in eliminate_dom_walker::before_dom_childrenMartin Jambor2-1/+7
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[Patch AArch64 4/4] Add -moverride tuning command, and wire it up forJames Greenhalgh4-0/+255
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[AArch64][2/2] Implement -fpic for -mcmodel=smallJiong Wang8-3/+174
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[Patch AArch64 3/4] De-const-ify struct tune_paramsJames Greenhalgh4-57/+88
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[Patch AArch64 2/4] Control the FMA steering pass in tuning structures ↵James Greenhalgh8-23/+130
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[Patch AArch64 1/4] Define candidates for instruction fusion in a .def fileJames Greenhalgh4-7/+70
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