From 8fa571c283dca207e9eae7b2924db3bbc9d6aa39 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Sun, 30 Oct 2022 22:58:44 +0000 Subject: Use direct parameter value in `lb_find_ident` when possible --- src/llvm_backend_general.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/llvm_backend_general.cpp') diff --git a/src/llvm_backend_general.cpp b/src/llvm_backend_general.cpp index 0dabee076..18cdd196d 100644 --- a/src/llvm_backend_general.cpp +++ b/src/llvm_backend_general.cpp @@ -2590,6 +2590,15 @@ lbValue lb_find_or_add_entity_string_byte_slice_with_type(lbModule *m, String co lbValue lb_find_ident(lbProcedure *p, lbModule *m, Entity *e, Ast *expr) { + if (e->flags & EntityFlag_Param) { + // NOTE(bill): Bypass the stack copied variable for + // direct parameters as there is no need for the direct load + auto *found = map_get(&p->direct_parameters, e); + if (found) { + return *found; + } + } + auto *found = map_get(&m->values, e); if (found) { auto v = *found; -- cgit v1.2.3