aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2020-04-13 13:02:30 +0100
committergingerBill <bill@gingerbill.org>2020-04-13 13:02:30 +0100
commitf09b6a4c90805a562b2252430f844e85d06f1ee1 (patch)
tree39555c6b9503685c71fd969034ddd5614bfdc357 /src/llvm_backend.cpp
parent65a2125dba5652577588afee31d7333f13eb0c31 (diff)
Simplify compiler's `Map` and create a `StringMap` specifically for strings
Diffstat (limited to 'src/llvm_backend.cpp')
-rw-r--r--src/llvm_backend.cpp38
1 files changed, 18 insertions, 20 deletions
diff --git a/src/llvm_backend.cpp b/src/llvm_backend.cpp
index 302f7af91..954e6368d 100644
--- a/src/llvm_backend.cpp
+++ b/src/llvm_backend.cpp
@@ -1630,17 +1630,17 @@ void lb_add_entity(lbModule *m, Entity *e, lbValue val) {
}
void lb_add_member(lbModule *m, String const &name, lbValue val) {
if (name.len > 0) {
- map_set(&m->members, hash_string(name), val);
+ string_map_set(&m->members, name, val);
}
}
-void lb_add_member(lbModule *m, HashKey const &key, lbValue val) {
- map_set(&m->members, key, val);
+void lb_add_member(lbModule *m, StringHashKey const &key, lbValue val) {
+ string_map_set(&m->members, key, val);
}
void lb_add_procedure_value(lbModule *m, lbProcedure *p) {
if (p->entity != nullptr) {
map_set(&m->procedure_values, hash_pointer(p->value), p->entity);
}
- map_set(&m->procedures, hash_string(p->name), p);
+ string_map_set(&m->procedures, p->name, p);
}
@@ -1688,11 +1688,11 @@ lbProcedure *lb_create_procedure(lbModule *m, Entity *entity) {
String link_name = lb_get_entity_name(m, entity);
{
- HashKey key = hash_string(link_name);
- lbValue *found = map_get(&m->members, key);
+ StringHashKey key = string_hash_string(link_name);
+ lbValue *found = string_map_get(&m->members, key);
if (found) {
lb_add_entity(m, entity, *found);
- lbProcedure **p_found = map_get(&m->procedures, key);
+ lbProcedure **p_found = string_map_get(&m->procedures, key);
GB_ASSERT(p_found != nullptr);
return *p_found;
}
@@ -1824,8 +1824,7 @@ lbProcedure *lb_create_procedure(lbModule *m, Entity *entity) {
lbProcedure *lb_create_dummy_procedure(lbModule *m, String link_name, Type *type) {
{
- HashKey key = hash_string(link_name);
- lbValue *found = map_get(&m->members, key);
+ lbValue *found = string_map_get(&m->members, link_name);
GB_ASSERT(found == nullptr);
}
@@ -2493,8 +2492,7 @@ void lb_build_constant_value_decl(lbProcedure *p, AstValueDecl *vd) {
name = e->Procedure.link_name;
}
- HashKey key = hash_string(name);
- lbValue *prev_value = map_get(&p->module->members, key);
+ lbValue *prev_value = string_map_get(&p->module->members, name);
if (prev_value != nullptr) {
// NOTE(bill): Don't do mutliple declarations in the IR
return;
@@ -2513,7 +2511,7 @@ void lb_build_constant_value_decl(lbProcedure *p, AstValueDecl *vd) {
if (p != nullptr) {
array_add(&p->children, nested_proc);
} else {
- map_set(&p->module->members, hash_string(name), value);
+ string_map_set(&p->module->members, name, value);
}
}
}
@@ -4140,8 +4138,8 @@ lbValue lb_emit_clamp(lbProcedure *p, Type *t, lbValue x, lbValue min, lbValue m
LLVMValueRef lb_find_or_add_entity_string_ptr(lbModule *m, String const &str) {
- HashKey key = hash_string(str);
- LLVMValueRef *found = map_get(&m->const_strings, key);
+ StringHashKey key = string_hash_string(str);
+ LLVMValueRef *found = string_map_get(&m->const_strings, key);
if (found != nullptr) {
return *found;
} else {
@@ -4162,7 +4160,7 @@ LLVMValueRef lb_find_or_add_entity_string_ptr(lbModule *m, String const &str) {
LLVMSetInitializer(global_data, data);
LLVMValueRef ptr = LLVMConstInBoundsGEP(global_data, indices, 2);
- map_set(&m->const_strings, key, ptr);
+ string_map_set(&m->const_strings, key, ptr);
return ptr;
}
}
@@ -8399,7 +8397,7 @@ lbValue lb_generate_anonymous_proc_lit(lbModule *m, String const &prefix_name, A
if (parent != nullptr) {
array_add(&parent->children, p);
} else {
- map_set(&m->members, hash_string(name), value);
+ string_map_set(&m->members, name, value);
}
map_set(&m->anonymous_proc_lits, hash_pointer(expr), p);
@@ -10187,10 +10185,10 @@ void lb_init_module(lbModule *m, Checker *c) {
gbAllocator a = heap_allocator();
map_init(&m->types, a);
map_init(&m->values, a);
- map_init(&m->members, a);
+ string_map_init(&m->members, a);
map_init(&m->procedure_values, a);
- map_init(&m->procedures, a);
- map_init(&m->const_strings, a);
+ string_map_init(&m->procedures, a);
+ string_map_init(&m->const_strings, a);
map_init(&m->anonymous_proc_lits, a);
array_init(&m->procedures_to_generate, a);
array_init(&m->foreign_library_paths, a);
@@ -10342,7 +10340,7 @@ lbValue lb_generate_array(lbModule *m, Type *elem_type, i64 count, String prefix
g.type = alloc_type_pointer(t);
LLVMSetInitializer(g.value, LLVMConstNull(lb_type(m, t)));
LLVMSetLinkage(g.value, LLVMInternalLinkage);
- map_set(&m->members, hash_string(s), g);
+ string_map_set(&m->members, s, g);
return g;
}