diff options
Diffstat (limited to 'optmem.c')
| -rw-r--r-- | optmem.c | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -184,8 +184,8 @@ void mem2reg(struct function *fn) { static struct bitset ssealed[4]; - struct block *blk = fn->entry; struct ssabuilder sb = { .nblk = fn->nblk }; + struct block *blk; sb.pendingphis = xcalloc(fn->nblk * sizeof *sb.pendingphis); if (fn->nblk <= 64 * arraylength(ssealed)) { @@ -195,6 +195,9 @@ mem2reg(struct function *fn) sb.sealed = xcalloc(BSSIZE(fn->nblk) * sizeof *sb.sealed); } + sortrpo(fn); + blk = fn->entry; + do { for (int i = 0; i < blk->ins.n; ++i) { struct use *use, *uend; |