X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fana%2Firbackedge.c;h=8a39fe23e9ea705b93b2c6a32876386408674b1d;hb=4bad1346ff2abc3923beea23e5ac949acc7ca514;hp=9b37ac00d7dea63e3acae73283d0e90e563bbdbd;hpb=0edf9bdd1e3febef197ae77cee25f9d2b25474d6;p=libfirm diff --git a/ir/ana/irbackedge.c b/ir/ana/irbackedge.c index 9b37ac00d..8a39fe23e 100644 --- a/ir/ana/irbackedge.c +++ b/ir/ana/irbackedge.c @@ -82,7 +82,7 @@ static INLINE bool legal_backarray (ir_node *n) { } -INLINE void fix_backedges(struct obstack *obst, ir_node *n) { +void fix_backedges(struct obstack *obst, ir_node *n) { opcode opc = get_irn_opcode(n); int *arr = mere_get_backarray(n); if (ARR_LEN(arr) == ARR_LEN(get_irn_in(n))-1) @@ -105,6 +105,25 @@ INLINE void fix_backedges(struct obstack *obst, ir_node *n) { }*/ } +int is_inter_backedge(ir_node *n, int pos) { + int res; + int rem = get_interprocedural_view(); + set_interprocedural_view(0); + res = is_backedge(n, pos); + set_interprocedural_view(rem); + return res; +} + +int is_intra_backedge(ir_node *n, int pos) { + int res; + int rem = get_interprocedural_view(); + set_interprocedural_view(1); + res = is_backedge(n, pos); + set_interprocedural_view(rem); + return res; +} + + /** Returns true if the predecessor pos is a backedge. */ bool is_backedge (ir_node *n, int pos) { int *ba = get_backarray (n);