cgraph.h: Remove misledaing comment on ipa-ref.h.
* cgraph.h: Remove misledaing comment on ipa-ref.h. (symtab_type): New enum. (symtab_node): New structure. (cgraph_node, varpool_node): Add symbol base type. (cgraph, varpool): New accestor functions. * cgraph.c (cgraph_create_node_1): Set symbol type. * varpool.c (varpool_node): Set symbol type. From-SVN: r186284
This commit is contained in:
parent
b43645b852
commit
1f00098bf3
|
@ -1,3 +1,13 @@
|
|||
2012-04-10 Jan Hubicka <jh@suse.cz>
|
||||
|
||||
* cgraph.h: Remove misledaing comment on ipa-ref.h.
|
||||
(symtab_type): New enum.
|
||||
(symtab_node): New structure.
|
||||
(cgraph_node, varpool_node): Add symbol base type.
|
||||
(cgraph, varpool): New accestor functions.
|
||||
* cgraph.c (cgraph_create_node_1): Set symbol type.
|
||||
* varpool.c (varpool_node): Set symbol type.
|
||||
|
||||
2012-04-10 Ulrich Weigand <ulrich.weigand@linaro.org>
|
||||
Richard Sandiford <rdsandiford@googlemail.com>
|
||||
|
||||
|
|
|
@ -473,6 +473,7 @@ cgraph_create_node_1 (void)
|
|||
{
|
||||
struct cgraph_node *node = cgraph_allocate_node ();
|
||||
|
||||
node->symbol.type = SYMTAB_FUNCTION;
|
||||
node->next = cgraph_nodes;
|
||||
node->order = cgraph_order++;
|
||||
if (cgraph_nodes)
|
||||
|
|
37
gcc/cgraph.h
37
gcc/cgraph.h
|
@ -27,7 +27,23 @@ along with GCC; see the file COPYING3. If not see
|
|||
#include "tree.h"
|
||||
#include "basic-block.h"
|
||||
#include "function.h"
|
||||
#include "ipa-ref.h" /* FIXME: inappropriate dependency of cgraph on IPA. */
|
||||
#include "ipa-ref.h"
|
||||
|
||||
/* Symbol table consists of functions and variables.
|
||||
TODO: add labels, constant pool and aliases. */
|
||||
enum symtab_type
|
||||
{
|
||||
SYMTAB_FUNCTION,
|
||||
SYMTAB_VARIABLE
|
||||
};
|
||||
|
||||
/* Base of all entries in the symbol table.
|
||||
The symtab_node is inherited by cgraph and varpol nodes. */
|
||||
struct GTY(()) symtab_node
|
||||
{
|
||||
/* Type of the symbol. */
|
||||
enum symtab_type type;
|
||||
};
|
||||
|
||||
enum availability
|
||||
{
|
||||
|
@ -150,6 +166,7 @@ struct GTY(()) cgraph_clone_info
|
|||
Each function decl has assigned cgraph_node listing callees and callers. */
|
||||
|
||||
struct GTY((chain_next ("%h.next"), chain_prev ("%h.previous"))) cgraph_node {
|
||||
struct symtab_node symbol;
|
||||
tree decl;
|
||||
struct cgraph_edge *callees;
|
||||
struct cgraph_edge *callers;
|
||||
|
@ -387,6 +404,7 @@ DEF_VEC_ALLOC_P(cgraph_edge_p,heap);
|
|||
Each static variable decl has assigned varpool_node. */
|
||||
|
||||
struct GTY((chain_next ("%h.next"), chain_prev ("%h.prev"))) varpool_node {
|
||||
struct symtab_node symbol;
|
||||
tree decl;
|
||||
/* For aliases points to declaration DECL is alias of. */
|
||||
tree alias_of;
|
||||
|
@ -689,6 +707,23 @@ void varpool_add_new_variable (tree);
|
|||
#define FOR_EACH_STATIC_VARIABLE(node) \
|
||||
for ((node) = varpool_nodes_queue; (node); (node) = (node)->next_needed)
|
||||
|
||||
/* Return callgraph node for given symbol and check it is a function. */
|
||||
static inline struct cgraph_node *
|
||||
cgraph (struct symtab_node *node)
|
||||
{
|
||||
gcc_checking_assert (node->type == SYMTAB_FUNCTION);
|
||||
return (struct cgraph_node *)node;
|
||||
}
|
||||
|
||||
/* Return varpool node for given symbol and check it is a variable. */
|
||||
static inline struct varpool_node *
|
||||
varpool (struct symtab_node *node)
|
||||
{
|
||||
gcc_checking_assert (node->type == SYMTAB_FUNCTION);
|
||||
return (struct varpool_node *)node;
|
||||
}
|
||||
|
||||
|
||||
/* Return first reachable static variable with initializer. */
|
||||
static inline struct varpool_node *
|
||||
varpool_first_static_initializer (void)
|
||||
|
|
|
@ -142,6 +142,7 @@ varpool_node (tree decl)
|
|||
if (*slot)
|
||||
return *slot;
|
||||
node = ggc_alloc_cleared_varpool_node ();
|
||||
node->symbol.type = SYMTAB_VARIABLE;
|
||||
node->decl = decl;
|
||||
node->order = cgraph_order++;
|
||||
node->next = varpool_nodes;
|
||||
|
|
Loading…
Reference in New Issue