1. 29 Jun, 2015 4 commits
  2. 28 Jun, 2015 4 commits
  3. 27 Jun, 2015 5 commits
  4. 26 Jun, 2015 27 commits
    • gimple.c (gimple_call_set_fndecl): Remove. · 5fa9163d
      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
      Andrew MacLeod committed
    • c-common.c (check_main_parameter_types): Use VECTOR_TYPE_P or VECTOR_INTEGER_TYPE_P throughout. · 31521951
      	* 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
      Marek Polacek committed
    • re PR c++/66216 (Defaulted Operators and constructors not working with aligned attribute) · e0ff153d
      	PR c++/66216
      	* class.c (finish_struct): Call fixup_attribute_variants.
      
      From-SVN: r225087
      Jason Merrill committed
    • re PR c++/66684 (ICE in merge_exception_specifiers, at cp/typeck2.c:2114) · 9579e906
      	PR c++/66684
      	* typeck2.c (merge_exception_specifiers): Allow different
      	noexcept-specifiers if we've had errors.
      
      From-SVN: r225086
      Jason Merrill committed
    • re PR c++/66255 (ice in retrieve_specialization) · 7498239e
      	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
      Jason Merrill committed
    • re PR c++/66067 (tree check ICE: accessed elt 1 of tree_vec with 0 elts in… · d15364ce
      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
      Jason Merrill committed
    • re PR c++/66654 (ice in digest_init_r, at cp/typeck2.c:1103) · 7457279b
      	PR c++/66654
      	* typeck2.c (digest_init_r): Only expect reshaping if the class is
      	aggregate.
      
      From-SVN: r225082
      Jason Merrill committed
    • Implement N4258 (Cleaning-up noexcept in the Library rev 3) · a2b5fdcb
      	* 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
      Jonathan Wakely committed
    • array-notation-common.c (find_rank): Use INDIRECT_REF_P. · 22d03525
      	* 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
      Marek Polacek committed
    • stl_bvector.h (vector<bool>::vector()): Add noexcept. · 504a5fe6
      	* 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
      Jonathan Wakely committed
    • hash-map.h (hash_map::traverse): Use the definition of the Key typedef rather… · 5265e7ba
      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
      Richard Sandiford committed
    • Fix PR 66301 - check for dump_file in eliminate_dom_walker::before_dom_children · 1218f76f
      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
      Martin Jambor committed
    • [Patch AArch64 4/4] Add -moverride tuning command, and wire it up for · 8dec06f2
       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
      James Greenhalgh committed
    • [AArch64][2/2] Implement -fpic for -mcmodel=small · 1b1e81f8
      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
      Jiong Wang committed
    • [Patch AArch64 3/4] De-const-ify struct tune_params · b175b679
      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
      James Greenhalgh committed
    • [Patch AArch64 2/4] Control the FMA steering pass in tuning structures rather… · dfba575f
      [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
      James Greenhalgh committed
    • [Patch AArch64 1/4] Define candidates for instruction fusion in a .def file · 665dd6f3
      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
      James Greenhalgh committed
    • [AArch64][1/2] Rename SYMBOL_SMALL_GOT to SYMBOL_SMALL_GOT_4G · 6642bdb4
      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
      Jiong Wang committed
    • re PR bootstrap/66638 (profiledbootstrap failure on x86-64 with LTO) · 8710e302
      
      	PR bootstrap/66638
      	* tree-ssa-loop-niter.c (loop_exits_before_overflow): Skip if
      	assertion failed.  Remove assertion itself.
      
      From-SVN: r225008
      Bin Cheng committed
    • fold-const.c (fold_binary_loc): Remove -A CMP -B -> A CMP B and -A CMP CST -> A… · 66e1cacf
      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
      Richard Biener committed
    • Minor comment tweak. · 8afaddaa
      From-SVN: r225005
      Eric Botcazou committed
    • trans.c (Handled_Sequence_Of_Statements_to_gnu): When not optimizing the CFG... · bc583f7a
      	* 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
      Eric Botcazou committed
    • gigi.h (note_types_used_by_globals): Delete. · a22b794d
      	* 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
      Eric Botcazou committed
    • gigi.h (create_var_decl_1): Rename into... · 6249559b
      	* 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
      Eric Botcazou committed
    • match.pd ((x | y) & ~(x & y) -> x ^ y, (x | y) & (~x ^ y) -> x & y): New patterns. · 66cc6273
      	* 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
      Marek Polacek committed
    • rtl.h (emit): Add an optional boolean parameter to control whether barriers are emitted. · 9d8895c9
      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
      Richard Sandiford committed