X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fana%2Ftrouts.c;h=90284a2872fdf76738769e18bdec3e2e75d473e0;hb=52d1c7c57180cdb6aa12be48a1d41a961dc85174;hp=cc84fa8432ad68d10945bdaf916b06af25fc1a1c;hpb=a999e1baedb84dc9b83059708699dac1c7fdb9a2;p=libfirm diff --git a/ir/ana/trouts.c b/ir/ana/trouts.c index cc84fa843..90284a287 100644 --- a/ir/ana/trouts.c +++ b/ir/ana/trouts.c @@ -24,9 +24,7 @@ * @date 29.10.2004 * @version $Id$ */ -#ifdef HAVE_CONFIG_H #include "config.h" -#endif #include "irnode.h" #include "trouts.h" @@ -495,52 +493,44 @@ static ir_entity *get_Sel_accessed_entity(const ir_node *sel) { /** An addr node is a SymConst or a Sel. */ static int get_addr_n_entities(const ir_node *addr) { - int n_ents; - switch (get_irn_opcode(addr)) { case iro_Sel: /* Treat jack array sels? */ - n_ents = get_Sel_n_accessed_entities(addr); - break; + return get_Sel_n_accessed_entities(addr); case iro_SymConst: - if (get_SymConst_kind(addr) == symconst_addr_ent) { - n_ents = 1; - break; - } + if (get_SymConst_kind(addr) == symconst_addr_ent) + return 1; + return 0; default: - //assert(0 && "unexpected address expression"); - n_ents = 0; + return 0; } - - return n_ents; } /** An addr node is a SymConst or a Sel. If Sel follow to outermost of compound. */ static ir_entity *get_addr_entity(const ir_node *addr, int pos) { - ir_entity *ent; + ir_node *ptr; (void) pos; switch (get_irn_opcode(addr)) { case iro_Sel: /* Treat jack array sels? They are compounds! Follow to outermost entity. */ - while (is_Sel(get_Sel_ptr(addr))) { - addr = get_Sel_ptr(addr); + ptr = get_Sel_ptr(addr); + while (is_Sel(ptr)) { + addr = ptr; + ptr = get_Sel_ptr(addr); } - assert (0 <= pos && pos < get_Sel_n_accessed_entities(addr)); - ent = get_Sel_accessed_entity(addr); - break; + assert(0 <= pos && pos < get_Sel_n_accessed_entities(addr)); + return get_Sel_accessed_entity(addr); case iro_SymConst: if (get_SymConst_kind(addr) == symconst_addr_ent) { assert(pos == 0); - ent = get_SymConst_entity(addr); - break; + return get_SymConst_entity(addr); } + return NULL; default: - ent = NULL; + return NULL; } - - return ent; } static void chain_accesses(ir_node *n, void *env) { @@ -548,10 +538,10 @@ static void chain_accesses(ir_node *n, void *env) { ir_node *addr; (void) env; - if (get_irn_op(n) == op_Alloc) { + if (is_Alloc(n)) { add_type_alloc(get_Alloc_type(n), n); return; - } else if (get_irn_op(n) == op_Cast) { + } else if (is_Cast(n)) { add_type_cast(get_Cast_type(n), n); return; } else if (is_Sel(n)) { @@ -562,7 +552,7 @@ static void chain_accesses(ir_node *n, void *env) { return; } else if (is_memop(n)) { addr = get_memop_ptr(n); - } else if (get_irn_op(n) == op_Call) { + } else if (is_Call(n)) { addr = get_Call_ptr(n); if (! is_Sel(addr)) return; /* Sels before Calls mean a Load / polymorphic Call. */ } else { @@ -595,7 +585,7 @@ irg_outs_state get_trouts_state(void) { return irp->trouts_state; } -void set_trouts_inconsistent(void) { +void set_trouts_inconsistent(void) { if (irp->trouts_state == outs_consistent) irp->trouts_state = outs_inconsistent; }