diff options
Diffstat (limited to 'ir.c')
| -rw-r--r-- | ir.c | 13 |
1 files changed, 7 insertions, 6 deletions
@@ -60,12 +60,12 @@ void node_kill(Node *n, Proc *p) { } void node_add_out(Proc *p, Node *a, Node *b) { - ZDA_PUSH(&p->arena, &a->out, b); + ZDA_PUSH(&p->perm, &a->out, b); if (b) b->refs++; } void node_add_in(Proc *p, Node *a, Node *b) { - ZDA_PUSH(&p->arena, &a->in, b); + ZDA_PUSH(&p->perm, &a->in, b); if (b) b->refs++; } @@ -113,7 +113,7 @@ Node *node_new_empty(Proc *p, NodeType t) { p->free_list = n->prev_free; memset(n, 0, sizeof(Node)); } else { - n = new(&p->arena, Node); + n = new(&p->perm, Node); } n->op = t; n->id = global_node_count++; @@ -180,7 +180,8 @@ void proc_init(Proc *proc, Str name) { } void proc_free(Proc *proc) { - arena_free(&proc->arena); + arena_free(&proc->perm); + arena_free(&proc->scratch); } /* scope */ @@ -203,7 +204,7 @@ ScopeFrame *scope_push(Scope *scope, Proc *proc) { *f = (ScopeFrame) { 0 }; scope->free_scope = f->prev; } else { - f = new(&proc->arena, ScopeFrame); + f = new(&proc->perm, ScopeFrame); } f->prev = scope->tail; scope->tail = f; @@ -234,7 +235,7 @@ NameBinding *scope_bind(Scope *scope, Str name, Node *value, LexSpan pos, Proc * *b = (NameBinding) { 0 }; scope->free_bind = b->prev; } else { - b = new(&proc->arena, NameBinding); + b = new(&proc->perm, NameBinding); } b->name = name; b->prev = scope->tail->latest; |
