DBG((dbg, LEVEL_1, " Computing register pressure for class %s:\n", cls->name));
DBG((dbg, LEVEL_1, "=====================================================\n", cls->name));
+ /* construct control flow loop tree */
+ if (! (get_irg_loopinfo_state(irg) & loopinfo_cf_consistent)) {
+ construct_cf_backedges(irg);
+ }
+
be_compute_loop_pressure(loop_ana, get_irg_loop(irg), cls);
return loop_ana;
loop_ana->data = new_set(cmp_loop_info, 16);
loop_ana->birg = birg;
+ /* construct control flow loop tree */
+ if (! (get_irg_loopinfo_state(irg) & loopinfo_cf_consistent)) {
+ construct_cf_backedges(irg);
+ }
+
for (i = arch_isa_get_n_reg_class(isa) - 1; i >= 0; --i) {
const arch_register_class_t *cls = arch_isa_get_reg_class(isa, i);
DBG((dbg, LEVEL_1, "\n=====================================================\n", cls->name));
* @param walk_env The walker environment
*/
static void lower_nodes_after_ra_walker(ir_node *irn, void *walk_env) {
- if (! is_Block(irn) && ! is_Proj(irn)) {
- if (be_is_Perm(irn)) {
- int perm_stayed = push_through_perm(irn, walk_env);
- if (perm_stayed)
- lower_perm_node(irn, walk_env);
- }
- }
+ int perm_stayed;
- return;
+ if (is_Block(irn) || is_Proj(irn))
+ return;
+ if (!be_is_Perm(irn))
+ return;
+
+ perm_stayed = push_through_perm(irn, walk_env);
+ if (!perm_stayed)
+ return;
+
+ lower_perm_node(irn, walk_env);
}
/**