From 88f554b4b93e260d8733c372f93e77c91c564e77 Mon Sep 17 00:00:00 2001 From: Andrew MacLeod Date: Thu, 25 Jun 2015 16:23:52 +0000 Subject: [PATCH] cgraph.h (cgraph_rtl_info): Move to rtl.h 2015-06-25 Andrew MacLeod * cgraph.h (cgraph_rtl_info): Move to rtl.h (cgraph_node): Maintain pointer to struct cgraph_rtl_info instead of and instance. * rtl.h (struct cgraph_rtl_info): Define when HARD_REG_SET available. * cgraph.c (cgraph_node::rtl_info): Allocate cgraph_rtl_info if one doesn't exist. * calls.c: Include hard-reg-set.h before rtl.h. * ira.c: Likewise. From-SVN: r224946 --- gcc/ChangeLog | 11 +++++++++++ gcc/calls.c | 2 +- gcc/cgraph.c | 5 ++++- gcc/cgraph.h | 18 ++---------------- gcc/ira.c | 2 +- gcc/rtl.h | 17 +++++++++++++++++ 6 files changed, 36 insertions(+), 19 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 157c23e8866..8280777f5f3 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,14 @@ +2015-06-25 Andrew MacLeod + + * cgraph.h (cgraph_rtl_info): Move to rtl.h + (cgraph_node): Maintain pointer to struct cgraph_rtl_info instead of + and instance. + * rtl.h (struct cgraph_rtl_info): Define when HARD_REG_SET available. + * cgraph.c (cgraph_node::rtl_info): Allocate cgraph_rtl_info if one + doesn't exist. + * calls.c: Include hard-reg-set.h before rtl.h. + * ira.c: Likewise. + 2015-06-25 Zhouyi Zhou Vladimir Makarov diff --git a/gcc/calls.c b/gcc/calls.c index d632881f4b4..5cf0dca6459 100644 --- a/gcc/calls.c +++ b/gcc/calls.c @@ -21,6 +21,7 @@ along with GCC; see the file COPYING3. If not see #include "system.h" #include "coretypes.h" #include "tm.h" +#include "hard-reg-set.h" #include "rtl.h" #include "alias.h" #include "symtab.h" @@ -31,7 +32,6 @@ along with GCC; see the file COPYING3. If not see #include "stringpool.h" #include "attribs.h" #include "predict.h" -#include "hard-reg-set.h" #include "function.h" #include "basic-block.h" #include "tree-ssa-alias.h" diff --git a/gcc/cgraph.c b/gcc/cgraph.c index e530568a536..60f90060187 100644 --- a/gcc/cgraph.c +++ b/gcc/cgraph.c @@ -1892,7 +1892,10 @@ cgraph_node::rtl_info (tree decl) if (node->decl != current_function_decl && !TREE_ASM_WRITTEN (node->decl)) return NULL; - return &node->ultimate_alias_target ()->rtl; + /* Allocate if it doesnt exist. */ + if (node->ultimate_alias_target ()->rtl == NULL) + node->ultimate_alias_target ()->rtl = ggc_cleared_alloc (); + return node->ultimate_alias_target ()->rtl; } /* Return a string describing the failure REASON. */ diff --git a/gcc/cgraph.h b/gcc/cgraph.h index 55864a27948..62d4ad6ee7c 100644 --- a/gcc/cgraph.h +++ b/gcc/cgraph.h @@ -613,20 +613,6 @@ struct GTY(()) cgraph_global_info { cgraph_node *inlined_to; }; -/* Information about the function that is propagated by the RTL backend. - Available only for functions that has been already assembled. */ - -struct GTY(()) cgraph_rtl_info { - unsigned int preferred_incoming_stack_boundary; - - /* Call unsaved hard registers really used by the corresponding - function (including ones used by functions called by the - function). */ - HARD_REG_SET function_used_regs; - /* Set if function_used_regs is valid. */ - unsigned function_used_regs_valid: 1; -}; - /* Represent which DECL tree (or reference to such tree) will be replaced by another tree while versioning. */ struct GTY(()) ipa_replace_map @@ -1194,7 +1180,7 @@ public: static cgraph_local_info *local_info (tree decl); /* Return local info for the compiled function. */ - static cgraph_rtl_info *rtl_info (tree); + static struct cgraph_rtl_info *rtl_info (tree); /* Return the cgraph node that has ASMNAME for its DECL_ASSEMBLER_NAME. Return NULL if there's no such node. */ @@ -1263,7 +1249,7 @@ public: cgraph_local_info local; cgraph_global_info global; - cgraph_rtl_info rtl; + struct cgraph_rtl_info *rtl; cgraph_clone_info clone; cgraph_thunk_info thunk; diff --git a/gcc/ira.c b/gcc/ira.c index c95f57b9f88..92d5eb11ed7 100644 --- a/gcc/ira.c +++ b/gcc/ira.c @@ -371,13 +371,13 @@ along with GCC; see the file COPYING3. If not see #include "alias.h" #include "symtab.h" #include "tree.h" +#include "hard-reg-set.h" #include "rtl.h" #include "tm_p.h" #include "target.h" #include "flags.h" #include "obstack.h" #include "bitmap.h" -#include "hard-reg-set.h" #include "predict.h" #include "function.h" #include "dominance.h" diff --git a/gcc/rtl.h b/gcc/rtl.h index 5b4a525cd9b..07c5f6504a6 100644 --- a/gcc/rtl.h +++ b/gcc/rtl.h @@ -3710,4 +3710,21 @@ extern void _fatal_insn (const char *, const_rtx, const char *, int, const char /* reginfo.c */ extern tree GTY(()) global_regs_decl[FIRST_PSEUDO_REGISTER]; +#ifdef HARD_CONST +/* Information about the function that is propagated by the RTL backend. + Available only for functions that has been already assembled. */ + +struct GTY(()) cgraph_rtl_info { + unsigned int preferred_incoming_stack_boundary; + + /* Call unsaved hard registers really used by the corresponding + function (including ones used by functions called by the + function). */ + HARD_REG_SET function_used_regs; + /* Set if function_used_regs is valid. */ + unsigned function_used_regs_valid: 1; +}; +#endif + + #endif /* ! GCC_RTL_H */ -- 2.30.2