From c937e07b321993d19d8cef461331be897e58a4cc Mon Sep 17 00:00:00 2001 From: Sebastian Felis Date: Mon, 14 Jul 2003 10:04:14 +0000 Subject: [PATCH] - add ir_ir_graph() function - set kind of graph to k_ir_graph on construction [r1478] --- ir/ir/irgraph.c | 11 +++++++++++ ir/ir/irgraph.h | 12 ++++++++++++ 2 files changed, 23 insertions(+) diff --git a/ir/ir/irgraph.c b/ir/ir/irgraph.c index 1c8a7410a..8e9125a35 100644 --- a/ir/ir/irgraph.c +++ b/ir/ir/irgraph.c @@ -95,6 +95,7 @@ new_ir_graph (entity *ent, int n_loc) res->Phi_in_stack = new_Phi_in_stack(); /* A stack needed for automatic Phi generation */ #endif + res->kind = k_ir_graph; res->obst = (struct obstack *) xmalloc (sizeof (struct obstack)); obstack_init (res->obst); res->value_table = new_identities (); /* value table for global value @@ -167,6 +168,7 @@ ir_graph *new_const_code_irg() { #if USE_EXPLICIT_PHI_IN_STACK res->Phi_in_stack = NULL; #endif + res->kind = k_ir_graph; res->obst = (struct obstack *) xmalloc (sizeof (struct obstack)); obstack_init (res->obst); res->phase_state = phase_building; @@ -218,6 +220,15 @@ void free_ir_graph (ir_graph *irg) { {attr type} get_irg_{attribute name} (ir_graph *irg); void set_irg_{attr name} (ir_graph *irg, {attr type} {attr}); */ +int +is_ir_graph(void *thing) { + assert(thing); + if (get_kind(thing) == k_ir_graph) + return 1; + else + return 0; +} + /* Outputs a unique number for this node */ INLINE long diff --git a/ir/ir/irgraph.h b/ir/ir/irgraph.h index a779049d0..b61f09ade 100644 --- a/ir/ir/irgraph.h +++ b/ir/ir/irgraph.h @@ -100,6 +100,18 @@ ir_graph *new_ir_graph (entity *ent, int n_loc); void free_ir_graph (ir_graph *irg); /* --- access routines for all ir_graph attributes --- */ + +/** + * Checks whether a pointer points to a ir graph. + * + * @param thing an arbitrary pointer + * + * @return + * true if the thing is a ir graph, else false + */ +int +is_ir_graph(void *thing); + entity *get_irg_ent (ir_graph *irg); void set_irg_ent (ir_graph *irg, entity *ent); -- 2.20.1