1. 24 Apr, 2014 27 commits
  2. 23 Apr, 2014 13 commits
    • Fix DEFHOOKPOD argument order in target-hooks-macros.h comment · 74e4d71a
      2014-04-23  Tom de Vries  <tom@codesourcery.com>
      
      	* target-hooks-macros.h: Fix DEFHOOKPOD argument order in comment.
      
      From-SVN: r209725
      Tom de Vries committed
    • Fix for c++/PR57958 · 3734964f
      From-SVN: r209721
      Dinar Temirbulatov committed
    • Change is-a.h to support typedefs of pointers · 7de90a6c
      gcc/
      	* is-a.h: Update comments to reflect the following changes to the
      	"pointerness" of the API, making the template parameter match the
      	return type, allowing use of is-a.h with typedefs of pointers.
      	(is_a_helper::cast): Return a T rather then a pointer to a T, so
      	that the return type matches the parameter to the is_a_helper.
      	(as_a): Likewise.
      	(dyn_cast): Likewise.
      
      	* cgraph.c (cgraph_node_for_asm): Update for removal of implicit
      	pointer from the is-a.h API.
      
      	* cgraph.h (is_a_helper <cgraph_node>::test): Convert to...
      	(is_a_helper <cgraph_node *>::test): ...this, matching change to
      	is-a.h API.
      	(is_a_helper <varpool_node>::test): Likewise, convert to...
      	(is_a_helper <varpool_node *>::test): ...this.
      
      	(varpool_first_variable): Update for removal of implicit pointer
      	from the is-a.h API.
      	(varpool_next_variable): Likewise.
      	(varpool_first_static_initializer): Likewise.
      	(varpool_next_static_initializer): Likewise.
      	(varpool_first_defined_variable): Likewise.
      	(varpool_next_defined_variable): Likewise.
      	(cgraph_first_defined_function): Likewise.
      	(cgraph_next_defined_function): Likewise.
      	(cgraph_first_function): Likewise.
      	(cgraph_next_function): Likewise.
      	(cgraph_first_function_with_gimple_body): Likewise.
      	(cgraph_next_function_with_gimple_body): Likewise.
      	(cgraph_alias_target): Likewise.
      	(varpool_alias_target): Likewise.
      	(cgraph_function_or_thunk_node): Likewise.
      	(varpool_variable_node): Likewise.
      	(symtab_real_symbol_p): Likewise.
      	* cgraphunit.c (referred_to_p): Likewise.
      	(analyze_functions): Likewise.
      	(handle_alias_pairs): Likewise.
      	* gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
      	* gimple-ssa.h (gimple_vuse_op): Likewise.
      	(gimple_vdef_op): Likewise.
      	* gimple-streamer-in.c (input_gimple_stmt): Likewise.
      	* gimple.c (gimple_build_asm_1): Likewise.
      	(gimple_build_try): Likewise.
      	(gimple_build_resx): Likewise.
      	(gimple_build_eh_dispatch): Likewise.
      	(gimple_build_omp_for): Likewise.
      	(gimple_omp_for_set_clauses): Likewise.
      
      	* gimple.h (is_a_helper <gimple_statement_asm>::test): Convert to...
      	(is_a_helper <gimple_statement_asm *>::test): ...this.
      	(is_a_helper <gimple_statement_bind>::test): Convert to...
      	(is_a_helper <gimple_statement_bind *>::test): ...this.
      	(is_a_helper <gimple_statement_call>::test): Convert to...
      	(is_a_helper <gimple_statement_call *>::test): ...this.
      	(is_a_helper <gimple_statement_catch>::test): Convert to...
      	(is_a_helper <gimple_statement_catch *>::test): ...this.
      	(is_a_helper <gimple_statement_resx>::test): Convert to...
      	(is_a_helper <gimple_statement_resx *>::test): ...this.
      	(is_a_helper <gimple_statement_eh_dispatch>::test): Convert to...
      	(is_a_helper <gimple_statement_eh_dispatch *>::test): ...this.
      	(is_a_helper <gimple_statement_eh_else>::test): Convert to...
      	(is_a_helper <gimple_statement_eh_else *>::test): ...this.
      	(is_a_helper <gimple_statement_eh_filter>::test): Convert to...
      	(is_a_helper <gimple_statement_eh_filter *>::test): ...this.
      	(is_a_helper <gimple_statement_eh_mnt>::test): Convert to...
      	(is_a_helper <gimple_statement_eh_mnt *>::test): ...this.
      	(is_a_helper <gimple_statement_omp_atomic_load>::test): Convert to...
      	(is_a_helper <gimple_statement_omp_atomic_load *>::test): ...this.
      	(is_a_helper <gimple_statement_omp_atomic_store>::test): Convert to...
      	(is_a_helper <gimple_statement_omp_atomic_store *>::test): ...this.
      	(is_a_helper <gimple_statement_omp_return>::test): Convert to...
      	(is_a_helper <gimple_statement_omp_return *>::test): ...this.
      	(is_a_helper <gimple_statement_omp_continue>::test): Convert to...
      	(is_a_helper <gimple_statement_omp_continue *>::test): ...this.
      	(is_a_helper <gimple_statement_omp_critical>::test): Convert to...
      	(is_a_helper <gimple_statement_omp_critical *>::test): ...this.
      	(is_a_helper <gimple_statement_omp_for>::test): Convert to...
      	(is_a_helper <gimple_statement_omp_for *>::test): ...this.
      	(is_a_helper <gimple_statement_omp_taskreg>::test): Convert to...
      	(is_a_helper <gimple_statement_omp_taskreg *>::test): ...this.
      	(is_a_helper <gimple_statement_omp_parallel>::test): Convert to...
      	(is_a_helper <gimple_statement_omp_parallel *>::test): ...this.
      	(is_a_helper <gimple_statement_omp_target>::test): Convert to...
      	(is_a_helper <gimple_statement_omp_target *>::test): ...this.
      	(is_a_helper <gimple_statement_omp_sections>::test): Convert to...
      	(is_a_helper <gimple_statement_omp_sections *>::test): ...this.
      	(is_a_helper <gimple_statement_omp_single>::test): Convert to...
      	(is_a_helper <gimple_statement_omp_single *>::test): ...this.
      	(is_a_helper <gimple_statement_omp_teams>::test): Convert to...
      	(is_a_helper <gimple_statement_omp_teams *>::test): ...this.
      	(is_a_helper <gimple_statement_omp_task>::test): Convert to...
      	(is_a_helper <gimple_statement_omp_task *>::test): ...this.
      	(is_a_helper <gimple_statement_phi>::test): Convert to...
      	(is_a_helper <gimple_statement_phi *>::test): ...this.
      	(is_a_helper <gimple_statement_transaction>::test): Convert to...
      	(is_a_helper <gimple_statement_transaction *>::test): ...this.
      	(is_a_helper <gimple_statement_try>::test): Convert to...
      	(is_a_helper <gimple_statement_try *>::test): ...this.
      	(is_a_helper <gimple_statement_wce>::test): Convert to...
      	(is_a_helper <gimple_statement_wce *>::test): ...this.
      	(is_a_helper <const gimple_statement_asm>::test): Convert to...
      	(is_a_helper <const gimple_statement_asm *>::test): ...this.
      	(is_a_helper <const gimple_statement_bind>::test): Convert to...
      	(is_a_helper <const gimple_statement_bind *>::test): ...this.
      	(is_a_helper <const gimple_statement_call>::test): Convert to...
      	(is_a_helper <const gimple_statement_call *>::test): ...this.
      	(is_a_helper <const gimple_statement_catch>::test): Convert to...
      	(is_a_helper <const gimple_statement_catch *>::test): ...this.
      	(is_a_helper <const gimple_statement_resx>::test): Convert to...
      	(is_a_helper <const gimple_statement_resx *>::test): ...this.
      	(is_a_helper <const gimple_statement_eh_dispatch>::test):
      	Convert to...
      	(is_a_helper <const gimple_statement_eh_dispatch *>::test):
      	...this.
      	(is_a_helper <const gimple_statement_eh_filter>::test): Convert
      	to...
      	(is_a_helper <const gimple_statement_eh_filter *>::test): ...this.
      	(is_a_helper <const gimple_statement_omp_atomic_load>::test):
      	Convert to...
      	(is_a_helper <const gimple_statement_omp_atomic_load *>::test):
      	...this.
      	(is_a_helper <const gimple_statement_omp_atomic_store>::test):
      	Convert to...
      	(is_a_helper <const gimple_statement_omp_atomic_store *>::test):
      	...this.
      	(is_a_helper <const gimple_statement_omp_return>::test): Convert
      	to...
      	(is_a_helper <const gimple_statement_omp_return *>::test): ...this.
      	(is_a_helper <const gimple_statement_omp_continue>::test): Convert
      	to...
      	(is_a_helper <const gimple_statement_omp_continue *>::test): ...this.
      	(is_a_helper <const gimple_statement_omp_critical>::test): Convert
      	to...
      	(is_a_helper <const gimple_statement_omp_critical *>::test): ...this.
      	(is_a_helper <const gimple_statement_omp_for>::test): Convert to...
      	(is_a_helper <const gimple_statement_omp_for *>::test): ...this.
      	(is_a_helper <const gimple_statement_omp_taskreg>::test): Convert
      	to...
      	(is_a_helper <const gimple_statement_omp_taskreg *>::test): ...this.
      	(is_a_helper <const gimple_statement_omp_parallel>::test): Convert
      	to...
      	(is_a_helper <const gimple_statement_omp_parallel *>::test): ...this.
      	(is_a_helper <const gimple_statement_omp_target>::test): Convert
      	to...
      	(is_a_helper <const gimple_statement_omp_target *>::test): ...this.
      	(is_a_helper <const gimple_statement_omp_sections>::test): Convert
      	to...
      	(is_a_helper <const gimple_statement_omp_sections *>::test): ...this.
      	(is_a_helper <const gimple_statement_omp_single>::test): Convert
      	to...
      	(is_a_helper <const gimple_statement_omp_single *>::test): ...this.
      	(is_a_helper <const gimple_statement_omp_teams>::test): Convert
      	to...
      	(is_a_helper <const gimple_statement_omp_teams *>::test): ...this.
      	(is_a_helper <const gimple_statement_omp_task>::test): Convert
      	to...
      	(is_a_helper <const gimple_statement_omp_task *>::test): ...this.
      	(is_a_helper <const gimple_statement_phi>::test): Convert to...
      	(is_a_helper <const gimple_statement_phi *>::test): ...this.
      	(is_a_helper <const gimple_statement_transaction>::test): Convert
      	to...
      	(is_a_helper <const gimple_statement_transaction *>::test): ...this.
      	(is_a_helper <const gimple_statement_with_ops>::test): Convert
      	to...
      	(is_a_helper <const gimple_statement_with_ops *>::test): ...this.
      	(is_a_helper <gimple_statement_with_ops>::test): Convert to...
      	(is_a_helper <gimple_statement_with_ops *>::test): ...this.
      	(is_a_helper <const gimple_statement_with_memory_ops>::test):
      	Convert to...
      	(is_a_helper <const gimple_statement_with_memory_ops *>::test):
      	...this.
      	(is_a_helper <gimple_statement_with_memory_ops>::test): Convert
      	to...
      	(is_a_helper <gimple_statement_with_memory_ops *>::test): ...this.
      
      	(gimple_use_ops): Update for removal of implicit pointer from the
      	is-a.h API.
      	(gimple_set_use_ops): Likewise.
      	(gimple_vuse): Likewise.
      	(gimple_vdef): Likewise.
      	(gimple_vuse_ptr): Likewise.
      	(gimple_vdef_ptr): Likewise.
      	(gimple_set_vuse): Likewise.
      	(gimple_set_vdef): Likewise.
      	(gimple_omp_return_set_lhs): Likewise.
      	(gimple_omp_return_lhs): Likewise.
      	(gimple_omp_return_lhs_ptr): Likewise.
      	(gimple_call_fntype): Likewise.
      	(gimple_call_set_fntype): Likewise.
      	(gimple_call_set_internal_fn): Likewise.
      	(gimple_call_use_set): Likewise.
      	(gimple_call_clobber_set): Likewise.
      	(gimple_bind_vars): Likewise.
      	(gimple_bind_set_vars): Likewise.
      	(gimple_bind_body_ptr): Likewise.
      	(gimple_bind_set_body): Likewise.
      	(gimple_bind_add_stmt): Likewise.
      	(gimple_bind_block): Likewise.
      	(gimple_bind_set_block): Likewise.
      	(gimple_asm_ninputs): Likewise.
      	(gimple_asm_noutputs): Likewise.
      	(gimple_asm_nclobbers): Likewise.
      	(gimple_asm_nlabels): Likewise.
      	(gimple_asm_input_op): Likewise.
      	(gimple_asm_input_op_ptr): Likewise.
      	(gimple_asm_output_op): Likewise.
      	(gimple_asm_output_op_ptr): Likewise.
      	(gimple_asm_set_output_op): Likewise.
      	(gimple_asm_clobber_op): Likewise.
      	(gimple_asm_set_clobber_op): Likewise.
      	(gimple_asm_label_op): Likewise.
      	(gimple_asm_set_label_op): Likewise.
      	(gimple_asm_string): Likewise.
      	(gimple_catch_types): Likewise.
      	(gimple_catch_types_ptr): Likewise.
      	(gimple_catch_handler_ptr): Likewise.
      	(gimple_catch_set_types): Likewise.
      	(gimple_catch_set_handler): Likewise.
      	(gimple_eh_filter_types): Likewise.
      	(gimple_eh_filter_types_ptr): Likewise.
      	(gimple_eh_filter_failure_ptr): Likewise.
      	(gimple_eh_filter_set_types): Likewise.
      	(gimple_eh_filter_set_failure): Likewise.
      	(gimple_eh_must_not_throw_fndecl): Likewise.
      	(gimple_eh_must_not_throw_set_fndecl): Likewise.
      	(gimple_eh_else_n_body_ptr): Likewise.
      	(gimple_eh_else_e_body_ptr): Likewise.
      	(gimple_eh_else_set_n_body): Likewise.
      	(gimple_eh_else_set_e_body): Likewise.
      	(gimple_try_eval_ptr): Likewise.
      	(gimple_try_cleanup_ptr): Likewise.
      	(gimple_try_set_eval): Likewise.
      	(gimple_try_set_cleanup): Likewise.
      	(gimple_wce_cleanup_ptr): Likewise.
      	(gimple_wce_set_cleanup): Likewise.
      	(gimple_phi_capacity): Likewise.
      	(gimple_phi_num_args): Likewise.
      	(gimple_phi_result): Likewise.
      	(gimple_phi_result_ptr): Likewise.
      	(gimple_phi_set_result): Likewise.
      	(gimple_phi_arg): Likewise.
      	(gimple_phi_set_arg): Likewise.
      	(gimple_resx_region): Likewise.
      	(gimple_resx_set_region): Likewise.
      	(gimple_eh_dispatch_region): Likewise.
      	(gimple_eh_dispatch_set_region): Likewise.
      	(gimple_omp_critical_name): Likewise.
      	(gimple_omp_critical_name_ptr): Likewise.
      	(gimple_omp_critical_set_name): Likewise.
      	(gimple_omp_for_clauses): Likewise.
      	(gimple_omp_for_clauses_ptr): Likewise.
      	(gimple_omp_for_set_clauses): Likewise.
      	(gimple_omp_for_collapse): Likewise.
      	(gimple_omp_for_index): Likewise.
      	(gimple_omp_for_index_ptr): Likewise.
      	(gimple_omp_for_set_index): Likewise.
      	(gimple_omp_for_initial): Likewise.
      	(gimple_omp_for_initial_ptr): Likewise.
      	(gimple_omp_for_set_initial): Likewise.
      	(gimple_omp_for_final): Likewise.
      	(gimple_omp_for_final_ptr): Likewise.
      	(gimple_omp_for_set_final): Likewise.
      	(gimple_omp_for_incr): Likewise.
      	(gimple_omp_for_incr_ptr): Likewise.
      	(gimple_omp_for_set_incr): Likewise.
      	(gimple_omp_for_pre_body_ptr): Likewise.
      	(gimple_omp_for_set_pre_body): Likewise.
      	(gimple_omp_parallel_clauses): Likewise.
      	(gimple_omp_parallel_clauses_ptr): Likewise.
      	(gimple_omp_parallel_set_clauses): Likewise.
      	(gimple_omp_parallel_child_fn): Likewise.
      	(gimple_omp_parallel_child_fn_ptr): Likewise.
      	(gimple_omp_parallel_set_child_fn): Likewise.
      	(gimple_omp_parallel_data_arg): Likewise.
      	(gimple_omp_parallel_data_arg_ptr): Likewise.
      	(gimple_omp_parallel_set_data_arg): Likewise.
      	(gimple_omp_task_clauses): Likewise.
      	(gimple_omp_task_clauses_ptr): Likewise.
      	(gimple_omp_task_set_clauses): Likewise.
      	(gimple_omp_task_child_fn): Likewise.
      	(gimple_omp_task_child_fn_ptr): Likewise.
      	(gimple_omp_task_set_child_fn): Likewise.
      	(gimple_omp_task_data_arg): Likewise.
      	(gimple_omp_task_data_arg_ptr): Likewise.
      	(gimple_omp_task_set_data_arg): Likewise.
      	(gimple_omp_taskreg_clauses): Likewise.
      	(gimple_omp_taskreg_clauses_ptr): Likewise.
      	(gimple_omp_taskreg_set_clauses): Likewise.
      	(gimple_omp_taskreg_child_fn): Likewise.
      	(gimple_omp_taskreg_child_fn_ptr): Likewise.
      	(gimple_omp_taskreg_set_child_fn): Likewise.
      	(gimple_omp_taskreg_data_arg): Likewise.
      	(gimple_omp_taskreg_data_arg_ptr): Likewise.
      	(gimple_omp_taskreg_set_data_arg): Likewise.
      	(gimple_omp_task_copy_fn): Likewise.
      	(gimple_omp_task_copy_fn_ptr): Likewise.
      	(gimple_omp_task_set_copy_fn): Likewise.
      	(gimple_omp_task_arg_size): Likewise.
      	(gimple_omp_task_arg_size_ptr): Likewise.
      	(gimple_omp_task_set_arg_size): Likewise.
      	(gimple_omp_task_arg_align): Likewise.
      	(gimple_omp_task_arg_align_ptr): Likewise.
      	(gimple_omp_task_set_arg_align): Likewise.
      	(gimple_omp_single_clauses): Likewise.
      	(gimple_omp_single_clauses_ptr): Likewise.
      	(gimple_omp_single_set_clauses): Likewise.
      	(gimple_omp_target_clauses): Likewise.
      	(gimple_omp_target_clauses_ptr): Likewise.
      	(gimple_omp_target_set_clauses): Likewise.
      	(gimple_omp_target_child_fn): Likewise.
      	(gimple_omp_target_child_fn_ptr): Likewise.
      	(gimple_omp_target_set_child_fn): Likewise.
      	(gimple_omp_target_data_arg): Likewise.
      	(gimple_omp_target_data_arg_ptr): Likewise.
      	(gimple_omp_target_set_data_arg): Likewise.
      	(gimple_omp_teams_clauses): Likewise.
      	(gimple_omp_teams_clauses_ptr): Likewise.
      	(gimple_omp_teams_set_clauses): Likewise.
      	(gimple_omp_sections_clauses): Likewise.
      	(gimple_omp_sections_clauses_ptr): Likewise.
      	(gimple_omp_sections_set_clauses): Likewise.
      	(gimple_omp_sections_control): Likewise.
      	(gimple_omp_sections_control_ptr): Likewise.
      	(gimple_omp_sections_set_control): Likewise.
      	(gimple_omp_for_set_cond): Likewise.
      	(gimple_omp_for_cond): Likewise.
      	(gimple_omp_atomic_store_set_val): Likewise.
      	(gimple_omp_atomic_store_val): Likewise.
      	(gimple_omp_atomic_store_val_ptr): Likewise.
      	(gimple_omp_atomic_load_set_lhs): Likewise.
      	(gimple_omp_atomic_load_lhs): Likewise.
      	(gimple_omp_atomic_load_lhs_ptr): Likewise.
      	(gimple_omp_atomic_load_set_rhs): Likewise.
      	(gimple_omp_atomic_load_rhs): Likewise.
      	(gimple_omp_atomic_load_rhs_ptr): Likewise.
      	(gimple_omp_continue_control_def): Likewise.
      	(gimple_omp_continue_control_def_ptr): Likewise.
      	(gimple_omp_continue_set_control_def): Likewise.
      	(gimple_omp_continue_control_use): Likewise.
      	(gimple_omp_continue_control_use_ptr): Likewise.
      	(gimple_omp_continue_set_control_use): Likewise.
      	(gimple_transaction_body_ptr): Likewise.
      	(gimple_transaction_label): Likewise.
      	(gimple_transaction_label_ptr): Likewise.
      	(gimple_transaction_set_body): Likewise.
      	(gimple_transaction_set_label): Likewise.
      
      	* ipa-devirt.c (build_type_inheritance_graph): Likewise.
      	* ipa-inline-analysis.c (inline_write_summary): Likewise.
      	* ipa-ref.c (ipa_record_reference): Likewise.
      	* ipa-reference.c (analyze_function): Likewise.
      	(ipa_reference_write_optimization_summary): Likewise.
      	* ipa.c (symtab_remove_unreachable_nodes): Likewise.
      	(address_taken_from_non_vtable_p): Likewise.
      	(comdat_can_be_unshared_p_1): Likewise.
      	* lto-cgraph.c (lto_output_ref): Likewise.
      	(add_references): Likewise.
      	(compute_ltrans_boundary): Likewise.
      	(output_symtab): Likewise.
      	(input_ref): Likewise.
      	(input_cgraph_1): Likewise.
      	(output_cgraph_opt_summary): Likewise.
      	* lto-streamer-out.c (lto_output): Likewise.
      	(output_symbol_p): Likewise.
      	* lto-streamer.h (lsei_next_function_in_partition): Likewise.
      	(lsei_start_function_in_partition): Likewise.
      	(lsei_next_variable_in_partition): Likewise.
      	(lsei_start_variable_in_partition): Likewise.
      	* symtab.c (insert_to_assembler_name_hash): Likewise.
      	(unlink_from_assembler_name_hash): Likewise.
      	(symtab_unregister_node): Likewise.
      	(symtab_remove_node): Likewise.
      	(dump_symtab_node): Likewise.
      	(verify_symtab_base): Likewise.
      	(verify_symtab_node): Likewise.
      	(symtab_make_decl_local): Likewise.
      	(symtab_alias_ultimate_target): Likewise.
      	(symtab_resolve_alias): Likewise.
      	(symtab_get_symbol_partitioning_class): Likewise.
      	* tree-phinodes.c (allocate_phi_node): Likewise.
      	(reserve_phi_args_for_new_edge): Likewise.
      	(remove_phi_args): Likewise.
      	* varpool.c (varpool_node_for_asm): Likewise.
      	(varpool_remove_unreferenced_decls): Likewise.
      
      gcc/lto/
      	* lto-partition.c (add_references_to_partition): Update for
      	removal of implicit pointer from the is-a.h API.
      	(add_symbol_to_partition_1): Likewise.
      	(contained_in_symbol): Likewise.
      	(undo_partition): Likewise.
      	(lto_balanced_map): Likewise.
      	(promote_symbol): Likewise.
      	* lto-symtab.c (lto_symtab_merge_symbols_1): Likewise.
      	(lto_symtab_merge_symbols): Likewise.
      	* lto.c (lto_wpa_write_files): Likewise.
      
      From-SVN: r209719
      David Malcolm committed
    • re PR tree-optimization/60902 (ffmpeg built with gcc 4.9 RC produces incorrect flac playback code) · 9219922e
      	PR tree-optimization/60902
      	* tree-ssa-threadedge.c
      	(record_temporary_equivalences_from_stmts_at_dest): Make sure to
      	invalidate outputs from statements that do not produce useful
      	outputs for threading.
      
      	PR tree-optimization/60902
      	* gcc.target/i386/pr60902.c: New test.
      
      From-SVN: r209716
      Jeff Law committed
    • [AArch64] VDUP Testcases · 0e4d63c5
      This patch adds vdup intrinsic testcases for AArch64. those testcases
      are nice to have, as it allows to reason about vdup consistency for
      both LE and BE compiler flavors.
      
      From-SVN: r209713
      Alex Velenko committed
    • [AARCH64] Use standard patterns for stack protection. · 36e17020
      From-SVN: r209712
      Venkataramanan Kumar committed
    • [AArch64] Fully support rotate on logical operations. · 57b77d46
      From-SVN: r209711
      Richard Earnshaw committed
    • [ARM] Initialize new tune_params values · 984c2f30
      gcc/
      
      	* config/arm/arm.c (arm_cortex_a57_tune): Initialize all fields.
      	(arm_cortex_a12_tune): Likewise.
      
      From-SVN: r209710
      James Greenhalgh committed
    • [AArch64] Add handling of bswap operations in rtx costs · 18b42b2a
      	* config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP.
      
      From-SVN: r209706
      Kyrylo Tkachov committed
    • [ARM][3/3] Recognise bitwise operations leading to SImode rev16 · ea1e9168
      	* config/arm/arm.md (arm_rev16si2): New pattern.
      	(arm_rev16si2_alt): Likewise.
      	* config/arm/arm.c (arm_new_rtx_costs): Handle rev16 case.
      
      	* gcc.target/arm/rev16.c: New test.
      
      From-SVN: r209705
      Kyrylo Tkachov committed
    • [AArch64][2/3] Recognise rev16 operations on SImode and DImode data · f7d5cf8d
             * config/aarch64/aarch64.md (rev16<mode>2): New pattern.
             (rev16<mode>2_alt): Likewise.
             * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle rev16 case.
             * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p): New.
             (aarch_rev16_shleft_mask_imm_p): Likewise.
             (aarch_rev16_p_1): Likewise.
             (aarch_rev16_p): Likewise.
             * config/arm/aarch-common-protos.h (aarch_rev16_p): Declare extern.
             (aarch_rev16_shright_mask_imm_p): Likewise.
             (aarch_rev16_shleft_mask_imm_p): Likewise.
      
             * gcc.target/aarch64/rev16_1.c: New test.
      
      From-SVN: r209704
      Kyrylo Tkachov committed
    • [ARM][1/3] Add rev field to rtx cost tables · 9ac05ae5
             * config/arm/aarch-common-protos.h (alu_cost_table): Add rev field.
             * config/arm/aarch-cost-tables.h (generic_extra_costs): Specify
             rev cost.
             (cortex_a53_extra_costs): Likewise.
             (cortex_a57_extra_costs): Likewise.
             * config/arm/arm.c (cortexa9_extra_costs): Likewise.
             (cortexa7_extra_costs): Likewise.
             (cortexa8_extra_costs): Likewise.
             (cortexa12_extra_costs): Likewise.
             (cortexa15_extra_costs): Likewise.
             (v7m_extra_costs): Likewise.
             (arm_new_rtx_costs): Handle BSWAP.
      
      From-SVN: r209703
      Kyrylo Tkachov committed
    • [ARM] Cortex-A8 rtx cost table · e0d8c86c
             * config/arm/arm.c (cortexa8_extra_costs): New table.
             (arm_cortex_a8_tune): New tuning struct.
             * config/arm/arm-cores.def (cortex-a8): Use cortex_a8 tuning struct.
      
      From-SVN: r209702
      Kyrylo Tkachov committed