From 2a5f9514d78cc6d72712c0b9eeebdbbcae0398b1 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Fri, 16 Apr 2021 17:40:30 -0500 Subject: [PATCH] started refactoring how stack space is allocated --- bin/onyx | Bin 358576 -> 358600 bytes include/onyxastnodes.h | 2 -- include/onyxwasm.h | 8 ++++- src/onyxchecker.c | 43 ++++++++++++++----------- src/onyxclone.c | 2 -- src/onyxparser.c | 1 - src/onyxsymres.c | 25 +++++---------- src/onyxwasm.c | 71 ++++++++++++++++++++++++++++++----------- 8 files changed, 93 insertions(+), 59 deletions(-) diff --git a/bin/onyx b/bin/onyx index 62630b2817bf6e0db06b4f0b195e08fe0c281879..80e1155d8b863fe850596dfa52667f06eb7e83fe 100755 GIT binary patch delta 110258 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%0Av2teKP;D32~` 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 VE{EfYRxL5Y_5gU|310@V_YcOt3IzZF diff --git a/include/onyxastnodes.h b/include/onyxastnodes.h index d6f9aa2f..2ef12781 100644 --- a/include/onyxastnodes.h +++ b/include/onyxastnodes.h @@ -575,8 +575,6 @@ struct AstBlock { AstNode *body; Scope *scope; - bh_arr(AstTyped *) allocate_exprs; - Scope *binding_scope; }; struct AstDefer { AstNode_base; AstNode *stmt; }; diff --git a/include/onyxwasm.h b/include/onyxwasm.h index 2c81d93b..a369cfb2 100644 --- a/include/onyxwasm.h +++ b/include/onyxwasm.h @@ -497,6 +497,11 @@ typedef struct DeferredStmt { AstNode *stmt; } DeferredStmt; +typedef struct AllocatedSpace { + u64 depth; + AstTyped *expr; +} AllocatedSpace; + typedef struct StrLitInfo { u32 addr; u32 len; @@ -519,7 +524,8 @@ typedef struct OnyxWasmModule { // NOTE: Mapping ptrs to elements bh_imap elem_map; - bh_arr(DeferredStmt) deferred_stmts; + bh_arr(DeferredStmt) deferred_stmts; + bh_arr(AllocatedSpace) local_allocations; // NOTE: Used internally as a map from strings that represent function types, // 0x7f 0x7f : 0x7f ( (i32, i32) -> i32 ) diff --git a/src/onyxchecker.c b/src/onyxchecker.c index a15e17fe..b33617e6 100644 --- a/src/onyxchecker.c +++ b/src/onyxchecker.c @@ -1467,6 +1467,13 @@ CheckStatus check_statement(AstNode** pstmt) { stmt->flags |= Ast_Flag_Expr_Ignored; return check_binaryop((AstBinaryOp **) pstmt, 1); + // NOTE: Local variable declarations used to be removed after the symbol + // resolution phase because long long ago, all locals needed to be known + // in a block in order to efficiently allocate enough space and registers + // for them all. Now with LocalAllocator, this is no longer necessary. + // Therefore, locals stay in the tree and need to be passed along. + case Ast_Kind_Local: return Check_Success; + default: stmt->flags |= Ast_Flag_Expr_Ignored; return check_expression((AstTyped **) pstmt); @@ -1485,24 +1492,24 @@ CheckStatus check_statement_chain(AstNode** start) { CheckStatus check_block(AstBlock* block) { CHECK(statement_chain, &block->body); - bh_arr_each(AstTyped *, value, block->allocate_exprs) { - fill_in_type(*value); - - if ((*value)->kind == Ast_Kind_Local) { - if ((*value)->type == NULL) { - onyx_report_error((*value)->token->pos, - "Unable to resolve type for local '%b'.", - (*value)->token->text, (*value)->token->length); - return Check_Error; - } - - if ((*value)->type->kind == Type_Kind_Compound) { - onyx_report_error((*value)->token->pos, - "Compound type not allowed as local variable type. Try splitting this into multiple variables."); - return Check_Error; - } - } - } + // bh_arr_each(AstTyped *, value, block->allocate_exprs) { + // fill_in_type(*value); + + // if ((*value)->kind == Ast_Kind_Local) { + // if ((*value)->type == NULL) { + // onyx_report_error((*value)->token->pos, + // "Unable to resolve type for local '%b'.", + // (*value)->token->text, (*value)->token->length); + // return Check_Error; + // } + + // if ((*value)->type->kind == Type_Kind_Compound) { + // onyx_report_error((*value)->token->pos, + // "Compound type not allowed as local variable type. Try splitting this into multiple variables."); + // return Check_Error; + // } + // } + // } return Check_Success; } diff --git a/src/onyxclone.c b/src/onyxclone.c index e4a76f6a..4a7617d3 100644 --- a/src/onyxclone.c +++ b/src/onyxclone.c @@ -215,8 +215,6 @@ AstNode* ast_clone(bh_allocator a, void* n) { case Ast_Kind_Block: ((AstBlock *) nn)->body = ast_clone_list(a, ((AstBlock *) node)->body); - ((AstBlock *) nn)->allocate_exprs = NULL; - bh_arr_new(global_heap_allocator, ((AstBlock *) nn)->allocate_exprs, 4); break; case Ast_Kind_Defer: diff --git a/src/onyxparser.c b/src/onyxparser.c index e4bd7450..79a689f6 100644 --- a/src/onyxparser.c +++ b/src/onyxparser.c @@ -1320,7 +1320,6 @@ static AstNode* parse_statement(OnyxParser* parser) { static AstBlock* parse_block(OnyxParser* parser) { AstBlock* block = make_node(AstBlock, Ast_Kind_Block); - bh_arr_new(global_heap_allocator, block->allocate_exprs, 4); // NOTE: --- is for an empty block if (parser->curr->type == Token_Type_Empty_Block) { diff --git a/src/onyxsymres.c b/src/onyxsymres.c index 99c356a5..a7aadca7 100644 --- a/src/onyxsymres.c +++ b/src/onyxsymres.c @@ -31,7 +31,7 @@ typedef enum SymresStatus { } SymresStatus; static SymresStatus symres_type(AstType** type); -static SymresStatus symres_local(AstLocal** local, b32 add_to_block_locals); +static SymresStatus symres_local(AstLocal** local); static SymresStatus symres_call(AstCall* call); static SymresStatus symres_size_of(AstSizeOf* so); static SymresStatus symres_align_of(AstAlignOf* so); @@ -246,16 +246,9 @@ static SymresStatus symres_type(AstType** type) { return Symres_Success; } -static SymresStatus symres_local(AstLocal** local, b32 add_to_block_locals) { +static SymresStatus symres_local(AstLocal** local) { SYMRES(type, &(*local)->type_node); - // NOTE: This is a little gross, but it is allows for finer control - // over when locals are in scope in a block, which reduces the number - // of unique WASM locals and stack space needed. - // - brendanfh 2020/12/16 - if (add_to_block_locals) - bh_arr_push(bh_arr_last(block_stack)->allocate_exprs, (AstTyped *) *local); - bh_arr_push(curr_function->allocate_exprs, (AstTyped *) *local); if ((*local)->token != NULL) @@ -409,10 +402,8 @@ static SymresStatus symres_array_literal(AstArrayLiteral* al) { bh_arr_each(AstTyped *, expr, al->values) SYMRES(expression, expr); - if (bh_arr_length(block_stack) > 0) { - bh_arr_push(bh_arr_last(block_stack)->allocate_exprs, (AstTyped *) al); + if (curr_function != NULL) bh_arr_push(curr_function->allocate_exprs, (AstTyped *) al); - } return Symres_Success; } @@ -509,7 +500,7 @@ static SymresStatus symres_if(AstIfWhile* ifnode) { ifnode->scope = scope_create(context.ast_alloc, curr_scope, ifnode->token->pos); scope_enter(ifnode->scope); - SYMRES(local, &ifnode->local, 0); + SYMRES(local, &ifnode->local); SYMRES(statement, (AstNode **) &ifnode->assignment, NULL); } @@ -529,7 +520,7 @@ static SymresStatus symres_while(AstIfWhile* whilenode) { whilenode->scope = scope_create(context.ast_alloc, curr_scope, whilenode->token->pos); scope_enter(whilenode->scope); - SYMRES(local, &whilenode->local, 0); + SYMRES(local, &whilenode->local); SYMRES(statement, (AstNode **) &whilenode->assignment, NULL); } @@ -548,7 +539,7 @@ static SymresStatus symres_for(AstFor* fornode) { fornode->scope = scope_create(context.ast_alloc, curr_scope, fornode->token->pos); scope_enter(fornode->scope); SYMRES(expression, &fornode->iter); - SYMRES(local, &fornode->var, 0); + SYMRES(local, &fornode->var); SYMRES(block, fornode->stmt); scope_leave(); @@ -743,8 +734,8 @@ static SymresStatus symres_statement(AstNode** stmt, b32 *remove) { case Ast_Kind_Jump: break; case Ast_Kind_Local: - if (remove) *remove = 1; - SYMRES(local, (AstLocal **) stmt, 1); + // if (remove) *remove = 1; + SYMRES(local, (AstLocal **) stmt); break; case Ast_Kind_Use: diff --git a/src/onyxwasm.c b/src/onyxwasm.c index 697152e2..05e26b9d 100644 --- a/src/onyxwasm.c +++ b/src/onyxwasm.c @@ -1,3 +1,17 @@ +// +// There are several things I'm seeing in this file that I want to clean up. +// They are: +// [ ] remove the need to know if the stack is needed before generating the function. +// Just leave 5 nops at the beginning because they will be automatically removed +// by the WASM outputter. +// [ ] remove the need to have "allocate_exprs" on blocks and in functions. This will +// be easy once the above is done. +// [ ] there should be a better way to emit pending deferred statements because there +// is some code duplication between emit_return and emit_structured_jump. + + + + #define BH_DEBUG #include "onyxwasm.h" #include "onyxutils.h" @@ -207,6 +221,8 @@ enum StructuredBlockType { EMIT_FUNC(function_body, AstFunction* fd); EMIT_FUNC(block, AstBlock* block, b32 generate_block_headers); EMIT_FUNC(statement, AstNode* stmt); +EMIT_FUNC(local_allocation, AstTyped* stmt); +EMIT_FUNC_NO_ARGS(free_local_allocations); EMIT_FUNC(assignment, AstBinaryOp* assign); EMIT_FUNC(assignment_of_array, AstTyped* left, AstTyped* right); EMIT_FUNC(compound_assignment, AstBinaryOp* assign); @@ -260,17 +276,12 @@ EMIT_FUNC(block, AstBlock* block, b32 generate_block_headers) { if (generate_block_headers) emit_enter_structured_block(mod, &code, SBT_Breakable_Block); - bh_arr_each(AstTyped *, expr, block->allocate_exprs) - bh_imap_put(&mod->local_map, (u64) *expr, local_allocate(mod->local_alloc, *expr)); - forll (AstNode, stmt, block->body, next) { emit_statement(mod, &code, stmt); } emit_deferred_stmts(mod, &code, (AstNode *) block); - - bh_arr_each(AstTyped *, expr, block->allocate_exprs) - local_free(mod->local_alloc, *expr); + emit_free_local_allocations(mod, &code); if (generate_block_headers) emit_leave_structured_block(mod, &code); @@ -377,12 +388,35 @@ EMIT_FUNC(statement, AstNode* stmt) { case Ast_Kind_Jump: emit_structured_jump(mod, &code, (AstJump *) stmt); break; case Ast_Kind_Block: emit_block(mod, &code, (AstBlock *) stmt, 1); break; case Ast_Kind_Defer: emit_defer(mod, &code, (AstDefer *) stmt); break; + case Ast_Kind_Local: emit_local_allocation(mod, &code, (AstTyped *) stmt); break; default: emit_expression(mod, &code, (AstTyped *) stmt); break; } *pcode = code; } +EMIT_FUNC(local_allocation, AstTyped* stmt) { + bh_imap_put(&mod->local_map, (u64) stmt, local_allocate(mod->local_alloc, stmt)); + + bh_arr_push(mod->local_allocations, ((AllocatedSpace) { + .depth = bh_arr_length(mod->structured_jump_target), + .expr = stmt, + })); +} + +EMIT_FUNC_NO_ARGS(free_local_allocations) { + if (bh_arr_length(mod->local_allocations) == 0) return; + + u64 depth = bh_arr_length(mod->structured_jump_target); + while (bh_arr_length(mod->local_allocations) > 0 && bh_arr_last(mod->local_allocations).depth == depth) { + // CHECK: Not sure this next line is okay to be here... + bh_imap_delete(&mod->local_map, (u64) bh_arr_last(mod->local_allocations).expr); + + local_free(mod->local_alloc, bh_arr_last(mod->local_allocations).expr); + bh_arr_pop(mod->local_allocations); + } +} + EMIT_FUNC(assignment, AstBinaryOp* assign) { bh_arr(WasmInstruction) code = *pcode; @@ -2189,6 +2223,7 @@ EMIT_FUNC(expression, AstTyped* expr) { } case Ast_Kind_Array_Literal: { + emit_local_allocation(mod, &code, expr); emit_array_literal(mod, &code, (AstArrayLiteral *) expr); break; } @@ -2585,21 +2620,20 @@ static i32 generate_type_idx(OnyxWasmModule* mod, Type* ft) { if (type_get_param_pass(*param_type) == Param_Pass_By_Implicit_Pointer) { *(t++) = (char) onyx_type_to_wasm_type(&basic_types[Basic_Kind_Rawptr]); - } else { - if (type_is_structlike_strict(*param_type)) { - u32 mem_count = type_structlike_mem_count(*param_type); - StructMember smem; + } + else if (type_is_structlike_strict(*param_type)) { + u32 mem_count = type_structlike_mem_count(*param_type); + StructMember smem; - fori (i, 0, mem_count) { - type_lookup_member_by_idx(*param_type, i, &smem); - *(t++) = (char) onyx_type_to_wasm_type(smem.type); - } + fori (i, 0, mem_count) { + type_lookup_member_by_idx(*param_type, i, &smem); + *(t++) = (char) onyx_type_to_wasm_type(smem.type); + } - param_count += mem_count - 1; + param_count += mem_count - 1; - } else { - *(t++) = (char) onyx_type_to_wasm_type(*param_type); - } + } else { + *(t++) = (char) onyx_type_to_wasm_type(*param_type); } param_type++; @@ -3124,6 +3158,7 @@ OnyxWasmModule onyx_wasm_module_create(bh_allocator alloc) { bh_imap_init(&module.elem_map, global_heap_allocator, 16); bh_arr_new(global_heap_allocator, module.deferred_stmts, 4); + bh_arr_new(global_heap_allocator, module.local_allocations, 4); WasmExport mem_export = { .kind = WASM_FOREIGN_MEMORY, -- 2.25.1