From d8887260d823cf664e1a34e1c3ce44f29944b159 Mon Sep 17 00:00:00 2001 From: Michael Beck Date: Mon, 21 Feb 2005 12:10:24 +0000 Subject: [PATCH] moved get_irn_type() to irnode.h [r5192] --- ir/ana/irtypeinfo.c | 42 +----------------------------------------- ir/ana/irtypeinfo.h | 5 ----- 2 files changed, 1 insertion(+), 46 deletions(-) diff --git a/ir/ana/irtypeinfo.c b/ir/ana/irtypeinfo.c index e14cedb13..5375aa0cf 100644 --- a/ir/ana/irtypeinfo.c +++ b/ir/ana/irtypeinfo.c @@ -35,6 +35,7 @@ #include "irgraph_t.h" /* for setting the state flag. */ #include "irprog_t.h" +#include "irnode_t.h" #include "pmap.h" /* ------------ The map. ---------------------------------------------- */ @@ -51,7 +52,6 @@ static pmap *type_node_map = NULL; */ type *initial_type = NULL; - /* ------------ Initializing this module. ----------------------------- */ /* Initializes the type information module. @@ -128,43 +128,3 @@ void set_irn_typeinfo_type(ir_node *n, type *tp) { pmap_insert(type_node_map, (void *)n, (void *)tp); } - -type *get_irn_type(ir_node *n) { - type *tp = NULL; - switch(get_irn_opcode(n)) { - case iro_Const: tp = get_Const_type(n); break; - case iro_SymConst: tp = get_SymConst_value_type(n); break; - case iro_Cast: tp = get_Cast_type(n); break; - case iro_Proj: { - ir_node *pred = get_Proj_pred(n); - switch (get_irn_opcode(pred)) { - case iro_Proj: { - ir_node *pred_pred; - /* Deal with Start / Call here: we need to know the Proj Nr. */ - assert(get_irn_mode(pred) == mode_T); - pred_pred = get_Proj_pred(pred); - if (get_irn_op(pred_pred) == op_Start) { - type *mtp = get_entity_type(get_irg_entity(get_irn_irg(pred_pred))); - tp = get_method_param_type(mtp, get_Proj_proj(n)); - } else if (get_irn_op(pred_pred) == op_Call) { - type *mtp = get_Call_type(pred_pred); - tp = get_method_res_type(mtp, get_Proj_proj(n)); - } - } break; - case iro_Start: break; - case iro_Call: break; - case iro_Load: { - ir_node *a = get_Load_ptr(pred); - if (get_irn_op(a) == op_Sel) - tp = get_entity_type(get_Sel_entity(a)); - } break; - default: - break; - } - } break; /* iro_Proj */ - default: - tp = NULL; - } - - return tp; -} diff --git a/ir/ana/irtypeinfo.h b/ir/ana/irtypeinfo.h index 6a5b87fb4..552672dc2 100644 --- a/ir/ana/irtypeinfo.h +++ b/ir/ana/irtypeinfo.h @@ -77,9 +77,4 @@ irg_typeinfo_state get_irg_typeinfo_state(ir_graph *irg); type *get_irn_typeinfo_type(ir_node *n); void set_irn_typeinfo_type(ir_node *n, type *tp); -/** Return the type associated with the value produced by n - * if the node remarks this type as it is the case for - * Cast, Const, SymConst and some Proj nodes. */ -type *get_irn_type(ir_node *n); - #endif /* _IRTYPEINFO_H_ */ -- 2.20.1