aboutsummaryrefslogtreecommitdiff
path: root/src/main.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2020-11-15 19:36:37 +0000
committergingerBill <bill@gingerbill.org>2020-11-15 19:36:37 +0000
commit0d6f5cec37e8815ff2e1c82575a05db98e4043d4 (patch)
tree0d116ce02890f1770b95f42323630c71fbfcf033 /src/main.cpp
parent17ec3e72a68b805fc202174722778545c956f433 (diff)
Implement custom temporary allocator using ring buffer
Diffstat (limited to 'src/main.cpp')
-rw-r--r--src/main.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/main.cpp b/src/main.cpp
index 2dbac3390..97fecb094 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -1644,7 +1644,7 @@ int main(int arg_count, char const **arg_ptr) {
defer (timings_destroy(timings));
arena_init(&permanent_arena, heap_allocator());
- arena_init(&temporary_arena, heap_allocator());
+ temp_allocator_init(&temporary_allocator_data, 16*1024*1024);
arena_init(&global_ast_arena, heap_allocator());
permanent_arena.use_mutex = true;
@@ -1799,7 +1799,7 @@ int main(int arg_count, char const **arg_ptr) {
return 1;
}
- arena_free_all(&temporary_arena);
+ temp_allocator_free_all(&temporary_allocator_data);
if (build_context.generate_docs) {
// generate_documentation(&parser);
@@ -1818,7 +1818,7 @@ int main(int arg_count, char const **arg_ptr) {
check_parsed_files(&checker);
}
- arena_free_all(&temporary_arena);
+ temp_allocator_free_all(&temporary_allocator_data);
if (build_context.no_output_files) {
if (build_context.query_data_set_settings.ok) {
@@ -1849,7 +1849,7 @@ int main(int arg_count, char const **arg_ptr) {
}
lb_generate_code(&gen);
- arena_free_all(&temporary_arena);
+ temp_allocator_free_all(&temporary_allocator_data);
switch (build_context.build_mode) {
case BuildMode_Executable:
@@ -1928,17 +1928,17 @@ int main(int arg_count, char const **arg_ptr) {
timings_start_section(timings, str_lit("llvm ir gen"));
ir_gen_tree(&ir_gen);
- arena_free_all(&temporary_arena);
+ temp_allocator_free_all(&temporary_allocator_data);
timings_start_section(timings, str_lit("llvm ir opt tree"));
ir_opt_tree(&ir_gen);
- arena_free_all(&temporary_arena);
+ temp_allocator_free_all(&temporary_allocator_data);
timings_start_section(timings, str_lit("llvm ir print"));
print_llvm_ir(&ir_gen);
- arena_free_all(&temporary_arena);
+ temp_allocator_free_all(&temporary_allocator_data);
String output_name = ir_gen.output_name;