X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fana%2Firloop.h;h=63b36b53f50633ddcfc64ca766830595e9a3cd69;hb=73eef69c89c2181e7ed3a2f7c09cdaa0f6d997e5;hp=f2a1824743381917cb3d0f8e858f35e594004408;hpb=74ac9588f8bec6d4237fa044be2fa61e22843ea3;p=libfirm diff --git a/ir/ana/irloop.h b/ir/ana/irloop.h index f2a182474..63b36b53f 100644 --- a/ir/ana/irloop.h +++ b/ir/ana/irloop.h @@ -101,6 +101,19 @@ int get_loop_n_elements (ir_loop *loop); kind pointer, an ir_node* or an ir_loop*. */ loop_element get_loop_element (ir_loop *loop, int pos); +/** Returns the element number of the loop son in loop. + * Returns -1 if not found. O(#elements). */ +int get_loop_element_pos(ir_loop *loop, void *le); + +/** Returns a unique node number for the loop node to make output + readable. Casten pointer if libfirm_debug not set. */ +int get_loop_loop_nr(ir_loop *loop); + +/** A field to connect additional information to a loop. Only valid + if libfirm_debug is set, else returns NULL. */ +void set_loop_link (ir_loop *loop, void *link); +void *get_loop_link (const ir_loop *loop); + /* * Constructing and destructing the loop/backedge information. */ @@ -116,6 +129,10 @@ void construct_backedges(ir_graph *irg); the second call. */ void construct_ip_backedges(void); +/* Construct loop tree only for control flow. */ +void construct_cf_backedges(ir_graph *irg); +void construct_ip_cf_backedges (void); + /** Removes all loop information. Resets all backedges */ void free_loop_information(ir_graph *irg);