X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firgwalk.h;h=e856a8db7dbbe08eb2fdec2089bf1f788d421db5;hb=5f8ddee6b08c8040c0a304a347d65045c1141d52;hp=61096d1286064b4676a86f72b9d035315bd3038c;hpb=efbeaff549fcc6015da255ed4d453a95937ff0fd;p=libfirm diff --git a/ir/ir/irgwalk.h b/ir/ir/irgwalk.h index 61096d128..e856a8db7 100644 --- a/ir/ir/irgwalk.h +++ b/ir/ir/irgwalk.h @@ -6,6 +6,9 @@ ** traverse an ir graph ** - execute the pre function before recursion ** - execute the post function after recursion +** +** Uses current_ir_graph (from irgraph.h)!!! Set it to the proper +** graph before starting the walker. */ @@ -15,11 +18,18 @@ # include "irnode.h" +/* Walks over the ir graph, starting at the node given as first argument. + Executes pre before visiting the predecessor of a node, post after. + irg_walk uses the visited flag in irg and the nodes to determine visited + nodes. It executes inc_irg_visited(current_ir_graph) to generate a new + flag. It marks the node as visited before executing pre. + The void* env can be used to pass status information between the + pre and post functions. */ void irg_walk(ir_node *node, void (pre)(ir_node*, void*), void (post)(ir_node*, void*), void *env); -/* walks only over Block nodes in the graph. Has it's own visited +/* Walks only over Block nodes in the graph. Has it's own visited flag, so that it can be interleaved with the other walker. */ void irg_block_walk(ir_node *node, void (pre)(ir_node*, void*), void (post)(ir_node*, void*),