mirror of
https://github.com/c3lang/c3c.git
synced 2026-02-27 12:01:16 +00:00
Make thread allocator take the thread allocator by default for allocating initial memory. Add some int128 methods. Fix attribute parsing.
This commit is contained in:
@@ -350,57 +350,58 @@ voiderr64: ; preds = %after_check63, %voi
|
||||
br i1 %not, label %if.then, label %if.exit
|
||||
|
||||
if.then: ; preds = %voiderr64
|
||||
%79 = call i64 @std_core_mem_allocator_new_temp(ptr %retparam65, i64 262144, ptr @std_core_mem_allocator__SYSTEM_ALLOCATOR)
|
||||
%not_err66 = icmp eq i64 %79, 0
|
||||
%79 = load ptr, ptr @std_core_mem_thread_allocator, align 8
|
||||
%80 = call i64 @std_core_mem_allocator_new_temp(ptr %retparam65, i64 262144, ptr %79)
|
||||
%not_err66 = icmp eq i64 %80, 0
|
||||
br i1 %not_err66, label %after_check67, label %assign_optional
|
||||
|
||||
assign_optional: ; preds = %if.then
|
||||
store i64 %79, ptr %error_var, align 8
|
||||
store i64 %80, ptr %error_var, align 8
|
||||
br label %panic_block
|
||||
|
||||
after_check67: ; preds = %if.then
|
||||
%80 = load ptr, ptr %retparam65, align 8
|
||||
%81 = load ptr, ptr %retparam65, align 8
|
||||
br label %noerr_block
|
||||
|
||||
panic_block: ; preds = %assign_optional
|
||||
%81 = load ptr, ptr @std_core_builtin_panic, align 8
|
||||
call void %81(ptr @.panic_msg, i64 27, ptr @.file, i64 6, ptr @.func, i64 4, i32 280)
|
||||
%82 = load ptr, ptr @std_core_builtin_panic, align 8
|
||||
call void %82(ptr @.panic_msg, i64 27, ptr @.file, i64 6, ptr @.func, i64 4, i32 280)
|
||||
unreachable
|
||||
|
||||
noerr_block: ; preds = %after_check67
|
||||
store ptr %80, ptr @std_core_mem_thread_temp_allocator, align 8
|
||||
store ptr %81, ptr @std_core_mem_thread_temp_allocator, align 8
|
||||
br label %if.exit
|
||||
|
||||
if.exit: ; preds = %noerr_block, %voiderr64
|
||||
%82 = load ptr, ptr @std_core_mem_thread_temp_allocator, align 8
|
||||
store ptr %82, ptr %temp, align 8
|
||||
%83 = load ptr, ptr %temp, align 8
|
||||
%84 = getelementptr inbounds %TempAllocator, ptr %83, i32 0, i32 3
|
||||
%85 = load i64, ptr %84, align 8
|
||||
store i64 %85, ptr %mark, align 8
|
||||
%83 = load ptr, ptr @std_core_mem_thread_temp_allocator, align 8
|
||||
store ptr %83, ptr %temp, align 8
|
||||
%84 = load ptr, ptr %temp, align 8
|
||||
%85 = getelementptr inbounds %TempAllocator, ptr %84, i32 0, i32 3
|
||||
%86 = load i64, ptr %85, align 8
|
||||
store i64 %86, ptr %mark, align 8
|
||||
call void @llvm.memset.p0.i64(ptr align 8 %map3, i8 0, i64 40, i1 false)
|
||||
%86 = load ptr, ptr @std_core_mem_thread_allocator, align 8
|
||||
call void @"std_map$$int.double_HashMap_init"(ptr %map3, i32 16, float 7.500000e-01, ptr %86)
|
||||
%87 = call i8 @"std_map$$int.double_HashMap_set"(ptr %map3, i32 5, double 3.200000e+00)
|
||||
%88 = call i8 @"std_map$$int.double_HashMap_set"(ptr %map3, i32 7, double 5.200000e+00)
|
||||
%89 = load ptr, ptr @std_core_mem_thread_allocator, align 8
|
||||
%90 = call { ptr, i64 } @"std_map$$int.double_HashMap_key_list"(ptr %map3, ptr %89)
|
||||
store { ptr, i64 } %90, ptr %result70, align 8
|
||||
%91 = insertvalue %variant undef, ptr %result70, 0
|
||||
%92 = insertvalue %variant %91, i64 ptrtoint (ptr @"ct$sa$int" to i64), 1
|
||||
%93 = getelementptr inbounds [1 x %variant], ptr %varargslots69, i64 0, i64 0
|
||||
store %variant %92, ptr %93, align 16
|
||||
%94 = call i64 @std_io_printfn(ptr %retparam68, ptr @.str.11, i64 2, ptr %varargslots69, i64 1)
|
||||
%not_err71 = icmp eq i64 %94, 0
|
||||
%87 = load ptr, ptr @std_core_mem_thread_allocator, align 8
|
||||
call void @"std_map$$int.double_HashMap_init"(ptr %map3, i32 16, float 7.500000e-01, ptr %87)
|
||||
%88 = call i8 @"std_map$$int.double_HashMap_set"(ptr %map3, i32 5, double 3.200000e+00)
|
||||
%89 = call i8 @"std_map$$int.double_HashMap_set"(ptr %map3, i32 7, double 5.200000e+00)
|
||||
%90 = load ptr, ptr @std_core_mem_thread_allocator, align 8
|
||||
%91 = call { ptr, i64 } @"std_map$$int.double_HashMap_key_list"(ptr %map3, ptr %90)
|
||||
store { ptr, i64 } %91, ptr %result70, align 8
|
||||
%92 = insertvalue %variant undef, ptr %result70, 0
|
||||
%93 = insertvalue %variant %92, i64 ptrtoint (ptr @"ct$sa$int" to i64), 1
|
||||
%94 = getelementptr inbounds [1 x %variant], ptr %varargslots69, i64 0, i64 0
|
||||
store %variant %93, ptr %94, align 16
|
||||
%95 = call i64 @std_io_printfn(ptr %retparam68, ptr @.str.11, i64 2, ptr %varargslots69, i64 1)
|
||||
%not_err71 = icmp eq i64 %95, 0
|
||||
br i1 %not_err71, label %after_check72, label %voiderr73
|
||||
|
||||
after_check72: ; preds = %if.exit
|
||||
br label %voiderr73
|
||||
|
||||
voiderr73: ; preds = %after_check72, %if.exit
|
||||
%95 = load ptr, ptr %temp, align 8
|
||||
%96 = getelementptr inbounds %TempAllocator, ptr %95, i32 0, i32 0
|
||||
%97 = load i64, ptr %mark, align 8
|
||||
call void @std_core_mem_allocator_Allocator_reset(ptr %96, i64 %97)
|
||||
%96 = load ptr, ptr %temp, align 8
|
||||
%97 = getelementptr inbounds %TempAllocator, ptr %96, i32 0, i32 0
|
||||
%98 = load i64, ptr %mark, align 8
|
||||
call void @std_core_mem_allocator_Allocator_reset(ptr %97, i64 %98)
|
||||
ret void
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user