From a2c5243af5bd8482385aeb3395e073ff17f57a0d Mon Sep 17 00:00:00 2001 From: WormHeamer Date: Mon, 27 Oct 2025 22:34:51 -0400 Subject: remove several direct uses of in.data, out.data --- main.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/main.c b/main.c index e1db66d..1f1241d 100644 --- a/main.c +++ b/main.c @@ -341,7 +341,7 @@ void parse_args_list(Lexer *l, Proc *proc) { Node *find_return(Node *n) { if (n->op == N_RETURN) return n; for (int i = 0; i < n->out.len; i++) { - Node *r = find_return(n->out.data[i]); + Node *r = find_return(OUT(n, i)); if (r) return r; } return NULL; @@ -354,7 +354,7 @@ void proc_opt_fwd(Proc *p, Lexer *l, Node *n) { switch (n->op) { case N_START: for (int i = 0; i < n->out.len; i++) { - proc_opt_fwd(p, l, n->out.data[i]); + proc_opt_fwd(p, l, OUT(n, i)); } break; case N_IF_ELSE: @@ -362,15 +362,15 @@ void proc_opt_fwd(Proc *p, Lexer *l, Node *n) { //lex_error_at(l, n->src_pos, LE_ERROR, S("not all codepaths return")); } for (int i = 0; i < n->out.len; i++) { - Node *r = find_return(n->out.data[i]); + Node *r = find_return(OUT(n, i)); if (!r) { - lex_error_at(l, n->out.data[i]->src_pos, LE_ERROR, S("not all codepaths return")); + lex_error_at(l, OUT(n, i)->src_pos, LE_ERROR, S("not all codepaths return")); } - proc_opt_fwd(p, l, n->out.data[i]); + proc_opt_fwd(p, l, OUT(n, i)); } break; case N_PROJ: - proc_opt_fwd(p, l, n->out.data[0]); + proc_opt_fwd(p, l, OUT(n, 0)); break; case N_REGION: /* cull empty if else */ @@ -382,14 +382,14 @@ void proc_opt_fwd(Proc *p, Lexer *l, Node *n) { assert(OUT(n, 0)->op != N_PHI); assert(IN(OUT(n, 0), 0) == n); Node *new_ctrl = CTRL(CTRL(CTRL(n))); - Node *out = n->out.data[0]; + Node *out = OUT(n, 0); node_set_in(g, out, 0, new_ctrl); proc_opt_fwd(p, l, new_ctrl); return; } for (int i = 0; i < n->out.len; i++) { - if (n->out.data[i]->op != N_PHI) { - proc_opt_fwd(p, l, n->out.data[i]); + if (OUT(n, i)->op != N_PHI) { + proc_opt_fwd(p, l, OUT(n, i)); } } break; @@ -406,7 +406,7 @@ void proc_opt(Proc *p, Lexer *l) { } } for (int i = 0; i < g->start->out.len; i++) { - Node *n = g->start->out.data[i]; + Node *n = OUT(g->start, i); if (n->op == N_LIT && n->out.len < 1) { node_kill(n, g); i--; @@ -613,7 +613,7 @@ void node_print(Node *n, Proc *p) { break; } } else if (n->op == N_PROJ) { - Str d = type_desc(&n->in.data[0]->val.tuple.data[n->val.i].type, &p->scratch); + Str d = type_desc(&IN(n, 0)->val.tuple.data[n->val.i].type, &p->scratch); printf("\t%d [label=\"%.*s(%ld)\", shape=record]", n->id, (int)d.n, d.s, n->val.i); } else if (n->op == N_UNINIT) { Str s = type_desc(&n->type, &p->scratch); @@ -623,12 +623,12 @@ void node_print(Node *n, Proc *p) { } printf("\n"); for (int i = 0; i < n->out.len; i++) { - Node *o = n->out.data[i]; + Node *o = OUT(n, i); if (o->op == N_LIT) { printf("\t%d -> %d [style=dashed]\n", n->id, o->id); } else { int j; - for (j = 0; j < o->in.len && o->in.data[j] != n; j++); + for (j = 0; j < o->in.len && IN(o, j) != n; j++); if (j == 0) { printf("\t%d -> %d [color=red,headlabel=%d]\n", n->id, o->id, j); } else { @@ -637,7 +637,7 @@ void node_print(Node *n, Proc *p) { } } for (int i = 0; i < n->out.len; i++) { - node_print(n->out.data[i], p); + node_print(OUT(n, i), p); } } -- cgit v1.2.3