From b21925cd89aee21a26b488fe3b6e38efa1ceea1c Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Wed, 22 Jul 2020 14:07:37 -0500 Subject: [PATCH] Added struct member parameter splatted; effectively structs can pass by value --- include/onyxastnodes.h | 1 + include/onyxtypes.h | 7 ++- onyx | Bin 300184 -> 302696 bytes progs/structs.onyx | 11 ++-- src/onyxchecker.c | 136 ++++++++++++++++++++++++++++++++--------- src/onyxtypes.c | 56 ++++++++++++++++- src/onyxwasm.c | 4 ++ 7 files changed, 180 insertions(+), 35 deletions(-) diff --git a/include/onyxastnodes.h b/include/onyxastnodes.h index e13af87d..8d6d42fe 100644 --- a/include/onyxastnodes.h +++ b/include/onyxastnodes.h @@ -120,6 +120,7 @@ typedef enum AstFlags { // Expression flags Ast_Flag_Expr_Ignored = BH_BIT(8), + Ast_Flag_Param_Splatted = BH_BIT(9), // Type flags Ast_Flag_Type_Is_Resolved = BH_BIT(8), diff --git a/include/onyxtypes.h b/include/onyxtypes.h index d90faefb..f0cf4714 100644 --- a/include/onyxtypes.h +++ b/include/onyxtypes.h @@ -47,7 +47,7 @@ typedef struct TypeBasic { typedef struct Type Type; typedef struct StructMember { - u64 offset; + u32 offset, idx; Type *type; } StructMember; @@ -101,16 +101,21 @@ struct Type { extern Type basic_types[]; struct AstType; +struct AstFunction; + b32 types_are_compatible(Type* t1, Type* t2); u32 type_size_of(Type* type); Type* type_build_from_ast(bh_allocator alloc, struct AstType* type_node); +Type* type_build_function_type(bh_allocator alloc, struct AstFunction* func, struct AstType* return_type); + Type* type_make_pointer(bh_allocator alloc, Type* to); const char* type_get_name(Type* type); u32 type_get_alignment_log2(Type* type); b32 type_struct_lookup_member(Type* type, char* member, StructMember* smem); +b32 type_struct_is_simple(Type* type); b32 type_is_pointer(Type* type); b32 type_is_array(Type* tyoe); diff --git a/onyx b/onyx index 8e1d6afeb1e6ffdf56be82e1c5fc7ccc7a1e3ac1..2b68828bf89f06aa5813d97f264fb8e0b9c1aff9 100755 GIT binary patch delta 110845 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 a!njf=Q=(4IHi$^srqi=c=f|6@&i@PWA9iv8 delta 107440 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

Ilx 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 Gl>8s@uS>)L diff --git a/progs/structs.onyx b/progs/structs.onyx index f07ef921..bfe93372 100644 --- a/progs/structs.onyx +++ b/progs/structs.onyx @@ -133,7 +133,7 @@ proc #export "main" { v3.z = 1; print(v3.magnitude()); - vec2_splat(*v2, *(v3 as ^Vec2)); + vec2_splat(*v2, *v3); print((1).minus(2)); } @@ -149,12 +149,13 @@ vec2_set :: proc (v: ^Vec2) { v.y = 5678; } -vec2_splat :: proc (vx: i32, vy: i32, other: i32, otherother: i32) { +vec2_splat :: proc (vx: i32, vy: i32, other: Vec3) { + print(other.x); + print(other.y); + print(other.z); + print(vx); print(vy); - - print(other); - print(otherother); } soa_test :: proc #export "main9" { diff --git a/src/onyxchecker.c b/src/onyxchecker.c index 34a75f2f..44dbd8a8 100644 --- a/src/onyxchecker.c +++ b/src/onyxchecker.c @@ -14,11 +14,11 @@ CHECK(while, AstWhile* whilenode); CHECK(for, AstFor* fornode); CHECK(call, AstCall* call); CHECK(binaryop, AstBinaryOp* binop, b32 assignment_is_ok); -CHECK(expression, AstTyped* expr); +CHECK(expression, AstTyped** expr); CHECK(address_of, AstAddressOf* aof); CHECK(dereference, AstDereference* deref); CHECK(array_access, AstArrayAccess* expr); -CHECK(field_access, AstFieldAccess* field); +CHECK(field_access, AstFieldAccess** pfield); CHECK(size_of, AstSizeOf* so); CHECK(global, AstGlobal* global); CHECK(function, AstFunction* func); @@ -33,7 +33,7 @@ static inline void fill_in_type(AstTyped* node) { CHECK(return, AstReturn* retnode) { if (retnode->expr) { - if (check_expression(retnode->expr)) return 1; + if (check_expression(&retnode->expr)) return 1; if (!types_are_compatible(retnode->expr->type, semstate.expected_return_type)) { onyx_message_add(Msg_Type_Function_Return_Mismatch, @@ -55,7 +55,7 @@ CHECK(return, AstReturn* retnode) { } CHECK(if, AstIf* ifnode) { - if (check_expression(ifnode->cond)) return 1; + if (check_expression(&ifnode->cond)) return 1; if (!type_is_bool(ifnode->cond->type)) { onyx_message_add(Msg_Type_Literal, @@ -71,7 +71,7 @@ CHECK(if, AstIf* ifnode) { } CHECK(while, AstWhile* whilenode) { - if (check_expression(whilenode->cond)) return 1; + if (check_expression(&whilenode->cond)) return 1; if (!type_is_bool(whilenode->cond->type)) { onyx_message_add(Msg_Type_Literal, @@ -84,12 +84,12 @@ CHECK(while, AstWhile* whilenode) { } CHECK(for, AstFor* fornode) { - if (check_expression(fornode->start)) return 1; - if (check_expression(fornode->end)) return 1; + if (check_expression(&fornode->start)) return 1; + if (check_expression(&fornode->end)) return 1; if (fornode->step) - if (check_expression(fornode->step)) return 1; + if (check_expression(&fornode->step)) return 1; - if (check_expression((AstTyped *) fornode->var)) return 1; + if (check_expression((AstTyped **) &fornode->var)) return 1; // HACK if (!types_are_compatible(fornode->start->type, &basic_types[Basic_Kind_I32])) { @@ -168,10 +168,17 @@ CHECK(call, AstCall* call) { AstNode** prev_param = (AstNode **) &call->arguments; AstArgument* actual_param = call->arguments; while (actual_param != NULL) { - if (check_expression((AstTyped *) actual_param)) return 1; + if (check_expression((AstTyped **) &actual_param)) return 1; // NOTE: Splat structures into multiple arguments if (actual_param->type->kind == Type_Kind_Struct) { + if (!type_struct_is_simple(actual_param->type)) { + onyx_message_add(Msg_Type_Literal, + actual_param->token->pos, + "can only splat simple structure. nested structures or struct of arrays is not allowed."); + return 1; + } + bh_arr_each(StructMember *, smem, actual_param->type->Struct.memarr) { AstFieldAccess* field = onyx_ast_node_new(semstate.node_allocator, sizeof(AstFieldAccess), Ast_Kind_Field_Access); field->expr = actual_param->value; @@ -323,8 +330,8 @@ CHECK(call, AstCall* call) { } CHECK(binaryop, AstBinaryOp* binop, b32 assignment_is_ok) { - if (check_expression(binop->left)) return 1; - if (check_expression(binop->right)) return 1; + if (check_expression(&binop->left)) return 1; + if (check_expression(&binop->right)) return 1; if (binop_is_assignment(binop)) { if (!assignment_is_ok) { @@ -423,7 +430,7 @@ CHECK(binaryop, AstBinaryOp* binop, b32 assignment_is_ok) { } CHECK(address_of, AstAddressOf* aof) { - if (check_expression(aof->expr)) return 1; + if (check_expression(&aof->expr)) return 1; if (aof->expr->kind != Ast_Kind_Array_Access && aof->expr->kind != Ast_Kind_Dereference @@ -440,7 +447,7 @@ CHECK(address_of, AstAddressOf* aof) { } CHECK(dereference, AstDereference* deref) { - if (check_expression(deref->expr)) return 1; + if (check_expression(&deref->expr)) return 1; if (!type_is_pointer(deref->expr->type)) { onyx_message_add(Msg_Type_Literal, @@ -462,8 +469,8 @@ CHECK(dereference, AstDereference* deref) { } CHECK(array_access, AstArrayAccess* aa) { - if (check_expression(aa->addr)) return 1; - if (check_expression(aa->expr)) return 1; + if (check_expression(&aa->addr)) return 1; + if (check_expression(&aa->expr)) return 1; if (!type_is_pointer(aa->addr->type)) { onyx_message_add(Msg_Type_Literal, @@ -496,8 +503,9 @@ CHECK(array_access, AstArrayAccess* aa) { return 0; } -CHECK(field_access, AstFieldAccess* field) { - if (check_expression(field->expr)) return 1; +CHECK(field_access, AstFieldAccess** pfield) { + AstFieldAccess* field = *pfield; + if (check_expression(&field->expr)) return 1; if (!type_is_struct(field->expr->type)) { onyx_message_add(Msg_Type_Literal, @@ -517,6 +525,18 @@ CHECK(field_access, AstFieldAccess* field) { return 1; } + if (field->expr->flags & Ast_Flag_Param_Splatted) { + AstLocal* param = (AstLocal *) field->expr; + + u32 steps = smem.idx + 1; + while (steps--) param = (AstLocal *) param->next; + + // NOTE: Not actually a field access + *pfield = (AstFieldAccess *) param; + token_toggle_end(field->token); + return 0; + } + field->offset = smem.offset; field->type = smem.type; @@ -530,7 +550,8 @@ CHECK(size_of, AstSizeOf* so) { return 0; } -CHECK(expression, AstTyped* expr) { +CHECK(expression, AstTyped** pexpr) { + AstTyped* expr = *pexpr; if (expr->kind > Ast_Kind_Type_Start && expr->kind < Ast_Kind_Type_End) { onyx_message_add(Msg_Type_Literal, (OnyxFilePos) { 0 }, @@ -545,7 +566,7 @@ CHECK(expression, AstTyped* expr) { case Ast_Kind_Binary_Op: retval = check_binaryop((AstBinaryOp *) expr, 0); break; case Ast_Kind_Unary_Op: - retval = check_expression(((AstUnaryOp *) expr)->expr); + retval = check_expression(&((AstUnaryOp *) expr)->expr); if (((AstUnaryOp *) expr)->operation != Unary_Op_Cast) { expr->type = ((AstUnaryOp *) expr)->expr->type; @@ -576,7 +597,7 @@ CHECK(expression, AstTyped* expr) { case Ast_Kind_Address_Of: retval = check_address_of((AstAddressOf *) expr); break; case Ast_Kind_Dereference: retval = check_dereference((AstDereference *) expr); break; case Ast_Kind_Array_Access: retval = check_array_access((AstArrayAccess *) expr); break; - case Ast_Kind_Field_Access: retval = check_field_access((AstFieldAccess *) expr); break; + case Ast_Kind_Field_Access: retval = check_field_access((AstFieldAccess **) pexpr); break; case Ast_Kind_Size_Of: retval = check_size_of((AstSizeOf *) expr); break; case Ast_Kind_Global: @@ -589,7 +610,7 @@ CHECK(expression, AstTyped* expr) { break; case Ast_Kind_Argument: - retval = check_expression(((AstArgument *) expr)->value); + retval = check_expression(&((AstArgument *) expr)->value); expr->type = ((AstArgument *) expr)->value->type; break; @@ -643,7 +664,7 @@ CHECK(statement, AstNode* stmt) { default: stmt->flags |= Ast_Flag_Expr_Ignored; - return check_expression((AstTyped *) stmt); + return check_expression((AstTyped **) &stmt); } } @@ -706,6 +727,13 @@ CHECK(struct, AstStructType* s_node) { bh_table(i32) mem_set; bh_table_init(global_heap_allocator, mem_set, bh_arr_length(s_node->members)); + if (bh_arr_length(s_node->members) == 0) { + onyx_message_add(Msg_Type_Literal, + s_node->token->pos, + "empty structure"); + return 1; + } + bh_arr_each(AstStructMember *, member, s_node->members) { token_toggle_end((*member)->token); @@ -731,7 +759,11 @@ CHECK(struct, AstStructType* s_node) { } CHECK(function_header, AstFunction* func) { - for (AstLocal *param = func->params; param != NULL; param = (AstLocal *) param->next) { + i32 changed_params = 0; + + AstLocal **prev_param = &func->params; + AstLocal *param = func->params; + while (param != NULL) { fill_in_type((AstTyped *) param); if (param->type == NULL) { @@ -741,15 +773,63 @@ CHECK(function_header, AstFunction* func) { return 1; } - if (param->type->Basic.size == 0) { + if (param->type->kind != Type_Kind_Array + && type_size_of(param->type) == 0) { onyx_message_add(Msg_Type_Literal, param->token->pos, "function parameters must have non-void types"); return 1; } + + if (param->type->kind == Type_Kind_Struct) { + param->flags |= Ast_Flag_Param_Splatted; + + if (!type_struct_is_simple(param->type)) { + onyx_message_add(Msg_Type_Literal, + param->token->pos, + "only simple structures can be passed by value"); + return 1; + } + + changed_params = 1; + + AstLocal *first_new_param = NULL, *last_new_param = NULL; + AstLocal** insertion = prev_param; + bh_arr_each(StructMember *, smem, param->type->Struct.memarr) { + AstLocal* new_param = onyx_ast_node_new(semstate.node_allocator, sizeof(AstLocal), Ast_Kind_Param); + new_param->token = param->token; + new_param->type = (*smem)->type; + new_param->flags |= Ast_Flag_Const; + + if (first_new_param == NULL) first_new_param = new_param; + last_new_param = new_param; + + *insertion = new_param; + insertion = (AstLocal **) &new_param->next; + } + + *prev_param = first_new_param; + last_new_param->next = param->next; + param->next = (AstNode *) first_new_param; + + prev_param = (AstLocal **) &last_new_param->next; + } else { + prev_param = (AstLocal **) ¶m->next; + } + + param = (AstLocal *) param->next; } - fill_in_type((AstTyped *) func); + if (changed_params) { + // NOTE: Need to rebuild the function parameters in a special way once the are modified. + // This may/will get cleaned up at a later point. + + func->type = type_build_function_type( + semstate.node_allocator, func, + ((AstFunctionType *) func->type_node)->return_type); + } else { + fill_in_type((AstTyped *) func); + } if ((func->flags & Ast_Flag_Exported) != 0) { if ((func->flags & Ast_Flag_Foreign) != 0) { @@ -794,7 +874,7 @@ CHECK(node, AstNode* node) { case Ast_Kind_While: return check_while((AstWhile *) node); case Ast_Kind_Call: return check_call((AstCall *) node); case Ast_Kind_Binary_Op: return check_binaryop((AstBinaryOp *) node, 1); - default: return check_expression((AstTyped *) node); + default: return check_expression((AstTyped **) &node); } } @@ -821,7 +901,7 @@ void onyx_type_check(ProgramInfo* program) { break; case Entity_Type_Expression: - if (check_expression(entity->expr)) return; + if (check_expression(&entity->expr)) return; break; case Entity_Type_Struct: diff --git a/src/onyxtypes.c b/src/onyxtypes.c index dbd6db84..bc366369 100644 --- a/src/onyxtypes.c +++ b/src/onyxtypes.c @@ -45,6 +45,15 @@ b32 types_are_surface_compatible(Type* t1, Type* t2) { if (t2->kind == Type_Kind_Pointer) return 1; break; + case Type_Kind_Array: { + if (t2->kind != Type_Kind_Array) return 0; + + if (t1->Array.count != 0) + if (t1->Array.count != t2->Array.count) return 0; + + return types_are_compatible(t1->Array.elem, t2->Array.elem); + } + case Type_Kind_Struct: { if (t2->kind != Type_Kind_Struct) return 0; if (t1->Struct.mem_count != t2->Struct.mem_count) return 0; @@ -219,6 +228,7 @@ Type* type_build_from_ast(bh_allocator alloc, AstType* type_node) { u32 offset = 0; u32 min_alignment = 1; + u32 idx = 0; bh_arr_each(AstStructMember *, member, s_node->members) { (*member)->type = type_build_from_ast(alloc, (*member)->type_node); @@ -226,7 +236,8 @@ Type* type_build_from_ast(bh_allocator alloc, AstType* type_node) { StructMember smem = { .offset = offset, - .type = (*member)->type + .type = (*member)->type, + .idx = idx, }; token_toggle_end((*member)->token); @@ -235,6 +246,7 @@ Type* type_build_from_ast(bh_allocator alloc, AstType* type_node) { token_toggle_end((*member)->token); offset += type_size_of((*member)->type); + idx++; } // TODO: Again, add alignment @@ -256,6 +268,33 @@ Type* type_build_from_ast(bh_allocator alloc, AstType* type_node) { } } +// NOTE: Kinda hacky way of building the functions type +Type* type_build_function_type(bh_allocator alloc, AstFunction* func, AstType* return_type) { + u64 param_count = 0; + for (AstLocal* param = func->params; + param != NULL; + param = (AstLocal *) param->next) + param_count++; + + AstFunctionType* old_ftype = (AstFunctionType *) func->type_node; + Type* func_type = bh_alloc(alloc, sizeof(Type) + sizeof(Type *) * param_count); + + func_type->kind = Type_Kind_Function; + func_type->Function.param_count = param_count; + func_type->Function.return_type = type_build_from_ast(alloc, return_type); + + if (param_count > 0) { + i32 i = 0; + for (AstLocal* param = func->params; + param != NULL; + param = (AstLocal *) param->next) { + func_type->Function.params[i++] = param->type; + } + } + + return func_type; +} + Type* type_make_pointer(bh_allocator alloc, Type* to) { Type* ptr_type = bh_alloc_item(alloc, Type); @@ -312,6 +351,21 @@ b32 type_struct_lookup_member(Type* type, char* member, StructMember* smem) { return 1; } +b32 type_struct_is_simple(Type* type) { + if (type->kind != Type_Kind_Struct) return 0; + + b32 is_simple = 1; + bh_table_each_start(StructMember, type->Struct.members); + if (value.type->kind == Type_Kind_Struct + || value.type->kind == Type_Kind_Array) { + is_simple = 0; + break; + } + bh_table_each_end; + + return is_simple; +} + b32 type_is_pointer(Type* type) { return (type->kind == Type_Kind_Pointer) || (type->kind == Type_Kind_Array); diff --git a/src/onyxwasm.c b/src/onyxwasm.c index 7f98398d..35053e65 100644 --- a/src/onyxwasm.c +++ b/src/onyxwasm.c @@ -201,6 +201,10 @@ static const char* wi_string(WasmInstructionType wit) { } static WasmType onyx_type_to_wasm_type(Type* type) { + if (type->kind == Type_Kind_Struct) { + DEBUG_HERE; + } + if (type->kind == Type_Kind_Pointer) { return WASM_TYPE_INT32; } -- 2.25.1