From d4df325e0a2cfe1d6de90667099d9ac43e269029 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Mon, 14 Jun 2021 11:41:50 +0100 Subject: [PATCH] Just create `context` when required --- src/llvm_backend.cpp | 17 +---------------- src/llvm_backend.hpp | 1 - 2 files changed, 1 insertion(+), 17 deletions(-) diff --git a/src/llvm_backend.cpp b/src/llvm_backend.cpp index 23b32b090..ecdedcc9f 100644 --- a/src/llvm_backend.cpp +++ b/src/llvm_backend.cpp @@ -8518,15 +8518,6 @@ lbContextData *lb_push_context_onto_stack(lbProcedure *p, lbAddr ctx) { return cd; } -lbAddr lb_find_existing_context_ptr(lbProcedure *p) { - if (p->context_stack.count > 0) { - return p->context_stack[p->context_stack.count-1].ctx; - } - - GB_PANIC("Unable to get `context` ptr"); - return {}; -} - lbAddr lb_find_or_generate_context_ptr(lbProcedure *p) { if (p->context_stack.count > 0) { @@ -9094,7 +9085,7 @@ lbValue lb_emit_call(lbProcedure *p, lbValue value, Array const &args, lbAddr context_ptr = {}; if (pt->Proc.calling_convention == ProcCC_Odin) { - context_ptr = lb_find_existing_context_ptr(p); + context_ptr = lb_find_or_generate_context_ptr(p); } defer (if (pt->Proc.diverging) { @@ -15169,12 +15160,6 @@ lbProcedure *lb_create_main_procedure(lbModule *m, lbProcedure *startup_runtime) } else { if (m->info->entry_point != nullptr) { lbValue entry_point = lb_find_procedure_value_from_entity(m, m->info->entry_point); - Type *pt = base_type(entry_point.type); - GB_ASSERT(pt->kind == Type_Proc); - if (pt->kind == Type_Proc) { - lbAddr ctx = lb_find_or_generate_context_ptr(p); - } - lb_emit_call(p, entry_point, {}); } } diff --git a/src/llvm_backend.hpp b/src/llvm_backend.hpp index 90538ab6b..44e459a3d 100644 --- a/src/llvm_backend.hpp +++ b/src/llvm_backend.hpp @@ -342,7 +342,6 @@ void lb_start_block(lbProcedure *p, lbBlock *b); lbValue lb_build_call_expr(lbProcedure *p, Ast *expr); -lbAddr lb_find_context_ptr(lbProcedure *p); lbAddr lb_find_or_generate_context_ptr(lbProcedure *p); lbContextData *lb_push_context_onto_stack(lbProcedure *p, lbAddr ctx); lbContextData *lb_push_context_onto_stack_from_implicit_parameter(lbProcedure *p);