From 5560aa3b2eb6843b4a1675e62c67ce211dc02c94 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Fri, 16 Apr 2021 22:06:56 -0500 Subject: [PATCH] refactored for cleaner code generation. --- bin/onyx | Bin 358600 -> 358480 bytes include/onyxastnodes.h | 1 - include/onyxwasm.h | 6 +++++ src/onyxchecker.c | 3 +++ src/onyxclone.c | 6 ----- src/onyxparser.c | 1 - src/onyxsymres.c | 5 ---- src/onyxwasm.c | 55 ++++++++++++++++++++++------------------- 8 files changed, 38 insertions(+), 39 deletions(-) diff --git a/bin/onyx b/bin/onyx index 80e1155d8b863fe850596dfa52667f06eb7e83fe..5e002a9d88a1e2917fe43a92c604fca0ed34f032 100755 GIT binary patch delta 84465 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 UR2}MldS;=XXlX?S3-$K@2W8Z{XaE2J delta 85029 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Ⓢ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 i32 ) // to the function type index if it has been created. diff --git a/src/onyxchecker.c b/src/onyxchecker.c index b33617e6..7e5bdaf4 100644 --- a/src/onyxchecker.c +++ b/src/onyxchecker.c @@ -1492,6 +1492,9 @@ CheckStatus check_statement_chain(AstNode** start) { CheckStatus check_block(AstBlock* block) { CHECK(statement_chain, &block->body); + // CLEANUP: There will need to be some other method of + // checking the following conditions. + // // bh_arr_each(AstTyped *, value, block->allocate_exprs) { // fill_in_type(*value); diff --git a/src/onyxclone.c b/src/onyxclone.c index 4a7617d3..26c46732 100644 --- a/src/onyxclone.c +++ b/src/onyxclone.c @@ -365,9 +365,6 @@ AstNode* ast_clone(bh_allocator a, void* n) { df->return_type = (AstType *) ast_clone(a, sf->return_type); df->body = (AstBlock *) ast_clone(a, sf->body); - df->allocate_exprs = NULL; - bh_arr_new(global_heap_allocator, df->allocate_exprs, 4); - df->params = NULL; bh_arr_new(global_heap_allocator, df->params, bh_arr_length(sf->params)); @@ -460,7 +457,4 @@ void clone_function_body(bh_allocator a, AstFunction* dest, AstFunction* source) if (source->kind != Ast_Kind_Function) return; dest->body = (AstBlock *) ast_clone(a, source->body); - - dest->allocate_exprs = NULL; - bh_arr_new(global_heap_allocator, dest->allocate_exprs, 4); } diff --git a/src/onyxparser.c b/src/onyxparser.c index 79a689f6..f2325b8e 100644 --- a/src/onyxparser.c +++ b/src/onyxparser.c @@ -1869,7 +1869,6 @@ static AstFunction* parse_function_definition(OnyxParser* parser, OnyxToken* tok AstFunction* func_def = make_node(AstFunction, Ast_Kind_Function); func_def->token = token; - bh_arr_new(global_heap_allocator, func_def->allocate_exprs, 4); bh_arr_new(global_heap_allocator, func_def->params, 4); bh_arr(AstPolyParam) polymorphic_vars = NULL; diff --git a/src/onyxsymres.c b/src/onyxsymres.c index a7aadca7..240a06ce 100644 --- a/src/onyxsymres.c +++ b/src/onyxsymres.c @@ -249,8 +249,6 @@ static SymresStatus symres_type(AstType** type) { static SymresStatus symres_local(AstLocal** local) { SYMRES(type, &(*local)->type_node); - bh_arr_push(curr_function->allocate_exprs, (AstTyped *) *local); - if ((*local)->token != NULL) symbol_introduce(curr_scope, (*local)->token, (AstNode *) *local); @@ -402,9 +400,6 @@ static SymresStatus symres_array_literal(AstArrayLiteral* al) { bh_arr_each(AstTyped *, expr, al->values) SYMRES(expression, expr); - if (curr_function != NULL) - bh_arr_push(curr_function->allocate_exprs, (AstTyped *) al); - return Symres_Success; } diff --git a/src/onyxwasm.c b/src/onyxwasm.c index 05e26b9d..2368fafe 100644 --- a/src/onyxwasm.c +++ b/src/onyxwasm.c @@ -1,13 +1,15 @@ // // 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. +// [x] 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 +// [x] 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. +// +// [ ] Change the calling convention so it is easier to use from both JS and in the compiler. @@ -217,6 +219,7 @@ enum StructuredBlockType { local_raw_free(mod->local_alloc, type1); \ local_raw_free(mod->local_alloc, type2); \ } +#define SUBMIT_PATCH(patch_arr, offset) bh_arr_push((patch_arr), ((PatchInfo) { bh_arr_length(code) - offset })) EMIT_FUNC(function_body, AstFunction* fd); EMIT_FUNC(block, AstBlock* block, b32 generate_block_headers); @@ -255,7 +258,6 @@ EMIT_FUNC(expression, AstTyped* expr); EMIT_FUNC(cast, AstUnaryOp* cast); EMIT_FUNC(return, AstReturn* ret); EMIT_FUNC(stack_enter, u64 stacksize); -EMIT_FUNC(stack_leave, u32 unused); EMIT_FUNC(zero_value, WasmType wt); EMIT_FUNC(zero_value_for_type, Type* type, OnyxToken* where); @@ -2516,8 +2518,9 @@ EMIT_FUNC(return, AstReturn* ret) { } } - if (mod->has_stack_locals) - emit_stack_leave(mod, &code, 0); + SUBMIT_PATCH(mod->stack_leave_patches, 0); + WI(WI_NOP); + WI(WI_NOP); WI(WI_RETURN); @@ -2545,16 +2548,6 @@ EMIT_FUNC(stack_enter, u64 stacksize) { code[3] = (WasmInstruction) { WI_I32_ADD, 0 }; code[4] = (WasmInstruction) { WI_GLOBAL_SET, { .l = stack_top_idx } }; } - *pcode = code; -} - -EMIT_FUNC(stack_leave, u32 unused) { - bh_arr(WasmInstruction) code = *pcode; - - u64 stack_top_idx = bh_imap_get(&mod->index_map, (u64) &builtin_stack_top); - - WIL(WI_LOCAL_GET, mod->stack_base_idx); - WID(WI_GLOBAL_SET, stack_top_idx); *pcode = code; } @@ -2768,23 +2761,29 @@ static void emit_function(OnyxWasmModule* mod, AstFunction* fd) { mod->curr_cc = type_function_get_cc(fd->type); assert(mod->curr_cc != CC_Undefined); - mod->has_stack_locals = (mod->curr_cc == CC_Return_Stack); - bh_arr_each(AstTyped *, expr, fd->allocate_exprs) - mod->has_stack_locals |= !local_is_wasm_local(*expr); + bh_arr_clear(mod->stack_leave_patches); - if (mod->has_stack_locals) { - // NOTE: '5' needs to match the number of instructions it takes - // to setup a stack frame - bh_arr_insert_end(wasm_func.code, 5); - mod->stack_base_idx = local_raw_allocate(mod->local_alloc, WASM_TYPE_PTR); - } + bh_arr_insert_end(wasm_func.code, 5); + fori (i, 0, 5) wasm_func.code[i] = (WasmInstruction) { WI_NOP, 0 }; + + mod->stack_base_idx = local_raw_allocate(mod->local_alloc, WASM_TYPE_PTR); // Generate code emit_function_body(mod, &wasm_func.code, fd); - if (mod->has_stack_locals) { + if (mod->local_alloc->max_stack > 0 || mod->curr_cc == CC_Return_Stack) { emit_stack_enter(mod, &wasm_func.code, mod->local_alloc->max_stack); - emit_stack_leave(mod, &wasm_func.code, 0); + + // Place all stack leaves in patch locations. These will (probably) all be + // right before a "return" instruction. + u64 stack_top_idx = bh_imap_get(&mod->index_map, (u64) &builtin_stack_top); + bh_arr_push(wasm_func.code, ((WasmInstruction) { WI_LOCAL_GET, { .l = mod->stack_base_idx } })); + bh_arr_push(wasm_func.code, ((WasmInstruction) { WI_GLOBAL_SET, { .l = stack_top_idx } })); + + bh_arr_each(PatchInfo, patch, mod->stack_leave_patches) { + wasm_func.code[patch->instruction_index + 0] = (WasmInstruction) { WI_LOCAL_GET, { .l = mod->stack_base_idx } }; + wasm_func.code[patch->instruction_index + 1] = (WasmInstruction) { WI_GLOBAL_SET, { .l = stack_top_idx } }; + } } } @@ -3124,6 +3123,8 @@ OnyxWasmModule onyx_wasm_module_create(bh_allocator alloc) { .next_elem_idx = 0, .structured_jump_target = NULL, + .local_allocations = NULL, + .stack_leave_patches = NULL, .stack_top_ptr = NULL, .stack_base_idx = 0, @@ -3159,11 +3160,13 @@ OnyxWasmModule onyx_wasm_module_create(bh_allocator alloc) { bh_arr_new(global_heap_allocator, module.deferred_stmts, 4); bh_arr_new(global_heap_allocator, module.local_allocations, 4); + bh_arr_new(global_heap_allocator, module.stack_leave_patches, 4); WasmExport mem_export = { .kind = WASM_FOREIGN_MEMORY, .idx = 0, }; + // :ArbitraryConstant bh_table_put(WasmExport, module.exports, "memory", mem_export); module.export_count++; -- 2.25.1