]> git.ipfire.org Git - thirdparty/gcc.git/log
thirdparty/gcc.git
10 years ago* gcc.dg/fold-ior-2.c (fn4): Swap operands.
Marek Polacek [Tue, 30 Jun 2015 11:05:13 +0000 (11:05 +0000)] 
* gcc.dg/fold-ior-2.c (fn4): Swap operands.

From-SVN: r225174

10 years agoleon.md (leon_load): Enable for all LEON variants if -mfix-ut699 is not specified.
Eric Botcazou [Tue, 30 Jun 2015 11:05:11 +0000 (11:05 +0000)] 
leon.md (leon_load): Enable for all LEON variants if -mfix-ut699 is not specified.

* config/sparc/leon.md (leon_load): Enable for all LEON variants if
-mfix-ut699 is not specified.
(leon3_load): Rename into...
(ut699_load): ...this.  Enable for all LEON variants if -mfix-ut699
is specified.

From-SVN: r225173

10 years agoAdd parloops-exit-first-loop-alt-{5,6,7}.c
Tom de Vries [Tue, 30 Jun 2015 11:00:32 +0000 (11:00 +0000)] 
Add parloops-exit-first-loop-alt-{5,6,7}.c

2015-06-30  Tom de Vries  <tom@codesourcery.com>

* gcc.dg/parloops-exit-first-loop-alt-5.c: New test.
* gcc.dg/parloops-exit-first-loop-alt-6.c: New test.
* gcc.dg/parloops-exit-first-loop-alt-7.c: New test.
* gcc.dg/parloops-exit-first-loop-alt.c: Update comment.

* testsuite/libgomp.c/parloops-exit-first-loop-alt-5.c: New test.
* testsuite/libgomp.c/parloops-exit-first-loop-alt-6.c: New test.
* testsuite/libgomp.c/parloops-exit-first-loop-alt-7.c: New test.
* testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Update comment.

From-SVN: r225172

10 years agofold-const.c (fold_binary_loc): Move ~X | X folding ...
Marek Polacek [Tue, 30 Jun 2015 09:02:00 +0000 (09:02 +0000)] 
fold-const.c (fold_binary_loc): Move ~X | X folding ...

* fold-const.c (fold_binary_loc): Move ~X | X folding ...
* match.pd: ... here.

* gcc.dg/fold-ior-2.c: New test.

From-SVN: r225164

10 years agotarget-insns.def (canonicalize_funcptr_for_compare): Add.
Richard Biener [Tue, 30 Jun 2015 08:52:48 +0000 (08:52 +0000)] 
target-insns.def (canonicalize_funcptr_for_compare): Add.

2015-06-30  Richard Biener  <rguenther@suse.de>

* target-insns.def (canonicalize_funcptr_for_compare): Add.
* fold-const.c (build_range_check): Replace uses of
HAVE_canonicalize_funcptr_for_compare.
(fold_widened_comparison): Likewise.
(fold_sign_changed_comparison): Likewise.
* dojump.c: Include "target.h".
(do_compare_and_jump): Replace uses of
HAVE_canonicalize_funcptr_for_compare and
gen_canonicalize_funcptr_for_compare.
* expr.c (do_store_flag): Likewise.

From-SVN: r225163

10 years agoUse max_loop_iterations in transform_to_exit_first_loop_alt
Tom de Vries [Tue, 30 Jun 2015 08:35:57 +0000 (08:35 +0000)] 
Use max_loop_iterations in transform_to_exit_first_loop_alt

2015-06-30  Tom de Vries  <tom@codesourcery.com>

PR tree-optimization/66652
* tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
max_loop_iterations to determine if nit + 1 overflows.

* testsuite/libgomp.c/parloops-exit-first-loop-alt-3.c (f): Rewrite
using restrict pointers.
(main): Add arguments to calls to f.
* testsuite/libgomp.c/parloops-exit-first-loop-alt.c: Same.

* gcc.dg/parloops-exit-first-loop-alt-pr66652.c: New test.
* gcc.dg/parloops-exit-first-loop-alt-3.c (f):  Rewrite using restrict
pointers.
* gcc.dg/parloops-exit-first-loop-alt.c: Same.

From-SVN: r225162

10 years agotree-vrp.c (register_edge_assert_for_2): Also register asserts for dominating convers...
Richard Biener [Tue, 30 Jun 2015 08:35:30 +0000 (08:35 +0000)] 
tree-vrp.c (register_edge_assert_for_2): Also register asserts for dominating conversion results.

2015-06-30  Richard Biener  <rguenther@suse.de>

* tree-vrp.c (register_edge_assert_for_2): Also register
asserts for dominating conversion results.

From-SVN: r225161

10 years agolex.c (search_line_sse42): New main loop using asm flag outputs.
Uros Bizjak [Tue, 30 Jun 2015 08:26:57 +0000 (10:26 +0200)] 
lex.c (search_line_sse42): New main loop using asm flag outputs.

* lex.c (search_line_sse42) [__GCC_ASM_FLAG_OUTPUTS__]: New main
loop using asm flag outputs.

From-SVN: r225160

10 years agotree-ssa-loop-ivopts.c (record_sub_use): Don't reset ssa_name field in struct iv.
Bin Cheng [Tue, 30 Jun 2015 02:39:54 +0000 (02:39 +0000)] 
tree-ssa-loop-ivopts.c (record_sub_use): Don't reset ssa_name field in struct iv.

* tree-ssa-loop-ivopts.c (record_sub_use): Don't reset ssa_name
field in struct iv.

From-SVN: r225159

10 years agore PR target/66509 (the new clang-based assembler in Xcode 7 on 10.11 fails on the...
Jack Howarth [Tue, 30 Jun 2015 02:10:43 +0000 (02:10 +0000)] 
re PR target/66509 (the new clang-based assembler in Xcode 7 on 10.11 fails on the libjava/java/lang/reflect/natArray.cc file from FSF gcc 5.1 at -m32)

PR target/66509
* configure.ac: Fix filds and fildq test for 64-bit.
* configure: Regenerated.

From-SVN: r225158

10 years agoDaily bump.
GCC Administrator [Tue, 30 Jun 2015 00:16:13 +0000 (00:16 +0000)] 
Daily bump.

From-SVN: r225157

10 years agonvptx.md (nvptx_reorg_subreg): New fn, broken out of ...
Nathan Sidwell [Mon, 29 Jun 2015 23:23:10 +0000 (23:23 +0000)] 
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

10 years agore PR c++/65977 (Constexpr should be allowed in declaration of friend template specia...
Paolo Carlini [Mon, 29 Jun 2015 22:02:08 +0000 (22:02 +0000)] 
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

10 years agoUse PIE_SPEC/NO_PIE_SPEC for crtend.o/crtendS.o
H.J. Lu [Mon, 29 Jun 2015 20:50:57 +0000 (20:50 +0000)] 
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

10 years agostl_iterator_base_types.h (_Iter_base): Limit definition to pre-C++11 mode.
François Dumont [Mon, 29 Jun 2015 20:17:56 +0000 (20:17 +0000)] 
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

10 years agore PR ada/63310 (Ada bootstrap error with -fcompare-debug)
Eric Botcazou [Mon, 29 Jun 2015 17:45:34 +0000 (17:45 +0000)] 
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

10 years agoi386.md (*jcc_1): Use %!
Uros Bizjak [Mon, 29 Jun 2015 17:18:17 +0000 (19:18 +0200)] 
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

10 years agonios2.c (nios2_delegitimize_address): Make assert less restrictive.
Sandra Loosemore [Mon, 29 Jun 2015 17:01:52 +0000 (13:01 -0400)] 
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

10 years agoWunused-parameter warnings are given from cgraph::finalize_function,
Manuel López-Ibáñez [Mon, 29 Jun 2015 16:25:26 +0000 (16:25 +0000)] 
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

10 years agore PR target/65697 (__atomic memory barriers not strong enough for __sync builtins)
Matthew Wahab [Mon, 29 Jun 2015 16:12:12 +0000 (16:12 +0000)] 
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

10 years agore PR target/65697 (__atomic memory barriers not strong enough for __sync builtins)
Matthew Wahab [Mon, 29 Jun 2015 16:09:10 +0000 (16:09 +0000)] 
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

10 years agore PR target/65697 (__atomic memory barriers not strong enough for __sync builtins)
Matthew Wahab [Mon, 29 Jun 2015 16:03:34 +0000 (16:03 +0000)] 
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

10 years ago* sv.po: Update.
Joseph Myers [Mon, 29 Jun 2015 15:58:13 +0000 (16:58 +0100)] 
* sv.po: Update.

From-SVN: r225130

10 years agoi386: Implement asm flag outputs
Richard Henderson [Mon, 29 Jun 2015 14:35:19 +0000 (07:35 -0700)] 
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

10 years ago[AArch64] Generalize TLSLE macro and pattern names
Jiong Wang [Mon, 29 Jun 2015 14:20:50 +0000 (14:20 +0000)] 
[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

10 years agofold-const.c (fold_binary_loc): Move X - (X / Y) * Y -> X % Y to ...
Marek Polacek [Mon, 29 Jun 2015 14:17:13 +0000 (14:17 +0000)] 
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

10 years agoSimplify structure try_transform_to_exit_first_loop_alt
Tom de Vries [Mon, 29 Jun 2015 13:53:32 +0000 (13:53 +0000)] 
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

10 years agoinvoke.texi (Aarch64 Options, -march): Split out arch and feature description...
Matthew Wahab [Mon, 29 Jun 2015 13:50:42 +0000 (13:50 +0000)] 
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

10 years agore PR c/66322 (Linus Torvalds: -Wswitch-bool produces dubious warnings, fails to...
Marek Polacek [Mon, 29 Jun 2015 13:12:44 +0000 (13:12 +0000)] 
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

10 years agogenmatch.c (add_operator): Treat ADDR_EXPR as atom.
Richard Biener [Mon, 29 Jun 2015 11:28:17 +0000 (11:28 +0000)] 
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

10 years agolto-streamer.h (LTO_major_version): Bump to 5.
Richard Biener [Mon, 29 Jun 2015 08:44:56 +0000 (08:44 +0000)] 
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

10 years agore PR tree-optimization/66677 (ICE: in vect_transform_stmt, at tree-vect-stmts.c...
Richard Biener [Mon, 29 Jun 2015 07:30:47 +0000 (07:30 +0000)] 
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

10 years agoDaily bump.
GCC Administrator [Mon, 29 Jun 2015 00:16:12 +0000 (00:16 +0000)] 
Daily bump.

From-SVN: r225111

10 years agore PR tree-optimization/64130 (vrp: handle non zero constant divided by range cannot...
Kugan Vivekanandarajah [Mon, 29 Jun 2015 00:15:41 +0000 (00:15 +0000)] 
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

10 years ago* Add forgotten ChangeLog entry.
Uros Bizjak [Sun, 28 Jun 2015 21:28:07 +0000 (23:28 +0200)] 
* Add forgotten ChangeLog entry.

From-SVN: r225107

10 years agoregrename.h (regrename_do_replace): Change to return bool.
Chung-Lin Tang [Sun, 28 Jun 2015 20:46:01 +0000 (20:46 +0000)] 
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

10 years agoi386.md (<mode>_ldx): Do not zero-extend non-Pmode operand 2 here.
Uros Bizjak [Sun, 28 Jun 2015 19:38:56 +0000 (21:38 +0200)] 
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

10 years agoDaily bump.
GCC Administrator [Sun, 28 Jun 2015 00:16:12 +0000 (00:16 +0000)] 
Daily bump.

From-SVN: r225103

10 years agoMake debug_tree() print the length of a TREE_VEC
Patrick Palka [Sat, 27 Jun 2015 18:43:11 +0000 (18:43 +0000)] 
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

10 years agocall.c: Use VECTOR_TYPE_P.
Marek Polacek [Sat, 27 Jun 2015 10:40:21 +0000 (10:40 +0000)] 
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

10 years agocall.c (set_up_extended_ref_temp): Use VAR_P.
Marek Polacek [Sat, 27 Jun 2015 10:39:31 +0000 (10:39 +0000)] 
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

10 years ago* pt.c (check_unstripped_args): Mark parameter as unused.
Andreas Schwab [Sat, 27 Jun 2015 08:40:34 +0000 (08:40 +0000)] 
* pt.c (check_unstripped_args): Mark parameter as unused.

From-SVN: r225095

10 years agoDaily bump.
GCC Administrator [Sat, 27 Jun 2015 00:16:11 +0000 (00:16 +0000)] 
Daily bump.

From-SVN: r225093

10 years agogimple.c (gimple_call_set_fndecl): Remove.
Andrew MacLeod [Fri, 26 Jun 2015 23:30:37 +0000 (23:30 +0000)] 
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

10 years agoc-common.c (check_main_parameter_types): Use VECTOR_TYPE_P or VECTOR_INTEGER_TYPE_P...
Marek Polacek [Fri, 26 Jun 2015 22:35:29 +0000 (22:35 +0000)] 
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

10 years agore PR c++/66216 (Defaulted Operators and constructors not working with aligned attribute)
Jason Merrill [Fri, 26 Jun 2015 21:31:13 +0000 (17:31 -0400)] 
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

10 years agore PR c++/66684 (ICE in merge_exception_specifiers, at cp/typeck2.c:2114)
Jason Merrill [Fri, 26 Jun 2015 21:31:08 +0000 (17:31 -0400)] 
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

10 years agore PR c++/66255 (ice in retrieve_specialization)
Jason Merrill [Fri, 26 Jun 2015 20:33:46 +0000 (16:33 -0400)] 
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

10 years agore PR c++/66067 (tree check ICE: accessed elt 1 of tree_vec with 0 elts in write_temp...
Jason Merrill [Fri, 26 Jun 2015 20:33:41 +0000 (16:33 -0400)] 
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

10 years agore PR c++/66654 (ice in digest_init_r, at cp/typeck2.c:1103)
Jason Merrill [Fri, 26 Jun 2015 20:33:35 +0000 (16:33 -0400)] 
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

10 years agoImplement N4258 (Cleaning-up noexcept in the Library rev 3)
Jonathan Wakely [Fri, 26 Jun 2015 20:10:24 +0000 (21:10 +0100)] 
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

10 years agoarray-notation-common.c (find_rank): Use INDIRECT_REF_P.
Marek Polacek [Fri, 26 Jun 2015 19:55:12 +0000 (19:55 +0000)] 
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

10 years agostl_bvector.h (vector<bool>::vector()): Add noexcept.
Jonathan Wakely [Fri, 26 Jun 2015 17:26:38 +0000 (18:26 +0100)] 
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

10 years agohash-map.h (hash_map::traverse): Use the definition of the Key typedef rather than...
Richard Sandiford [Fri, 26 Jun 2015 16:50:19 +0000 (16:50 +0000)] 
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

10 years agoFix PR 66301 - check for dump_file in eliminate_dom_walker::before_dom_children
Martin Jambor [Fri, 26 Jun 2015 14:59:11 +0000 (16:59 +0200)] 
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

10 years ago[Patch AArch64 4/4] Add -moverride tuning command, and wire it up for
James Greenhalgh [Fri, 26 Jun 2015 14:04:12 +0000 (14:04 +0000)] 
[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

10 years ago[AArch64][2/2] Implement -fpic for -mcmodel=small
Jiong Wang [Fri, 26 Jun 2015 14:00:56 +0000 (14:00 +0000)] 
[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

10 years ago[Patch AArch64 3/4] De-const-ify struct tune_params
James Greenhalgh [Fri, 26 Jun 2015 13:58:29 +0000 (13:58 +0000)] 
[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

10 years ago[Patch AArch64 2/4] Control the FMA steering pass in tuning structures rather than...
James Greenhalgh [Fri, 26 Jun 2015 13:57:16 +0000 (13:57 +0000)] 
[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

10 years ago[Patch AArch64 1/4] Define candidates for instruction fusion in a .def file
James Greenhalgh [Fri, 26 Jun 2015 13:54:53 +0000 (13:54 +0000)] 
[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

10 years ago[AArch64][1/2] Rename SYMBOL_SMALL_GOT to SYMBOL_SMALL_GOT_4G
Jiong Wang [Fri, 26 Jun 2015 13:41:24 +0000 (13:41 +0000)] 
[AArch64][1/2] Rename SYMBOL_SMALL_GOT to SYMBOL_SMALL_GOT_4G

2015-06-26  Jiong Wang  <jiong.wang@arm.com>

* config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
SYMBOL_SMALL_GOT to SYMBOL_SMALL_GOT_4G.
* config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto.
(aarch64_expand_mov_immediate): Ditto.
(aarch64_print_operand): Ditto.
(aarch64_classify_symbol): Ditto.

From-SVN: r225013

10 years ago* config/nvptx/nvptx.md (call_operation): Remove unused variables.
Nathan Sidwell [Fri, 26 Jun 2015 12:33:33 +0000 (12:33 +0000)] 
* config/nvptx/nvptx.md (call_operation): Remove unused variables.

From-SVN: r225009

10 years agore PR bootstrap/66638 (profiledbootstrap failure on x86-64 with LTO)
Bin Cheng [Fri, 26 Jun 2015 11:12:20 +0000 (11:12 +0000)] 
re PR bootstrap/66638 (profiledbootstrap failure on x86-64 with LTO)

PR bootstrap/66638
* tree-ssa-loop-niter.c (loop_exits_before_overflow): Skip if
assertion failed.  Remove assertion itself.

From-SVN: r225008

10 years agofold-const.c (fold_binary_loc): Remove -A CMP -B -> A CMP B and -A CMP CST -> A CMP...
Richard Biener [Fri, 26 Jun 2015 10:59:27 +0000 (10:59 +0000)] 
fold-const.c (fold_binary_loc): Remove -A CMP -B -> A CMP B and -A CMP CST -> A CMP -CST which is redundant...

2015-06-26  Richard Biener  <rguenther@suse.de>

* fold-const.c (fold_binary_loc): Remove -A CMP -B -> A CMP B
and -A CMP CST -> A CMP -CST which is redundant with a pattern
in match.pd.
Move (A | C) == D where C & ~D != 0 -> 0, (X ^ Y) ==/!= 0 -> X ==/!= Y,
(X ^ Y) ==/!= {Y,X} -> {X,Y} ==/!= 0 and
(X ^ C1) op C2 -> X op (C1 ^ C2) to ...
* match.pd: ... patterns here.

* gcc.dg/tree-ssa/forwprop-25.c: Adjust.

From-SVN: r225007

10 years agoMinor comment tweak.
Eric Botcazou [Fri, 26 Jun 2015 10:27:01 +0000 (10:27 +0000)] 
Minor comment tweak.

From-SVN: r225005

10 years agotrans.c (Handled_Sequence_Of_Statements_to_gnu): When not optimizing the CFG...
Eric Botcazou [Fri, 26 Jun 2015 10:25:04 +0000 (10:25 +0000)] 
trans.c (Handled_Sequence_Of_Statements_to_gnu): When not optimizing the CFG...

* gcc-interface/trans.c (Handled_Sequence_Of_Statements_to_gnu): When
not optimizing the CFG, clear the DECL_DECLARED_INLINE_P flag on the
at-end procedures.

From-SVN: r225004

10 years agogigi.h (note_types_used_by_globals): Delete.
Eric Botcazou [Fri, 26 Jun 2015 10:21:54 +0000 (10:21 +0000)] 
gigi.h (note_types_used_by_globals): Delete.

* gcc-interface/gigi.h (note_types_used_by_globals): Delete.
(gnat_write_global_declarations): New prototype.
* gcc-interface/utils.c (type_decls): Rename back to...
(global_decls): ...this.
(gnat_pushdecls): Revert previous change.
(create_var_decl): Do not output global variables.
(note_types_used_by_globals): Rename back to...
(gnat_write_global_declarations): ...this.  Output variables on the
global_decls vector.
* gcc-interface/misc.c (gnat_parse_file): Adjust to above renaming.

From-SVN: r225003

10 years agogigi.h (create_var_decl_1): Rename into...
Eric Botcazou [Fri, 26 Jun 2015 10:17:00 +0000 (10:17 +0000)] 
gigi.h (create_var_decl_1): Rename into...

* gcc-interface/gigi.h (create_var_decl_1): Rename into...
(create_var_decl): ...this.  Add default value for last parameter.
(create_type_stub_decl): Adjust.
(create_type_decl): Likewise.
(create_field_decl): Likewise.
(create_param_decl): Likewise.
(create_label_decl): Likewise.
(create_subprog_decl): Likewise.
* gcc-interface/utils.c (create_var_decl_1): Rename into...
(create_var_decl): ...this.  Rename var_name into name and var_init
into init, move const_decl_allowed_p last and adjust accordingly.
(create_type_stub_decl): Rename type_name into name and adjust.
(create_type_decl): Likewise.
(create_field_decl): Likewise for field_name and field_type.
(create_param_decl): Likewise for param_name and param_type.
(create_label_decl): Likewise for label_name.
(create_subprog_decl): Likewise for subprog_name and subprog_type.
* gcc-interface/decl.c (gnat_to_gnu_entity): Adjust couple of calls
to create_var_decl_1.

From-SVN: r225002

10 years agomatch.pd ((x | y) & ~(x & y) -> x ^ y, (x | y) & (~x ^ y) -> x & y): New patterns.
Marek Polacek [Fri, 26 Jun 2015 10:13:49 +0000 (10:13 +0000)] 
match.pd ((x | y) & ~(x & y) -> x ^ y, (x | y) & (~x ^ y) -> x & y): New patterns.

* match.pd ((x | y) & ~(x & y) -> x ^ y,
(x | y) & (~x ^ y) -> x & y): New patterns.

* gcc.dg/fold-and-1.c: New test.
* gcc.dg/fold-and-2.c: New test.

From-SVN: r225001

10 years agortl.h (emit): Add an optional boolean parameter to control whether barriers are emitted.
Richard Sandiford [Fri, 26 Jun 2015 10:06:56 +0000 (10:06 +0000)] 
rtl.h (emit): Add an optional boolean parameter to control whether barriers are emitted.

gcc/
* rtl.h (emit): Add an optional boolean parameter to control
whether barriers are emitted.
* emit-rtl.c (emit): Likewise.
* gensupport.c (get_emit_function): Return null rather than "emit".
* genemit.c (gen_emit_seq): Handle the null return value.
Don't emit barriers after the final instruction in the sequence.
* gentarget-def.c (main): Don't emit barriers after the instruction.

From-SVN: r225000

10 years agocp-array-notation.c (expand_sec_reduce_builtin): Use INDIRECT_REF_P.
Marek Polacek [Fri, 26 Jun 2015 10:03:35 +0000 (10:03 +0000)] 
cp-array-notation.c (expand_sec_reduce_builtin): Use INDIRECT_REF_P.

* cp-array-notation.c (expand_sec_reduce_builtin): Use INDIRECT_REF_P.
* cp-ubsan.c (cp_ubsan_check_member_access_r): Likewise.

From-SVN: r224999

10 years agotrans.c (loop_info_d): Add low_bound...
Eric Botcazou [Fri, 26 Jun 2015 10:03:22 +0000 (10:03 +0000)] 
trans.c (loop_info_d): Add low_bound...

* gcc-interface/trans.c (loop_info_d): Add low_bound, high_bound,
artificial, has_checks and warned_aggressive_loop_optimizations.
(gigi): Set warn_aggressive_loop_optimizations to 0.
(inside_loop_p): New inline predicate.
(push_range_check_info): Rename into...
(find_loop_for): ...this and do not push range_check_info_d object.
(Loop_Statement_to_gnu): Set artificial, low_bound and high_bound
fields of gnu_loop_info.  Adjust detection of checks enabled by
-funswitch-loops and adds one for -faggressive-loop-optimizations.
(gnat_to_gnu) <N_Indexed_Component>: If aggressive loop optimizations
are enabled, warn for loops overrunning an array of size 1 not at the
end of a record.

From-SVN: r224998

10 years ago[Patch ARM] Fix thinko in use of TARGET_UNIFIED_ASM
Ramana Radhakrishnan [Fri, 26 Jun 2015 09:08:03 +0000 (09:08 +0000)] 
[Patch ARM] Fix thinko in use of TARGET_UNIFIED_ASM

While paving the way to turn on unified syntax in ARM state I came
across this use of TARGET_UNIFIED_ASM that really doesn't make sense.

The idea that pop has different encoding sizes is a property of the
Thumb instruction set rather than a property of which form of unified
syntax was used. I still have quite a large patch set for the unified
asm switch but it seems useful to get this one out of the way to catch
any other issues.

Tested with an appropriate set of multilibs on arm-none-eabi /
applied. Bootstrapped on armhf.

Applied to trunk.

2015-06-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

* config/arm/arm.c (arm_output_multireg_pop): Fix use of
TARGET_UNIFIED_ASM.

From-SVN: r224997

10 years ago* c-common.c (handle_unused_attribute): Use VAR_OR_FUNCTION_DECL_P.
Marek Polacek [Fri, 26 Jun 2015 08:07:23 +0000 (08:07 +0000)] 
* c-common.c (handle_unused_attribute): Use VAR_OR_FUNCTION_DECL_P.

From-SVN: r224996

10 years agomatch.pd: Allow associating FLOAT_TYPE_P when flag_associative_math.
Richard Biener [Fri, 26 Jun 2015 07:50:12 +0000 (07:50 +0000)] 
match.pd: Allow associating FLOAT_TYPE_P when flag_associative_math.

2015-06-26  Richard Biener  <rguenther@suse.de>

* match.pd: Allow associating FLOAT_TYPE_P when flag_associative_math.

* gfortran.dg/reassoc_3.f90: Adjust.

2015-06-26  Richard Biener  <rguenther@suse.de>

* match.pd: Allow (p +p off1) +p off2 to (p +p (off1 + off2))
irrespective on whether the inner operation has a single use
of both off are constant.

From-SVN: r224995

10 years agore PR target/66412 (ICE on valid code at -O2 and -O3 with -g enabled in simplify_subr...
Uros Bizjak [Fri, 26 Jun 2015 07:45:07 +0000 (09:45 +0200)] 
re PR target/66412 (ICE on valid code at -O2 and -O3 with -g enabled in simplify_subreg, at simplify-rtx.c:5748)

PR target/66412
* config/i386/i386.md (various splitters): Use shallow_copy_rtx
before doing PUT_MODE or PUT_CODE on operands to avoid
in-place RTX modification.

testsuite/ChangeLog:

PR target/66412
* gcc.target/i386/pr66412.c: New test.

Co-Authored-By: Segher Boessenkool <segher@kernel.crashing.org>
From-SVN: r224994

10 years agoCast return of strtol to unsigned int
H.J. Lu [Fri, 26 Jun 2015 02:35:12 +0000 (02:35 +0000)] 
Cast return of strtol to unsigned int

strtol returns long, which is compared against unsigned int.  On 32-bit
hosts, it leads to

gcc/gentarget-def.c: In function void def_target_insn(const char*, const char*):
gcc/gentarget-def.c:88:34: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]

This patch casts return of strtol to unsigned int to avoid the error.

* gentarget-def.c (def_target_insn): Cast return of strtol to
unsigned int.

From-SVN: r224993

10 years agoDaily bump.
GCC Administrator [Fri, 26 Jun 2015 00:16:12 +0000 (00:16 +0000)] 
Daily bump.

From-SVN: r224992

10 years agogimple.h (gimple_call_set_fn): Move inline function.
Andrew MacLeod [Thu, 25 Jun 2015 23:45:50 +0000 (23:45 +0000)] 
gimple.h (gimple_call_set_fn): Move inline function.

2015-06-25  Andrew MacLeod  <amacleod@redhat.com>

* gimple.h (gimple_call_set_fn): Move inline function.
* gimple.c (gimple_call_set_fn): Relocate here.

From-SVN: r224989

10 years agore PR target/65979 ([SH] Wrong code is generated with stage1 compiler)
Oleg Endo [Thu, 25 Jun 2015 23:12:07 +0000 (23:12 +0000)] 
re PR target/65979 ([SH] Wrong code is generated with stage1 compiler)

gcc/
PR target/65979
PR target/66611
* config/sh/sh.md (tstsi_t peephole2): Use insn_invalid_p to check if
the replacement insn will work.

From-SVN: r224988

10 years agoValidate -pie if PIE is enabled by default
H.J. Lu [Thu, 25 Jun 2015 21:31:04 +0000 (21:31 +0000)] 
Validate -pie if PIE is enabled by default

When PIE is enabled by default, -pie is treated as nop in driver.  We
should simply validate it, instead of issue an error.

* gcc.c (driver_handle_option): Validate -pie if PIE is enabled
by default.

From-SVN: r224987

10 years agofunction.h (ipa_opt_pass, [...]): Move forward declarations.
Andrew MacLeod [Thu, 25 Jun 2015 18:32:38 +0000 (18:32 +0000)] 
function.h (ipa_opt_pass, [...]): Move forward declarations.

2015-06-25  Andrew MacLeod  <amacleod@redhat.com>

* function.h (ipa_opt_pass, ipa_opt_pass_d): Move forward declarations.
* cgraph.h: Include ipa-ref.h and plugin-api.h.
(ipa_opt_pass, ipa_opt_pass_d)): Relocate forward declarations here.
(symtab_node::address_can_be_compared_p): Move function.
* cgraph.c (symtab_node::address_can_be_compared_p): Relocate function
definition here.
* asan.c: Remove ipa-ref.h and plugin-api.h from include list.
* auto-profile.c: Likewise.
* bb-reorder.c: Likewise.
* builtins.c: Likewise.
* calls.c: Likewise.
* cfgexpand.c: Likewise.
* cgraphbuild.c: Likewise.
* cgraphclones.c: Likewise.
* cgraphunit.c: Likewise.
* combine.c: Likewise.
* coverage.c: Likewise.
* data-streamer-in.c: Likewise.
* data-streamer-out.c: Likewise.
* data-streamer.c: Likewise.
* dbxout.c: Likewise.
* dwarf2out.c: Likewise.
* except.c: Likewise.
* expr.c: Likewise.
* final.c: Likewise.
* fold-const.c: Likewise.
* ggc-page.c: Likewise.
* gimple-fold.c: Likewise.
* gimple-iterator.c: Likewise.
* gimple-pretty-print.c: Likewise.
* gimple-streamer-in.c: Likewise.
* gimple-streamer-out.c: Likewise.
* gimple.c: Likewise.
* gimplify.c: Likewise.
* ipa-chkp.c: Likewise.
* ipa-comdats.c: Likewise.
* ipa-cp.c: Likewise.
* ipa-devirt.c: Likewise.
* ipa-icf-gimple.c: Likewise.
* ipa-icf.c: Likewise.
* ipa-inline-analysis.c: Likewise.
* ipa-inline-transform.c: Likewise.
* ipa-inline.c: Likewise.
* ipa-polymorphic-call.c: Likewise.
* ipa-profile.c: Likewise.
* ipa-prop.c: Likewise.
* ipa-pure-const.c: Likewise.
* ipa-ref.c: Likewise.
* ipa-reference.c: Likewise.
* ipa-split.c: Likewise.
* ipa-utils.c: Likewise.
* ipa-visibility.c: Likewise.
* ipa.c: Likewise.
* langhooks.c: Likewise.
* lto-cgraph.c: Likewise.
* lto-compress.c: Likewise.
* lto-opts.c: Likewise.
* lto-section-in.c: Likewise.
* lto-section-out.c: Likewise.
* lto-streamer-in.c: Likewise.
* lto-streamer-out.c: Likewise.
* lto-streamer.c: Likewise.
* omp-low.c: Likewise.
* opts-global.c: Likewise.
* passes.c: Likewise.
* predict.c: Likewise.
* print-tree.c: Likewise.
* profile.c: Likewise.
* ree.c: Likewise.
* sanopt.c: Likewise.
* stor-layout.c: Likewise.
* symtab.c: Likewise.
* toplev.c: Likewise.
* trans-mem.c: Likewise.
* tree-cfg.c: Likewise.
* tree-chkp.c: Likewise.
* tree-eh.c: Likewise.
* tree-emutls.c: Likewise.
* tree-inline.c: Likewise.
* tree-nested.c: Likewise.
* tree-parloops.c: Likewise.
* tree-pretty-print.c: Likewise.
* tree-profile.c: Likewise.
* tree-sra.c: Likewise.
* tree-ssa-alias.c: Likewise.
* tree-ssa-live.c: Likewise.
* tree-ssa-loop-ivcanon.c: Likewise.
* tree-ssa-loop-ivopts.c: Likewise.
* tree-ssa-pre.c: Likewise.
* tree-ssa-sccvn.c: Likewise.
* tree-ssa-strlen.c: Likewise.
* tree-ssa-structalias.c: Likewise.
* tree-streamer-in.c: Likewise.
* tree-streamer-out.c: Likewise.
* tree-streamer.c: Likewise.
* tree-switch-conversion.c: Likewise.
* tree-tailcall.c: Likewise.
* tree-vect-data-refs.c: Likewise.
* tree-vect-stmts.c: Likewise.
* tree-vectorizer.c: Likewise.
* tree.c: Likewise.
* tsan.c: Likewise.
* ubsan.c: Likewise.
* value-prof.c: Likewise.
* varasm.c: Likewise.
* varpool.c: Likewise.
* config/arm/arm.c: Likewise.
* config/bfin/bfin.c: Likewise.
* config/c6x/c6x.c: Likewise.
* config/cris/cris.c: Likewise.
* config/darwin-c.c: Likewise.
* config/darwin.c: Likewise.
* config/i386/i386.c: Likewise.
* config/i386/winnt.c: Likewise.
* config/microblaze/microblaze.c: Likewise.
* config/mips/mips.c: Likewise.
* config/rs6000/rs6000.c: Likewise.
* config/rx/rx.c: Likewise.
* config/s390/s390.c: Likewise.
* config/tilegx/mul-tables.c: Likewise.

ada
2015-06-25  Andrew MacLeod  <amacleod@redhat.com>

* gcc-interface/trans.c: Remove ipa-ref.h and plugin-api.h from include
list.
* gcc-interface/utils.c: Likewise.

c
2015-06-25  Andrew MacLeod  <amacleod@redhat.com>

* c-decl.c: Remove ipa-ref.h and plugin-api.h from include list.
* c-parser.c: Likewise.

c-family
2015-06-25  Andrew MacLeod  <amacleod@redhat.com>

* c-common.c: Remove ipa-ref.h and plugin-api.h from include list.
* c-gimplify.c: Likewise.
* c-pragma.c: Likewise.
* c-ubsan.c: Likewise.
* cilk.c: Likewise.

cp
2015-06-25  Andrew MacLeod  <amacleod@redhat.com>

* call.c: Remove ipa-ref.h and plugin-api.h from include list.
* class.c: Likewise.
* cp-ubsan.c: Likewise.
* decl.c: Likewise.
* decl2.c: Likewise.
* lambda.c: Likewise.
* mangle.c: Likewise.
* method.c: Likewise.
* optimize.c: Likewise.
* parser.c: Likewise.
* semantics.c: Likewise.
* tree.c: Likewise.
* vtable-class-hierarchy.c: Likewise.

fortran
2015-06-25  Andrew MacLeod  <amacleod@redhat.com>

* f95-lang.c: Remove ipa-ref.h and plugin-api.h from include list.
* trans-decl.c: Likewise.

go
2015-06-25  Andrew MacLeod  <amacleod@redhat.com>

* go-gcc.cc: Remove ipa-ref.h and plugin-api.h from include list.

java
2015-06-25  Andrew MacLeod  <amacleod@redhat.com>

* class.c: Remove ipa-ref.h and plugin-api.h from include list.
* decl.c: Likewise.
* jcf-parse.c: Likewise.
* resource.c: Likewise.

jit
2015-06-25  Andrew MacLeod  <amacleod@redhat.com>

* dummy-frontend.c: Remove ipa-ref.h and plugin-api.h from include list.
* jit-playback.c: Likewise.

lto
2015-06-25  Andrew MacLeod  <amacleod@redhat.com>

* lto-lang.c: Remove ipa-ref.h and plugin-api.h from include list.
* lto-object.c: Likewise.
* lto-partition.c: Likewise.
* lto-symtab.c: Likewise.
* lto-tree.h: Likewise.
* lto.c: Likewise.

objc
2015-06-25  Andrew MacLeod  <amacleod@redhat.com>

* objc-act.c: Remove ipa-ref.h and plugin-api.h from include list.

From-SVN: r224986

10 years ago* include/bits/locale_conv.h (__do_str_codecvt): Set __count.
Jonathan Wakely [Thu, 25 Jun 2015 18:23:41 +0000 (19:23 +0100)] 
* include/bits/locale_conv.h (__do_str_codecvt): Set __count.

From-SVN: r224985

10 years agoaarch64.c, [...]: Add comment above target-def.h include.
Richard Sandiford [Thu, 25 Jun 2015 17:50:01 +0000 (17:50 +0000)] 
aarch64.c, [...]: Add comment above target-def.h include.

gcc/
* config/aarch64/aarch64.c, config/alpha/alpha.c,
config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
config/c6x/c6x.c, config/cr16/cr16.c, config/cris/cris.c,
config/fr30/fr30.c, config/frv/frv.c, config/h8300/h8300.c,
config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
config/microblaze/microblaze.c, config/mips/mips.c,
config/mmix/mmix.c, config/mn10300/mn10300.c,
config/moxie/moxie.c, config/msp430/msp430.c,
config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
config/stormy16/stormy16.c, config/tilegx/tilegx.c,
config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
config/visium/visium.c, config/xtensa/xtensa.c: Add comment above
target-def.h include.
* config/ft32/ft32.c: Likewise.  Fix misapplied hunk.

From-SVN: r224980

10 years agoMakefile.in (TARGET_DEF): Add target-insns.def.
Richard Sandiford [Thu, 25 Jun 2015 17:18:12 +0000 (17:18 +0000)] 
Makefile.in (TARGET_DEF): Add target-insns.def.

gcc/
* Makefile.in (TARGET_DEF): Add target-insns.def.
(.PRECIOUS, simple_rtl_generated_h): Add insn-target-def.h.
(build/gentarget-def.o): New rule.
(genprogrtl): Add target-def.
* target-insns.def, gentarget-def.c: New files.
* target.def: Add targetm.have_* and targetm.gen_* hooks,
based on the contents of target-insns.def.
* defaults.h (HAVE_simple_return, gen_simple_return): Delete.
(HAVE_return, gen_return): Delete.
* target-def.h: Include insn-target-def.h.
* cfgrtl.c (force_nonfallthru_and_redirect): Use targetm interface
instead of direct calls.  Rely on them to do the appropriate assertions.
* function.c (gen_return_pattern): Likewise.  Return an rtx_insn *.
(convert_jumps_to_returns): Use targetm interface instead of
direct calls.
(thread_prologue_and_epilogue_insns): Likewise.
* reorg.c (find_end_label, dbr_schedule): Likewise.
* shrink-wrap.h (SHRINK_WRAPPING_ENABLED): Likewise.
* shrink-wrap.c (convert_to_simple_return): Likewise.
(try_shrink_wrapping): Use SHRINK_WRAPPING_ENABLED.

From-SVN: r224979

10 years agoaarch64.c, [...]: Move target-def.h includes to end.
Richard Sandiford [Thu, 25 Jun 2015 17:18:00 +0000 (17:18 +0000)] 
aarch64.c, [...]: Move target-def.h includes to end.

gcc/
* config/aarch64/aarch64.c, config/alpha/alpha.c, config/arm/arm.c,
config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
config/cr16/cr16.c, config/cris/cris.c, config/fr30/fr30.c,
config/frv/frv.c, config/ft32/ft32.c, config/h8300/h8300.c,
config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
config/microblaze/microblaze.c, config/mips/mips.c, config/mmix/mmix.c,
config/mn10300/mn10300.c, config/moxie/moxie.c, config/msp430/msp430.c,
config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
config/stormy16/stormy16.c, config/tilegx/tilegx.c,
config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
config/visium/visium.c, config/xtensa/xtensa.c: Move target-def.h
includes to end.

From-SVN: r224978

10 years agohash-map-traits.h (simple_hashmap_traits::key_type): New typedef.
Richard Sandiford [Thu, 25 Jun 2015 17:17:20 +0000 (17:17 +0000)] 
hash-map-traits.h (simple_hashmap_traits::key_type): New typedef.

gcc/
* hash-map-traits.h (simple_hashmap_traits::key_type): New typedef.
(unbounded_int_hashmap_traits::key_type): Likewise.
* hash-map.h (hash_map): Get the key type from the traits.
* hash-traits.h (default_hash_traits): By default, inherit from the
template parameter.
* alias.c (alias_set_traits): Delete.
(alias_set_entry_d::children): Use alias_set_hash as the first
template parameter.
(record_alias_subset): Update accordingly.
* except.c (tree_hash_traits): Delete.
(type_to_runtime_map): Use tree_hash as the first template parameter.
(init_eh): Update accordingly.
* genmatch.c (capture_id_map_hasher): Delete.
(cid_map_t): Use nofree_string_hash as first template parameter.
* ipa-icf.h (symbol_compare_hashmap_traits): Delete.
* ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
Use symbol_compare_hash as the first template parameter in
subdivide_hash_map.
* mem-stats.h (mem_usage_pair::mem_alloc_hashmap_traits): Delete.
(mem_usage_pair::mem_map_t): Use mem_location_hash as the first
template parameter.
* passes.c (pass_registry_hasher): Delete.
(name_to_pass_map): Use nofree_string_hash as the first template
parameter.
(register_pass_name): Update accordingly.
* sanopt.c (sanopt_tree_map_traits): Delete.
(sanopt_tree_triplet_map_traits): Delete.
(sanopt_ctx::asan_check_map): Use tree_operand_hash as the first
template parameter.
(sanopt_ctx::vptr_check_map): Use sanopt_tree_triplet_hash as
the first template parameter.
* sese.c (rename_map_hasher): Delete.
(rename_map_type): Use tree_ssa_name_hash as the first template
parameter.
* symbol-summary.h (function_summary::summary_hashmap_traits): Delete.
(function_summary::m_map): Use map_hash as the first template
parameter.
(function_summary::release): Update accordingly.
* tree-if-conv.c (phi_args_hash_traits): Delete.
(predicate_scalar_phi): Use tree_operand_hash as the first template
parameter to phi_arg_map.
* tree-inline.h (dependence_hasher): Delete.
(copy_body_data::dependence_map): Use dependence_hash as the first
template parameter.
* tree-inline.c (remap_dependence_clique): Update accordingly.
* tree-ssa-strlen.c (stridxlist_hash_traits): Delete.
(decl_to_stridxlist_htab): Use tree_decl_hash as the first template
parameter.
(addr_stridxptr): Update accordingly.
* value-prof.c (profile_id_traits): Delete.
(cgraph_node_map): Use profile_id_hash as the first template
parameter.
(init_node_map): Update accordingly.
* config/alpha/alpha.c (string_traits): Delete.
(machine_function::links): Use nofree_string_hash as the first
template parameter.
(alpha_use_linkage, alpha_write_linkage): Update accordingly.
* config/m32c/m32c.c (pragma_traits): Delete.
(pragma_htab): Use nofree_string_hash as the first template parameter.
(m32c_note_pragma_address): Update accordingly.
* config/mep/mep.c (pragma_traits): Delete.
(pragma_htab): Use nofree_string_hash as the first template parameter.
(mep_note_pragma_flag): Update accordingly.
* config/mips/mips.c (mips16_flip_traits): Delete.
(mflip_mips16_htab): Use nofree_string_hash as the first template
parameter.
(mflip_mips16_use_mips16_p): Update accordingly.
(local_alias_traits): Delete.
(mips16_local_aliases): Use nofree_string_hash as the first template
parameter.
(mips16_local_alias): Update accordingly.

From-SVN: r224977

10 years agohash-map-traits.h (default_hashmap_traits): Delete.
Richard Sandiford [Thu, 25 Jun 2015 17:17:10 +0000 (17:17 +0000)] 
hash-map-traits.h (default_hashmap_traits): Delete.

gcc/
* hash-map-traits.h (default_hashmap_traits): Delete.

From-SVN: r224976

10 years agohash-map-traits.h (unbounded_hashmap_traits): New class.
Richard Sandiford [Thu, 25 Jun 2015 17:16:59 +0000 (17:16 +0000)] 
hash-map-traits.h (unbounded_hashmap_traits): New class.

gcc/
* hash-map-traits.h (unbounded_hashmap_traits): New class.
(unbounded_int_hashmap_traits): Likewise.
* cfgexpand.c (part_traits): Use unbounded_int_hashmap_traits.

From-SVN: r224975

10 years agoipa-icf.h (symbol_compare_hash): New class.
Richard Sandiford [Thu, 25 Jun 2015 17:16:51 +0000 (17:16 +0000)] 
ipa-icf.h (symbol_compare_hash): New class.

gcc/
* ipa-icf.h (symbol_compare_hash): New class.
(symbol_compare_hashmap_traits): Use it.
* mem-stats.h (mem_alloc_description::mem_location_hash): New class.
(mem_alloc_description::mem_alloc_hashmap_traits): Use it.
(mem_alloc_description::reverse_mem_map_t): Remove redundant
default_hashmap_traits.
* sanopt.c (sanopt_tree_triplet_hash): New class.
(sanopt_tree_triplet_map_traits): Use it.

From-SVN: r224974

10 years agogengtype-parse.c (require_template_declaration): Allow '+' in template parameters.
Richard Sandiford [Thu, 25 Jun 2015 17:16:44 +0000 (17:16 +0000)] 
gengtype-parse.c (require_template_declaration): Allow '+' in template parameters.

gcc/
* gengtype-parse.c (require_template_declaration): Allow '+' in
template parameters.  Consolidate cases.
* hash-traits.h (int_hash): New class.
* alias.c (alias_set_hash): New structure.
(alias_set_traits): Use it.
* symbol-summary.h (function_summary::map_hash): New class.
(function_summary::summary_hashmap_traits): Use it.
* tree-inline.h (dependence_hash): New class.
(dependence_hasher): Use it.
* tree-ssa-reassoc.c (oecount_hasher): Use int_hash.
* value-prof.c (profile_id_hash): New class.
(profile_id_traits): Use it.

From-SVN: r224973

10 years agomips.c (mips16_flip_traits): Use it.
Richard Sandiford [Thu, 25 Jun 2015 17:16:31 +0000 (17:16 +0000)] 
mips.c (mips16_flip_traits): Use it.

gcc/
* config/mips/mips.c (mips16_flip_traits): Use it.
(local_alias_traits, mips16_local_aliases): Convert from a map of
rtxes to a map of symbol names.
(mips16_local_alias): Update accordingly.

From-SVN: r224972

10 years agohash-traits.h (string_hash, [...]): New classes.
Richard Sandiford [Thu, 25 Jun 2015 17:16:23 +0000 (17:16 +0000)] 
hash-traits.h (string_hash, [...]): New classes.

gcc/
* hash-traits.h (string_hash, nofree_string_hash): New classes.
* genmatch.c (capture_id_map_hasher): Use nofree_string_hash.
* passes.c (pass_registry_hasher): Likewise.
* config/alpha/alpha.c (string_traits): Likewise.
* config/i386/winnt.c (i386_find_on_wrapper_list): Likewise.
* config/m32c/m32c.c (pragma_traits): Likewise.
* config/mep/mep.c (pragma_traits): Likewise.

gcc/java/
* jcf-io.c (memoized_class_lookups): Use nofree_string_hash.
(find_class): Likewise.

From-SVN: r224971

10 years agotree-hash-traits.h (tree_hash): New class.
Richard Sandiford [Thu, 25 Jun 2015 17:16:15 +0000 (17:16 +0000)] 
tree-hash-traits.h (tree_hash): New class.

gcc/
* tree-hash-traits.h (tree_hash): New class.
* except.c: Include tree-hash-traits.h.
(tree_hash_traits): Use tree_hash.

From-SVN: r224970

10 years agotree-hash-traits.h (tree_ssa_name_hasher): New class.
Richard Sandiford [Thu, 25 Jun 2015 17:16:02 +0000 (17:16 +0000)] 
tree-hash-traits.h (tree_ssa_name_hasher): New class.

gcc/
* tree-hash-traits.h (tree_ssa_name_hasher): New class.
* sese.c: Include tree-hash-traits.h.
(rename_map_hasher): Use tree_ssa_name_hasher.

From-SVN: r224969

10 years agotree-hash-traits.h (tree_decl_hash): New class.
Richard Sandiford [Thu, 25 Jun 2015 17:15:54 +0000 (17:15 +0000)] 
tree-hash-traits.h (tree_decl_hash): New class.

gcc/
* tree-hash-traits.h (tree_decl_hash): New class.
* tree-ssa-strlen.c: Include tree-hash-traits.h.
(stridxlist_hash_traits): Use tree_decl_hash.

From-SVN: r224968

10 years agotree-hash-traits.h: New file.
Richard Sandiford [Thu, 25 Jun 2015 17:15:44 +0000 (17:15 +0000)] 
tree-hash-traits.h: New file.

gcc/
* tree-hash-traits.h: New file.
(tree_operand_hash): New class.
* sanopt.c: Include tree-hash-traits.h.
(sanopt_tree_map_traits): Use tree_operand_hash.
* tree-if-conv.c: Include tree-hash-traits.h.
(phi_args_hash_traits): Use tree_operand_hash.
* tree-ssa-uncprop.c: Include tree-hash-traits.h.
(val_ssa_equiv_hash_traits): Use tree_operand_hash.

From-SVN: r224967

10 years agohash-map-traits.h: Include hash-traits.h.
Richard Sandiford [Thu, 25 Jun 2015 17:15:35 +0000 (17:15 +0000)] 
hash-map-traits.h: Include hash-traits.h.

gcc/
* hash-map-traits.h: Include hash-traits.h.
(simple_hashmap_traits): New class.
* mem-stats.h (hash_map): Change the default traits to
simple_hashmap_traits<default_hash_traits<Key> >.

From-SVN: r224966

10 years agohash-table.h: Update comments.
Richard Sandiford [Thu, 25 Jun 2015 17:07:34 +0000 (17:07 +0000)] 
hash-table.h: Update comments.

gcc/
* hash-table.h: Update comments.

From-SVN: r224965

10 years agohash-traits.h (default_hash_traits): New structure.
Richard Sandiford [Thu, 25 Jun 2015 17:07:26 +0000 (17:07 +0000)] 
hash-traits.h (default_hash_traits): New structure.

gcc/
* hash-traits.h (default_hash_traits): New structure.
* hash-set.h (default_hashset_traits): Delete.
(hash_set): Use default_hash_traits<Key> instead of
default_hashset_traits.  Delete hash_entry type and use Key directly.
* ipa-devirt.c (pair_traits): Delete.
(default_hash_traits <type_pair>): Override.
(odr_subtypes_equivalent_p): Remove pair_types template parameter.
(odr_types_equivalent_p, add_type_duplicate): Likewise.

From-SVN: r224964