X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=include%2Flibfirm%2Firloop.h;h=7c6db432fcb060b4af7c401c83205be04485637b;hb=6f068af98daa4725d60e5d23a8f98ec2841cfa44;hp=5b91b2fe01dce34933bb9415c71483816589b9d3;hpb=d7337be4ef7938bf403e919f71844215a56e10b2;p=libfirm diff --git a/include/libfirm/irloop.h b/include/libfirm/irloop.h index 5b91b2fe0..7c6db432f 100644 --- a/include/libfirm/irloop.h +++ b/include/libfirm/irloop.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved. + * Copyright (C) 1995-2011 University of Karlsruhe. All right reserved. * * This file is part of libFirm. * @@ -81,38 +81,40 @@ FIRM_API ir_loop *get_irn_loop(const ir_node *n); /** Returns outer loop, itself if outermost. */ FIRM_API ir_loop *get_loop_outer_loop(const ir_loop *loop); /** Returns nesting depth of this loop */ -FIRM_API int get_loop_depth(const ir_loop *loop); +FIRM_API unsigned get_loop_depth(const ir_loop *loop); /* Sons are the inner loops contained in this loop. */ /** Returns the number of inner loops */ -FIRM_API int get_loop_n_sons(const ir_loop *loop); +FIRM_API size_t get_loop_n_sons(const ir_loop *loop); /** Returns the pos`th son loop (inner loop) of a loop. Returns NULL if there is not a pos`th loop_node. */ -FIRM_API ir_loop *get_loop_son(ir_loop *loop, int pos); +FIRM_API ir_loop *get_loop_son(ir_loop *loop, size_t pos); /** Returns the number of nodes contained in loop. */ -FIRM_API int get_loop_n_nodes(const ir_loop *loop); +FIRM_API size_t get_loop_n_nodes(const ir_loop *loop); /** Returns the pos`th ir_node of a loop. Returns NULL if there is not a pos`th ir_node. */ -FIRM_API ir_node *get_loop_node(const ir_loop *loop, int pos); +FIRM_API ir_node *get_loop_node(const ir_loop *loop, size_t pos); /** Returns the number of elements contained in loop. */ -FIRM_API int get_loop_n_elements(const ir_loop *loop); +FIRM_API size_t get_loop_n_elements(const ir_loop *loop); /** Returns a loop element. A loop element can be interpreted as a kind pointer, an ir_node* or an ir_loop*. */ -FIRM_API loop_element get_loop_element(const ir_loop *loop, int pos); +FIRM_API loop_element get_loop_element(const ir_loop *loop, size_t pos); + +#define INVALID_LOOP_POS ((size_t)-1) /** Returns the element number of the loop son in loop. -* Returns -1 if not found. O(|elements|). */ -FIRM_API int get_loop_element_pos(const ir_loop *loop, void *le); +* Returns INVALID_LOOP_POS if not found. O(|elements|). */ +FIRM_API size_t get_loop_element_pos(const ir_loop *loop, void *le); /** Returns a unique node number for the loop node to make output readable. If libfirm_debug is not set it returns the loop cast to int. */ -FIRM_API int get_loop_loop_nr(const ir_loop *loop); +FIRM_API long get_loop_loop_nr(const ir_loop *loop); /** A field to connect additional information to a loop. */ FIRM_API void set_loop_link(ir_loop *loop, void *link);