diff options
author | Andrew MacLeod <amacleod@redhat.com> | 2015-06-25 16:23:52 +0000 |
---|---|---|
committer | Andrew Macleod <amacleod@gcc.gnu.org> | 2015-06-25 16:23:52 +0000 |
commit | 88f554b4b93e260d8733c372f93e77c91c564e77 (patch) | |
tree | 1e0ca2957adf8fdcb469bdcb69978a1c9e9eba07 /gcc | |
parent | 06fbce663e9b7f230d3cbaf9131de2cd786c819c (diff) | |
download | gcc-88f554b4b93e260d8733c372f93e77c91c564e77.zip gcc-88f554b4b93e260d8733c372f93e77c91c564e77.tar.gz gcc-88f554b4b93e260d8733c372f93e77c91c564e77.tar.bz2 |
cgraph.h (cgraph_rtl_info): Move to rtl.h
2015-06-25 Andrew MacLeod <amacleod@redhat.com>
* 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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 11 | ||||
-rw-r--r-- | gcc/calls.c | 2 | ||||
-rw-r--r-- | gcc/cgraph.c | 5 | ||||
-rw-r--r-- | gcc/cgraph.h | 18 | ||||
-rw-r--r-- | gcc/ira.c | 2 | ||||
-rw-r--r-- | gcc/rtl.h | 17 |
6 files changed, 36 insertions, 19 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 157c23e..8280777 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,14 @@ +2015-06-25 Andrew MacLeod <amacleod@redhat.com> + + * 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 <yizhouzhou@ict.ac.cn> Vladimir Makarov <vmakarov@redhat.com> diff --git a/gcc/calls.c b/gcc/calls.c index d632881..5cf0dca 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 e530568..60f9006 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<cgraph_rtl_info> (); + return node->ultimate_alias_target ()->rtl; } /* Return a string describing the failure REASON. */ diff --git a/gcc/cgraph.h b/gcc/cgraph.h index 55864a2..62d4ad6 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; @@ -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" @@ -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 */ |