mirror of
https://github.com/danog/ir.git
synced 2024-12-03 10:08:29 +01:00
Disable scheduling of related ADD_OV/SUB_OV/MUL_OV and OVERFLOW into different blocks
This commit is contained in:
parent
18bdfb4203
commit
3f009c2d5a
9
ir_gcm.c
9
ir_gcm.c
@ -166,6 +166,11 @@ static void ir_gcm_schedule_late(ir_ctx *ctx, uint32_t *_blocks, ir_bitset visit
|
||||
}
|
||||
_blocks[ref] = b;
|
||||
}
|
||||
|
||||
if (ctx->ir_base[ref + 1].op == IR_OVERFLOW) {
|
||||
/* OVERFLOW is a projection and must be scheduled together with previous ADD/SUB/MUL_OV */
|
||||
_blocks[ref + 1] = b;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -214,6 +219,10 @@ static void ir_gcm_schedule_rest(ir_ctx *ctx, uint32_t *_blocks, ir_bitset visit
|
||||
IR_ASSERT(lca != 0 && "No Common Antecessor");
|
||||
b = lca;
|
||||
_blocks[ref] = b;
|
||||
if (ctx->ir_base[ref + 1].op == IR_OVERFLOW) {
|
||||
/* OVERFLOW is a projection and must be scheduled together with previous ADD/SUB/MUL_OV */
|
||||
_blocks[ref + 1] = b;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user