platform/upstream/gcc.git
9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

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

From-SVN: r225005

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

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

From-SVN: r224992

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 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

9 years agohash-traits.h (typed_noop_remove): Don't require a pointer type.
Richard Sandiford [Thu, 25 Jun 2015 17:07:16 +0000 (17:07 +0000)]
hash-traits.h (typed_noop_remove): Don't require a pointer type.

gcc/
* hash-traits.h (typed_noop_remove): Don't require a pointer type.

From-SVN: r224963

9 years agohash-table.h (has_is_deleted, [...]): Delete.
Richard Sandiford [Thu, 25 Jun 2015 17:07:01 +0000 (17:07 +0000)]
hash-table.h (has_is_deleted, [...]): Delete.

gcc/
* hash-table.h (has_is_deleted, is_deleted_helper): Delete.
(has_is_empty, is_empty_helper): Delete.
(has_mark_deleted, mark_deleted_helper): Delete.
(has_mark_empty, mark_empty_helper): Delete.
(hash_table::is_deleted): Call the Descriptor unconditionally.
(hash_table::is_empty): Likewise.
(hash_table::mark_deleted): Likewise.
(hash_table::mark_empty): Likewise.

From-SVN: r224962

9 years agocgraph.h (asmname_hasher): Inherit from ggc_ptr_hash.
Richard Sandiford [Thu, 25 Jun 2015 17:06:52 +0000 (17:06 +0000)]
cgraph.h (asmname_hasher): Inherit from ggc_ptr_hash.

gcc/
* cgraph.h (asmname_hasher): Inherit from ggc_ptr_hash.  Remove
redundant typedefs and members.
* coverage.c (counts_entry): Inherit from pointer_hash.  Remove
redundant typedefs.
* dwarf2out.c (cu_hash_table_entry_hasher): Likewise.
* ipa-devirt.c (odr_name_hasher): Likewise.
(polymorphic_call_target_hasher): Likewise.
* ira-costs.c (cost_classes_hasher): Likewise.
* statistics.c (stats_counter_hasher): Likewise.
* trans-mem.c (log_entry_hasher): Likewise.
* tree-ssa-dom.c (expr_elt_hasher): Likewise.
* tree-ssa-sccvn.c (vn_phi_hasher, vn_reference_hasher): Likewise.
* tree-ssa-tail-merge.c (same_succ_def): Likewise.
* var-tracking.c (variable_hasher): Likewise.
* valtrack.h (dead_debug_hash_descr): Inherit from free_ptr_hash.
Remove redundant typedefs and members.

From-SVN: r224961

9 years agohash-traits.h (ggc_cache_hasher): Rename to...
Richard Sandiford [Thu, 25 Jun 2015 17:06:44 +0000 (17:06 +0000)]
hash-traits.h (ggc_cache_hasher): Rename to...

gcc/
* hash-traits.h (ggc_cache_hasher): Rename to...
(ggc_cache_remove): ...this and remove typedefs.
(ggc_cache_ptr_hash): New class.
* hash-table.h: Update commentary.
* emit-rtl.c (const_int_hasher): Inherit from ggc_cache_ptr_hash
rather than ggc_cache_hasher.
(const_wide_int_hasher, reg_attr_hasher): Likewise.
(const_double_hasher, const_fixed_hasher): Likewise.
* function.c (insn_cache_hasher): Likewise.
* trans-mem.c (tm_wrapper_hasher): Likewise.
* tree.h (tree_decl_map_cache_hasher): Likewise.
* tree.c (type_cache_hasher, int_cst_hasher): Likewise.
(cl_option_hasher, tree_vec_map_cache_hasher): Likewise.
* ubsan.c (tree_type_map_cache_hasher): Likewise.
* varasm.c (tm_clone_hasher): Likewise.
* config/i386/i386.c (dllimport_hasher): Likewise.
* config/nvptx/nvptx.c (declared_libfunc_hasher): Likewise.
(tree_hasher): Likewise.

gcc/ada/
* gcc-interface/decl.c (value_annotation_hasher): Inherit from
ggc_cache_ptr_hash rather than ggc_cache_hasher.
* gcc-interface/utils.c (pad_type_hasher): Likewise.

From-SVN: r224960

9 years agohash-traits.h (ggc_hasher): Rename to...
Richard Sandiford [Thu, 25 Jun 2015 17:06:36 +0000 (17:06 +0000)]
hash-traits.h (ggc_hasher): Rename to...

gcc/
* hash-traits.h (ggc_hasher): Rename to...
(ggc_remover): ...this and remove typedefs.
(ggc_cache_hasher): Update accordingly.  Add typedefs.
(ggc_ptr_hash): New class.
* hash-table.h: Update comment.
* cfgloop.h (loop_exit_hasher): Inherit from ggc_ptr_hash rather than
ggc_hasher.
* cgraph.h (section_name_hasher, cgraph_edge_hasher): Likewise.
(tree_descriptor_hasher): Likewise.
* cgraph.c (function_version_hasher): Likewise.
* dwarf2out.c (indirect_string_hasher, dwarf_file_hasher): Likewise.
(decl_die_hasher, block_die_hasher, decl_loc_hasher): Likewise.
(dw_loc_list_hasher, addr_hasher): Likewise.
* function.h (used_type_hasher): Likewise.
* function.c (temp_address_hasher): Likewise.
* gimple-ssa.h (tm_restart_hasher, ssa_name_hasher): Likewise.
* libfuncs.h (libfunc_hasher): Likewise.
* lto-streamer.h (decl_state_hasher): Likewise.
* optabs.c (libfunc_decl_hasher): Likewise.
* tree-scalar-evolution.c (scev_info_hasher): Likewise.
* varasm.c (section_hasher, object_block_hasher): Likewise.
(const_rtx_desc_hasher): Likewise.
* config/darwin.c (indirection_hasher, cfstring_hasher): Likewise.
* config/rs6000/rs6000.c (toc_hasher, builtin_hasher): Likewise.

gcc/c-family/
* c-common.c (c_type_hasher): Inherit from ggc_ptr_hash rather than
ggc_hasher.

gcc/cp/
* constexpr.c (constexpr_fundef_hasher): Inherit from ggc_ptr_hash
rather than ggc_hasher.
(constexpr_call_hasher): Likewise.
* cp-tree.h (cxx_int_tree_map_hasher, named_label_hasher): Likewise.
* decl.c (typename_hasher): Likewise.
* mangle.c (conv_type_hasher): Likewise.
* pt.c (spec_hasher): Likewise.
* tree.c (cplus_array_hasher, list_hasher): Likewise.
* typeck2.c (abstract_type_hasher): Likewise.

gcc/fortran/
* trans-decl.c (module_hasher): Likewise.
* trans.h (module_decl_hasher): Likewise.

gcc/java/
* java-tree.h (treetreehasher): Inherit from ggc_ptr_hash
rather than ggc_hasher.
(ict_hasher, type_assertion_hasher): Likewise.

gcc/objc/
* objc-act.c (objc_string_hasher): Inherit from ggc_ptr_hash
rather than ggc_hasher.

From-SVN: r224959

9 years agohash-traits.h (free_ptr_hash): New class.
Richard Sandiford [Thu, 25 Jun 2015 17:06:24 +0000 (17:06 +0000)]
hash-traits.h (free_ptr_hash): New class.

gcc/
* hash-traits.h (free_ptr_hash): New class.
* dwarf2out.c (decl_table_entry_hasher): Inherit from free_ptr_hash
rather than typed_free_remove.  Remove redudant typedefs.
(external_ref_hasher): Likewise.
* except.c (action_record_hasher, ttypes_filter_hasher): Likewise.
(ehspec_hasher): Likewise.
* ggc-common.c (saving_hasher): Likewise.
* gimplify.c (gimplify_hasher): Likewise.
* haifa-sched.c (delay_i2_hasher): Likewise.
* loop-invariant.c (invariant_expr_hasher): Likewise.
* loop-iv.c (biv_entry_hasher): Likewise.
* loop-unroll.c (iv_split_hasher, var_expand_hasher): Likewise.
* trans-mem.c (tm_mem_map_hasher, tm_memop_hasher): Likewise.
* tree-cfg.c (locus_discrim_hasher): Likewise.
* tree-eh.c (finally_tree_hasher): Likewise.
* tree-into-ssa.c (var_info_hasher): Likewise.
* tree-parloops.c (reduction_hasher, name_to_copy_hasher): Likewise.
* tree-ssa-loop-ivopts.c (iv_inv_expr_hasher): Likewise.
* tree-ssa-phiopt.c (ssa_names_hasher): Likewise.
* tree-ssa-pre.c (expr_pred_trans_d): Likewise.
* tree-ssa-sccvn.c (vn_constant_hasher): Likewise.
* tree-ssa-structalias.c (equiv_class_hasher): Likewise.
(shared_bitmap_hasher): Likewise.
* tree-ssa-threadupdate.c (redirection_data): Likewise.
* tree-vectorizer.h (peel_info_hasher): Likewise.
* tree-vectorizer.c (simduid_to_vf, simd_array_to_simduid): Likewise.
* config/mips/mips.c (mips_lo_sum_offset_hasher): Likewise.

libcc1/
* plugin.cc (decl_addr_hasher): Inherit from free_ptr_hash
rather than typed_free_remove.  Remove redudant typedefs.

From-SVN: r224958

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

gcc/
* hash-table.h: Update comments.
* hash-traits.h (pointer_hash): Don't inherit from typed_noop_remove.
(nofree_ptr_hash): New class.
* asan.c (asan_mem_ref_hasher): Inherit from nofree_ptr_hash rather
than typed_noop_remove.  Remove redudant typedefs.
* attribs.c (attribute_hasher): Likewise.
* cfg.c (bb_copy_hasher): Likewise.
* cselib.c (cselib_hasher): Likewise.
* dse.c (invariant_group_base_hasher): Likewise.
* dwarf2cfi.c (trace_info_hasher): Likewise.
* dwarf2out.c (macinfo_entry_hasher): Likewise.
(comdat_type_hasher, loc_list_hasher): Likewise.
* gcse.c (pre_ldst_expr_hasher): Likewise.
* genmatch.c (id_base): Likewise.
* genrecog.c (test_pattern_hasher): Likewise.
* gimple-ssa-strength-reduction.c (cand_chain_hasher): Likewise.
* haifa-sched.c (delay_i1_hasher): Likewise.
* hard-reg-set.h (simplifiable_subregs_hasher): Likewise.
* ipa-icf.h (congruence_class_group_hash): Likewise.
* ipa-profile.c (histogram_hash): Likewise.
* ira-color.c (allocno_hard_regs_hasher): Likewise.
* lto-streamer.h (string_slot_hasher): Likewise.
* lto-streamer.c (tree_entry_hasher): Likewise.
* plugin.c (event_hasher): Likewise.
* postreload-gcse.c (expr_hasher): Likewise.
* store-motion.c (st_expr_hasher): Likewise.
* tree-sra.c (uid_decl_hasher): Likewise.
* tree-ssa-coalesce.c (coalesce_pair_hasher): Likewise.
(ssa_name_var_hash): Likewise.
* tree-ssa-live.c (tree_int_map_hasher): Likewise.
* tree-ssa-loop-im.c (mem_ref_hasher): Likewise.
* tree-ssa-pre.c (pre_expr_d): Likewise.
* tree-ssa-sccvn.c (vn_nary_op_hasher): Likewise.
* vtable-verify.h (registration_hasher): Likewise.
* vtable-verify.c (vtbl_map_hasher): Likewise.
* config/arm/arm.c (libcall_hasher): Likewise.
* config/i386/winnt.c (wrapped_symbol_hasher): Likewise.
* config/ia64/ia64.c (bundle_state_hasher): Likewise.
* config/sol2.c (comdat_entry_hasher): Likewise.
* fold-const.c (fold): Use nofree_ptr_hash instead of pointer_hash.
(print_fold_checksum, fold_checksum_tree): Likewise.
(debug_fold_checksum, fold_build1_stat_loc): Likewise.
(fold_build2_stat_loc, fold_build3_stat_loc): Likewise.
(fold_build_call_array_loc): Likewise.
* tree-ssa-ccp.c (gimple_htab): Likewise.
* tree-browser.c (tree_upper_hasher): Inherit from nofree_ptr_hash
rather than pointer_type.

gcc/c/
* c-decl.c (detect_field_duplicates_hash): Use nofree_ptr_hash
instead of pointer_hash.
(detect_field_duplicates): Likewise.

gcc/cp/
* class.c (fixed_type_or_null_ref_ht): Inherit from nofree_ptr_hash
rather than pointer_hash.
(fixed_type_or_null): Use nofree_ptr_hash instead of pointer_hash.
* semantics.c (nrv_data): Likewise.
* tree.c (verify_stmt_tree_r, verify_stmt_tree): Likewise.

gcc/java/
* jcf-io.c (charstar_hash): Inherit from nofree_ptr_hash rather
than typed_noop_remove.  Remove redudant typedefs.

gcc/lto/
* lto.c (tree_scc_hasher): Inherit from nofree_ptr_hash rather
than typed_noop_remove.  Remove redudant typedefs.

gcc/objc/
* objc-act.c (decl_name_hash): Inherit from nofree_ptr_hash rather
than typed_noop_remove.  Remove redudant typedefs.

libcc1/
* plugin.cc (string_hasher): Inherit from nofree_ptr_hash rather
than typed_noop_remove.  Remove redudant typedefs.
(plugin_context): Use nofree_ptr_hash rather than pointer_hash.
(plugin_context::mark): Likewise.

From-SVN: r224957

9 years agogcc/
Richard Sandiford [Thu, 25 Jun 2015 17:06:02 +0000 (17:06 +0000)]
gcc/
* hash-traits.h (pointer_hash::mark_deleted, pointer_hash::mark_empty)
(pointer_hash::is_deleted, pointer_hash::is_empty): New functions.

From-SVN: r224956

9 years agohash-traits.h (ggc_hasher::remove): Take a reference parameter.
Richard Sandiford [Thu, 25 Jun 2015 17:05:55 +0000 (17:05 +0000)]
hash-traits.h (ggc_hasher::remove): Take a reference parameter.

gcc/
* hash-traits.h (ggc_hasher::remove): Take a reference parameter.
(ggc_hasher::ggc_mx): Likewise.
(ggc_cache_hasher): Inherit from ggc_hasher.  Remove definitions
that duplicate ggc_hasher ones.

From-SVN: r224955

9 years agodecl.c (value_annotation_hasher::handle_cache_entry): Delete.
Richard Sandiford [Thu, 25 Jun 2015 17:05:47 +0000 (17:05 +0000)]
decl.c (value_annotation_hasher::handle_cache_entry): Delete.

gcc/ada/
* gcc-interface/decl.c (value_annotation_hasher::handle_cache_entry):
Delete.
(value_annotation_hasher::keep_cache_entry): New function.
* gcc-interface/utils.c (pad_type_hasher::handle_cache_entry):
Delete.
(pad_type_hasher::keep_cache_entry): New function.

gcc/
* hash-table.h (hash_table): Add gt_cleare_cache as a friend.
(gt_cleare_cache): Check here for deleted and empty entries.
Replace handle_cache_entry with a call to keep_cache_entry.
* hash-traits.h (ggc_cache_hasher::handle_cache_entry): Delete.
(ggc_cache_hasher::keep_cache_entry): New function.
* trans-mem.c (tm_wrapper_hasher::handle_cache_entry): Delete.
(tm_wrapper_hasher::keep_cache_entry): New function.
* tree.h (tree_decl_map_cache_hasher::handle_cache_entry): Delete.
(tree_vec_map_cache_hasher::keep_cache_entry): New function.
* tree.c (type_cache_hasher::handle_cache_entry): Delete.
(type_cache_hasher::keep_cache_entry): New function.
(tree_vec_map_cache_hasher::handle_cache_entry): Delete.
(tree_vec_map_cache_hasher::keep_cache_entry): New function.
* ubsan.c (tree_type_map_cache_hasher::handle_cache_entry): Delete.
(tree_type_map_cache_hasher::keep_cache_entry): New function.
* varasm.c (tm_clone_hasher::handle_cache_entry): Delete.
(tm_clone_hasher::keep_cache_entry): New function.
* config/i386/i386.c (dllimport_hasher::handle_cache_entry): Delete.
(dllimport_hasher::keep_cache_entry): New function.

From-SVN: r224954

9 years agohash-table.h: Include hash-traits.h.
Richard Sandiford [Thu, 25 Jun 2015 17:05:39 +0000 (17:05 +0000)]
hash-table.h: Include hash-traits.h.

gcc/
* hash-table.h: Include hash-traits.h.
(typed_free_remove, typed_noop_remove, pointer_hash, ggc_hasher)
(ggc_cache_hasher): Move to...
* hash-traits.h: ...this new file.

From-SVN: r224953

9 years agotree-core.h (struct tree_optimization_option): Make opts a pointer to struct cl_optim...
Andrew MacLeod [Thu, 25 Jun 2015 17:03:33 +0000 (17:03 +0000)]
tree-core.h (struct tree_optimization_option): Make opts a pointer to struct cl_optimization.

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

* tree-core.h (struct tree_optimization_option): Make opts a pointer to
struct cl_optimization.
* tree.h (TREE_OPTIMIZATION): Return the pointer, not the address of it.
* tree.c (make_node_stat): Allocate cl_optimization struct.
(copy_node_stat): Allocate and copy cl_optimization struct.

From-SVN: r224952

9 years agofunction.h (struct incoming_args): Move struct.
Andrew MacLeod [Thu, 25 Jun 2015 16:51:35 +0000 (16:51 +0000)]
function.h (struct incoming_args): Move struct.

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

* function.h (struct incoming_args): Move struct.
(pass_by_reference, reference_callee_copied): Remove prototypes.
* emit-rtl.h (struct incoming_args): Relocate struct here.
* calls.h (pass_by_reference, reference_callee_copied): Relocate
prototypes here.
* function.c (pass_by_reference, reference_callee_copied): Move.
* calls.c (pass_by_reference, reference_callee_copied): Relocate here.
* cfgloop.h: Don't include tm.h or hard-reg-set.h.
* ipa-chkp.c: Include calls.h.

* ada/gcc-interface/misc.c: Include calls.h not function.h.

* c-family/cilk.c: Move calls.h after tm.h in the include chain.

From-SVN: r224951

9 years agoFix changelog mistake
Andrew Macleod [Thu, 25 Jun 2015 16:45:23 +0000 (16:45 +0000)]
Fix changelog mistake

From-SVN: r224950

9 years agoarray-notation-common.c: Use VAR_P throughout.
Marek Polacek [Thu, 25 Jun 2015 16:38:31 +0000 (16:38 +0000)]
array-notation-common.c: Use VAR_P throughout.

* array-notation-common.c: Use VAR_P throughout.
* c-ada-spec.c: Likewise.
* c-common.c: Likewise.
* c-format.c: Likewise.
* c-gimplify.c: Likewise.
* c-omp.c: Likewise.
* c-pragma.c: Likewise.
* c-pretty-print.c: Likewise.
* cilk.c: Likewise.

* c-array-notation.c: Use VAR_P throughout.
* c-decl.c: Likewise.
* c-objc-common.c: Likewise.
* c-parser.c: Likewise.
* c-typeck.c: Likewise.

From-SVN: r224949

9 years agoalias.h (alias_set_type): Move typedef.
Andrew MacLeod [Thu, 25 Jun 2015 16:27:12 +0000 (16:27 +0000)]
alias.h (alias_set_type): Move typedef.

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

* alias.h (alias_set_type): Move typedef.
* coretypes.h (alias_set_type): Relocate typedef here.
* rtl.h: Don't include alias.h.
* jit/jit-common.h: Likewise

From-SVN: r224948

9 years agocilk.c (extract_free_variables): Use is_global_var.
Marek Polacek [Thu, 25 Jun 2015 16:26:05 +0000 (16:26 +0000)]
cilk.c (extract_free_variables): Use is_global_var.

* cilk.c (extract_free_variables): Use is_global_var.

* c-decl.c: Use is_global_var throughout.
* c-parser.c: Likewise.
* c-typeck.c: Likewise.

From-SVN: r224947

9 years agocgraph.h (cgraph_rtl_info): Move to rtl.h
Andrew MacLeod [Thu, 25 Jun 2015 16:23:52 +0000 (16:23 +0000)]
cgraph.h (cgraph_rtl_info): Move to rtl.h

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

* cgraph.h (cgraph_rtl_info): Move to rtl.h
(cgraph_node): Maintain pointer to struct cgraph_rtl_info instead of
and instance.
* rtl.h (struct cgraph_rtl_info): Define when HARD_REG_SET available.
* cgraph.c (cgraph_node::rtl_info): Allocate cgraph_rtl_info if one
doesn't exist.
* calls.c: Include hard-reg-set.h before rtl.h.
* ira.c: Likewise.

From-SVN: r224946

9 years agoira-color.c (assign_hard_reg): Remove unecessary bitmap check.
Zhouyi Zhou [Thu, 25 Jun 2015 15:03:33 +0000 (15:03 +0000)]
ira-color.c (assign_hard_reg): Remove unecessary bitmap check.

2015-06-25  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
    Vladimir Makarov  <vmakarov@redhat.com>

* ira-color.c (assign_hard_reg): Remove unecessary bitmap check.
Add assert.

Co-Authored-By: Vladimir Makarov <vmakarov@redhat.com>
From-SVN: r224944

9 years agofold-const.c (fold_binary_loc): Move simplification of (X <<>> C1) & C2 ...
Richard Biener [Thu, 25 Jun 2015 14:02:35 +0000 (14:02 +0000)]
fold-const.c (fold_binary_loc): Move simplification of (X <<>> C1) & C2 ...

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

* fold-const.c (fold_binary_loc): Move simplification of
(X <<>> C1) & C2 ...
* match.pd: ... here.

* gcc.dg/tree-ssa/pr52631.c: Disable forwprop.

From-SVN: r224943

9 years ago* lto-streamer-out.c (DFS::hash_scc): Fix typos & formatting glitches.
Eric Botcazou [Thu, 25 Jun 2015 13:58:43 +0000 (13:58 +0000)]
* lto-streamer-out.c (DFS::hash_scc): Fix typos & formatting glitches.

From-SVN: r224942

9 years agomatch.pd: Add patterns for vec_conds between 1 and 0.
Richard Sandiford [Thu, 25 Jun 2015 13:25:09 +0000 (13:25 +0000)]
match.pd: Add patterns for vec_conds between 1 and 0.

gcc/
* match.pd: Add patterns for vec_conds between 1 and 0.

gcc/testsuite/
* gcc.target/aarch64/vect-add-sub-cond.c: New test.

From-SVN: r224941

9 years agotree-vect-stmts.c (vectorizable_conversion): Do not set STMT_VINFO_VEC_STMT for SLP.
Richard Biener [Thu, 25 Jun 2015 12:36:12 +0000 (12:36 +0000)]
tree-vect-stmts.c (vectorizable_conversion): Do not set STMT_VINFO_VEC_STMT for SLP.

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

* tree-vect-stmts.c (vectorizable_conversion): Do not set
STMT_VINFO_VEC_STMT for SLP.
(vectorizable_store): Likewise.
(vectorizable_load): Likewise.
(vect_transform_stmt): Catch SLP vectorization clobbering
STMT_VINFO_VEC_STMT.

From-SVN: r224939

9 years agotree-vect-slp.c (vect_detect_hybrid_slp_stmts): Improve debug dumping.
Richard Biener [Thu, 25 Jun 2015 12:34:46 +0000 (12:34 +0000)]
tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Improve debug dumping.

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

* tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Improve debug
dumping.
(vect_create_mask_and_perm): Do not set STMT_VINFO_VEC_STMT and
cleanup resulting dead code and parameters.
(vect_transform_slp_perm_load): Adjust.

* gfortran.dg/vect/vect-9.f90: New testcase.

From-SVN: r224938

9 years agobfin.c (bfin_expand_prologue): Set current_function_static_stack_size if flag_stack_u...
Nick Clifton [Thu, 25 Jun 2015 12:33:14 +0000 (12:33 +0000)]
bfin.c (bfin_expand_prologue): Set current_function_static_stack_size if flag_stack_usage_info is set.

     * config/bfin/bfin.c (bfin_expand_prologue): Set
     current_function_static_stack_size if flag_stack_usage_info is
     set.
     * config/ft32/ft32.c (ft32_expand_prologue): Likewise.
     * config/h8300/h8300.c (h8300_expand_prologue): Likewise.
     * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
     * config/m32c/m32c.c (m32c_emit_prologue): Likewise.

test * gcc.dg/stack-usage-1.c: Add SIZE values for V850, MN10300,
     H8300 and M32R targets.

From-SVN: r224937

9 years agoRemove 'unsigned' in header comment canonicalize_loop_ivs
Tom de Vries [Thu, 25 Jun 2015 11:17:03 +0000 (11:17 +0000)]
Remove 'unsigned' in header comment canonicalize_loop_ivs

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

* tree-ssa-loop-manip.c (canonicalize_loop_ivs): Don't claim in header
comment that the generated IV is unsigned.

From-SVN: r224936

9 years agore PR target/29693 (ICE while compiling gcc-3.4.3 with gcc-4.1.1)
Ramana Radhakrishnan [Thu, 25 Jun 2015 08:18:19 +0000 (08:18 +0000)]
re PR target/29693 (ICE while compiling gcc-3.4.3 with gcc-4.1.1)

Fix PR target/29693

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

PR target/29693
* config/arm/arm.c (arm_dbx_register_number): Return
DWARF_FRAME_REGISTERS by default.

From-SVN: r224932

9 years agoVerify reused dominators info in calculate_dominance_info
Tom de Vries [Thu, 25 Jun 2015 06:43:14 +0000 (06:43 +0000)]
Verify reused dominators info in calculate_dominance_info

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

* dominance.c (calculate_dominance_info): Fix verify_dominators call
argument.  Call verify_dominator when reusing dominator info.

From-SVN: r224931

9 years agoDaily bump.
GCC Administrator [Thu, 25 Jun 2015 00:16:11 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r224930

9 years agoThe problem is that diagnostic_action_after_output tries to delete the active pretty...
Manuel López-Ibáñez [Wed, 24 Jun 2015 22:16:42 +0000 (22:16 +0000)]
The problem is that diagnostic_action_after_output tries to delete the active pretty-printer which tries to delete its output_buffer...

The problem is that diagnostic_action_after_output tries to delete the active
pretty-printer which tries to delete its output_buffer, which is normally
dynamically allocated via placement-new, but the output_buffer used by the
error_buffer of Fortran is statically allocated. Being statically allocated
simplifies a lot pushing/poping several instances of error_buffer.

The solution is to reset the active output_buffer back to the default one
before calling diagnostic_action_after_output. This is a bit ugly, because this
function does use the output_buffer, however, at the point that Fortran calls
it, both are in an equivalent state, thus there is no visible difference.

gcc/testsuite/ChangeLog:

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

PR fortran/66528
* gfortran.dg/maxerrors.f90: New test.

gcc/fortran/ChangeLog:

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

PR fortran/66528
* error.c (gfc_warning_check): Restore the default output_buffer
before calling diagnostic_action_after_output.
(gfc_error_check): Likewise.
(gfc_diagnostics_init): Add comment.

From-SVN: r224926

9 years agore PR target/66563 (ICE (segmentation fault) on sh4-linux-gnu)
Kaz Kojima [Wed, 24 Jun 2015 22:11:04 +0000 (22:11 +0000)]
re PR target/66563 (ICE (segmentation fault) on sh4-linux-gnu)

PR target/66563
* [SH] Add a new operand to GOTaddr2picreg so to avoid CSE.  Modify caller
  of gen_GOTaddr2picreg.

From-SVN: r224925

9 years ago* gcc.dg/torture/pr66345.c: Fix assumption about size_t type.
DJ Delorie [Wed, 24 Jun 2015 21:18:02 +0000 (17:18 -0400)]
* gcc.dg/torture/pr66345.c: Fix assumption about size_t type.

From-SVN: r224924

9 years agobasic_string.h (basic_string<>::front()): Add !empty debug check.
François Dumont [Wed, 24 Jun 2015 20:12:05 +0000 (20:12 +0000)]
basic_string.h (basic_string<>::front()): Add !empty debug check.

2015-06-24  François Dumont  <fdumont@gcc.gnu.org>

* include/bits/basic_string.h (basic_string<>::front()): Add !empty
debug check.
(basic_string<>::back()): Likewise.
(basic_string<>::pop_back()): Likewise.

From-SVN: r224919

9 years agore PR c++/66647 (ICE: in instantiate_class_template_1, at cp/pt.c:9254)
Jason Merrill [Wed, 24 Jun 2015 19:59:28 +0000 (15:59 -0400)]
re PR c++/66647 (ICE: in instantiate_class_template_1, at cp/pt.c:9254)

PR c++/66647
* pt.c (dependent_type_p_r): Check for dependent alias template
specialization sooner.

From-SVN: r224917

9 years ago[AArch64] Fix another ICE with -mgeneral-regs-only
Alan Lawrence [Wed, 24 Jun 2015 16:26:38 +0000 (16:26 +0000)]
[AArch64] Fix another ICE with -mgeneral-regs-only

gcc/:

* config/aarch64/aarch64.md (<optab><fcvt_target><GPF:mode>2):
Condition on TARGET_FLOAT.

gcc/testsuite/:

* gcc.target/aarch64/mgeneral-regs_3.c: New.

From-SVN: r224910

9 years ago[AArch64 Doc] Clarify feature modifiers {no,}{fp,simd,crypto}
Alan Lawrence [Wed, 24 Jun 2015 16:15:53 +0000 (16:15 +0000)]
[AArch64 Doc] Clarify feature modifiers {no,}{fp,simd,crypto}

gcc:

* doc/invoke.texi: Clarify AArch64 feature modifiers (no)fp, (no)simd
and (no)crypto.

From-SVN: r224909

9 years ago[AArch64] Fix ICES with -mgeneral-regs-only / -march=...+nofp
Alan Lawrence [Wed, 24 Jun 2015 16:13:28 +0000 (16:13 +0000)]
[AArch64] Fix ICES with -mgeneral-regs-only / -march=...+nofp

gcc/ChangeLog:

* config/aarch64/aarch64-protos.h (aarch64_err_no_fpadvsimd): New.

* config/aarch64/aarch64.md (mov<mode>/GPF, movtf): Use
aarch64_err_no_fpadvsimd.

* config/aarch64/aarch64.c (aarch64_err_no_fpadvsimd): New.
(aarch64_layout_arg, aarch64_init_cumulative_args): Use
aarch64_err_no_fpadvsimd if !TARGET_FLOAT and we need FP regs.
(aarch64_expand_builtin_va_start, aarch64_setup_incoming_varargs):
Turn error into assert, test TARGET_FLOAT.
(aarch64_gimplify_va_arg_expr): Use aarch64_err_no_fpadvsimd, test
TARGET_FLOAT.

gcc/testsuite/ChangeLog:

* gcc.target/aarch64/mgeneral-regs_1.c: New file.
* gcc.target/aarch64/mgeneral-regs_2.c: New file.
* gcc.target/aarch64/nofp_1.c: New file.

From-SVN: r224908

9 years ago* dwarf2out.c (gen_formal_parameter_die): Remove assert.
Aldy Hernandez [Wed, 24 Jun 2015 15:58:13 +0000 (15:58 +0000)]
* dwarf2out.c (gen_formal_parameter_die): Remove assert.

From-SVN: r224907

9 years agore PR c++/66501 (Default move assignment does not move array members)
Jason Merrill [Wed, 24 Jun 2015 15:40:08 +0000 (11:40 -0400)]
re PR c++/66501 (Default move assignment does not move array members)

PR c++/66501
* class.c (type_has_nontrivial_assignment): Remove.
* cp-tree.h: Remove declaration.
* init.c (vec_copy_assign_is_trivial): New.
(build_vec_init): Use it.

From-SVN: r224904

9 years agoImplement N3928 - Extending static_assert
Edward Smith-Rowland [Wed, 24 Jun 2015 15:27:04 +0000 (15:27 +0000)]
Implement N3928 - Extending static_assert

cp/

2015-06-24  Edward Smith-Rowland  <3dw4rd@verizon.net>

Implement N3928 - Extending static_assert
* parser.c (cp_parser_static_assert): Support static_assert with
no message string.  Supply an empty string in this case.
* semantics.c (finish_static_assert): Don't try to print a message if
the message strnig is empty.

testsuite/

2015-06-24  Edward Smith-Rowland  <3dw4rd@verizon.net>

Implement N3928 - Extending static_assert
* g++.dg/cpp0x/static_assert8.C: Adjust.
* g++.dg/cpp0x/static_assert12.C: New.
* g++.dg/cpp0x/static_assert13.C: New.
* g++.dg/cpp1y/static_assert1.C: New.
* g++.dg/cpp1y/static_assert2.C: New.
* g++.dg/cpp1z/static_assert-nomsg.C: New.

From-SVN: r224903

9 years agore PR c++/65750 (misinterpret in a virtual member function with a C++11 style functio...
Adam Butcher [Wed, 24 Jun 2015 15:11:06 +0000 (16:11 +0100)]
re PR c++/65750 (misinterpret in a virtual member function with a C++11 style function signature)

/cp
2015-06-24  Adam Butcher  <adam@jessamine.co.uk>

PR c++/65750
* parser.c (cp_parser_simple_type_specifier): Don't synthesize
implicit template parm if 'auto' is a placeholder for trailing
return type.

/testsuite
2015-06-24  Adam Butcher  <adam@jessamine.co.uk>

PR c++/65750
* g++.dg/cpp0x/trailing11.C: New.

From-SVN: r224901

9 years agotree-vect-slp.c (vect_build_slp_tree_1): Init vectype.
Ilya Enkovich [Wed, 24 Jun 2015 14:09:46 +0000 (14:09 +0000)]
tree-vect-slp.c (vect_build_slp_tree_1): Init vectype.

* tree-vect-slp.c (vect_build_slp_tree_1): Init vectype.

From-SVN: r224900

9 years agoSkip tests for inappropriate multilibs.
Ramana Radhakrishnan [Wed, 24 Jun 2015 14:08:03 +0000 (14:08 +0000)]
Skip tests for inappropriate multilibs.

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

* gcc.target/arm/fixed_float_conversion.c: Skip for inappropriate
          multilibs.
* gcc.target/arm/memset-inline-10.c: Likewise.
* gcc.target/arm/pr58784.c: Likewise.
* gcc.target/arm/pr59985.C: Likewise.
* gcc.target/arm/vfp-1.c: Likewise and test only for the non fma cases.

From-SVN: r224899

9 years ago[PATCH][AARCH64]Add ACLE predefined marcos: __ARM_ALIGN_MAX_PWR and
Renlin Li [Wed, 24 Jun 2015 13:36:53 +0000 (13:36 +0000)]
[PATCH][AARCH64]Add ACLE predefined marcos: __ARM_ALIGN_MAX_PWR and
__ARM_ALIGN_MAX_STACK_PWR

gcc/

2015-06-24 Renlin Li <renlin.li@arm.com>

* config/aarch64/aarch64.h(TARGET_CPU_CPP_BUILTINS): Add
__ARM_ALIGN_MAX_PWR, __ARM_ALIGN_MAX_STACK_PWR.

gcc/testsuite/

2015-06-24  Renlin Li  <renlin.li@arm.com>

* gcc.target/aarch64/arm_align_max_pwr.c: New.
* gcc.target/aarch64/arm_align_max_stack_pwr.c: New.

From-SVN: r224898

9 years agoget_neg.cc: Adjust dg-error line numbers.
Paolo Carlini [Wed, 24 Jun 2015 12:18:29 +0000 (12:18 +0000)]
get_neg.cc: Adjust dg-error line numbers.

2015-06-24  Paolo Carlini  <paolo.carlini@oracle.com>

* testsuite/23_containers/array/tuple_interface/get_neg.cc: Adjust
dg-error line numbers.
* testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
Likewise.

From-SVN: r224897

9 years agoRevert fix for PR c++/30044
Patrick Palka [Wed, 24 Jun 2015 12:10:57 +0000 (12:10 +0000)]
Revert fix for PR c++/30044

gcc/cp/ChangeLog:

Revert:
2015-06-23  Patrick Palka  <ppalka@gcc.gnu.org>

PR c++/30044
* parser.c (cp_parser_template_parameter_list): Update
current_template_parms right after processing a paramater.
* pt.c (template_parms_to_args): Remove obsolete hack for
giving template template arguments the proper level.
(check_default_tmpl_args): Account for tested template
parameter_lists.
(splite_late_return_type): Remove obsolete hack for giving
template template arguments the proper level.

gcc/testsuite/ChangeLog:

Revert:
2015-06-23  Patrick Palka  <ppalka@gcc.gnu.org>

PR c++/30044
* g++.dg/cpp0x/auto45.C: New test.
* g++.dg/template/pr30044.C: New test.
* g++.dg/template/crash83.C: Accept any error string.
* g++.dg/cpp0x/variadic18.C: Adjust to not shadow template
parameters.
* g++.dg/cpp0x/variadic18.C: Likewise
* g++.dg/template/canon-type-13.C: Likewise.
* g++.old-deja/g++.pt/ttp42.C: Likewise.

From-SVN: r224896

9 years agogenmatch.c (enum tree_code): Add VIEW_CONVERT[012].
Richard Biener [Wed, 24 Jun 2015 10:53:53 +0000 (10:53 +0000)]
genmatch.c (enum tree_code): Add VIEW_CONVERT[012].

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

* genmatch.c (enum tree_code): Add VIEW_CONVERT[012].
(main): Likewise.
(lower_opt_convert): Support lowering of conditional view_convert.
(parser::parse_operation): Likewise.
(parser::parse_for): Likewise.

From-SVN: r224893