Commit Graph

139196 Commits

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

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

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

	* c-typeck.c: Use VECTOR_TYPE_P throughout.

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

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

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

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

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

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

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

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

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

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

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

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

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

gcc/

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

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

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

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

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

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

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

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

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

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

From-SVN: r225014
2015-06-26 13:54:53 +00:00
Jiong Wang 6642bdb4b1 [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
2015-06-26 13:41:24 +00:00
Nathan Sidwell 569aafaaf7 * config/nvptx/nvptx.md (call_operation): Remove unused variables.
From-SVN: r225009
2015-06-26 12:33:33 +00:00
Bin Cheng 8710e30220 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
2015-06-26 11:12:20 +00:00
Richard Biener 66e1cacf60 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
2015-06-26 10:59:27 +00:00
Eric Botcazou 8afaddaace Minor comment tweak.
From-SVN: r225005
2015-06-26 10:27:01 +00:00
Eric Botcazou bc583f7a9f 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
2015-06-26 10:25:04 +00:00
Eric Botcazou a22b794dca 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
2015-06-26 10:21:54 +00:00
Eric Botcazou 6249559b62 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
2015-06-26 10:17:00 +00:00
Marek Polacek 66cc6273ba 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
2015-06-26 10:13:49 +00:00
Richard Sandiford 9d8895c934 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
2015-06-26 10:06:56 +00:00
Marek Polacek 311bd4d897 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
2015-06-26 10:03:35 +00:00
Eric Botcazou 87ab2b04ae 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
2015-06-26 10:03:22 +00:00
Ramana Radhakrishnan 63be509029 [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
2015-06-26 09:08:03 +00:00
Marek Polacek af05e6e541 * c-common.c (handle_unused_attribute): Use VAR_OR_FUNCTION_DECL_P.
From-SVN: r224996
2015-06-26 08:07:23 +00:00
Richard Biener 7318e44f9f 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
2015-06-26 07:50:12 +00:00
Uros Bizjak 6c1a2b3d11 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
2015-06-26 09:45:07 +02:00
H.J. Lu cf3e518646 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
2015-06-25 19:35:12 -07:00
GCC Administrator 93c5d1fa35 Daily bump.
From-SVN: r224992
2015-06-26 00:16:12 +00:00
Andrew MacLeod 318ed250bb 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
2015-06-25 23:45:50 +00:00
Oleg Endo 411be49d64 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
2015-06-25 23:12:07 +00:00
H.J. Lu 4115076d89 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
2015-06-25 14:31:04 -07:00
Andrew MacLeod f088993974 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
2015-06-25 18:32:38 +00:00
Jonathan Wakely 67b0404e12 * include/bits/locale_conv.h (__do_str_codecvt): Set __count.
From-SVN: r224985
2015-06-25 19:23:41 +01:00
Richard Sandiford 994c5d8542 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
2015-06-25 17:50:01 +00:00
Richard Sandiford 4bccb39eba 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
2015-06-25 17:18:12 +00:00
Richard Sandiford d58627a0c7 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
2015-06-25 17:18:00 +00:00
Richard Sandiford fb5c464a86 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
2015-06-25 17:17:20 +00:00
Richard Sandiford 203f2c4386 hash-map-traits.h (default_hashmap_traits): Delete.
gcc/
	* hash-map-traits.h (default_hashmap_traits): Delete.

From-SVN: r224976
2015-06-25 17:17:10 +00:00
Richard Sandiford 0ef08bc588 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
2015-06-25 17:16:59 +00:00
Richard Sandiford 9654754bd9 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
2015-06-25 17:16:51 +00:00
Richard Sandiford e0702244b8 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
2015-06-25 17:16:44 +00:00