diff options
Diffstat (limited to 'src/llvm_backend.cpp')
| -rw-r--r-- | src/llvm_backend.cpp | 34 |
1 files changed, 3 insertions, 31 deletions
diff --git a/src/llvm_backend.cpp b/src/llvm_backend.cpp index 1b3559aa0..40a629d45 100644 --- a/src/llvm_backend.cpp +++ b/src/llvm_backend.cpp @@ -11850,9 +11850,6 @@ void lb_generate_code(lbGenerator *gen) { arena_init(&temp_arena, heap_allocator()); gbAllocator temp_allocator = arena_allocator(&temp_arena); - gen->module.global_default_context = lb_add_global_generated(m, t_context, {}); - gen->module.global_default_context.kind = lbAddr_Context; - auto *min_dep_set = &info->minimum_dependency_set; @@ -12228,7 +12225,6 @@ void lb_generate_code(lbGenerator *gen) { TIME_SECTION("LLVM Runtime Creation"); lbProcedure *startup_type_info = nullptr; - lbProcedure *startup_context = nullptr; lbProcedure *startup_runtime = nullptr; { // Startup Type Info Type *params = alloc_type_tuple(); @@ -12255,31 +12251,6 @@ void lb_generate_code(lbGenerator *gen) { LLVMRunFunctionPassManager(default_function_pass_manager, p->value); } - { // Startup Context - Type *params = alloc_type_tuple(); - Type *results = alloc_type_tuple(); - - Type *proc_type = alloc_type_proc(nullptr, nullptr, 0, nullptr, 0, false, ProcCC_CDecl); - - lbProcedure *p = lb_create_dummy_procedure(m, str_lit(LB_STARTUP_CONTEXT_PROC_NAME), proc_type); - p->is_startup = true; - startup_context = p; - - lb_begin_procedure_body(p); - - lb_emit_init_context(p, p->module->global_default_context); - - lb_end_procedure_body(p); - - if (LLVMVerifyFunction(p->value, LLVMReturnStatusAction)) { - gb_printf_err("LLVM CODE GEN FAILED FOR PROCEDURE: %s\n", "main"); - LLVMDumpValue(p->value); - gb_printf_err("\n\n\n\n"); - LLVMVerifyFunction(p->value, LLVMAbortProcessAction); - } - - LLVMRunFunctionPassManager(default_function_pass_manager, p->value); - } { // Startup Runtime Type *params = alloc_type_tuple(); Type *results = alloc_type_tuple(); @@ -12292,6 +12263,9 @@ void lb_generate_code(lbGenerator *gen) { lb_begin_procedure_body(p); + + LLVMBuildCall2(p->builder, LLVMGetElementType(lb_type(m, startup_type_info->type)), startup_type_info->value, nullptr, 0, ""); + for_array(i, global_variables) { auto *var = &global_variables[i]; if (var->decl->init_expr != nullptr) { @@ -12396,8 +12370,6 @@ void lb_generate_code(lbGenerator *gen) { lbValue *found = map_get(&m->values, hash_entity(entry_point)); GB_ASSERT(found != nullptr); - LLVMBuildCall2(p->builder, LLVMGetElementType(lb_type(m, startup_type_info->type)), startup_type_info->value, nullptr, 0, ""); - LLVMBuildCall2(p->builder, LLVMGetElementType(lb_type(m, startup_context->type)), startup_context->value, nullptr, 0, ""); LLVMBuildCall2(p->builder, LLVMGetElementType(lb_type(m, startup_runtime->type)), startup_runtime->value, nullptr, 0, ""); LLVMBuildCall2(p->builder, LLVMGetElementType(lb_type(m, found->type)), found->value, nullptr, 0, ""); LLVMBuildRet(p->builder, LLVMConstInt(lb_type(m, t_i32), 0, false)); |