From 0d8932e96934dbeb0f1e21872693ca833a64341f Mon Sep 17 00:00:00 2001 From: Clyne Sullivan Date: Tue, 25 Jun 2024 17:29:45 -0400 Subject: take env off stack; only save locals for recursion --- main.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'main.cpp') diff --git a/main.cpp b/main.cpp index 5ae41bc..2ac1ff5 100644 --- a/main.cpp +++ b/main.cpp @@ -53,7 +53,9 @@ int main() auto envtype = llvm::VectorType::get(llvmState.inttype, ThunkAST::envidx, false); auto [t0, _] = Var::lookup("__t0"); llvmState.builder.SetInsertPoint(entry); - auto env = llvmState.builder.CreateAlloca(envtype, nullptr); + auto zerovec = llvm::ConstantVector::get(llvm::ArrayRef(llvmState.zero)); + auto env = new llvm::GlobalVariable(llvmState.modul, envtype, false, + llvm::GlobalValue::InternalLinkage, zerovec, "env"); llvmState.builder.CreateCall(llvmState.ftype, t0, llvm::ArrayRef {env}); llvmState.builder.CreateRetVoid(); -- cgit v1.2.3