mirror of
https://github.com/danog/ir.git
synced 2024-12-02 17:55:40 +01:00
Allow motion of loop invariant bound nodes
Spilling of bound nodes may introduce anti-dependencies, but the previous restriction doesn't fix the possible problems
This commit is contained in:
parent
ae4daf223e
commit
e506c1367d
5
ir_gcm.c
5
ir_gcm.c
@ -126,8 +126,9 @@ static void ir_gcm_schedule_late(ir_ctx *ctx, uint32_t *_blocks, ir_bitset visit
|
|||||||
ir_block *bb = &ctx->cfg_blocks[b];
|
ir_block *bb = &ctx->cfg_blocks[b];
|
||||||
uint32_t loop_depth = bb->loop_depth;
|
uint32_t loop_depth = bb->loop_depth;
|
||||||
|
|
||||||
if (loop_depth
|
if (loop_depth) {
|
||||||
&& !(ctx->binding && ir_binding_find(ctx, ref))) {
|
// TODO: proper support for anti-dependencies between bound nodes ???
|
||||||
|
// && !(ctx->binding && ir_binding_find(ctx, ref))) {
|
||||||
uint32_t flags;
|
uint32_t flags;
|
||||||
|
|
||||||
use_list = &ctx->use_lists[ref];
|
use_list = &ctx->use_lists[ref];
|
||||||
|
Loading…
Reference in New Issue
Block a user