Commit Graph

129447 Commits

Author SHA1 Message Date
Radovan Obradovic
4f660b159f -fuse-caller-save - Add new reg-note REG_CALL_DECL
2014-04-24  Radovan Obradovic  <robradovic@mips.com>
            Tom de Vries  <tom@codesourcery.com>

	* reg-notes.def (REG_NOTE (CALL_DECL)): New reg-note REG_CALL_DECL.
	* calls.c (expand_call, emit_library_call_value_1): Add REG_CALL_DECL
	reg-note.
	* combine.c (distribute_notes): Handle REG_CALL_DECL reg-note.
	* emit-rtl.c (try_split): Same.

Co-Authored-By: Tom de Vries <tom@codesourcery.com>

From-SVN: r209744
2014-04-24 09:34:15 +00:00
Radovan Obradovic
d996e61aaa -fuse-caller-save - Add command line option
2014-04-24  Radovan Obradovic  <robradovic@mips.com>
            Tom de Vries  <tom@codesourcery.com>

	* common.opt (fuse-caller-save): New option.

Co-Authored-By: Tom de Vries <tom@codesourcery.com>

From-SVN: r209743
2014-04-24 09:34:06 +00:00
Tejas Belagod
bbcc9c0001 [AArch64] Reverse TBL indices for big-endian.
2014-04-24  Tejas Belagod  <tejas.belagod@arm.com>

       * config/aarch64/aarch64.c (aarch64_evpc_tbl): Reverse order of elements
       for big-endian.

From-SVN: r209742
2014-04-24 10:08:48 +01:00
Richard Biener
d2d11532af expr.c (expand_expr_real_1): Avoid gimple_assign_rhs_to_tree during TER and instead use the sepops interface...
2014-04-24  Richard Biener  <rguenther@suse.de>

	* expr.c (expand_expr_real_1): Avoid gimple_assign_rhs_to_tree
	during TER and instead use the sepops interface for expanding
	non-GIMPLE_SINGLE_RHS.

From-SVN: r209741
2014-04-24 08:55:05 +00:00
Rainer Orth
8117ef9898 Only redefine ASM_PREFERRED_EH_DATA_FORMAT if necessary on Solaris/x86
* config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Only redefine
	if not HAVE_AS_IX86_DIFF_SECT_DELTA.

From-SVN: r209740
2014-04-24 08:48:34 +00:00
Rainer Orth
ab0afae309 Fix gcc_cv_as_cfi_directive test for Solaris as
* configure.ac (gcc_cv_as_cfi_directive): Support Solaris/x86
	assembler 64-bit option.
	* configure: Regenerate.

From-SVN: r209739
2014-04-24 08:38:06 +00:00
Joey Ye
1e7251a725 nsdmi-union5.C: Change to runtime test.
2014-04-24  Joey Ye  <joey.ye@arm.com>

        * g++.dg/cpp0x/nsdmi-union5.C: Change to runtime test.

From-SVN: r209738
2014-04-24 08:24:37 +00:00
Kyrylo Tkachov
683e3333a7 [AArch64] Wire up TARGET_SIMD and TARGET_FLOAT properly
* config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Check
	TARGET_SIMD rather than TARGET_GENERAL_REGS_ONLY.
	(TARGET_SIMD): Take AARCH64_ISA_SIMD into account.
	(TARGET_FLOAT): Take AARCH64_ISA_FP into account.
	(TARGET_CRYPTO): Take TARGET_SIMD into account.

From-SVN: r209737
2014-04-24 08:22:43 +00:00
Kyrylo Tkachov
c7f28cd58e [AArch64] Vectorise bswap[16,32,64]
* config/aarch64/aarch64-builtins.c
	(aarch64_builtin_vectorized_function): Handle BUILT_IN_BSWAP16,
	BUILT_IN_BSWAP32, BUILT_IN_BSWAP64.
	* config/aarch64/aarch64-simd.md (bswap<mode>): New pattern.
	* config/aarch64/aarch64-simd-builtins.def: Define vector bswap
	builtins.
	* config/aarch64/iterator.md (VDQHSD): New mode iterator.
	(Vrevsuff): New mode attribute.

	* lib/target-supports.exp (check_effective_target_vect_bswap): New.
	* gcc.dg/vect/vect-bswap16: New test.
	* gcc.dg/vect/vect-bswap32: Likewise.
	* gcc.dg/vect/vect-bswap64: Likewise.

From-SVN: r209736
2014-04-24 08:05:07 +00:00
Terry Guo
b041949151 arm.h (machine_function): Define variable after_arm_reorg here.
2014-04-24  Terry Guo  <terry.guo@arm.com>

	* config/arm/arm.h (machine_function): Define variable
	after_arm_reorg here.
	* config/arm/arm.c (after_arm_reorg): Remove the definition.
	(arm_split_constant): Update the way to access variable
	after_arm_reorg.
	(arm_reorg): Ditto.
	(arm_output_function_epilogue): Remove the reset of after_arm_reorg.

From-SVN: r209735
2014-04-24 06:40:24 +00:00
Laurynas Biveinis
080c6230de MAINTAINERS: Move myself from Reviewers to Write After Approval section.
2014-04-24  Laurynas Biveinis  <laurynas.biveinis@gmail.com>

	* MAINTAINERS: Move myself from Reviewers to Write After Approval
	section.

From-SVN: r209732
2014-04-24 03:45:14 +00:00
GCC Administrator
1543f58fdf Daily bump.
From-SVN: r209731
2014-04-24 00:17:09 +00:00
Tom de Vries
74e4d71acf Fix DEFHOOKPOD argument order in target-hooks-macros.h comment
2014-04-23  Tom de Vries  <tom@codesourcery.com>

	* target-hooks-macros.h: Fix DEFHOOKPOD argument order in comment.

From-SVN: r209725
2014-04-23 21:29:08 +00:00
Dinar Temirbulatov
3734964fdc Fix for c++/PR57958
From-SVN: r209721
2014-04-23 23:34:08 +04:00
David Malcolm
7de90a6c27 Change is-a.h to support typedefs of pointers
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
2014-04-23 19:06:40 +00:00
Jeff Law
9219922e54 re PR tree-optimization/60902 (ffmpeg built with gcc 4.9 RC produces incorrect flac playback code)
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
2014-04-23 12:04:46 -06:00
Alex Velenko
0e4d63c5ee [AArch64] VDUP Testcases
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
2014-04-23 17:02:49 +00:00
Venkataramanan Kumar
36e170203e [AARCH64] Use standard patterns for stack protection.
From-SVN: r209712
2014-04-23 17:01:39 +00:00
Richard Earnshaw
57b77d46b6 [AArch64] Fully support rotate on logical operations.
From-SVN: r209711
2014-04-23 17:00:40 +00:00
James Greenhalgh
984c2f3063 [ARM] Initialize new tune_params values
gcc/

	* config/arm/arm.c (arm_cortex_a57_tune): Initialize all fields.
	(arm_cortex_a12_tune): Likewise.

From-SVN: r209710
2014-04-23 16:37:05 +00:00
Kyrylo Tkachov
18b42b2a9c [AArch64] Add handling of bswap operations in rtx costs
* config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP.

From-SVN: r209706
2014-04-23 15:30:53 +00:00
Kyrylo Tkachov
ea1e916837 [ARM][3/3] Recognise bitwise operations leading to SImode rev16
* 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
2014-04-23 15:29:06 +00:00
Kyrylo Tkachov
f7d5cf8df3 [AArch64][2/3] Recognise rev16 operations on SImode and DImode data
* 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
2014-04-23 15:26:28 +00:00
Kyrylo Tkachov
9ac05ae590 [ARM][1/3] Add rev field to rtx cost tables
* 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
2014-04-23 15:23:14 +00:00
Kyrylo Tkachov
e0d8c86cd8 [ARM] Cortex-A8 rtx cost table
* 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
2014-04-23 15:20:25 +00:00
Kyrylo Tkachov
ba9b1a639f [ARM] Handle FMA code in rtx costs.
* config/arm/arm.c (arm_new_rtx_costs): Handle FMA.

From-SVN: r209701
2014-04-23 15:17:54 +00:00
Richard Biener
da4cfeacb0 Makefile.in (OBJS): Remove loop-unswitch.o.
2014-04-23  Richard Biener  <rguenther@suse.de>

	* Makefile.in (OBJS): Remove loop-unswitch.o.
	* loop-unswitch.c: Delete.
	* tree-pass.h (make_pass_rtl_unswitch): Remove.
	* passes.def (pass_rtl_unswitch): Likewise.
	* loop-init.c (gate_rtl_unswitch): Likewise.
	(rtl_unswitch): Likewise.
	(pass_data_rtl_unswitch): Likewise.
	(pass_rtl_unswitch): Likewise.
	(make_pass_rtl_unswitch): Likewise.
	* rtl.h (reversed_condition): Likewise.
	(compare_and_jump_seq): Likewise.
	* loop-iv.c (reversed_condition): Move here from loop-unswitch.c
	and make static.
	* loop-unroll.c (compare_and_jump_seq): Likewise.

From-SVN: r209698
2014-04-23 13:48:12 +00:00
Richard Biener
22718afe53 re PR tree-optimization/60903 (ICE: in verify_loop_structure, at cfgloop.c:1647: : edge from 13 to 14 should be marked irreducible)
2014-04-23  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/60903
	* tree-ssa-loop-im.c (analyze_memory_references): Remove
	commented code block.
	(execute_sm_if_changed): Properly apply IRREDUCIBLE_LOOP
	loop flags to newly created BBs and edges.

	* gcc.dg/torture/pr60903.c: New testcase.

From-SVN: r209694
2014-04-23 11:25:27 +00:00
Marek Polacek
c07d7c02d7 c-common.c (handle_tm_wrap_attribute): Tweak error message.
* c-common.c (handle_tm_wrap_attribute): Tweak error message.

From-SVN: r209693
2014-04-23 10:54:53 +00:00
Nick Clifton
f796136458 msp430.c (msp430_handle_option): Move function to msp430-common.c
* config/msp430/msp430.c (msp430_handle_option): Move function
	to msp430-common.c
	(msp430_option_override): Simplify mcu and mcpu option handling.
	(msp430_is_f5_mcu): Rename to msp430_use_f5_series_hwmult.  Add
	support for -mhwmult command line option.
	(has_32bit_hwmult): Rename to use_32bit_hwmult.  Add support for
	-mhwmult command line option.
	(msp430_hwmult_enabled): Delete.
	(msp43o_output_labelref): Add support for -mhwmult command line
	option.
	* config/msp430/msp430.md (mulhisi3, umulhisi3, mulsidi3)
	(umulsidi3): Likewise.
	* config/msp430/msp430.opt (mmcu): Add Report attribute.
	(mcpu, mlarge, msmall): Likewise.
	(mhwmult): New option.
	* config/msp430/msp430-protos.h (msp430_hwmult_enabled): Remove
	prototype.
	(msp430_is_f5_mcu): Remove prototype.
	(msp430_use_f5_series_hwmult): Add prototype.
	* config/msp430/msp430-opts.h: New file.
	* common/config/msp430: New directory.
	* common/config/msp430/msp430-common.c: New file.
	* config.gcc (msp430): Remove target_has_targetm_common.
	* doc/invoke.texi: Document -mhwmult command line option.

From-SVN: r209685
2014-04-23 10:35:49 +00:00
Eric Botcazou
8f78ecdbe0 Revert
2014-04-22  Richard Henderson  <rth@redhat.com>

	* gcc-interface/Makefile.in: Support aarch64-linux.

	2014-04-22  Eric Botcazou  <ebotcazou@adacore.com>

	* fe.h (Compiler_Abort): Replace Fat_Pointer with String_Pointer.
	(Error_Msg_N): Likewise.
	(Error_Msg_NE): Likewise.
	(Get_External_Name_With_Suffix): Likewise.
	* types.h (Fat_Pointer): Delete.
	(String_Pointer): New type.
	(DECLARE_STRING_POINTER): New macro.
	* gcc-interface/decl.c (create_concat_name): Adjust.
	* gcc-interface/trans.c (post_error): Likewise.
	(post_error_ne): Likewise.
	* gcc-interface/misc.c (internal_error_function): Likewise.

From-SVN: r209684
2014-04-23 10:29:47 +00:00
Andreas Schwab
eab264af0c Update libstdc++ baseline symbols for m68k
* config/abi/post/m68k-linux-gnu/baseline_symbols.txt
(CXXABI_1.3.9): New version.

From-SVN: r209683
2014-04-23 10:07:06 +00:00
Nick Clifton
f70df03530 cygwin.h (ENDFILE_SPEC): Include default-manifest.o if it can be found in the search path.
* config/i386/cygwin.h (ENDFILE_SPEC): Include
	default-manifest.o if it can be found in the search path.
	* config/i386/mingw32.h (ENDFILE_SPEC): Likewise.

From-SVN: r209681
2014-04-23 09:42:40 +00:00
Terry Guo
6a9accca8f arm.h (ASM_APP_OFF): Re-define it in a cleaner way.
2014-04-23  Terry Guo  <terry.guo@arm.com>

	* config/arm/arm.h (ASM_APP_OFF): Re-define it in a cleaner way.

From-SVN: r209678
2014-04-23 08:59:07 +00:00
Richard Biener
62ba699e01 re PR tree-optimization/60895 (error: address taken, but ADDRESSABLE bit not set)
2014-04-23  Richard Biener  <rguenther@suse.de>

	PR middle-end/60895
	* tree-inline.c (declare_return_variable): Use mark_addressable.

	* g++.dg/torture/pr60895.C: New testcase.

From-SVN: r209675
2014-04-23 08:27:00 +00:00
Richard Biener
92562f8869 re PR tree-optimization/60891 (ICE: SIGSEGV (Invalid write/read) in pre_and_rev_post_order_compute_fn with -O -fno-tree-ch -fno-tree-cselim -fno-tree-dominator-opts)
2014-04-23  Richard Biener  <rguenther@suse.de>

	PR middle-end/60891
	* loop-init.c (loop_optimizer_init): Make sure to apply
	LOOPS_MAY_HAVE_MULTIPLE_LATCHES before fixing up loops.

	* gcc.dg/torture/pr60891.c: New testcase.

From-SVN: r209673
2014-04-23 08:23:33 +00:00
Jakub Jelinek
1c33c9b70c re PR sanitizer/60275 ([UBSAN] Add -f[no-]sanitize-recover/-fsanitize-undefined-trap-on-error to make UBSAN's runtime errors fatal)
PR sanitizer/60275
	* common.opt (fsanitize-recover, fsanitize-undefined-trap-on-error):
	New options.
	* gcc.c (sanitize_spec_function): Don't return "" for "undefined"
	if flag_sanitize_undefined_trap_on_error.
	* sanitizer.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW_ABORT,
	BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS_ABORT,
	BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE_ABORT,
	BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
	BUILT_IN_UBSAN_HANDLE_ADD_OVERFLOW_ABORT,
	BUILT_IN_UBSAN_HANDLE_SUB_OVERFLOW_ABORT,
	BUILT_IN_UBSAN_HANDLE_MUL_OVERFLOW_ABORT,
	BUILT_IN_UBSAN_HANDLE_NEGATE_OVERFLOW_ABORT,
	BUILT_IN_UBSAN_HANDLE_LOAD_INVALID_VALUE_ABORT): New builtins.
	* ubsan.c (ubsan_instrument_unreachable): Return
	__builtin_trap () if flag_sanitize_undefined_trap_on_error.
	(ubsan_expand_null_ifn): Emit __builtin_trap ()
	if flag_sanitize_undefined_trap_on_error and
	__ubsan_handle_type_mismatch_abort if !flag_sanitize_recover.
	(ubsan_expand_null_ifn, ubsan_build_overflow_builtin,
	instrument_bool_enum_load): Emit __builtin_trap () if
	flag_sanitize_undefined_trap_on_error and
	__builtin_handle_*_abort () if !flag_sanitize_recover.
	* doc/invoke.texi (-fsanitize-recover,
	-fsanitize-undefined-trap-on-error): Document.
c-family/
	* c-ubsan.c (ubsan_instrument_return): Return __builtin_trap ()
	if flag_sanitize_undefined_trap_on_error.
	(ubsan_instrument_division, ubsan_instrument_shift,
	ubsan_instrument_vla): Likewise.  Use __ubsan_handle_*_abort ()
	if !flag_sanitize_recover.
testsuite/
	* g++.dg/ubsan/return-2.C: Revert 2014-03-24 changes, add
	-fno-sanitize-recover to dg-options.
	* g++.dg/ubsan/cxx11-shift-1.C: Remove c++11 target restriction,
	add -std=c++11 to dg-options.
	* g++.dg/ubsan/cxx11-shift-2.C: Likewise.
	* g++.dg/ubsan/cxx1y-vla.C: Remove c++1y target restriction,
	add -std=c++1y to dg-options.
	* c-c++-common/ubsan/undefined-1.c: Revert 2014-03-24 changes, add
	-fno-sanitize-recover to dg-options.
	* c-c++-common/ubsan/overflow-sub-1.c: Likewise.
	* c-c++-common/ubsan/vla-4.c: Likewise.
	* c-c++-common/ubsan/pr59503.c: Likewise.
	* c-c++-common/ubsan/vla-3.c: Likewise.
	* c-c++-common/ubsan/save-expr-1.c: Likewise.
	* c-c++-common/ubsan/overflow-add-1.c: Likewise.
	* c-c++-common/ubsan/shift-3.c: Likewise.
	* c-c++-common/ubsan/overflow-1.c: Likewise.
	* c-c++-common/ubsan/overflow-negate-2.c: Likewise.
	* c-c++-common/ubsan/vla-2.c: Likewise.
	* c-c++-common/ubsan/overflow-mul-1.c: Likewise.
	* c-c++-common/ubsan/pr60613-1.c: Likewise.
	* c-c++-common/ubsan/shift-6.c: Likewise.
	* c-c++-common/ubsan/overflow-mul-3.c: Likewise.
	* c-c++-common/ubsan/overflow-add-3.c: New test.
	* c-c++-common/ubsan/overflow-add-4.c: New test.
	* c-c++-common/ubsan/div-by-zero-6.c: New test.
	* c-c++-common/ubsan/div-by-zero-7.c: New test.

From-SVN: r209672
2014-04-23 10:20:12 +02:00
Christian Bruel
5e66b2e564 sh.md (mov<mode>): Replace movQIHI.
2014-04-22  Christian Bruel  <christian.bruel@st.com>

        * config/sh/sh.md (mov<mode>): Replace movQIHI.
         Force immediates to SImode.

From-SVN: r209671
2014-04-23 09:30:12 +02:00
Sandra Loosemore
aa22156410 nios2.md (UNSPEC_ROUND): New.
2014-04-22  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* config/nios2/nios2.md (UNSPEC_ROUND): New.
	(lroundsfsi2): New.
	* config/nios2/nios2.opt (mno-custom-round, mcustom-round=): New.
	* config/nios2/nios2-opts.h (N2FPU_ALL_CODES): Add round.
	* config/nios2/nios2.c (N2F_NO_ERRNO): Define.
	(nios2_fpu_insn): Add entry for round.
	(N2FPU_NO_ERRNO_P): Define.
	(nios2_custom_check_insns): Add check for N2F_NO_ERRNO and
	flag_errno_math.
	* doc/invoke.texi (Nios II Options): Document -mcustom-round.

	gcc/testsuite/
	* gcc.target/nios2/custom-fp-conversion.c: Adjust to test that
	lroundf generates custom round instruction, too.

From-SVN: r209670
2014-04-22 22:14:42 -04:00
GCC Administrator
5f056aaaf5 Daily bump.
From-SVN: r209669
2014-04-23 00:17:11 +00:00
Chris Manghane
aa4929209a compiler: Use backend interface for initialization functions.
* go-gcc.cc (Gcc_backend::temporary_variable): Push cfun around
	call to create_tmp_var.  Require that function be non-NULL.

From-SVN: r209665
2014-04-22 23:46:30 +00:00
Richard Henderson
2195867f1d AArch64 add, sub, mul in TImode
* config/aarch64/aarch64.md (multi3): New expander.
	(madd<GPI>): Remove leading * from name.

	* config/aarch64/aarch64.md (<su_optab>mulditi3): New expander.

	* config/aarch64/aarch64 (addti3, subti3): New expanders.
	(add<GPI>3_compare0): Remove leading * from name.
	(add<GPI>3_carryin): Likewise.
	(sub<GPI>3_compare0): Likewise.
	(sub<GPI>3_carryin): Likewise.

From-SVN: r209659
2014-04-22 13:31:29 -07:00
Tobias Burnus
b1dc55ad71 re PR fortran/60881 (ICE on dummy argument that extends a type with scalar and scalar coarry components)
2014-04-22  Tobias Burnus  <burnus@net-b.de>

        PR fortran/60881
        * trans-expr.c (gfc_trans_subcomponent_assign): Fix handling
        of scalar coarrays.

2014-04-22  Tobias Burnus  <burnus@net-b.de>

        PR fortran/60881
        * coarray/alloc_comp_3.f90: New.

From-SVN: r209657
2014-04-22 21:28:43 +02:00
Richard Henderson
4a980bdc6e Add ada configuration for aarch64-linux
* gcc-interface/Makefile.in: Support aarch64-linux.

From-SVN: r209654
2014-04-22 09:54:25 -07:00
Richard Henderson
19a0be3d6b Enable __gnat_alternate_stack for most linux
* init.c [__linux__] (HAVE_GNAT_ALTERNATE_STACK): New define.
	(__gnat_alternate_stack): Enable for all linux except ia64.

From-SVN: r209653
2014-04-22 09:51:14 -07:00
Marc Glisse
793c625fb8 re PR libstdc++/43622 (Incomplete C++ library support for __float128)
2014-04-22  Marc Glisse  <marc.glisse@inria.fr>

	PR libstdc++/43622
gcc/c-family/
	* c-common.c (registered_builtin_types): Make non-static.
	* c-common.h (registered_builtin_types): Declare.
gcc/cp/
	* rtti.c (emit_support_tinfo_1): New function, extracted from
	emit_support_tinfos.
	(emit_support_tinfos): Call it and iterate on registered_builtin_types.
libstdc++-v3/
	* config/abi/pre/gnu.ver (CXXABI_1.3.9): New version, new symbols.
	* config/abi/pre/gnu-versioned-namespace.ver: New symbols.
	* config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Likewise.

From-SVN: r209652
2014-04-22 16:44:46 +00:00
Martin Jambor
c6d43074d8 cgraphclones.c (cgraph_function_versioning): Copy ipa_transforms_to_apply instead of asserting it is empty.
2014-04-22  Martin Jambor  <mjambor@suse.cz>

	* cgraphclones.c (cgraph_function_versioning): Copy
	ipa_transforms_to_apply instead of asserting it is empty.

From-SVN: r209650
2014-04-22 18:33:29 +02:00
Yufeng Zhang
130a78598c Merge longlong.h from glibc tree.
From-SVN: r209649
2014-04-22 16:31:45 +00:00
H.J. Lu
e54c2dd3e2 Use counter_mode on count_exp to get mode
gcc/

	PR target/60868
	* config/i386/i386.c (ix86_expand_set_or_movmem): Call counter_mode 
	on count_exp to get mode.

gcc/testsuite/

	PR target/60868
	* gcc.target/i386/pr60868.c: New testcase.

From-SVN: r209648
2014-04-22 09:31:41 -07:00
Jakub Jelinek
e162a13486 re PR c/59073 (ICE with missing increment in OpenMP for-loop)
PR c/59073
c/
	* c-parser.c (c_parser_omp_parallel): If c_parser_omp_for
	fails, don't set OM_PARALLEL_COMBINED and return NULL.
cp/
	* parser.c (cp_parser_omp_parallel): If cp_parser_omp_for
	fails, don't set OM_PARALLEL_COMBINED and return NULL.
testsuite/
	* c-c++-common/gomp/pr59073.c: New test.

From-SVN: r209646
2014-04-22 18:22:22 +02:00