mirror of
https://github.com/danog/ir.git
synced 2025-01-21 21:21:19 +01:00
Disable LICM across an OSR ENTRY if the value can't be restored at OSR ENTRY point (support for nested loops)
This commit is contained in:
parent
7441eb2171
commit
c2470bc684
4
ir_gcm.c
4
ir_gcm.c
@ -131,6 +131,10 @@ static void ir_gcm_schedule_late(ir_ctx *ctx, uint32_t *_blocks, ir_bitset visit
|
||||
while (lca != _blocks[ref]) {
|
||||
bb = &ctx->cfg_blocks[lca];
|
||||
if (bb->loop_depth < loop_depth) {
|
||||
if ((ctx->cfg_blocks[bb->loop_header].flags & IR_BB_LOOP_WITH_ENTRY)
|
||||
&& !(ctx->binding && ir_binding_find(ctx, ref))) {
|
||||
break;
|
||||
}
|
||||
loop_depth = bb->loop_depth;
|
||||
b = lca;
|
||||
if (!loop_depth) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user