switch allocations to atomic to improve performance

This commit is contained in:
William Bell
2025-08-20 00:26:35 +01:00
parent 624a54c90c
commit 6ad0b2c02e
2 changed files with 3 additions and 3 deletions

View File

@@ -428,7 +428,7 @@ Translated load_argon_file(char *path, ArErr *err) {
hashmap_free(translated.constants.hashmap, NULL); hashmap_free(translated.constants.hashmap, NULL);
Translated gc_translated = { Translated gc_translated = {
translated.registerCount, NULL, {}, {}, translated.path}; translated.registerCount, NULL, {}, {}, translated.path};
gc_translated.bytecode.data = ar_alloc(translated.bytecode.capacity); gc_translated.bytecode.data = ar_alloc_atomic(translated.bytecode.capacity);
memcpy(gc_translated.bytecode.data, translated.bytecode.data, memcpy(gc_translated.bytecode.data, translated.bytecode.data,
translated.bytecode.capacity); translated.bytecode.capacity);
gc_translated.bytecode.element_size = translated.bytecode.element_size; gc_translated.bytecode.element_size = translated.bytecode.element_size;
@@ -436,7 +436,7 @@ Translated load_argon_file(char *path, ArErr *err) {
gc_translated.bytecode.resizable = false; gc_translated.bytecode.resizable = false;
gc_translated.bytecode.capacity = gc_translated.bytecode.capacity =
translated.bytecode.size * translated.bytecode.element_size; translated.bytecode.size * translated.bytecode.element_size;
gc_translated.constants.data = ar_alloc(translated.constants.capacity); gc_translated.constants.data = ar_alloc_atomic(translated.constants.capacity);
memcpy(gc_translated.constants.data, translated.constants.data, memcpy(gc_translated.constants.data, translated.constants.data,
translated.constants.capacity); translated.constants.capacity);
gc_translated.constants.size = translated.constants.size; gc_translated.constants.size = translated.constants.size;

View File

@@ -359,7 +359,7 @@ void create_ARGON_NUMBER_TYPE() {
void mpz_init_gc_managed(mpz_t z, size_t limbs_count) { void mpz_init_gc_managed(mpz_t z, size_t limbs_count) {
z->_mp_alloc = limbs_count; z->_mp_alloc = limbs_count;
z->_mp_size = 0; z->_mp_size = 0;
z->_mp_d = ar_alloc(limbs_count * sizeof(mp_limb_t)); z->_mp_d = ar_alloc_atomic(limbs_count * sizeof(mp_limb_t));
} }
void mpq_init_gc_managed(mpq_t q, size_t num_limbs, size_t den_limbs) { void mpq_init_gc_managed(mpq_t q, size_t num_limbs, size_t den_limbs) {