From ff97a731521dbeb9a6457a889f30f4fa69e080f7 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Wed, 21 Sep 2022 13:03:13 +0100 Subject: Reduce unnecessary map gets --- src/llvm_backend_proc.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/llvm_backend_proc.cpp') diff --git a/src/llvm_backend_proc.cpp b/src/llvm_backend_proc.cpp index 17ed9c2a6..f2cbef5e3 100644 --- a/src/llvm_backend_proc.cpp +++ b/src/llvm_backend_proc.cpp @@ -889,7 +889,7 @@ lbValue lb_emit_call(lbProcedure *p, lbValue value, Array const &args, GB_ASSERT(param_count-1 <= args.count); param_count -= 1; } else { - GB_ASSERT_MSG(param_count == args.count, "%td == %td", param_count, args.count); + GB_ASSERT_MSG(param_count == args.count, "%td == %td (%s)", param_count, args.count, LLVMPrintValueToString(value.value)); } lbValue result = {}; -- cgit v1.2.3 From 831620bfc4f1210900669ce501723a64f04c1807 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Wed, 21 Sep 2022 13:06:02 +0100 Subject: Remove header cache code --- core/runtime/dynamic_map_internal.odin | 3 --- src/llvm_backend.cpp | 25 ------------------------- src/llvm_backend.hpp | 2 -- src/llvm_backend_proc.cpp | 4 ---- 4 files changed, 34 deletions(-) (limited to 'src/llvm_backend_proc.cpp') diff --git a/core/runtime/dynamic_map_internal.odin b/core/runtime/dynamic_map_internal.odin index 011513162..abe58fc5a 100644 --- a/core/runtime/dynamic_map_internal.odin +++ b/core/runtime/dynamic_map_internal.odin @@ -82,7 +82,6 @@ __dynamic_map_set :: proc "odin" (m: rawptr, table: Map_Header_Table, key_hash: } return prev } - assert(condition = m != nil) h := Map_Header{(^Raw_Map)(m), table} @@ -126,8 +125,6 @@ __dynamic_map_set :: proc "odin" (m: rawptr, table: Map_Header_Table, key_hash: // USED INTERNALLY BY THE COMPILER __dynamic_map_reserve :: proc "odin" (m: rawptr, table: Map_Header_Table, cap: uint, loc := #caller_location) { - assert(condition = m != nil) - h := Map_Header{(^Raw_Map)(m), table} c := context diff --git a/src/llvm_backend.cpp b/src/llvm_backend.cpp index b340b9b7a..adccb2869 100644 --- a/src/llvm_backend.cpp +++ b/src/llvm_backend.cpp @@ -578,31 +578,6 @@ lbAddr lb_gen_map_header_internal(lbProcedure *p, lbValue map_val_ptr, Type *map return h; } - -lbValue lb_gen_map_header(lbProcedure *p, lbValue map_val_ptr, Type *map_type) { - GB_ASSERT_MSG(is_type_pointer(map_val_ptr.type), "%s", type_to_string(map_val_ptr.type)); - GB_ASSERT(is_type_map(map_type)); - - - // TODO(bill): this is a temporary fix since this caching is not working other platforms - bool allow_caching = build_context.metrics.os == TargetOs_windows || is_arch_wasm(); - - lbAddr h = {}; - if (!allow_caching) { - h = lb_gen_map_header_internal(p, map_val_ptr, map_type); - } else { - lbAddr *found = map_get(&p->map_header_cache, map_val_ptr.value); - if (found != nullptr) { - h = *found; - } else { - h = lb_gen_map_header_internal(p, map_val_ptr, map_type); - map_set(&p->map_header_cache, map_val_ptr.value, h); - } - } - - return lb_addr_load(p, h); -} - lbValue lb_const_hash(lbModule *m, lbValue key, Type *key_type) { if (true) { return {}; diff --git a/src/llvm_backend.hpp b/src/llvm_backend.hpp index 4447f9a0b..e69d3a6ed 100644 --- a/src/llvm_backend.hpp +++ b/src/llvm_backend.hpp @@ -310,7 +310,6 @@ struct lbProcedure { PtrMap selector_values; PtrMap selector_addr; - PtrMap map_header_cache; }; @@ -446,7 +445,6 @@ String lb_get_const_string(lbModule *m, lbValue value); lbValue lb_generate_local_array(lbProcedure *p, Type *elem_type, i64 count, bool zero_init=true); lbValue lb_generate_global_array(lbModule *m, Type *elem_type, i64 count, String prefix, i64 id); -lbValue lb_gen_map_header(lbProcedure *p, lbValue map_val_ptr, Type *map_type); lbValue lb_gen_map_key_hash(lbProcedure *p, lbValue key, Type *key_type, lbValue *key_ptr_); lbValue lb_internal_dynamic_map_get_ptr(lbProcedure *p, lbValue const &map_ptr, lbValue const &key); diff --git a/src/llvm_backend_proc.cpp b/src/llvm_backend_proc.cpp index f2cbef5e3..56ffe3fe9 100644 --- a/src/llvm_backend_proc.cpp +++ b/src/llvm_backend_proc.cpp @@ -123,7 +123,6 @@ lbProcedure *lb_create_procedure(lbModule *m, Entity *entity, bool ignore_body) p->scope_stack.allocator = a; map_init(&p->selector_values, a, 0); map_init(&p->selector_addr, a, 0); - map_init(&p->map_header_cache, a, 0); if (p->is_foreign) { lb_add_foreign_library_path(p->module, entity->Procedure.foreign_library); @@ -380,9 +379,6 @@ lbProcedure *lb_create_dummy_procedure(lbModule *m, String link_name, Type *type lb_add_proc_attribute_at_index(p, offset+parameter_index, "nonnull"); lb_add_proc_attribute_at_index(p, offset+parameter_index, "nocapture"); } - - map_init(&p->map_header_cache, heap_allocator(), 0); - return p; } -- cgit v1.2.3