X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fana%2Firloop_t.h;h=4a64334843b0cb29b2fab641b239979440c794ed;hb=d0d85962ef52c14950db90e5981a7bea36023ab3;hp=36132164dd6c804a6da121edc9c8dd38efc97fe2;hpb=b1800d6a3a46d3cde851461f4d32397f66948aff;p=libfirm diff --git a/ir/ana/irloop_t.h b/ir/ana/irloop_t.h index 36132164d..4a6433484 100644 --- a/ir/ana/irloop_t.h +++ b/ir/ana/irloop_t.h @@ -19,6 +19,7 @@ #include "firm_common.h" #include "irgraph_t.h" +#include "irnode_t.h" #include "irloop.h" #ifndef _IRLOOP_T_H_ @@ -96,8 +97,37 @@ _get_irg_loop(ir_graph *irg) { return irg->loop; } +static INLINE ir_loop * +_get_loop_outer_loop(const ir_loop *loop) { + assert(_is_ir_loop(loop)); + return loop->outer_loop; +} + +static INLINE int +_get_loop_depth(const ir_loop *loop) { + assert(_is_ir_loop(loop)); + return loop->depth; +} + +static INLINE int +_get_loop_n_sons(const ir_loop *loop) { + assert(_is_ir_loop(loop)); + return loop->n_sons; +} + +/* Uses temporary information to get the loop */ +static INLINE ir_loop * +_get_irn_loop(const ir_node *n) { + return n->loop; +} + + #define is_ir_loop(thing) _is_ir_loop(thing) #define set_irg_loop(irg, loop) _set_irg_loop(irg, loop) #define get_irg_loop(irg) _get_irg_loop(irg) +#define get_loop_outer_loop(loop) _get_loop_outer_loop(loop) +#define get_loop_depth(loop) _get_loop_depth(loop) +#define get_loop_n_sons(loop) _get_loop_n_sons(loop) +#define get_irn_loop(n) _get_irn_loop(n) #endif /* _IRLOOP_T_H_ */