Commit Graph

131300 Commits

Author SHA1 Message Date
Ulrich Weigand
c41e1ae6c0 struct-layout-1.exp: Load g++-dg.exp.
gcc/testsuite/

	* g++.dg/compat/struct-layout-1.exp: Load g++-dg.exp.

From-SVN: r213014
2014-07-24 17:09:10 +00:00
Uros Bizjak
288aa22fa1 elf.h: Define TARGET_UNWIND_TABLES_DEFAULT.
* config/alpha/elf.h: Define TARGET_UNWIND_TABLES_DEFAULT.

From-SVN: r213010
2014-07-24 18:44:24 +02:00
DJ Delorie
fabf71ba2c cygming-crtbegin.c (deregister_frame_fn): Newly public.
* config/i386/cygming-crtbegin.c (deregister_frame_fn): Newly public.
(__gcc_deregister_frame): Move logic to detect deregister function to...
(__gcc_register_frame): here, so it's consistent with the register logic.

From-SVN: r213009
2014-07-24 12:41:01 -04:00
Martin Liska
037e55737e ADA fixed for symtab_node issues.
* gcc-interface/trans.c (finalize_nrv): Correct cgraph_node (symtab_node)
	function used.
	* gcc-interface/utils.c (rest_of_subprog_body_compilation): Likewise.
	(gnat_write_global_declarations): Likewise.

From-SVN: r213007
2014-07-24 16:14:39 +00:00
Richard Sandiford
d4cf94779f rtl.h (target_rtl): Remove lang_dependent_initialized.
gcc/
	* rtl.h (target_rtl): Remove lang_dependent_initialized.
	* toplev.c (initialize_rtl): Don't use it.  Move previously
	"language-dependent" calls to...
	(backend_init): ...here.
	(lang_dependent_init_target): Don't set lang_dependent_initialized.
	Assert that RTL initialization hasn't happend yet.

From-SVN: r213004
2014-07-24 15:18:09 +00:00
Richard Sandiford
2175bf4930 re PR rtl-optimization/61629 (FAIL: gcc.dg/20020312-2.c (internal compiler error))
gcc/
	PR rtl-optimization/61629
	* reginfo.c (reinit_regs): Only call ira_init and recog_init if
	they have already been initialized.

From-SVN: r213003
2014-07-24 15:17:54 +00:00
Richard Sandiford
1a8cb1557a re PR middle-end/61268 (ICE in vt_expand_var_loc_chain, at var-tracking.c:8262)
gcc/
	PR middle-end/61268
	* function.c (assign_parm_setup_reg): Prevent invalid sharing of
	DECL_INCOMING_RTL and entry_parm.
	(get_arg_pointer_save_area): Likewise arg_pointer_save_area.
	* calls.c (load_register_parameters): Likewise argument values.
	(emit_library_call_value_1, store_one_arg): Likewise argument
	save areas.
	* config/i386/i386.c (assign_386_stack_local): Likewise the local
	stack slot.
	* explow.c (validize_mem): Modify the argument in-place.

From-SVN: r213002
2014-07-24 15:17:35 +00:00
Jiong Wang
4b92caa1d6 [AArch64] Optimize epilogue when there is no frame pointer.
From-SVN: r213000
2014-07-24 14:43:15 +00:00
Jiong Wang
c5e1f66e59 [AArch64] Optimize prologue when there is no frame pointer.
From-SVN: r212999
2014-07-24 14:41:49 +00:00
Jiong Wang
ae13fce333 [AArch64] Infrastructure to allow optional use of write back.
From-SVN: r212997
2014-07-24 14:39:07 +00:00
Jiong Wang
363ffa50f1 [AArch64] Extend frame state to track WB candidates.
From-SVN: r212996
2014-07-24 14:32:54 +00:00
Martin Liska
51705ec128 Another MIPS/R6000 IPA C++ refactoring fix.
* mips.c (mips_start_unique_function): Correct cgraph_node function
	used.
	* rs6000.c (call_ABI_of_interest): Likewise.
	(rs6000_code_end): Likewise.

From-SVN: r212995
2014-07-24 14:17:57 +00:00
Roman Gareev
a663102770 [gcc/]
* graphite-isl-ast-to-gimple.c:
	(graphite_create_new_loop): Add calling of isl_id_free to properly
	decrement reference counts.
	
[gcc/testsuite]

	* gcc.dg/graphite/isl-ast-gen-blocks-4.c: New testcase.

From-SVN: r212994
2014-07-24 14:08:29 +00:00
Martin Liska
dacd445e14 IPA C++ refactoring fix.
* cgraphunit.c (compile): Correct function used.
        * rs6000.c (rs6000_xcoff_declare_function_name): Correct symtab_node funtion used.
        (rs6000_xcoff_declare_object_name): Likewise.

From-SVN: r212993
2014-07-24 13:54:06 +00:00
Jan Hubicka
52d8a590f5 lto-streamer-out.c (tree_is_indexable): Consider IMPORTED_DECL as non-indexable.
* lto-streamer-out.c (tree_is_indexable): Consider IMPORTED_DECL
	as non-indexable.

From-SVN: r212992
2014-07-24 13:52:49 +00:00
Jan Hubicka
10a3a880c1 re PR lto/61802 (AArch64 execute.exp failures with LTO after r212467)
PR lto/61802
	* varasm.c (bss_initializer_p): Handle offlined ctors.
	(align_variable, get_variable_align): Likewise.
	(make_decl_one_only): Likewise.
	(default_binds_local_p_1): Likewise.
	(decl_binds_to_current_def_p): Likewise.
	(get_variable_section): Get constructor if it is offlined.
	(assemble_variable_contents): Sanity check that the caller
	streamed in the ctor in LTO.

From-SVN: r212991
2014-07-24 13:50:31 +00:00
Roman Gareev
c4bc3399f7 [gcc/]
* graphite-isl-ast-to-gimple.c:
	(binary_op_to_tree): Add calling of translate_isl_ast_node_block.
	(gcc_expression_from_isl_expr_op): Move isl_ast_op_pdiv_q,
	isl_ast_op_pdiv_r to the different case.

[gcc/testsuite]

	* gcc.dg/graphite/isl-ast-gen-blocks-3.c: New testcase.

From-SVN: r212990
2014-07-24 13:35:27 +00:00
Kyrylo Tkachov
25be91ac7e PR 61876: Do not convert cast + __builtin_round into __builtin_lround unless -fno-math-errno is used.
PR middle-end/61876
	* convert.c (convert_to_integer): Do not convert BUILT_IN_ROUND and cast
	when flag_errno_math is on.

From-SVN: r212989
2014-07-24 13:23:05 +00:00
Martin Jambor
472411664e re PR ipa/61160 (wrong code with -O3 (or ICE: verify_cgraph_node failed: edge points to wrong declaration))
2014-07-24  Martin Jambor  <mjambor@suse.cz>

	PR ipa/61160
	* g++.dg/ipa/pr61160-2.C (main): Always return zero.

From-SVN: r212987
2014-07-24 15:03:22 +02:00
James Norris
a12f7ac870 * MAINTAINERS (Write After Approval): Add myself.
From-SVN: r212986
2014-07-24 12:52:18 +00:00
Martin Liska
fdbaf4ec90 ChangeLog formatting fixed.
From-SVN: r212985
2014-07-24 12:33:46 +00:00
Martin Liska
9041d2e6d2 IPA C++ refactoring 2/N
* cgraph.h (varpool_node):
  (availability get_availability (void)):
    created from cgraph_variable_initializer_availability
  (inline varpool_node *ultimate_alias_target (availability *availability = NULL)
    creted from: cgraph_variable_initializer_availability
  (inline varpool_node *get_alias_target (void)): created from varpool_alias_target
  (void finalize_named_section_flags (void)):
    created from varpool_finalize_named_section_flags
  (bool assemble_decl (void)): created from varpool_assemble_decl
  (void analyze (void)): created from varpool_analyze_node
  (bool call_for_node_and_aliases (bool (*callback) (varpool_node *, void *),
    void *data, bool include_overwritable)): created fromvarpool_for_node_and_aliases
  (void remove_initializer (void)): created from varpool_remove_initializer
  (tree get_constructor (void)): created from varpool_get_constructor
  (bool externally_visible_p (void)): created from varpool_externally_visible_p
  (bool ctor_useable_for_folding_p (void)): created from varpool_ctor_useable_for_folding_p
  (inline bool all_refs_explicit_p ()): created from varpool_all_refs_explicit_p
  (inline bool can_remove_if_no_refs_p (void)): created from varpool_can_remove_if_no_refs
  (static inline varpool_node *get (const_tree decl)): created from varpool_get_node
  (static void finalize_decl (tree decl)): created from varpool_finalize_decl
  (static bool output_variables (void)): created from varpool_output_variables
  (static varpool_node * create_extra_name_alias (tree alias, tree decl)):
    created from varpool_extra_name_alias
  (static varpool_node * create_alias (tree, tree)): created from varpool_create_variable_alias
  (static void dump_varpool (FILE *f)): created from dump_varpool
  (static void DEBUG_FUNCTION debug_varpool (void)): created from debug_varpool
  (static varpool_node *create_empty (void)): created from varpool_create_empty_node
  (static varpool_node *get_create (tree decl)): created from varpool_node_for_decl
  (static varpool_node *get_for_asmname (tree asmname)): created from varpool_node_for_asm
  (void assemble_aliases (void)): created from assemble_aliases

From-SVN: r212984
2014-07-24 12:25:27 +00:00
Roman Gareev
4a53d6a660 ChangeLog entries were fixed.
From-SVN: r212983
2014-07-24 12:12:23 +00:00
Martin Liska
d52f529517 IPA C++ refactoring 1/N
* cgraph.h (symtab_node):
  (void register_symbol (void)): created from symtab_register_node
  (void remove (void)): created from symtab_remove_node
  (void dump (FILE *f)): created from dump_symtab_node
  (void DEBUG_FUNCTION debug (void)): created from debug_symtab_node
  (void DEBUG_FUNCTION verify (void)): created from verify_symtab_node
  (struct ipa_ref *add_reference (symtab_node *referred_node,
    enum ipa_ref_use use_type)): created from add_reference 
  (struct ipa_ref *add_reference (symtab_node *referred_node,
    enum ipa_ref_use use_type, gimple stmt)): created from add_reference
  (struct ipa_ref *maybe_add_reference (tree val, enum ipa_ref_use use_type,
    gimple stmt)): created from maybe_add_reference
  (bool semantically_equivalent_p (symtab_node *target)): created from
    symtab_semantically_equivalent_p
  (void remove_from_same_comdat_group (void)): created from
    remove_from_same_comdat_group
  (void add_to_same_comdat_group (symtab_node *old_node)): created from
    symtab_add_to_same_comdat_group
  (void dissolve_same_comdat_group_list (void)): created from
    symtab_dissolve_same_comdat_group_list
  (bool used_from_object_file_p (void)): created from symtab_used_from_object_file_p
  (symtab_node *ultimate_alias_target (enum availability *avail = NULL)):
    created from symtab_alias_ultimate_target
  (inline symtab_node *next_defined_symbol (void)): created from
    symtab_next_defined_symbol
  (bool resolve_alias (symtab_node *target)): created from
    symtab_resolve_alias
  (bool call_for_symbol_and_aliases (bool (*callback) (symtab_node *, void *),
    void *data, bool include_overwrite)): created from symtab_for_node_and_aliases
  (symtab_node *noninterposable_alias (void)): created from symtab_nonoverwritable_alias
  (inline symtab_node *get_alias_target (void)): created from symtab_alias_target
  (void set_section (const char *section)): created from set_section_1 
  (enum availability get_availability (void)): created from symtab_node_availability
  (void make_decl_local (void)): created from symtab_make_decl_local
  (bool real_symbol_p (void)): created from symtab_read_node
  (can_be_discarded_p (void)): created from symtab_can_be_discarded
  (inline bool comdat_local_p (void)): created from symtab_comdat_local_p
  (inline bool in_same_comdat_group_p (symtab_node *target)): created from
    symtab_in_same_comdat_p;
  (bool address_taken_from_non_vtable_p (void)): created from
    address_taken_from_non_vtable_p
  (static inline symtab_node *get (const_tree decl)): created from symtab_get_node
  (static void dump_table (FILE *)): created from dump_symtab
  (static inline DEBUG_FUNCTION void debug_symtab (void)): created from debug_symtab
  (static DEBUG_FUNCTION void verify_symtab_nodes (void)): created from verify_symtab
  (static bool used_from_object_file_p_worker (symtab_node *node)): created from
    symtab_used_from_object_file_p 
  (void dump_base (FILE *)): created from dump_symtab_base
  (bool DEBUG_FUNCTION verify_base (void)): created from verify_symtab_base
  (void unregister (void)): created from symtab_unregister_node
  (struct symbol_priority_map *priority_info (void)): created from symtab_priority_info
  (static bool set_implicit_section (symtab_node *n, void *)): created from set_implicit_section
  (static bool noninterposable_alias (symtab_node *node, void *data)): created from
    symtab_nonoverwritable_alias_1
  * cgraph.h (cgraph_node):
  (bool remove_symbol_and_inline_clones (cgraph_node *forbidden_node = NULL)):
    created from cgraph_remove_node_and_inline_clones
  (void record_stmt_references (gimple stmt)): created from ipa_record_stmt_references
  (void set_call_stmt_including_clones (gimple old_stmt, gimple new_stmt,
    bool update_speculative = true)): created from cgraph_set_call_stmt_including_clones
  (cgraph_node *function_symbol (enum availability *avail = NULL)):
    created from cgraph_function_node
  (cgraph_node *create_clone (tree decl, gcov_type count, int freq, bool update_original,
    vec<cgraph_edge *> redirect_callers, bool call_duplication_hook,
    struct cgraph_node *new_inlined_to, bitmap args_to_skip)):
    created from cgraph_create_clone 
  (cgraph_node *create_virtual_clone (vec<cgraph_edge *> redirect_callers,
    vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, const char * suffix)):
    created from cgraph_create_virtual_clone
  (cgraph_node *find_replacement (void)): created from cgraph_find_replacement_node
  (cgraph_node *create_version_clone (tree new_decl, vec<cgraph_edge *> redirect_callers,
    bitmap bbs_to_copy)): created from cgraph_copy_node_for_versioning
  (cgraph_node *create_version_clone_with_body (vec<cgraph_edge *> redirect_callers,
    vec<ipa_replace_map *, va_gc> *tree_map, bitmap args_to_skip, bool skip_return,
    bitmap bbs_to_copy, basic_block new_entry_block, const char *clone_name)):
    created from cgraph_function_version_info
  (struct cgraph_function_version_info *insert_new_function_version (void)):
    created from insert_new_cgraph_node_version
  (struct cgraph_function_version_info *function_version (void)): created from
    get_cgraph_node_version
  (void analyze (void)): created from analyze_function
  (cgraph_node * create_thunk (tree alias, tree, bool this_adjusting,
    HOST_WIDE_INT fixed_offset, HOST_WIDE_INT virtual_value, tree virtual_offset,
    tree real_alias) cgraph_add_thunk
  (inline cgraph_node *get_alias_target (void)): created from cgraph_alias_target
  (cgraph_node *ultimate_alias_target (availability *availability = NULL)):
    created from cgraph_function_or_thunk_node
  (bool expand_thunk (bool output_asm_thunks, bool force_gimple_thunk)):
    created from expand_thunk
  (void reset (void)): created from cgraph_reset_node
  (void create_wrapper (cgraph_node *target)): created from cgraph_make_wrapper
  (void DEBUG_FUNCTION verify_node (void)): created from verify_cgraph_node
  (void remove (void)): created from cgraph_remove_node
  (void dump (FILE *f)): created from dump_cgraph_node
  (void DEBUG_FUNCTION debug (void)): created from debug_cgraph_node
  (bool get_body (void)): created from cgraph_get_body
  (void release_body (void)): created from cgraph_release_function_body
  (void unnest (void)): created from cgraph_unnest_node
  (void make_local (void)): created from cgraph_make_node_local
  (void mark_address_taken (void)): created from cgraph_mark_address_taken_node
  (struct cgraph_edge *create_edge (cgraph_node *callee, gimple call_stmt,
    gcov_type count, int freq)): created from cgraph_create_edge
  (struct cgraph_edge *create_indirect_edge (gimple call_stmt, int ecf_flags,
    gcov_type count, int freq)): created from cgraph_create_indirect_edge
  (void create_edge_including_clones (struct cgraph_node *callee, gimple old_stmt,
    gimple stmt, gcov_type count, int freq, cgraph_inline_failed_t reason)):
    created from cgraph_create_edge_including_clones
  (cgraph_edge *get_edge (gimple call_stmt)): created from cgraph_edge
  (vec<cgraph_edge *> collect_callers (void)): created from collect_callers_of_node
  (void remove_callers (void)): created from cgraph_node_remove_callers
  (void remove_callees (void)): created from cgraph_node_remove_callees
  (enum availability get_availability (void)): created from cgraph_function_body_availability
  (void set_nothrow_flag (bool nothrow)): created from cgraph_set_nothrow_flag
  (void set_const_flag (bool readonly, bool looping)): created from cgraph_set_const_flag
  (void set_pure_flag (bool pure, bool looping)): created from cgraph_set_pure_flag
  (void call_duplication_hooks (cgraph_node *node2)): created from
    cgraph_call_node_duplication_hooks
  (bool call_for_symbol_and_aliases (bool (*callback) (cgraph_node *, void *),
    void *data, bool include_overwritable)): created from cgraph_for_node_and_aliases
  (bool call_for_symbol_thunks_and_aliases (bool (*callback) (cgraph_node *node, void *data),
    void *data, bool include_overwritable)): created from cgraph_for_node_thunks_and_aliases
  (void call_function_insertion_hooks (void)):
    created from cgraph_call_function_insertion_hooks
  (inline void mark_force_output (void)): created from cgraph_mark_force_output_node
  (bool local_p (void)): created from cgraph_local_node
  (bool can_be_local_p (void)): created from cgraph_node_can_be_local_p
  (bool cannot_return_p (void)): created from cgraph_node_cannot_return
  (bool only_called_directly_p (void)): created from cgraph_only_called_directly_p
  (inline bool only_called_directly_or_aliased_p (void)):
    created from cgraph_only_called_directly_or_aliased_p
  (bool will_be_removed_from_program_if_no_direct_calls_p (void)):
    created from cgraph_will_be_removed_from_program_if_no_direct_calls
  (bool can_remove_if_no_direct_calls_and_refs_p (void)):
    created from cgraph_can_remove_if_no_direct_calls_and_refs_p
  (bool can_remove_if_no_direct_calls_p (void)):
    created from cgraph_can_remove_if_no_direct_calls_p
  (inline bool has_gimple_body_p (void)):
    created from cgraph_function_with_gimple_body_p
  (bool optimize_for_size_p (void)): created from cgraph_optimize_for_size_p
  (static void dump_cgraph (FILE *f)): created from dump_cgraph
  (static inline void debug_cgraph (void)): created from debug_cgraph
  (static void record_function_versions (tree decl1, tree decl2)):
    created from record_function_versions
  (static void delete_function_version (tree decl)):
    created from delete_function_version
  (static void add_new_function (tree fndecl, bool lowered)):
    created from cgraph_add_new_function
  (static inline cgraph_node *get (const_tree decl)): created from cgraph_get_node
  (static cgraph_node * create (tree decl)): created from cgraph_create_node
  (static cgraph_node * create_empty (void)): created from cgraph_create_empty_node
  (static cgraph_node * get_create (tree)): created from cgraph_get_create_node
  (static cgraph_node *get_for_asmname (tree asmname)):
    created from cgraph_node_for_asm
  (static cgraph_node * create_same_body_alias (tree alias, tree decl)):
    created from cgraph_same_body_alias 
  (static bool used_from_object_file_p_worker (cgraph_node *node,
    void *): new function
  (static bool non_local_p (cgraph_node *node, void *)):
    created from cgraph_non_local_node_p_1
  (static void DEBUG_FUNCTION verify_cgraph_nodes (void)):
    created from verify_cgraph
  (static bool make_local (cgraph_node *node, void *)):
    created from cgraph_make_node_local
  (static cgraph_node *create_alias (tree alias, tree target)):
    created from cgraph_create_function_alias
  (static cgraph_edge * create_edge (cgraph_node *caller, cgraph_node *callee,
    gimple call_stmt, gcov_type count, int freq, bool indir_unknown_callee)):
    created from cgraph_create_edge_1
  * cgraph.h (varpool_node):
  (void remove (void)): created from varpool_remove_node
  (void dump (FILE *f)): created from dump_varpool_node

From-SVN: r212982
2014-07-24 12:07:13 +00:00
Richard Biener
785129aa16 re PR ipa/61823 (gcc.dg/torture/pr43879_[12].c FAILs with -fno-inline)
2014-07-24  Richard Biener  <rguenther@suse.de>

	PR ipa/61823
	* tree-ssa-structalias.c (create_variable_info_for_1):
	Use varpool_get_constructor.
	(create_variable_info_for): Likewise.

	* gcc.dg/torture/pr43879_1.c: Add -fno-inline.

From-SVN: r212980
2014-07-24 12:01:31 +00:00
Andreas Schwab
b7249d318f target-supports.exp (check_effective_target_arm_nothumb): Also check for __arm__.
* lib/target-supports.exp (check_effective_target_arm_nothumb):
Also check for __arm__.

From-SVN: r212978
2014-07-24 11:03:30 +00:00
Jiong Wang
8f454e9f8a [AArch64] Optimize epilogue in the presence of an outgoing args area.
From-SVN: r212976
2014-07-24 10:58:28 +00:00
Nick Clifton
8ae9698d08 rx.md (stack_push): Adjust RTL to account for the fact that operations are taking place in parallel.
* config/rx/rx.md (stack_push): Adjust RTL to account for the fact
	that operations are taking place in parallel.
	* config/rx.h (FRAME_POINTER_CFA_OFFSET): Delete.

From-SVN: r212973
2014-07-24 09:05:27 +00:00
Marek Polacek
cdc94aca13 re PR c/57653 (filename information discarded when using -imacros)
PR c/57653
	* c-opts.c (c_finish_options): If -imacros is in effect, return.

	* c-c++-common/pr57653.c: New test.
	* c-c++-common/pr57653.h: New file.
	* c-c++-common/pr57653-2.c: New test.
	* c-c++-common/pr57653-2.h: New file.

From-SVN: r212972
2014-07-24 09:00:13 +00:00
Thomas Schwinge
34f2124e5f Add missing break statement.
gcc/
	* omp-low.c (extract_omp_for_data): Add missing break statement.

From-SVN: r212971
2014-07-24 10:27:34 +02:00
Richard Biener
b4c9af965f tree-inline.h (estimate_move_cost): Add speed_p parameter.
2014-07-24  Richard Biener  <rguenther@suse.de>

	* tree-inline.h (estimate_move_cost): Add speed_p parameter.
	* tree-inline.c (estimate_move_cost): Add speed_p parameter
	and adjust MOVE_RATIO query accordingly.
	(estimate_num_insns): Adjust callers.
	* ipa-prop.c (ipa_populate_param_decls): Likewise.
	* ipa-cp.c (gather_context_independent_values,
	estimate_local_effects): Likewise.
	* ipa-split.c (consider_split): Likewise.

From-SVN: r212970
2014-07-24 08:08:26 +00:00
Trevor Saunders
997ef9e738 remove useless unused attributes in i386 code
gcc/

	* config/i386/driver-i386.c: Remove names of unused arguments and
	unnecessary unused attributes.
	* config/i386/host-mingw32.c: Likewise.
	* config/i386/i386.c: Likewise.
	* config/i386/winnt-stubs.c: Likewise.
	* config/i386/winnt.c: Likewise.

From-SVN: r212968
2014-07-24 04:56:29 +00:00
GCC Administrator
c9b1a29f6c Daily bump.
From-SVN: r212967
2014-07-24 00:16:54 +00:00
H.J. Lu
a6eb46e841 Add a blank line
From-SVN: r212964
2014-07-23 15:17:32 -07:00
H.J. Lu
2e1e91f126 Update x32 baseline_symbols.txt
* config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Update.

From-SVN: r212963
2014-07-23 15:16:52 -07:00
Jiong Wang
c8b2454e9c [AArch64] Prologue and epilogue test cases.
From-SVN: r212959
2014-07-23 16:45:18 +00:00
Jiong Wang
159313d9b1 [AArch64] Simplify epilogue expansion using new helper functions.
From-SVN: r212958
2014-07-23 16:34:12 +00:00
Jiong Wang
80c11907f7 [AArch64] Simplify prologue expand using new helper functions.
From-SVN: r212957
2014-07-23 16:26:10 +00:00
Jiong Wang
8ed2fc62d4 [AArch64] Split save restore path.
From-SVN: r212956
2014-07-23 16:22:17 +00:00
Jiong Wang
0ec74a1ee3 [AArch64] Unify vector and core register save/restore code.
From-SVN: r212955
2014-07-23 16:20:38 +00:00
Jiong Wang
72df5c1f62 [AArch64] Use helper functions to handle multiple modes.
From-SVN: r212954
2014-07-23 16:17:08 +00:00
Jiong Wang
64dedd72f6 [AArch64] Refactor code out into aarch64_next_callee_save
From-SVN: r212952
2014-07-23 16:14:20 +00:00
Jiong Wang
bc5f5f3695 [AArch64] Hoist calculation of register rtx.
From-SVN: r212951
2014-07-23 16:11:50 +00:00
Jiong Wang
55185278ab [AArch64] Remove useless variable 'increment'
From-SVN: r212950
2014-07-23 16:06:52 +00:00
Jiong Wang
0b4a9743a3 [AArch64] Use register offset in cfun->machine->frame.reg_offset
From-SVN: r212949
2014-07-23 16:04:39 +00:00
Bin Cheng
106d7513c6 Revert r212893:
PR target/55701
	* config/arm/arm.md (setmem): New pattern.
	* config/arm/arm-protos.h (struct tune_params): New fields.
	(arm_gen_setmem): New prototype.
	* config/arm/arm.c (arm_slowmul_tune): Initialize new fields.
	(arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
	(arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
	(arm_cortex_a8_tune, arm_cortex_a7_tune): Ditto.
	(arm_cortex_a15_tune, arm_cortex_a53_tune): Ditto.
	(arm_cortex_a57_tune, arm_cortex_a5_tune): Ditto.
	(arm_cortex_a9_tune, arm_cortex_a12_tune): Ditto.
	(arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
	(arm_const_inline_cost): New function.
	(arm_block_set_max_insns): New function.
	(arm_block_set_non_vect_profit_p): New function.
	(arm_block_set_vect_profit_p): New function.
	(arm_block_set_unaligned_vect): New function.
	(arm_block_set_aligned_vect): New function.
	(arm_block_set_unaligned_non_vect): New function.
	(arm_block_set_aligned_non_vect): New function.
	(arm_block_set_vect, arm_gen_setmem): New functions.

	PR target/55701
	* gcc.target/arm/memset-inline-1.c: New test.
	* gcc.target/arm/memset-inline-2.c: New test.
	* gcc.target/arm/memset-inline-3.c: New test.
	* gcc.target/arm/memset-inline-4.c: New test.
	* gcc.target/arm/memset-inline-5.c: New test.
	* gcc.target/arm/memset-inline-6.c: New test.
	* gcc.target/arm/memset-inline-7.c: New test.
	* gcc.target/arm/memset-inline-8.c: New test.
	* gcc.target/arm/memset-inline-9.c: New test.

	Revert r212892:
	* config/arm/arm.c (output_move_neon): Handle REG explicitly.

From-SVN: r212948
2014-07-23 16:02:15 +00:00
Jiong Wang
7bf7a695cc [AArch64] Remove useless parameter base_rtx.
From-SVN: r212947
2014-07-23 15:58:30 +00:00
Jiong Wang
ec01976b4f [AArch64] Remove useless local variable.
From-SVN: r212946
2014-07-23 15:57:43 +00:00
Jiong Wang
b8a404dc87 [AArch64] Consistent parameter types in prologue/epilogue generation.
From-SVN: r212945
2014-07-23 15:56:42 +00:00
Jiong Wang
a007a21c4a [AArch64] GNU-Stylize some un-formatted code.
From-SVN: r212943
2014-07-23 15:55:33 +00:00