Reset interfal flags that become wrong after coalescing

This commit is contained in:
Dmitry Stogov 2023-10-13 12:51:14 +03:00
parent 1b978f67ce
commit e884c6b84c

View File

@ -1587,6 +1587,7 @@ static void ir_vregs_join(ir_ctx *ctx, uint32_t r1, uint32_t r2)
ctx->live_intervals[r1]->flags |= ctx->live_intervals[r1]->flags |=
IR_LIVE_INTERVAL_COALESCED | (ival->flags & (IR_LIVE_INTERVAL_HAS_HINT_REGS|IR_LIVE_INTERVAL_HAS_HINT_REFS)); IR_LIVE_INTERVAL_COALESCED | (ival->flags & (IR_LIVE_INTERVAL_HAS_HINT_REGS|IR_LIVE_INTERVAL_HAS_HINT_REFS));
ctx->live_intervals[r1]->flags &= ~(IR_LIVE_INTERVAL_MEM_PARAM|IR_LIVE_INTERVAL_MEM_LOAD);
ctx->live_intervals[r2] = NULL; ctx->live_intervals[r2] = NULL;
// TODO: remember to reuse ??? // TODO: remember to reuse ???