X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fana%2Fvrp.c;h=8e51b831b94ad0e380a965aeb4df12e5655baab1;hb=971bb3d4ab2da19de4f3edc07e56e4249d765efd;hp=a684431f70cd678ab360cd1a58f477b8eefa3886;hpb=24be66840a207d58dd74a2e41086a652b301641c;p=libfirm diff --git a/ir/ana/vrp.c b/ir/ana/vrp.c index a684431f7..8e51b831b 100644 --- a/ir/ana/vrp.c +++ b/ir/ana/vrp.c @@ -21,7 +21,7 @@ * @file * @brief analyze graph to provide value range information * @author Jonas Fietz - * @version $Id$ + * @version $Id$ */ #include "config.h" @@ -43,10 +43,10 @@ DEBUG_ONLY(static firm_dbg_module_t *dbg); -struct vrp_env_t { +typedef struct vrp_env_t { waitq *workqueue; bitset_t *visited; -}; +} vrp_env_t; static vrp_attr *get_vrp_attr(const ir_node *node) { @@ -55,10 +55,10 @@ static vrp_attr *get_vrp_attr(const ir_node *node) static int vrp_update_node(ir_node *node) { - tarval *new_bits_set = get_tarval_bad(); - tarval *new_bits_not_set = get_tarval_bad(); - tarval *new_range_bottom = get_tarval_bad(); - tarval *new_range_top = get_tarval_bad(); + ir_tarval *new_bits_set = get_tarval_bad(); + ir_tarval *new_bits_not_set = get_tarval_bad(); + ir_tarval *new_range_bottom = get_tarval_bad(); + ir_tarval *new_range_top = get_tarval_bad(); enum range_types new_range_type = VRP_UNDEFINED; int something_changed = 0; vrp_attr *vrp; @@ -73,7 +73,7 @@ static int vrp_update_node(ir_node *node) switch (get_irn_opcode(node)) { case iro_Const: { - tarval *tv = get_Const_tarval(node); + ir_tarval *tv = get_Const_tarval(node); new_bits_set = tv; new_bits_not_set = tv; new_range_bottom = tv; @@ -97,7 +97,7 @@ static int vrp_update_node(ir_node *node) case iro_Add: { int overflow_top, overflow_bottom; - tarval *new_top, *new_bottom; + ir_tarval *new_top, *new_bottom; const vrp_attr *vrp_left, *vrp_right; vrp_left = get_vrp_attr(get_Add_left(node)); vrp_right = get_vrp_attr(get_Add_right(node)); @@ -129,7 +129,7 @@ static int vrp_update_node(ir_node *node) case iro_Sub: { int overflow_top, overflow_bottom; - tarval *new_top, *new_bottom; + ir_tarval *new_top, *new_bottom; const vrp_attr *vrp_left, *vrp_right; vrp_left = get_vrp_attr(get_Sub_left(node)); vrp_right = get_vrp_attr(get_Sub_right(node)); @@ -179,7 +179,7 @@ static int vrp_update_node(ir_node *node) /* We can only compute this if the right value is a constant*/ if (is_Const(right)) { - tarval *bits_set, *bits_not_set; + ir_tarval *bits_set, *bits_not_set; bits_set = tarval_rotl(vrp_left->bits_set, get_Const_tarval(right)); bits_not_set = tarval_rotl(vrp_left->bits_not_set, get_Const_tarval(right)); } @@ -478,7 +478,7 @@ static int vrp_update_node(ir_node *node) static void vrp_first_pass(ir_node *n, void *e) { int i; - struct vrp_env_t *env = e; + vrp_env_t *env = (vrp_env_t*) e; if (is_Block(n)) return; @@ -503,7 +503,7 @@ static void *vrp_init_node(ir_phase *phase, const ir_node *n) vrp_attr *vrp; DBG((dbg, LEVEL_2, "initialized node nr: %d\n", get_irn_node_nr(n))); - vrp = phase_alloc(phase, sizeof(vrp_attr)); + vrp = (vrp_attr*) phase_alloc(phase, sizeof(vrp_attr)); memset(vrp, 0, sizeof(vrp_attr)); /* Initialize the vrp information to default */ @@ -543,7 +543,7 @@ void set_vrp_data(ir_graph *irg) { ir_node *succ, *node; int i; - struct vrp_env_t *env; + vrp_env_t *env; ir_phase *phase; FIRM_DBG_REGISTER(dbg, "ir.ana.vrp"); @@ -554,10 +554,10 @@ void set_vrp_data(ir_graph *irg) /* this is our first run */ phase = new_phase(irg, vrp_init_node); irg_register_phase(irg, PHASE_VRP, phase); - env = phase_alloc(phase, sizeof(*env)); + env = (vrp_env_t*) phase_alloc(phase, sizeof(*env)); phase->priv = env; } else { - env = phase->priv; + env = (vrp_env_t*) phase->priv; } env->workqueue = new_waitq(); @@ -568,7 +568,7 @@ void set_vrp_data(ir_graph *irg) /* while there are entries in the worklist, continue*/ while (!waitq_empty(env->workqueue)) { - node = waitq_get(env->workqueue); + node = (ir_node*) waitq_get(env->workqueue); if (vrp_update_node(node)) { /* if something changed, add successors to worklist*/ @@ -626,7 +626,7 @@ vrp_attr *vrp_get_info(const ir_node *node) return NULL; } - vrp = phase_get_irn_data(phase, node); + vrp = (vrp_attr*) phase_get_irn_data(phase, node); if (vrp && vrp->valid) { return vrp; }