From 7bbd625dbcd0c711f5f11f98e91b59bb9162d00b Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Sun, 10 Jan 2021 23:39:30 -0600 Subject: [PATCH] polymorphic procedures are allowed in overloaded functions --- bin/onyx | Bin 317888 -> 322320 bytes core/alloc.onyx | 6 -- core/memory.onyx | 5 ++ include/onyxastnodes.h | 8 +++ include/onyxerrors.h | 1 + onyx.exe | Bin 401408 -> 405504 bytes src/onyx.c | 5 +- src/onyxchecker.c | 37 ++++++++++-- src/onyxclone.c | 23 ++++++++ src/onyxerrors.c | 5 ++ src/onyxsymres.c | 14 ++++- src/onyxutils.c | 83 ++++++++++++++++++++++---- src/onyxwasm.c | 121 ++++++++++++++++++++++++-------------- tests/aoc-2020/day23.onyx | 2 +- 14 files changed, 237 insertions(+), 73 deletions(-) diff --git a/bin/onyx b/bin/onyx index 23dd19cdf4c5e69a038d7aded1025d5ee3c6a5c3..42c02224c1b6319f5943955013b0a329dca35dd6 100755 GIT binary patch delta 105829 zcmZ^s34Be*`~UBpB*YRoWRXP3l>{L{EFqSVkZ?l~C1`62YTtr{sO5$vxNg%%PZ>+8 zs;XVus90KJ--^^;Yf5p_Sb`#@QQxZaDydJ+|C{6+X|ns*r)TA!3`uSMq}{bX+nZ%}$aLy= zJ9mylW+fBP+F46PryH$3qzXKLl*ZEp?z=)O)nbABbDk~m9-Ob>++@wT2^XvrBDCdv zlfb)io+I!XE42dc5%>o@e7-$5=|*wENqd1VmGc6DPvZQVz~^&bDDW>iR|LL7&6ZO)so1ck`T9V`qW?$iuq|JdblP#*x3yn$Q6*FbEMU@g@xt_<0^a zRN&V+4;T1D&LeF&%U}1B3yd}bRo!^T@dB^L`5=MU<~&j0%{d<{@PL&LYW}(;LC}Fm zNEP@X&eH@wg7d`!pTv2#z~^wjVy4NyFD+cKPKdCQ^GyQZz0SE+`QMWt^7^y!t9l+jXh-Emw|2bTcWGet)zQAP1io&a)@3;YPyEVJwLiLi zK~Qb07U878BN2i9yC!f~9==fE1|Ggd;BGv8X{w{9|JE+h@d(bd?3K%tM{pH*p{#{7 z2;7H<4-$Aj4tL?R6rJXY4F+YdWq1@50mZvg7FgM4phrPN36S6ABWz zktY-?@JOCcxWKLHL<+n&ONZ&7Q4kn-Lh%B(CNxOk{ds{B1+L@ij1{;wog{Eo|Ekq{|g1dGQOr$1ip#$5`iD!yj0*bZfh0O&9+zGN!B%^Nf3l^fvdo0 zbM7VZFwPAE59d5c;4L^0<-C0TKa2~)g$VsPj}-VvoErsxYq?hAc!7KH@Pq8RNoV4M zM0LqYT&J6;u%z2Q&t8yMXM_B*=%`*-c zB0T0iQsDPEHwyeA=kWr6!1*96*X*B8=fX>rXcegTPp7NJ`B;J1-khfj{0put zX#zL>&IOAF!9C8i1^$ln6$1A<&rP_%PjAxrCV@w3>6mmmf}jOY$T`j4WLo_OfoE`o z6D07@I1d&08qUL2j`p`|;}2XADMZNS+$iwFoW~2ifb&5Dzsz}}Eoc2-$OU6<1>mKe zCkgyN&Qk^M!j≻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%0At|b|Tq_XG@Q9EIUN)Ou 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

FuFF$ptNULE*+kMAhO)6reI@fKGVN{8Y3nUmR6 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 GbohS>BU`Qj diff --git a/core/alloc.onyx b/core/alloc.onyx index d6c47662..792e497c 100644 --- a/core/alloc.onyx +++ b/core/alloc.onyx @@ -15,12 +15,6 @@ heap_allocator : Allocator; temp_state : ring.RingState; temp_allocator : Allocator; - -alloc_slice :: proc (sl: ^[] $T, count: i32) { - sl.data = calloc(sizeof T * count); - sl.count = count; -} - init :: proc () { heap.init(); diff --git a/core/memory.onyx b/core/memory.onyx index da952cbe..fd7f0805 100644 --- a/core/memory.onyx +++ b/core/memory.onyx @@ -10,3 +10,8 @@ set :: proc (start: rawptr, length: u32, value: u8) { s := cast(^u8) start; for i: 0 .. length do s[i] = value; } + +alloc_slice :: proc (sl: ^[] $T, count: i32) { + sl.data = calloc(sizeof T * count); + sl.count = count; +} \ No newline at end of file diff --git a/include/onyxastnodes.h b/include/onyxastnodes.h index 113f9232..a2ff9115 100644 --- a/include/onyxastnodes.h +++ b/include/onyxastnodes.h @@ -201,6 +201,8 @@ typedef enum AstFlags { // HACK: NullProcHack Ast_Flag_Proc_Is_Null = BH_BIT(22), + + Ast_Flag_From_Polymorphism = BH_BIT(23), } AstFlags; typedef enum UnaryOp { @@ -954,10 +956,14 @@ void initialize_builtins(bh_allocator a, ProgramInfo* prog); // NOTE: Useful not inlined functions AstTyped* ast_reduce(bh_allocator a, AstTyped* node); AstNode* ast_clone(bh_allocator a, void* n); +AstFunction* clone_function_header(bh_allocator a, AstFunction* func); + void promote_numlit_to_larger(AstNumLit* num); b32 convert_numlit_to_type(AstNumLit* num, Type* type); + b32 type_check_or_auto_cast(AstTyped** pnode, Type* type); Type* resolve_expression_type(AstTyped* node); + b32 cast_is_legal(Type* from_, Type* to_, char** err_msg); char* get_function_name(AstFunction* func); @@ -970,10 +976,12 @@ AstFieldAccess* make_field_access(bh_allocator a, AstTyped* node, char* field); typedef enum PolyProcLookupMethod { PPLM_By_Call, PPLM_By_Function_Type, + PPLM_By_Value_Array, } PolyProcLookupMethod; AstFunction* polymorphic_proc_lookup(AstPolyProc* pp, PolyProcLookupMethod pp_lookup, ptr actual, OnyxFilePos pos); AstFunction* polymorphic_proc_solidify(AstPolyProc* pp, bh_arr(AstPolySolution) slns, OnyxFilePos pos); AstNode* polymorphic_proc_try_solidify(AstPolyProc* pp, bh_arr(AstPolySolution) slns, OnyxFilePos pos); +AstFunction* polymorphic_proc_build_only_header(AstPolyProc* pp, PolyProcLookupMethod pp_lookup, ptr actual); AstStructType* polymorphic_struct_lookup(AstPolyStructType* ps_type, bh_arr(AstPolySolution) slns, OnyxFilePos pos); diff --git a/include/onyxerrors.h b/include/onyxerrors.h index dcc2fbfa..7b544619 100644 --- a/include/onyxerrors.h +++ b/include/onyxerrors.h @@ -30,5 +30,6 @@ void onyx_errors_init(bh_table(bh_file_contents)* files); void onyx_report_error(OnyxFilePos pos, char * format, ...); void onyx_errors_print(); b32 onyx_has_errors(); +void onyx_clear_errors(); #endif diff --git a/onyx.exe b/onyx.exe index d9206455fd119e4ad0aae6de39ff40cbf1f2c618..117b2fcae117a119dfb7a1c4c275b7eeb06ad25e 100644 GIT binary patch delta 67832 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 diff --git a/src/onyx.c b/src/onyx.c index 852129e7..67164bac 100644 --- a/src/onyx.c +++ b/src/onyx.c @@ -345,13 +345,14 @@ static void merge_parse_results(CompilerState* compiler_state, ParseResults* res break; } - case Ast_Kind_Struct_Type: - case Ast_Kind_Poly_Struct_Type: { + case Ast_Kind_Struct_Type: { ent.type = Entity_Type_Struct_Member_Default; ent.type_alias = (AstType *) node; entity_heap_insert(&compiler_state->prog_info.entities, ent); // fallthrough } + + case Ast_Kind_Poly_Struct_Type: case Ast_Kind_Type_Alias: { ent.type = Entity_Type_Type_Alias; ent.type_alias = (AstType *) node; diff --git a/src/onyxchecker.c b/src/onyxchecker.c index 90d7b607..70f29ac4 100644 --- a/src/onyxchecker.c +++ b/src/onyxchecker.c @@ -45,6 +45,7 @@ CheckStatus check_struct(AstStructType* s_node); CheckStatus check_function_header(AstFunction* func); CheckStatus check_memres_type(AstMemRes* memres); CheckStatus check_memres(AstMemRes* memres); +CheckStatus check_type_alias(AstTypeAlias* type_alias); static inline void fill_in_type(AstTyped* node); @@ -295,12 +296,19 @@ CheckStatus check_switch(AstSwitch* switchnode) { } static AstTyped* match_overloaded_function(bh_arr(AstTyped *) arg_arr, bh_arr(AstTyped *) overloads) { bh_arr_each(AstTyped *, node, overloads) { - AstFunction* overload = (AstFunction *) *node; + AstFunction* overload = NULL; + if ((*node)->kind == Ast_Kind_Function) { + overload = (AstFunction *) *node; + } + else if ((*node)->kind == Ast_Kind_Polymorphic_Proc) { + overload = polymorphic_proc_build_only_header((AstPolyProc *) *node, PPLM_By_Value_Array, arg_arr); + } + + if (overload == NULL) continue; fill_in_type((AstTyped *) overload); TypeFunction* ol_type = &overload->type->Function; - if (bh_arr_length(arg_arr) < (i32) ol_type->needed_param_count) continue; Type** param_type = ol_type->params; @@ -320,7 +328,7 @@ static AstTyped* match_overloaded_function(bh_arr(AstTyped *) arg_arr, bh_arr(As param_type++; } - return (AstTyped *) overload; + return (AstTyped *) *node; no_match: continue; @@ -356,6 +364,7 @@ CheckStatus check_call(AstCall* call) { // NOTE: Check arguments bh_arr_each (AstArgument *, actual, arg_arr) { CHECK(expression, (AstTyped **) actual); + (*actual)->type = (*actual)->value->type; if ((*actual)->value->kind == Ast_Kind_Overloaded_Function) { onyx_report_error((*actual)->token->pos, @@ -1467,8 +1476,8 @@ CheckStatus check_overloaded_function(AstOverloadedFunction* func) { return Check_Error; } - if ((*node)->kind != Ast_Kind_Function) { - onyx_report_error((*node)->token->pos, "Overload option not function. Got '%s'", + if ((*node)->kind != Ast_Kind_Function && (*node)->kind != Ast_Kind_Polymorphic_Proc) { + onyx_report_error((*node)->token->pos, "Overload option not procedure. Got '%s'", onyx_ast_node_kind_string((*node)->kind)); return Check_Error; @@ -1621,6 +1630,22 @@ CheckStatus check_memres(AstMemRes* memres) { return Check_Success; } +CheckStatus check_type_alias(AstTypeAlias* type_alias) { + AstType* to = type_alias->to; + + if (to->kind == Ast_Kind_Poly_Call_Type) { + AstPolyCallType* pc_node = (AstPolyCallType *) to; + bh_arr_each(AstNode *, param, pc_node->params) { + if (!node_is_type(*param)) { + CHECK(expression, (AstTyped **) param); + resolve_expression_type((AstTyped *) *param); + } + } + } + + return Check_Success; +} + CheckStatus check_node(AstNode* node) { switch (node->kind) { case Ast_Kind_Function: return check_function((AstFunction *) node); @@ -1668,6 +1693,8 @@ void check_entity(Entity* ent) { case Entity_Type_Type_Alias: if (ent->type_alias->kind == Ast_Kind_Struct_Type) cs = check_struct((AstStructType *) ent->type_alias); + else if (ent->type_alias->kind == Ast_Kind_Type_Alias) + check_type_alias((AstTypeAlias *) ent->type_alias); break; case Entity_Type_Memory_Reservation_Type: diff --git a/src/onyxclone.c b/src/onyxclone.c index 9d04ebe6..dcb73be1 100644 --- a/src/onyxclone.c +++ b/src/onyxclone.c @@ -411,3 +411,26 @@ AstNode* ast_clone(bh_allocator a, void* n) { return nn; } + +AstFunction* clone_function_header(bh_allocator a, AstFunction* func) { + if (func->kind != Ast_Kind_Function) return NULL; + + if (func->flags & Ast_Flag_Foreign) return func; + + AstFunction* new_func = onyx_ast_node_new(a, sizeof(AstFunction), func->kind); + memmove(new_func, func, sizeof(AstFunction)); + + new_func->return_type = (AstType *) ast_clone(a, func->return_type); + + new_func->params = NULL; + bh_arr_new(global_heap_allocator, new_func->params, bh_arr_length(func->params)); + bh_arr_each(AstParam, param, func->params) { + AstParam new_param; + new_param.local = (AstLocal *) ast_clone(a, param->local); + new_param.default_value = (AstTyped *) ast_clone(a, param->default_value); + new_param.vararg_kind = param->vararg_kind; + bh_arr_push(new_func->params, new_param); + } + + return new_func; +} \ No newline at end of file diff --git a/src/onyxerrors.c b/src/onyxerrors.c index ed8bc702..682f37c9 100644 --- a/src/onyxerrors.c +++ b/src/onyxerrors.c @@ -71,3 +71,8 @@ void onyx_errors_print() { b32 onyx_has_errors() { return bh_arr_length(errors.errors) > 0; } + +void onyx_clear_errors() { + bh_printf("ERRORS WERE CLEARED!!!\n"); + bh_arr_set_length(errors.errors, 0); +} \ No newline at end of file diff --git a/src/onyxsymres.c b/src/onyxsymres.c index 77edbbeb..9fbf29c6 100644 --- a/src/onyxsymres.c +++ b/src/onyxsymres.c @@ -643,7 +643,7 @@ void symres_function_header(AstFunction* func) { } } - if (func->operator_overload != (BinaryOp) -1) { + if ((func->flags & Ast_Flag_From_Polymorphism) == 0 && func->operator_overload != (BinaryOp) -1) { if (bh_arr_length(func->params) != 2) { onyx_report_error(func->token->pos, "Expected 2 exactly arguments for binary operator overload."); } @@ -831,6 +831,18 @@ static void symres_struct_defaults(AstType* t) { static void symres_polyproc(AstPolyProc* pp) { pp->poly_scope = semstate.curr_scope; + + if (pp->base_func->operator_overload != (BinaryOp) -1) { + if (bh_arr_length(pp->base_func->params) != 2) { + onyx_report_error(pp->base_func->token->pos, "Expected 2 exactly arguments for binary operator overload."); + } + + if (binop_is_assignment(pp->base_func->operator_overload)) { + onyx_report_error(pp->base_func->token->pos, "'%s' is not currently overloadable.", binaryop_string[pp->base_func->operator_overload]); + } + + bh_arr_push(operator_overloads[pp->base_func->operator_overload], (AstTyped *) pp); + } } void symres_entity(Entity* ent) { diff --git a/src/onyxutils.c b/src/onyxutils.c index f6eab9bb..efd2a486 100644 --- a/src/onyxutils.c +++ b/src/onyxutils.c @@ -329,11 +329,7 @@ static PolySolveResult solve_poly_type(AstNode* target, AstType* type_expr, Type return result; } -AstFunction* polymorphic_proc_lookup(AstPolyProc* pp, PolyProcLookupMethod pp_lookup, ptr actual, OnyxFilePos pos) { - if (pp->concrete_funcs == NULL) { - bh_table_init(global_heap_allocator, pp->concrete_funcs, 8); - } - +static bh_arr(AstPolySolution) find_polymorphic_slns(AstPolyProc* pp, PolyProcLookupMethod pp_lookup, ptr actual, char** err_msg) { bh_arr(AstPolySolution) slns = NULL; bh_arr_new(global_heap_allocator, slns, bh_arr_length(pp->poly_params)); @@ -353,39 +349,50 @@ AstFunction* polymorphic_proc_lookup(AstPolyProc* pp, PolyProcLookupMethod pp_lo if (pp_lookup == PPLM_By_Call) { if (param->idx >= ((AstCall *) actual)->arg_count) { - onyx_report_error(pos, "Not enough arguments to polymorphic procedure."); - return NULL; + if (err_msg) *err_msg = "Not enough arguments to polymorphic procedure."; + goto sln_not_found; } bh_arr(AstArgument *) arg_arr = ((AstCall *) actual)->arg_arr; actual_type = resolve_expression_type(arg_arr[param->idx]->value); } + else if (pp_lookup == PPLM_By_Value_Array) { + bh_arr(AstTyped *) arg_arr = (bh_arr(AstTyped *)) actual; + + if ((i32) param->idx >= bh_arr_length(arg_arr)) { + if (err_msg) *err_msg = "Not enough arguments to polymorphic procedure."; + goto sln_not_found; + } + + actual_type = resolve_expression_type(arg_arr[param->idx]); + } + else if (pp_lookup == PPLM_By_Function_Type) { Type* ft = (Type*) actual; if (param->idx >= ft->Function.param_count) { - onyx_report_error(pos, "Incompatible polymorphic argument to function paramter."); - return NULL; + if (err_msg) *err_msg = "Incompatible polymorphic argument to function paramter."; + goto sln_not_found; } actual_type = ft->Function.params[param->idx]; } else { - onyx_report_error(pos, "Cannot resolve polymorphic function type."); - return NULL; + if (err_msg) *err_msg = "Cannot resolve polymorphic function type."; + goto sln_not_found; } PolySolveResult resolved = solve_poly_type(param->poly_sym, param->type_expr, actual_type); switch (resolved.kind) { case PSK_Undefined: - onyx_report_error(pos, + if (err_msg) *err_msg = bh_aprintf(global_heap_allocator, "Unable to solve for polymoprhic variable '%b', using the type '%s'.", param->poly_sym->token->text, param->poly_sym->token->length, type_get_name(actual_type)); - return NULL; + goto sln_not_found; case PSK_Type: bh_arr_push(slns, ((AstPolySolution) { @@ -405,6 +412,25 @@ AstFunction* polymorphic_proc_lookup(AstPolyProc* pp, PolyProcLookupMethod pp_lo } } + return slns; + +sln_not_found: + bh_arr_free(slns); + return NULL; +} + +AstFunction* polymorphic_proc_lookup(AstPolyProc* pp, PolyProcLookupMethod pp_lookup, ptr actual, OnyxFilePos pos) { + if (pp->concrete_funcs == NULL) { + bh_table_init(global_heap_allocator, pp->concrete_funcs, 8); + } + + char *err_msg = NULL; + bh_arr(AstPolySolution) slns = find_polymorphic_slns(pp, pp_lookup, actual, &err_msg); + if (slns == NULL) { + if (err_msg != NULL) onyx_report_error(pos, err_msg); + else onyx_report_error(pos, "Some kind of error occured when generating a polymorphic procedure. You hopefully will not see this"); + } + AstFunction* result = polymorphic_proc_solidify(pp, slns, pos); bh_arr_free(slns); @@ -476,6 +502,7 @@ AstFunction* polymorphic_proc_solidify(AstPolyProc* pp, bh_arr(AstPolySolution) bh_table_put(AstFunction *, pp->concrete_funcs, unique_key, func); func->flags |= Ast_Flag_Function_Used; + func->flags |= Ast_Flag_From_Polymorphism; Entity func_header_entity = { .state = Entity_State_Resolve_Symbols, @@ -559,6 +586,36 @@ AstNode* polymorphic_proc_try_solidify(AstPolyProc* pp, bh_arr(AstPolySolution) } } +AstFunction* polymorphic_proc_build_only_header(AstPolyProc* pp, PolyProcLookupMethod pp_lookup, ptr actual) { + bh_arr(AstPolySolution) slns = find_polymorphic_slns(pp, pp_lookup, actual, NULL); + if (slns == NULL) return NULL; + + Scope* poly_scope = scope_create(semstate.node_allocator, pp->poly_scope, (OnyxFilePos) { 0 }); + insert_poly_slns_into_scope(poly_scope, slns); + + // NOTE: This function is only going to have the header of it correctly created. + // Nothing should happen to this function's body or else the original will be corrupted. + // - brendanfh 2021/01/10 + AstFunction* new_func = clone_function_header(semstate.node_allocator, pp->base_func); + new_func->flags |= Ast_Flag_From_Polymorphism; + + Entity func_header_entity = { + .state = Entity_State_Resolve_Symbols, + .type = Entity_Type_Function_Header, + .function = new_func, + .package = NULL, + .scope = poly_scope, + }; + + entity_bring_to_state(&func_header_entity, Entity_State_Code_Gen); + if (onyx_has_errors()) { + onyx_clear_errors(); + return NULL; + } + + return new_func; +} + char* build_poly_struct_name(AstPolyStructType* ps_type, Type* cs_type) { char name_buf[256]; fori (i, 0, 256) name_buf[i] = 0; diff --git a/src/onyxwasm.c b/src/onyxwasm.c index e1837dd7..57bf4e87 100644 --- a/src/onyxwasm.c +++ b/src/onyxwasm.c @@ -209,6 +209,7 @@ EMIT_FUNC(struct_load, Type* type, u64 offset); EMIT_FUNC(struct_lval, AstTyped* lval); EMIT_FUNC(struct_store, Type* type, u64 offset); EMIT_FUNC(struct_literal, AstStructLiteral* sl); +EMIT_FUNC(array_store, Type* type, u32 offset); EMIT_FUNC(array_literal, AstArrayLiteral* al); EMIT_FUNC(range_literal, AstRangeLiteral* range); EMIT_FUNC(expression, AstTyped* expr); @@ -394,15 +395,15 @@ EMIT_FUNC(assignment_of_array, AstBinaryOp* assign) { Type* rtype = assign->right->type; assert(rtype->kind == Type_Kind_Array); - Type* elem_type = rtype; - u32 elem_count = 1; - while (elem_type->kind == Type_Kind_Array) { - elem_count *= elem_type->Array.count; - elem_type = elem_type->Array.elem; - } - u32 elem_size = type_size_of(elem_type); - if (assign->right->kind == Ast_Kind_Array_Literal) { + Type* elem_type = rtype; + u32 elem_count = 1; + while (elem_type->kind == Type_Kind_Array) { + elem_count *= elem_type->Array.count; + elem_type = elem_type->Array.elem; + } + u32 elem_size = type_size_of(elem_type); + u64 lptr_local = local_raw_allocate(mod->local_alloc, WASM_TYPE_INT32); emit_location(mod, &code, assign->left); @@ -426,39 +427,9 @@ EMIT_FUNC(assignment_of_array, AstBinaryOp* assign) { local_raw_free(mod->local_alloc, WASM_TYPE_INT32); } else { - u64 lptr_local = local_raw_allocate(mod->local_alloc, WASM_TYPE_INT32); - u64 rptr_local = local_raw_allocate(mod->local_alloc, WASM_TYPE_INT32); - emit_location(mod, &code, assign->left); - WIL(WI_LOCAL_SET, lptr_local); - emit_expression(mod, &code, assign->right); - WIL(WI_LOCAL_SET, rptr_local); - - // NOTE: Currently, we inline the copying of the array; But if the array has - // many elements, this could result in a LOT of instructions. Maybe for lengths - // greater than like 16 we output a loop that copies them? - // - brendanfh 2020/12/16 - fori (i, 0, elem_count) { - if (!type_is_structlike(elem_type)) - WIL(WI_LOCAL_GET, lptr_local); - - if (bh_arr_last(code).type == WI_LOCAL_SET && (u64) bh_arr_last(code).data.l == rptr_local) - bh_arr_last(code).type = WI_LOCAL_TEE; - else - WIL(WI_LOCAL_GET, rptr_local); - emit_load_instruction(mod, &code, elem_type, i * elem_size); - - if (!type_is_structlike(elem_type)) { - emit_store_instruction(mod, &code, elem_type, i * elem_size); - } else { - WIL(WI_LOCAL_GET, lptr_local); - emit_store_instruction(mod, &code, elem_type, i * elem_size); - } - } - - local_raw_free(mod->local_alloc, WASM_TYPE_INT32); - local_raw_free(mod->local_alloc, WASM_TYPE_INT32); + emit_array_store(mod, &code, rtype, 0); } *pcode = code; @@ -473,6 +444,11 @@ EMIT_FUNC(store_instruction, Type* type, u32 offset) { return; } + if (type->kind == Type_Kind_Array) { + emit_array_store(mod, pcode, type, offset); + return; + } + if (type->kind == Type_Kind_Enum) { type = type->Enum.backing; } @@ -1953,6 +1929,52 @@ EMIT_FUNC(struct_literal, AstStructLiteral* sl) { *pcode = code; } +EMIT_FUNC(array_store, Type* type, u32 offset) { + assert(type->kind == Type_Kind_Array); + bh_arr(WasmInstruction) code = *pcode; + + Type* elem_type = type; + u32 elem_count = 1; + while (elem_type->kind == Type_Kind_Array) { + elem_count *= elem_type->Array.count; + elem_type = elem_type->Array.elem; + } + u32 elem_size = type_size_of(elem_type); + + u64 lptr_local = local_raw_allocate(mod->local_alloc, WASM_TYPE_INT32); + u64 rptr_local = local_raw_allocate(mod->local_alloc, WASM_TYPE_INT32); + WIL(WI_LOCAL_SET, rptr_local); + WIL(WI_LOCAL_SET, lptr_local); + + // NOTE: Currently, we inline the copying of the array; But if the array has + // many elements, this could result in a LOT of instructions. Maybe for lengths + // greater than like 16 we output a loop that copies them? + // - brendanfh 2020/12/16 + fori (i, 0, elem_count) { + if (!type_is_structlike(elem_type)) + WIL(WI_LOCAL_GET, lptr_local); + + if (bh_arr_last(code).type == WI_LOCAL_SET && (u64) bh_arr_last(code).data.l == rptr_local) + bh_arr_last(code).type = WI_LOCAL_TEE; + else + WIL(WI_LOCAL_GET, rptr_local); + emit_load_instruction(mod, &code, elem_type, i * elem_size); + + if (!type_is_structlike(elem_type)) { + emit_store_instruction(mod, &code, elem_type, i * elem_size + offset); + } else { + WIL(WI_LOCAL_GET, lptr_local); + emit_store_instruction(mod, &code, elem_type, i * elem_size + offset); + } + } + + local_raw_free(mod->local_alloc, WASM_TYPE_INT32); + local_raw_free(mod->local_alloc, WASM_TYPE_INT32); + + *pcode = code; + return; +} + EMIT_FUNC(array_literal, AstArrayLiteral* al) { bh_arr(WasmInstruction) code = *pcode; @@ -2442,12 +2464,19 @@ EMIT_FUNC(stack_enter, u64 stacksize) { u64 stack_top_idx = bh_imap_get(&mod->index_map, (u64) &builtin_stack_top); // HACK: slightly... There will be space for 5 instructions - code[0] = (WasmInstruction) { WI_GLOBAL_GET, { .l = stack_top_idx } }; - code[1] = (WasmInstruction) { WI_LOCAL_TEE, { .l = mod->stack_base_idx} }; - code[2] = (WasmInstruction) { WI_I32_CONST, { .l = stacksize } }; - code[3] = (WasmInstruction) { WI_I32_ADD, 0 }; - code[4] = (WasmInstruction) { WI_GLOBAL_SET, { .l = stack_top_idx } }; - + if (stacksize == 0) { + code[0] = (WasmInstruction) { WI_GLOBAL_GET, { .l = stack_top_idx } }; + code[1] = (WasmInstruction) { WI_LOCAL_SET, { .l = mod->stack_base_idx} }; + code[2] = (WasmInstruction) { WI_NOP, 0 }; + code[3] = (WasmInstruction) { WI_NOP, 0 }; + code[4] = (WasmInstruction) { WI_NOP, 0 }; + } else { + code[0] = (WasmInstruction) { WI_GLOBAL_GET, { .l = stack_top_idx } }; + code[1] = (WasmInstruction) { WI_LOCAL_TEE, { .l = mod->stack_base_idx} }; + code[2] = (WasmInstruction) { WI_I32_CONST, { .l = stacksize } }; + code[3] = (WasmInstruction) { WI_I32_ADD, 0 }; + code[4] = (WasmInstruction) { WI_GLOBAL_SET, { .l = stack_top_idx } }; + } *pcode = code; } @@ -3528,6 +3557,8 @@ static void output_instruction(WasmFunc* func, WasmInstruction* instr, bh_buffer i32 leb_len; u8* leb; + if (instr->type == WI_NOP) return; + if (instr->type & SIMD_INSTR_MASK) { bh_buffer_write_byte(buff, 0xFD); leb = uint_to_uleb128((u64) (instr->type &~ SIMD_INSTR_MASK), &leb_len); diff --git a/tests/aoc-2020/day23.onyx b/tests/aoc-2020/day23.onyx index 886d9161..4d28fcbf 100644 --- a/tests/aoc-2020/day23.onyx +++ b/tests/aoc-2020/day23.onyx @@ -26,7 +26,7 @@ range_by :: proc (lo: i32, hi: i32) -> range { simulate :: proc (cups: [] i32, moves := 100) { cw : [] i32; - alloc.alloc_slice(^cw, cups.count); + memory.alloc_slice(^cw, cups.count); defer cfree(cw.data); for i: 0 .. cups.count do cw[cups[i]] = cups[w(i + 1)]; -- 2.25.1