X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fopt%2Fopt_blocks.c;h=78ff88dabbb506bbaa02b7f053131c5e80889701;hb=e0a2eca7e1d13c2f1ccb8a70479039c01c0c69ef;hp=41cd075216e60a1d713102acf6afecfd3908c117;hpb=87a94af7fac4f3c2cef44646a585e862aa7687e8;p=libfirm diff --git a/ir/opt/opt_blocks.c b/ir/opt/opt_blocks.c index 41cd07521..78ff88dab 100644 --- a/ir/opt/opt_blocks.c +++ b/ir/opt/opt_blocks.c @@ -23,8 +23,7 @@ * @author Michael Beck * @version $Id$ * - * This phase find congruent blocks. Works currently for - * predecessors of the end block only. + * This phase find congruent blocks. * Two block are congruent, if they contains only equal calculations. */ #include "config.h" @@ -40,7 +39,8 @@ #include "set.h" #include "debug.h" -/* define this for gneral block shaping */ +/* define this for general block shaping: congruent blocks + are found not only before the end block but anywhere in the graph */ #define GENERAL_SHAPE typedef struct partition_t partition_t; @@ -413,7 +413,7 @@ static opcode_key_t *opcode(const node_t *node, environment_t *env) { key.mode = get_Load_mode(irn); break; case iro_Div: - key.u.intVal = is_Div_remainderless(irn); + key.u.intVal = get_Div_no_remainder(irn); break; case iro_Builtin: key.u.intVal = get_Builtin_kind(irn); @@ -550,7 +550,7 @@ void propagate_blocks(partition_t *part, environment_t *env) { DB((dbg, LEVEL_3, " propagate Input %+F\n", node->node)); } - /* Add bl to map[opcode(bl)]. */ + /* Add bl to map[opcode(n)]. */ id = opcode(node, env); entry = listmap_find(&map, id); bl->next = entry->list; @@ -1140,7 +1140,7 @@ static void add_roots(ir_graph *irg, environment_t *env) { } /* * Now sort the roots to normalize them as good as possible. - * Else, we will split identical blocks if we start which different roots + * Else, we will split identical blocks if we start which different roots. */ for (bl = env->all_blocks; bl != NULL; bl = bl->all_next) { int i, n = ARR_LEN(bl->roots);