Created
July 19, 2023 16:10
-
-
Save luc-tielen/92627a0914e8d68a0a7b3c47a51bda46 to your computer and use it in GitHub Desktop.
Eclair semantic analysis compiled to LLVM
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
declare external ccc ptr @malloc(i32) | |
declare external ccc void @free(ptr) | |
declare external ccc void @llvm.memset.p0i8.i64(ptr, i8, i64, i1) | |
declare external ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr, ptr, i64, i1) | |
declare external ccc i32 @memcmp(ptr, ptr, i64) | |
declare external ccc ptr @mmap(ptr, i64, i32, i32, i32, i32) | |
declare external ccc i32 @munmap(ptr, i64) | |
%node_data_t_0 = type {ptr, i16, i16, i1} | |
%node_t_0 = type {%node_data_t_0, [20 x [3 x i32]]} | |
%inner_node_t_0 = type {%node_t_0, [21 x ptr]} | |
%btree_iterator_t_0 = type {ptr, i16} | |
%btree_t_0 = type {ptr, ptr} | |
define external ccc i8 @eclair_btree_value_compare_0(i32 %lhs_0, i32 %rhs_0) { | |
start: | |
%0 = icmp ult i32 %lhs_0, %rhs_0 | |
br i1 %0, label %if_0, label %end_if_0 | |
if_0: | |
ret i8 -1 | |
end_if_0: | |
%1 = icmp ugt i32 %lhs_0, %rhs_0 | |
%2 = select i1 %1, i8 1, i8 0 | |
ret i8 %2 | |
} | |
define external ccc i8 @eclair_btree_value_compare_values_0(ptr %lhs_0, ptr %rhs_0) { | |
start: | |
br label %comparison_0 | |
comparison_0: | |
%0 = getelementptr [3 x i32], ptr %lhs_0, i32 0, i32 0 | |
%1 = getelementptr [3 x i32], ptr %rhs_0, i32 0, i32 0 | |
%2 = load i32, ptr %0 | |
%3 = load i32, ptr %1 | |
%4 = call ccc i8 @eclair_btree_value_compare_0(i32 %2, i32 %3) | |
%5 = icmp eq i8 %4, 0 | |
br i1 %5, label %comparison_2, label %end_0 | |
comparison_1: | |
%6 = getelementptr [3 x i32], ptr %lhs_0, i32 0, i32 1 | |
%7 = getelementptr [3 x i32], ptr %rhs_0, i32 0, i32 1 | |
%8 = load i32, ptr %6 | |
%9 = load i32, ptr %7 | |
%10 = call ccc i8 @eclair_btree_value_compare_0(i32 %8, i32 %9) | |
%11 = icmp eq i8 %10, 0 | |
br i1 %11, label %comparison_2, label %end_0 | |
comparison_2: | |
%12 = getelementptr [3 x i32], ptr %lhs_0, i32 0, i32 2 | |
%13 = getelementptr [3 x i32], ptr %rhs_0, i32 0, i32 2 | |
%14 = load i32, ptr %12 | |
%15 = load i32, ptr %13 | |
%16 = call ccc i8 @eclair_btree_value_compare_0(i32 %14, i32 %15) | |
br label %end_0 | |
end_0: | |
%17 = phi i8 [%4, %comparison_0], [%10, %comparison_1], [%16, %comparison_2] | |
ret i8 %17 | |
} | |
define external ccc ptr @eclair_btree_node_new_0(i1 %type_0) { | |
start: | |
%0 = select i1 %type_0, i32 424, i32 256 | |
%1 = call ccc ptr @malloc(i32 %0) | |
%2 = getelementptr %node_t_0, ptr %1, i32 0, i32 0, i32 0 | |
store ptr zeroinitializer, ptr %2 | |
%3 = getelementptr %node_t_0, ptr %1, i32 0, i32 0, i32 1 | |
store i16 0, ptr %3 | |
%4 = getelementptr %node_t_0, ptr %1, i32 0, i32 0, i32 2 | |
store i16 0, ptr %4 | |
%5 = getelementptr %node_t_0, ptr %1, i32 0, i32 0, i32 3 | |
store i1 %type_0, ptr %5 | |
%6 = getelementptr %node_t_0, ptr %1, i32 0, i32 1 | |
call ccc void @llvm.memset.p0i8.i64(ptr %6, i8 0, i64 240, i1 0) | |
%7 = icmp eq i1 %type_0, 1 | |
br i1 %7, label %if_0, label %end_if_0 | |
if_0: | |
%8 = getelementptr %inner_node_t_0, ptr %1, i32 0, i32 1 | |
call ccc void @llvm.memset.p0i8.i64(ptr %8, i8 0, i64 168, i1 0) | |
br label %end_if_0 | |
end_if_0: | |
ret ptr %1 | |
} | |
define external ccc i64 @eclair_btree_node_count_entries_0(ptr %node_0) { | |
start: | |
%stack.ptr_0 = alloca i64 | |
%0 = getelementptr %node_t_0, ptr %node_0, i32 0, i32 0, i32 2 | |
%1 = load i16, ptr %0 | |
%2 = getelementptr %node_t_0, ptr %node_0, i32 0, i32 0, i32 3 | |
%3 = load i1, ptr %2 | |
%4 = icmp eq i1 %3, 0 | |
%5 = zext i16 %1 to i64 | |
br i1 %4, label %if_0, label %end_if_0 | |
if_0: | |
ret i64 %5 | |
end_if_0: | |
store i64 %5, ptr %stack.ptr_0 | |
%6 = getelementptr %node_t_0, ptr %node_0, i32 0, i32 0, i32 2 | |
%7 = load i16, ptr %6 | |
br label %for_begin_0 | |
for_begin_0: | |
%8 = phi i16 [0, %end_if_0], [%15, %for_body_0] | |
%9 = icmp ule i16 %8, %7 | |
br i1 %9, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%10 = load i64, ptr %stack.ptr_0 | |
%11 = getelementptr %inner_node_t_0, ptr %node_0, i32 0, i32 1, i16 %8 | |
%12 = load ptr, ptr %11 | |
%13 = call ccc i64 @eclair_btree_node_count_entries_0(ptr %12) | |
%14 = add i64 %10, %13 | |
store i64 %14, ptr %stack.ptr_0 | |
%15 = add i16 1, %8 | |
br label %for_begin_0 | |
for_end_0: | |
%16 = load i64, ptr %stack.ptr_0 | |
ret i64 %16 | |
} | |
define external ccc void @eclair_btree_iterator_init_0(ptr %iter_0, ptr %cur_0, i16 %pos_0) { | |
start: | |
%0 = getelementptr %btree_iterator_t_0, ptr %iter_0, i32 0, i32 0 | |
store ptr %cur_0, ptr %0 | |
%1 = getelementptr %btree_iterator_t_0, ptr %iter_0, i32 0, i32 1 | |
store i16 %pos_0, ptr %1 | |
ret void | |
} | |
define external ccc void @eclair_btree_iterator_end_init_0(ptr %iter_0) { | |
start: | |
call ccc void @eclair_btree_iterator_init_0(ptr %iter_0, ptr zeroinitializer, i16 0) | |
ret void | |
} | |
define external ccc i1 @eclair_btree_iterator_is_equal_0(ptr %lhs_0, ptr %rhs_0) { | |
start: | |
%0 = getelementptr %btree_iterator_t_0, ptr %lhs_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = getelementptr %btree_iterator_t_0, ptr %rhs_0, i32 0, i32 0 | |
%3 = load ptr, ptr %2 | |
%4 = icmp ne ptr %1, %3 | |
br i1 %4, label %if_0, label %end_if_0 | |
if_0: | |
ret i1 0 | |
end_if_0: | |
%5 = getelementptr %btree_iterator_t_0, ptr %lhs_0, i32 0, i32 1 | |
%6 = load i16, ptr %5 | |
%7 = getelementptr %btree_iterator_t_0, ptr %rhs_0, i32 0, i32 1 | |
%8 = load i16, ptr %7 | |
%9 = icmp eq i16 %6, %8 | |
ret i1 %9 | |
} | |
define external ccc ptr @eclair_btree_iterator_current_0(ptr %iter_0) { | |
start: | |
%0 = getelementptr %btree_iterator_t_0, ptr %iter_0, i32 0, i32 1 | |
%1 = load i16, ptr %0 | |
%2 = getelementptr %btree_iterator_t_0, ptr %iter_0, i32 0, i32 0 | |
%3 = load ptr, ptr %2 | |
%4 = getelementptr %node_t_0, ptr %3, i32 0, i32 1, i16 %1 | |
ret ptr %4 | |
} | |
define external ccc void @eclair_btree_iterator_next_0(ptr %iter_0) { | |
start: | |
%stack.ptr_0 = alloca ptr | |
%0 = getelementptr %btree_iterator_t_0, ptr %iter_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = getelementptr %node_t_0, ptr %1, i32 0, i32 0, i32 3 | |
%3 = load i1, ptr %2 | |
%4 = icmp eq i1 %3, 1 | |
br i1 %4, label %if_0, label %end_if_1 | |
if_0: | |
%5 = getelementptr %btree_iterator_t_0, ptr %iter_0, i32 0, i32 1 | |
%6 = load i16, ptr %5 | |
%7 = add i16 1, %6 | |
%8 = getelementptr %btree_iterator_t_0, ptr %iter_0, i32 0, i32 0 | |
%9 = load ptr, ptr %8 | |
%10 = getelementptr %inner_node_t_0, ptr %9, i32 0, i32 1, i16 %7 | |
%11 = load ptr, ptr %10 | |
store ptr %11, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_begin_0: | |
%12 = load ptr, ptr %stack.ptr_0 | |
%13 = getelementptr %node_t_0, ptr %12, i32 0, i32 0, i32 3 | |
%14 = load i1, ptr %13 | |
%15 = icmp eq i1 %14, 1 | |
br i1 %15, label %while_body_0, label %while_end_0 | |
while_body_0: | |
%16 = load ptr, ptr %stack.ptr_0 | |
%17 = getelementptr %inner_node_t_0, ptr %16, i32 0, i32 1, i16 0 | |
%18 = load ptr, ptr %17 | |
store ptr %18, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_end_0: | |
%19 = load ptr, ptr %stack.ptr_0 | |
%20 = getelementptr %btree_iterator_t_0, ptr %iter_0, i32 0, i32 0 | |
store ptr %19, ptr %20 | |
%21 = getelementptr %btree_iterator_t_0, ptr %iter_0, i32 0, i32 1 | |
store i16 0, ptr %21 | |
%22 = getelementptr %node_t_0, ptr %19, i32 0, i32 0, i32 2 | |
%23 = load i16, ptr %22 | |
%24 = icmp ne i16 %23, 0 | |
br i1 %24, label %if_1, label %end_if_0 | |
if_1: | |
ret void | |
end_if_0: | |
br label %leaf.next_0 | |
end_if_1: | |
br label %leaf.next_0 | |
leaf.next_0: | |
%25 = getelementptr %btree_iterator_t_0, ptr %iter_0, i32 0, i32 1 | |
%26 = load i16, ptr %25 | |
%27 = add i16 1, %26 | |
store i16 %27, ptr %25 | |
%28 = getelementptr %btree_iterator_t_0, ptr %iter_0, i32 0, i32 1 | |
%29 = load i16, ptr %28 | |
%30 = getelementptr %btree_iterator_t_0, ptr %iter_0, i32 0, i32 0 | |
%31 = load ptr, ptr %30 | |
%32 = getelementptr %node_t_0, ptr %31, i32 0, i32 0, i32 2 | |
%33 = load i16, ptr %32 | |
%34 = icmp ult i16 %29, %33 | |
br i1 %34, label %if_2, label %end_if_2 | |
if_2: | |
ret void | |
end_if_2: | |
br label %while_begin_1 | |
while_begin_1: | |
%35 = getelementptr %btree_iterator_t_0, ptr %iter_0, i32 0, i32 0 | |
%36 = load ptr, ptr %35 | |
%37 = icmp eq ptr %36, zeroinitializer | |
br i1 %37, label %leaf.no_parent_0, label %leaf.has_parent_0 | |
leaf.no_parent_0: | |
br label %loop.condition.end_0 | |
leaf.has_parent_0: | |
%38 = getelementptr %btree_iterator_t_0, ptr %iter_0, i32 0, i32 1 | |
%39 = load i16, ptr %38 | |
%40 = getelementptr %btree_iterator_t_0, ptr %iter_0, i32 0, i32 0 | |
%41 = load ptr, ptr %40 | |
%42 = getelementptr %node_t_0, ptr %41, i32 0, i32 0, i32 2 | |
%43 = load i16, ptr %42 | |
%44 = icmp eq i16 %39, %43 | |
br label %loop.condition.end_0 | |
loop.condition.end_0: | |
%45 = phi i1 [0, %leaf.no_parent_0], [%44, %leaf.has_parent_0] | |
br i1 %45, label %while_body_1, label %while_end_1 | |
while_body_1: | |
%46 = getelementptr %btree_iterator_t_0, ptr %iter_0, i32 0, i32 0 | |
%47 = load ptr, ptr %46 | |
%48 = getelementptr %node_t_0, ptr %47, i32 0, i32 0, i32 1 | |
%49 = load i16, ptr %48 | |
%50 = getelementptr %btree_iterator_t_0, ptr %iter_0, i32 0, i32 1 | |
store i16 %49, ptr %50 | |
%51 = getelementptr %node_t_0, ptr %47, i32 0, i32 0, i32 0 | |
%52 = load ptr, ptr %51 | |
%53 = getelementptr %btree_iterator_t_0, ptr %iter_0, i32 0, i32 0 | |
store ptr %52, ptr %53 | |
br label %while_begin_1 | |
while_end_1: | |
ret void | |
} | |
define external ccc ptr @eclair_btree_linear_search_lower_bound_0(ptr %val_0, ptr %current_0, ptr %end_0) { | |
start: | |
%stack.ptr_0 = alloca ptr | |
store ptr %current_0, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_begin_0: | |
%0 = load ptr, ptr %stack.ptr_0 | |
%1 = icmp ne ptr %0, %end_0 | |
br i1 %1, label %while_body_0, label %while_end_0 | |
while_body_0: | |
%2 = load ptr, ptr %stack.ptr_0 | |
%3 = call ccc i8 @eclair_btree_value_compare_values_0(ptr %2, ptr %val_0) | |
%4 = icmp ne i8 %3, -1 | |
br i1 %4, label %if_0, label %end_if_0 | |
if_0: | |
ret ptr %2 | |
end_if_0: | |
%5 = getelementptr [3 x i32], ptr %2, i32 1 | |
store ptr %5, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_end_0: | |
ret ptr %end_0 | |
} | |
define external ccc ptr @eclair_btree_linear_search_upper_bound_0(ptr %val_0, ptr %current_0, ptr %end_0) { | |
start: | |
%stack.ptr_0 = alloca ptr | |
store ptr %current_0, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_begin_0: | |
%0 = load ptr, ptr %stack.ptr_0 | |
%1 = icmp ne ptr %0, %end_0 | |
br i1 %1, label %while_body_0, label %while_end_0 | |
while_body_0: | |
%2 = load ptr, ptr %stack.ptr_0 | |
%3 = call ccc i8 @eclair_btree_value_compare_values_0(ptr %2, ptr %val_0) | |
%4 = icmp eq i8 %3, 1 | |
br i1 %4, label %if_0, label %end_if_0 | |
if_0: | |
ret ptr %2 | |
end_if_0: | |
%5 = getelementptr [3 x i32], ptr %2, i32 1 | |
store ptr %5, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_end_0: | |
ret ptr %end_0 | |
} | |
define external ccc void @eclair_btree_init_empty_0(ptr %tree_0) { | |
start: | |
%0 = getelementptr %btree_t_0, ptr %tree_0, i32 0, i32 0 | |
store ptr zeroinitializer, ptr %0 | |
%1 = getelementptr %btree_t_0, ptr %tree_0, i32 0, i32 1 | |
store ptr zeroinitializer, ptr %1 | |
ret void | |
} | |
define external ccc void @eclair_btree_init_0(ptr %tree_0, ptr %start_0, ptr %end_0) { | |
start: | |
call ccc void @eclair_btree_insert_range__0(ptr %tree_0, ptr %start_0, ptr %end_0) | |
ret void | |
} | |
define external ccc void @eclair_btree_destroy_0(ptr %tree_0) { | |
start: | |
call ccc void @eclair_btree_clear_0(ptr %tree_0) | |
ret void | |
} | |
define external ccc i1 @eclair_btree_is_empty_0(ptr %tree_0) { | |
start: | |
%0 = getelementptr %btree_t_0, ptr %tree_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = icmp eq ptr %1, zeroinitializer | |
ret i1 %2 | |
} | |
define external ccc i64 @eclair_btree_size_0(ptr %tree_0) { | |
start: | |
%0 = getelementptr %btree_t_0, ptr %tree_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = icmp eq ptr %1, zeroinitializer | |
br i1 %2, label %null_0, label %not_null_0 | |
null_0: | |
ret i64 0 | |
not_null_0: | |
%3 = call ccc i64 @eclair_btree_node_count_entries_0(ptr %1) | |
ret i64 %3 | |
} | |
define external ccc i16 @eclair_btree_node_split_point_0() { | |
start: | |
%0 = mul i16 3, 20 | |
%1 = udiv i16 %0, 4 | |
%2 = sub i16 20, 2 | |
%3 = icmp ult i16 %1, %2 | |
%4 = select i1 %3, i16 %1, i16 %2 | |
ret i16 %4 | |
} | |
define external ccc void @eclair_btree_node_split_0(ptr %node_0, ptr %root_0) { | |
start: | |
%stack.ptr_0 = alloca i16 | |
%0 = call ccc i16 @eclair_btree_node_split_point_0() | |
%1 = add i16 1, %0 | |
%2 = getelementptr %node_t_0, ptr %node_0, i32 0, i32 0, i32 3 | |
%3 = load i1, ptr %2 | |
%4 = call ccc ptr @eclair_btree_node_new_0(i1 %3) | |
store i16 0, ptr %stack.ptr_0 | |
br label %for_begin_0 | |
for_begin_0: | |
%5 = phi i16 [%1, %start], [%12, %for_body_0] | |
%6 = icmp ult i16 %5, 20 | |
br i1 %6, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%7 = load i16, ptr %stack.ptr_0 | |
%8 = getelementptr %node_t_0, ptr %node_0, i32 0, i32 1, i16 %5 | |
%9 = load [3 x i32], ptr %8 | |
%10 = getelementptr %node_t_0, ptr %4, i32 0, i32 1, i16 %7 | |
store [3 x i32] %9, ptr %10 | |
%11 = add i16 1, %7 | |
store i16 %11, ptr %stack.ptr_0 | |
%12 = add i16 1, %5 | |
br label %for_begin_0 | |
for_end_0: | |
%13 = icmp eq i1 %3, 1 | |
br i1 %13, label %if_0, label %end_if_0 | |
if_0: | |
store i16 0, ptr %stack.ptr_0 | |
br label %for_begin_1 | |
for_begin_1: | |
%14 = phi i16 [%1, %if_0], [%23, %for_body_1] | |
%15 = icmp ule i16 %14, 20 | |
br i1 %15, label %for_body_1, label %for_end_1 | |
for_body_1: | |
%16 = load i16, ptr %stack.ptr_0 | |
%17 = getelementptr %inner_node_t_0, ptr %node_0, i32 0, i32 1, i16 %14 | |
%18 = load ptr, ptr %17 | |
%19 = getelementptr %node_t_0, ptr %18, i32 0, i32 0, i32 0 | |
store ptr %4, ptr %19 | |
%20 = getelementptr %node_t_0, ptr %18, i32 0, i32 0, i32 1 | |
store i16 %16, ptr %20 | |
%21 = getelementptr %inner_node_t_0, ptr %4, i32 0, i32 1, i16 %16 | |
store ptr %18, ptr %21 | |
%22 = add i16 1, %16 | |
store i16 %22, ptr %stack.ptr_0 | |
%23 = add i16 1, %14 | |
br label %for_begin_1 | |
for_end_1: | |
br label %end_if_0 | |
end_if_0: | |
%24 = getelementptr %node_t_0, ptr %node_0, i32 0, i32 0, i32 2 | |
store i16 %0, ptr %24 | |
%25 = sub i16 20, %0 | |
%26 = sub i16 %25, 1 | |
%27 = getelementptr %node_t_0, ptr %4, i32 0, i32 0, i32 2 | |
store i16 %26, ptr %27 | |
call ccc void @eclair_btree_node_grow_parent_0(ptr %node_0, ptr %root_0, ptr %4) | |
ret void | |
} | |
define external ccc void @eclair_btree_node_grow_parent_0(ptr %node_0, ptr %root_0, ptr %sibling_0) { | |
start: | |
%0 = getelementptr %node_t_0, ptr %node_0, i32 0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = icmp eq ptr %1, zeroinitializer | |
%3 = getelementptr %node_t_0, ptr %node_0, i32 0, i32 0, i32 2 | |
%4 = load i16, ptr %3 | |
br i1 %2, label %create_new_root_0, label %insert_new_node_in_parent_0 | |
create_new_root_0: | |
%5 = call ccc ptr @eclair_btree_node_new_0(i1 1) | |
%6 = getelementptr %node_t_0, ptr %5, i32 0, i32 0, i32 2 | |
store i16 1, ptr %6 | |
%7 = getelementptr %node_t_0, ptr %node_0, i32 0, i32 1, i16 %4 | |
%8 = load [3 x i32], ptr %7 | |
%9 = getelementptr %node_t_0, ptr %5, i32 0, i32 1, i16 0 | |
store [3 x i32] %8, ptr %9 | |
%10 = getelementptr %inner_node_t_0, ptr %5, i32 0, i32 1, i16 0 | |
store ptr %node_0, ptr %10 | |
%11 = getelementptr %inner_node_t_0, ptr %5, i32 0, i32 1, i16 1 | |
store ptr %sibling_0, ptr %11 | |
%12 = getelementptr %node_t_0, ptr %node_0, i32 0, i32 0, i32 0 | |
store ptr %5, ptr %12 | |
%13 = getelementptr %node_t_0, ptr %sibling_0, i32 0, i32 0, i32 0 | |
store ptr %5, ptr %13 | |
%14 = getelementptr %node_t_0, ptr %sibling_0, i32 0, i32 0, i32 1 | |
store i16 1, ptr %14 | |
store ptr %5, ptr %root_0 | |
ret void | |
insert_new_node_in_parent_0: | |
%15 = getelementptr %node_t_0, ptr %node_0, i32 0, i32 0, i32 1 | |
%16 = load i16, ptr %15 | |
%17 = getelementptr %node_t_0, ptr %node_0, i32 0, i32 1, i16 %4 | |
call ccc void @eclair_btree_node_insert_inner_0(ptr %1, ptr %root_0, i16 %16, ptr %node_0, ptr %17, ptr %sibling_0) | |
ret void | |
} | |
define external ccc void @eclair_btree_node_insert_inner_0(ptr %node_0, ptr %root_0, i16 %pos_0, ptr %predecessor_0, ptr %key_0, ptr %new_node_0) { | |
start: | |
%stack.ptr_0 = alloca i16 | |
store i16 %pos_0, ptr %stack.ptr_0 | |
%0 = getelementptr %node_t_0, ptr %node_0, i32 0, i32 0, i32 2 | |
%1 = load i16, ptr %0 | |
%2 = icmp uge i16 %1, 20 | |
br i1 %2, label %if_0, label %end_if_1 | |
if_0: | |
%3 = load i16, ptr %stack.ptr_0 | |
%4 = call ccc i16 @eclair_btree_node_rebalance_or_split_0(ptr %node_0, ptr %root_0, i16 %pos_0) | |
%5 = sub i16 %3, %4 | |
store i16 %5, ptr %stack.ptr_0 | |
%6 = getelementptr %node_t_0, ptr %node_0, i32 0, i32 0, i32 2 | |
%7 = load i16, ptr %6 | |
%8 = icmp ugt i16 %5, %7 | |
br i1 %8, label %if_1, label %end_if_0 | |
if_1: | |
%9 = sub i16 %5, %7 | |
%10 = sub i16 %9, 1 | |
store i16 %10, ptr %stack.ptr_0 | |
%11 = getelementptr %node_t_0, ptr %node_0, i32 0, i32 0, i32 0 | |
%12 = load ptr, ptr %11 | |
%13 = getelementptr %node_t_0, ptr %node_0, i32 0, i32 0, i32 1 | |
%14 = load i16, ptr %13 | |
%15 = add i16 1, %14 | |
%16 = getelementptr %inner_node_t_0, ptr %12, i32 0, i32 1, i16 %15 | |
%17 = load ptr, ptr %16 | |
call ccc void @eclair_btree_node_insert_inner_0(ptr %17, ptr %root_0, i16 %10, ptr %predecessor_0, ptr %key_0, ptr %new_node_0) | |
ret void | |
end_if_0: | |
br label %end_if_1 | |
end_if_1: | |
%18 = getelementptr %node_t_0, ptr %node_0, i32 0, i32 0, i32 2 | |
%19 = load i16, ptr %18 | |
%20 = sub i16 %19, 1 | |
%21 = load i16, ptr %stack.ptr_0 | |
br label %for_begin_0 | |
for_begin_0: | |
%22 = phi i16 [%20, %end_if_1], [%37, %for_body_0] | |
%23 = icmp uge i16 %22, %21 | |
br i1 %23, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%24 = add i16 %22, 1 | |
%25 = add i16 %22, 2 | |
%26 = getelementptr %node_t_0, ptr %node_0, i32 0, i32 1, i16 %22 | |
%27 = load [3 x i32], ptr %26 | |
%28 = getelementptr %node_t_0, ptr %node_0, i32 0, i32 1, i16 %24 | |
store [3 x i32] %27, ptr %28 | |
%29 = getelementptr %inner_node_t_0, ptr %node_0, i32 0, i32 1, i16 %24 | |
%30 = load ptr, ptr %29 | |
%31 = getelementptr %inner_node_t_0, ptr %node_0, i32 0, i32 1, i16 %25 | |
store ptr %30, ptr %31 | |
%32 = getelementptr %inner_node_t_0, ptr %node_0, i32 0, i32 1, i16 %25 | |
%33 = load ptr, ptr %32 | |
%34 = getelementptr %node_t_0, ptr %33, i32 0, i32 0, i32 1 | |
%35 = load i16, ptr %34 | |
%36 = add i16 1, %35 | |
store i16 %36, ptr %34 | |
%37 = sub i16 %22, 1 | |
br label %for_begin_0 | |
for_end_0: | |
%38 = load [3 x i32], ptr %key_0 | |
%39 = getelementptr %node_t_0, ptr %node_0, i32 0, i32 1, i16 %21 | |
store [3 x i32] %38, ptr %39 | |
%40 = add i16 %21, 1 | |
%41 = getelementptr %inner_node_t_0, ptr %node_0, i32 0, i32 1, i16 %40 | |
store ptr %new_node_0, ptr %41 | |
%42 = getelementptr %node_t_0, ptr %new_node_0, i32 0, i32 0, i32 0 | |
store ptr %node_0, ptr %42 | |
%43 = getelementptr %node_t_0, ptr %new_node_0, i32 0, i32 0, i32 1 | |
store i16 %40, ptr %43 | |
%44 = getelementptr %node_t_0, ptr %node_0, i32 0, i32 0, i32 2 | |
%45 = load i16, ptr %44 | |
%46 = add i16 1, %45 | |
store i16 %46, ptr %44 | |
ret void | |
} | |
define external ccc i16 @eclair_btree_node_rebalance_or_split_0(ptr %node_0, ptr %root_0, i16 %idx_0) { | |
start: | |
%0 = getelementptr %node_t_0, ptr %node_0, i32 0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = getelementptr %node_t_0, ptr %node_0, i32 0, i32 0, i32 1 | |
%3 = load i16, ptr %2 | |
%4 = icmp ne ptr %1, zeroinitializer | |
%5 = icmp ugt i16 %3, 0 | |
%6 = and i1 %4, %5 | |
br i1 %6, label %rebalance_0, label %split_0 | |
rebalance_0: | |
%7 = sub i16 %3, 1 | |
%8 = getelementptr %inner_node_t_0, ptr %1, i32 0, i32 1, i16 %7 | |
%9 = load ptr, ptr %8 | |
%10 = getelementptr %node_t_0, ptr %9, i32 0, i32 0, i32 2 | |
%11 = load i16, ptr %10 | |
%12 = sub i16 20, %11 | |
%13 = icmp slt i16 %12, %idx_0 | |
%14 = select i1 %13, i16 %12, i16 %idx_0 | |
%15 = icmp ugt i16 %14, 0 | |
br i1 %15, label %if_0, label %end_if_1 | |
if_0: | |
%16 = getelementptr %node_t_0, ptr %node_0, i32 0, i32 0, i32 1 | |
%17 = load i16, ptr %16 | |
%18 = sub i16 %17, 1 | |
%19 = getelementptr %inner_node_t_0, ptr %1, i32 0, i32 0, i32 1, i16 %18 | |
%20 = load [3 x i32], ptr %19 | |
%21 = getelementptr %node_t_0, ptr %9, i32 0, i32 0, i32 2 | |
%22 = load i16, ptr %21 | |
%23 = getelementptr %node_t_0, ptr %9, i32 0, i32 1, i16 %22 | |
store [3 x i32] %20, ptr %23 | |
%24 = sub i16 %14, 1 | |
br label %for_begin_0 | |
for_begin_0: | |
%25 = phi i16 [0, %if_0], [%32, %for_body_0] | |
%26 = icmp ult i16 %25, %24 | |
br i1 %26, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%27 = add i16 %22, 1 | |
%28 = add i16 %25, %27 | |
%29 = getelementptr %node_t_0, ptr %node_0, i32 0, i32 1, i16 %25 | |
%30 = load [3 x i32], ptr %29 | |
%31 = getelementptr %node_t_0, ptr %9, i32 0, i32 1, i16 %28 | |
store [3 x i32] %30, ptr %31 | |
%32 = add i16 1, %25 | |
br label %for_begin_0 | |
for_end_0: | |
%33 = getelementptr %node_t_0, ptr %node_0, i32 0, i32 1, i16 %24 | |
%34 = load [3 x i32], ptr %33 | |
store [3 x i32] %34, ptr %19 | |
%35 = getelementptr %node_t_0, ptr %node_0, i32 0, i32 0, i32 2 | |
%36 = load i16, ptr %35 | |
%37 = sub i16 %36, %14 | |
br label %for_begin_1 | |
for_begin_1: | |
%38 = phi i16 [0, %for_end_0], [%44, %for_body_1] | |
%39 = icmp ult i16 %38, %37 | |
br i1 %39, label %for_body_1, label %for_end_1 | |
for_body_1: | |
%40 = add i16 %38, %14 | |
%41 = getelementptr %node_t_0, ptr %node_0, i32 0, i32 1, i16 %40 | |
%42 = load [3 x i32], ptr %41 | |
%43 = getelementptr %node_t_0, ptr %node_0, i32 0, i32 1, i16 %38 | |
store [3 x i32] %42, ptr %43 | |
%44 = add i16 1, %38 | |
br label %for_begin_1 | |
for_end_1: | |
%45 = getelementptr %node_t_0, ptr %node_0, i32 0, i32 0, i32 3 | |
%46 = load i1, ptr %45 | |
%47 = icmp eq i1 %46, 1 | |
br i1 %47, label %if_1, label %end_if_0 | |
if_1: | |
br label %for_begin_2 | |
for_begin_2: | |
%48 = phi i16 [0, %if_1], [%61, %for_body_2] | |
%49 = icmp ult i16 %48, %14 | |
br i1 %49, label %for_body_2, label %for_end_2 | |
for_body_2: | |
%50 = getelementptr %node_t_0, ptr %9, i32 0, i32 0, i32 2 | |
%51 = load i16, ptr %50 | |
%52 = add i16 %51, 1 | |
%53 = add i16 %48, %52 | |
%54 = getelementptr %inner_node_t_0, ptr %node_0, i32 0, i32 1, i16 %48 | |
%55 = load ptr, ptr %54 | |
%56 = getelementptr %inner_node_t_0, ptr %9, i32 0, i32 1, i16 %53 | |
store ptr %55, ptr %56 | |
%57 = getelementptr %inner_node_t_0, ptr %9, i32 0, i32 1, i16 %53 | |
%58 = load ptr, ptr %57 | |
%59 = getelementptr %node_t_0, ptr %58, i32 0, i32 0, i32 0 | |
store ptr %9, ptr %59 | |
%60 = getelementptr %node_t_0, ptr %58, i32 0, i32 0, i32 1 | |
store i16 %53, ptr %60 | |
%61 = add i16 1, %48 | |
br label %for_begin_2 | |
for_end_2: | |
%62 = sub i16 %36, %14 | |
%63 = add i16 1, %62 | |
br label %for_begin_3 | |
for_begin_3: | |
%64 = phi i16 [0, %for_end_2], [%73, %for_body_3] | |
%65 = icmp ult i16 %64, %63 | |
br i1 %65, label %for_body_3, label %for_end_3 | |
for_body_3: | |
%66 = add i16 %64, %14 | |
%67 = getelementptr %inner_node_t_0, ptr %node_0, i32 0, i32 1, i16 %66 | |
%68 = load ptr, ptr %67 | |
%69 = getelementptr %inner_node_t_0, ptr %node_0, i32 0, i32 1, i16 %64 | |
store ptr %68, ptr %69 | |
%70 = getelementptr %inner_node_t_0, ptr %node_0, i32 0, i32 1, i16 %64 | |
%71 = load ptr, ptr %70 | |
%72 = getelementptr %node_t_0, ptr %71, i32 0, i32 0, i32 1 | |
store i16 %64, ptr %72 | |
%73 = add i16 1, %64 | |
br label %for_begin_3 | |
for_end_3: | |
br label %end_if_0 | |
end_if_0: | |
%74 = getelementptr %node_t_0, ptr %9, i32 0, i32 0, i32 2 | |
%75 = load i16, ptr %74 | |
%76 = add i16 %75, %14 | |
store i16 %76, ptr %74 | |
%77 = getelementptr %node_t_0, ptr %node_0, i32 0, i32 0, i32 2 | |
%78 = load i16, ptr %77 | |
%79 = sub i16 %78, %14 | |
store i16 %79, ptr %77 | |
ret i16 %14 | |
end_if_1: | |
br label %split_0 | |
split_0: | |
call ccc void @eclair_btree_node_split_0(ptr %node_0, ptr %root_0) | |
ret i16 0 | |
} | |
define external ccc i1 @eclair_btree_insert_value_0(ptr %tree_0, ptr %val_0) { | |
start: | |
%stack.ptr_0 = alloca ptr | |
%stack.ptr_1 = alloca i16 | |
%0 = call ccc i1 @eclair_btree_is_empty_0(ptr %tree_0) | |
br i1 %0, label %empty_0, label %non_empty_0 | |
empty_0: | |
%1 = call ccc ptr @eclair_btree_node_new_0(i1 0) | |
%2 = getelementptr %node_t_0, ptr %1, i32 0, i32 0, i32 2 | |
store i16 1, ptr %2 | |
%3 = load [3 x i32], ptr %val_0 | |
%4 = getelementptr %node_t_0, ptr %1, i32 0, i32 1, i16 0 | |
store [3 x i32] %3, ptr %4 | |
%5 = getelementptr %btree_t_0, ptr %tree_0, i32 0, i32 0 | |
store ptr %1, ptr %5 | |
%6 = getelementptr %btree_t_0, ptr %tree_0, i32 0, i32 1 | |
store ptr %1, ptr %6 | |
br label %inserted_new_value_0 | |
non_empty_0: | |
%7 = getelementptr %btree_t_0, ptr %tree_0, i32 0, i32 0 | |
%8 = load ptr, ptr %7 | |
store ptr %8, ptr %stack.ptr_0 | |
br label %loop_0 | |
loop_0: | |
%9 = load ptr, ptr %stack.ptr_0 | |
%10 = getelementptr %node_t_0, ptr %9, i32 0, i32 0, i32 3 | |
%11 = load i1, ptr %10 | |
%12 = icmp eq i1 %11, 1 | |
br i1 %12, label %inner_0, label %leaf_0 | |
inner_0: | |
%13 = getelementptr %node_t_0, ptr %9, i32 0, i32 0, i32 2 | |
%14 = load i16, ptr %13 | |
%15 = getelementptr %node_t_0, ptr %9, i32 0, i32 1, i16 0 | |
%16 = getelementptr %node_t_0, ptr %9, i32 0, i32 1, i16 %14 | |
%17 = call ccc ptr @eclair_btree_linear_search_lower_bound_0(ptr %val_0, ptr %15, ptr %16) | |
%18 = ptrtoint ptr %17 to i64 | |
%19 = ptrtoint ptr %15 to i64 | |
%20 = sub i64 %18, %19 | |
%21 = trunc i64 %20 to i16 | |
%22 = udiv i16 %21, 12 | |
%23 = icmp ne ptr %17, %16 | |
%24 = call ccc i8 @eclair_btree_value_compare_values_0(ptr %17, ptr %val_0) | |
%25 = icmp eq i8 0, %24 | |
%26 = and i1 %23, %25 | |
br i1 %26, label %no_insert_0, label %inner_continue_insert_0 | |
inner_continue_insert_0: | |
%27 = getelementptr %inner_node_t_0, ptr %9, i32 0, i32 1, i16 %22 | |
%28 = load ptr, ptr %27 | |
store ptr %28, ptr %stack.ptr_0 | |
br label %loop_0 | |
leaf_0: | |
%29 = getelementptr %node_t_0, ptr %9, i32 0, i32 0, i32 2 | |
%30 = load i16, ptr %29 | |
%31 = getelementptr %node_t_0, ptr %9, i32 0, i32 1, i16 0 | |
%32 = getelementptr %node_t_0, ptr %9, i32 0, i32 1, i16 %30 | |
%33 = call ccc ptr @eclair_btree_linear_search_upper_bound_0(ptr %val_0, ptr %31, ptr %32) | |
%34 = ptrtoint ptr %33 to i64 | |
%35 = ptrtoint ptr %31 to i64 | |
%36 = sub i64 %34, %35 | |
%37 = trunc i64 %36 to i16 | |
%38 = udiv i16 %37, 12 | |
store i16 %38, ptr %stack.ptr_1 | |
%39 = icmp ne ptr %33, %31 | |
%40 = getelementptr [3 x i32], ptr %33, i32 -1 | |
%41 = call ccc i8 @eclair_btree_value_compare_values_0(ptr %40, ptr %val_0) | |
%42 = icmp eq i8 0, %41 | |
%43 = and i1 %39, %42 | |
br i1 %43, label %no_insert_0, label %leaf_continue_insert_0 | |
leaf_continue_insert_0: | |
%44 = icmp uge i16 %30, 20 | |
br i1 %44, label %split_0, label %no_split_0 | |
split_0: | |
%45 = getelementptr %btree_t_0, ptr %tree_0, i32 0, i32 0 | |
%46 = load i16, ptr %stack.ptr_1 | |
%47 = call ccc i16 @eclair_btree_node_rebalance_or_split_0(ptr %9, ptr %45, i16 %46) | |
%48 = sub i16 %46, %47 | |
store i16 %48, ptr %stack.ptr_1 | |
%49 = getelementptr %node_t_0, ptr %9, i32 0, i32 0, i32 2 | |
%50 = load i16, ptr %49 | |
%51 = icmp ugt i16 %48, %50 | |
br i1 %51, label %if_0, label %end_if_0 | |
if_0: | |
%52 = add i16 %50, 1 | |
%53 = sub i16 %48, %52 | |
store i16 %53, ptr %stack.ptr_1 | |
%54 = getelementptr %node_t_0, ptr %9, i32 0, i32 0, i32 0 | |
%55 = load ptr, ptr %54 | |
%56 = getelementptr %node_t_0, ptr %9, i32 0, i32 0, i32 1 | |
%57 = load i16, ptr %56 | |
%58 = add i16 1, %57 | |
%59 = getelementptr %inner_node_t_0, ptr %55, i32 0, i32 1, i16 %58 | |
%60 = load ptr, ptr %59 | |
store ptr %60, ptr %stack.ptr_0 | |
br label %end_if_0 | |
end_if_0: | |
br label %no_split_0 | |
no_split_0: | |
%61 = load ptr, ptr %stack.ptr_0 | |
%62 = load i16, ptr %stack.ptr_1 | |
%63 = getelementptr %node_t_0, ptr %61, i32 0, i32 0, i32 2 | |
%64 = load i16, ptr %63 | |
br label %for_begin_0 | |
for_begin_0: | |
%65 = phi i16 [%64, %no_split_0], [%71, %for_body_0] | |
%66 = icmp ugt i16 %65, %62 | |
br i1 %66, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%67 = sub i16 %65, 1 | |
%68 = getelementptr %node_t_0, ptr %61, i32 0, i32 1, i16 %67 | |
%69 = load [3 x i32], ptr %68 | |
%70 = getelementptr %node_t_0, ptr %61, i32 0, i32 1, i16 %65 | |
store [3 x i32] %69, ptr %70 | |
%71 = sub i16 %65, 1 | |
br label %for_begin_0 | |
for_end_0: | |
%72 = load [3 x i32], ptr %val_0 | |
%73 = getelementptr %node_t_0, ptr %61, i32 0, i32 1, i16 %62 | |
store [3 x i32] %72, ptr %73 | |
%74 = getelementptr %node_t_0, ptr %61, i32 0, i32 0, i32 2 | |
%75 = load i16, ptr %74 | |
%76 = add i16 1, %75 | |
store i16 %76, ptr %74 | |
br label %inserted_new_value_0 | |
no_insert_0: | |
ret i1 0 | |
inserted_new_value_0: | |
ret i1 1 | |
} | |
define external ccc void @eclair_btree_insert_range__0(ptr %tree_0, ptr %begin_0, ptr %end_0) { | |
start: | |
br label %while_begin_0 | |
while_begin_0: | |
%0 = call ccc i1 @eclair_btree_iterator_is_equal_0(ptr %begin_0, ptr %end_0) | |
%1 = select i1 %0, i1 0, i1 1 | |
br i1 %1, label %while_body_0, label %while_end_0 | |
while_body_0: | |
%2 = call ccc ptr @eclair_btree_iterator_current_0(ptr %begin_0) | |
%3 = call ccc i1 @eclair_btree_insert_value_0(ptr %tree_0, ptr %2) | |
call ccc void @eclair_btree_iterator_next_0(ptr %begin_0) | |
br label %while_begin_0 | |
while_end_0: | |
ret void | |
} | |
define external ccc void @eclair_btree_begin_0(ptr %tree_0, ptr %result_0) { | |
start: | |
%0 = getelementptr %btree_t_0, ptr %tree_0, i32 0, i32 1 | |
%1 = load ptr, ptr %0 | |
%2 = getelementptr %btree_iterator_t_0, ptr %result_0, i32 0, i32 0 | |
store ptr %1, ptr %2 | |
%3 = getelementptr %btree_iterator_t_0, ptr %result_0, i32 0, i32 1 | |
store i16 0, ptr %3 | |
ret void | |
} | |
define external ccc void @eclair_btree_end_0(ptr %tree_0, ptr %result_0) { | |
start: | |
call ccc void @eclair_btree_iterator_end_init_0(ptr %result_0) | |
ret void | |
} | |
define external ccc i1 @eclair_btree_contains_0(ptr %tree_0, ptr %val_0) { | |
start: | |
%stack.ptr_0 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_1 = alloca %btree_iterator_t_0, i32 1 | |
call ccc void @eclair_btree_find_0(ptr %tree_0, ptr %val_0, ptr %stack.ptr_0) | |
call ccc void @eclair_btree_end_0(ptr %tree_0, ptr %stack.ptr_1) | |
%0 = call ccc i1 @eclair_btree_iterator_is_equal_0(ptr %stack.ptr_0, ptr %stack.ptr_1) | |
%1 = select i1 %0, i1 0, i1 1 | |
ret i1 %1 | |
} | |
define external ccc void @eclair_btree_find_0(ptr %tree_0, ptr %val_0, ptr %result_0) { | |
start: | |
%stack.ptr_0 = alloca ptr | |
%0 = call ccc i1 @eclair_btree_is_empty_0(ptr %tree_0) | |
br i1 %0, label %if_0, label %end_if_0 | |
if_0: | |
call ccc void @eclair_btree_iterator_end_init_0(ptr %result_0) | |
ret void | |
end_if_0: | |
%1 = getelementptr %btree_t_0, ptr %tree_0, i32 0, i32 0 | |
%2 = load ptr, ptr %1 | |
store ptr %2, ptr %stack.ptr_0 | |
br label %loop_0 | |
loop_0: | |
%3 = load ptr, ptr %stack.ptr_0 | |
%4 = getelementptr %node_t_0, ptr %3, i32 0, i32 0, i32 2 | |
%5 = load i16, ptr %4 | |
%6 = getelementptr %node_t_0, ptr %3, i32 0, i32 1, i16 0 | |
%7 = getelementptr %node_t_0, ptr %3, i32 0, i32 1, i16 %5 | |
%8 = call ccc ptr @eclair_btree_linear_search_lower_bound_0(ptr %val_0, ptr %6, ptr %7) | |
%9 = ptrtoint ptr %8 to i64 | |
%10 = ptrtoint ptr %6 to i64 | |
%11 = sub i64 %9, %10 | |
%12 = trunc i64 %11 to i16 | |
%13 = udiv i16 %12, 12 | |
%14 = icmp ult ptr %8, %7 | |
%15 = call ccc i8 @eclair_btree_value_compare_values_0(ptr %8, ptr %val_0) | |
%16 = icmp eq i8 0, %15 | |
%17 = and i1 %14, %16 | |
br i1 %17, label %if_1, label %end_if_1 | |
if_1: | |
call ccc void @eclair_btree_iterator_init_0(ptr %result_0, ptr %3, i16 %13) | |
ret void | |
end_if_1: | |
%18 = getelementptr %node_t_0, ptr %3, i32 0, i32 0, i32 3 | |
%19 = load i1, ptr %18 | |
%20 = icmp eq i1 %19, 0 | |
br i1 %20, label %if_2, label %end_if_2 | |
if_2: | |
call ccc void @eclair_btree_iterator_end_init_0(ptr %result_0) | |
ret void | |
end_if_2: | |
%21 = getelementptr %inner_node_t_0, ptr %3, i32 0, i32 1, i16 %13 | |
%22 = load ptr, ptr %21 | |
store ptr %22, ptr %stack.ptr_0 | |
br label %loop_0 | |
} | |
define external ccc void @eclair_btree_lower_bound_0(ptr %tree_0, ptr %val_0, ptr %result_0) { | |
start: | |
%stack.ptr_0 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_1 = alloca ptr | |
%0 = call ccc i1 @eclair_btree_is_empty_0(ptr %tree_0) | |
br i1 %0, label %if_0, label %end_if_0 | |
if_0: | |
call ccc void @eclair_btree_iterator_end_init_0(ptr %result_0) | |
ret void | |
end_if_0: | |
call ccc void @eclair_btree_iterator_end_init_0(ptr %stack.ptr_0) | |
%1 = getelementptr %btree_t_0, ptr %tree_0, i32 0, i32 0 | |
%2 = load ptr, ptr %1 | |
store ptr %2, ptr %stack.ptr_1 | |
br label %loop_0 | |
loop_0: | |
%3 = load ptr, ptr %stack.ptr_1 | |
%4 = getelementptr %node_t_0, ptr %3, i32 0, i32 0, i32 2 | |
%5 = load i16, ptr %4 | |
%6 = getelementptr %node_t_0, ptr %3, i32 0, i32 1, i16 0 | |
%7 = getelementptr %node_t_0, ptr %3, i32 0, i32 1, i16 %5 | |
%8 = call ccc ptr @eclair_btree_linear_search_lower_bound_0(ptr %val_0, ptr %6, ptr %7) | |
%9 = ptrtoint ptr %8 to i64 | |
%10 = ptrtoint ptr %6 to i64 | |
%11 = sub i64 %9, %10 | |
%12 = trunc i64 %11 to i16 | |
%13 = udiv i16 %12, 12 | |
%14 = getelementptr %node_t_0, ptr %3, i32 0, i32 0, i32 3 | |
%15 = load i1, ptr %14 | |
%16 = icmp eq i1 %15, 0 | |
br i1 %16, label %if_1, label %end_if_1 | |
if_1: | |
%17 = icmp eq ptr %8, %7 | |
br i1 %17, label %handle_last_0, label %handle_not_last_0 | |
handle_last_0: | |
%18 = getelementptr %btree_iterator_t_0, ptr %stack.ptr_0, i32 0, i32 0 | |
%19 = load ptr, ptr %18 | |
%20 = getelementptr %btree_iterator_t_0, ptr %result_0, i32 0, i32 0 | |
store ptr %19, ptr %20 | |
%21 = getelementptr %btree_iterator_t_0, ptr %stack.ptr_0, i32 0, i32 1 | |
%22 = load i16, ptr %21 | |
%23 = getelementptr %btree_iterator_t_0, ptr %result_0, i32 0, i32 1 | |
store i16 %22, ptr %23 | |
ret void | |
handle_not_last_0: | |
call ccc void @eclair_btree_iterator_init_0(ptr %result_0, ptr %3, i16 %13) | |
ret void | |
end_if_1: | |
%24 = icmp ne ptr %8, %7 | |
%25 = call ccc i8 @eclair_btree_value_compare_values_0(ptr %8, ptr %val_0) | |
%26 = icmp eq i8 0, %25 | |
%27 = and i1 %24, %26 | |
br i1 %27, label %if_2, label %end_if_2 | |
if_2: | |
call ccc void @eclair_btree_iterator_init_0(ptr %result_0, ptr %3, i16 %13) | |
ret void | |
end_if_2: | |
br i1 %24, label %if_3, label %end_if_3 | |
if_3: | |
call ccc void @eclair_btree_iterator_init_0(ptr %stack.ptr_0, ptr %3, i16 %13) | |
br label %end_if_3 | |
end_if_3: | |
%28 = getelementptr %inner_node_t_0, ptr %3, i32 0, i32 1, i16 %13 | |
%29 = load ptr, ptr %28 | |
store ptr %29, ptr %stack.ptr_1 | |
br label %loop_0 | |
} | |
define external ccc void @eclair_btree_upper_bound_0(ptr %tree_0, ptr %val_0, ptr %result_0) { | |
start: | |
%stack.ptr_0 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_1 = alloca ptr | |
%0 = call ccc i1 @eclair_btree_is_empty_0(ptr %tree_0) | |
br i1 %0, label %if_0, label %end_if_0 | |
if_0: | |
call ccc void @eclair_btree_iterator_end_init_0(ptr %result_0) | |
ret void | |
end_if_0: | |
call ccc void @eclair_btree_iterator_end_init_0(ptr %stack.ptr_0) | |
%1 = getelementptr %btree_t_0, ptr %tree_0, i32 0, i32 0 | |
%2 = load ptr, ptr %1 | |
store ptr %2, ptr %stack.ptr_1 | |
br label %loop_0 | |
loop_0: | |
%3 = load ptr, ptr %stack.ptr_1 | |
%4 = getelementptr %node_t_0, ptr %3, i32 0, i32 0, i32 2 | |
%5 = load i16, ptr %4 | |
%6 = getelementptr %node_t_0, ptr %3, i32 0, i32 1, i16 0 | |
%7 = getelementptr %node_t_0, ptr %3, i32 0, i32 1, i16 %5 | |
%8 = call ccc ptr @eclair_btree_linear_search_upper_bound_0(ptr %val_0, ptr %6, ptr %7) | |
%9 = ptrtoint ptr %8 to i64 | |
%10 = ptrtoint ptr %6 to i64 | |
%11 = sub i64 %9, %10 | |
%12 = trunc i64 %11 to i16 | |
%13 = udiv i16 %12, 12 | |
%14 = getelementptr %node_t_0, ptr %3, i32 0, i32 0, i32 3 | |
%15 = load i1, ptr %14 | |
%16 = icmp eq i1 %15, 0 | |
br i1 %16, label %if_1, label %end_if_1 | |
if_1: | |
%17 = icmp eq ptr %8, %7 | |
br i1 %17, label %handle_last_0, label %handle_not_last_0 | |
handle_last_0: | |
%18 = getelementptr %btree_iterator_t_0, ptr %stack.ptr_0, i32 0, i32 0 | |
%19 = load ptr, ptr %18 | |
%20 = getelementptr %btree_iterator_t_0, ptr %result_0, i32 0, i32 0 | |
store ptr %19, ptr %20 | |
%21 = getelementptr %btree_iterator_t_0, ptr %stack.ptr_0, i32 0, i32 1 | |
%22 = load i16, ptr %21 | |
%23 = getelementptr %btree_iterator_t_0, ptr %result_0, i32 0, i32 1 | |
store i16 %22, ptr %23 | |
ret void | |
handle_not_last_0: | |
call ccc void @eclair_btree_iterator_init_0(ptr %result_0, ptr %3, i16 %13) | |
ret void | |
end_if_1: | |
%24 = icmp ne ptr %8, %7 | |
br i1 %24, label %if_2, label %end_if_2 | |
if_2: | |
call ccc void @eclair_btree_iterator_init_0(ptr %result_0, ptr %3, i16 %13) | |
br label %end_if_2 | |
end_if_2: | |
%25 = getelementptr %inner_node_t_0, ptr %3, i32 0, i32 1, i16 %13 | |
%26 = load ptr, ptr %25 | |
store ptr %26, ptr %stack.ptr_1 | |
br label %loop_0 | |
} | |
define external ccc void @eclair_btree_node_delete_0(ptr %node_0) { | |
start: | |
%0 = getelementptr %node_t_0, ptr %node_0, i32 0, i32 0, i32 3 | |
%1 = load i1, ptr %0 | |
%2 = icmp eq i1 %1, 1 | |
br i1 %2, label %if_0, label %end_if_1 | |
if_0: | |
%3 = getelementptr %node_t_0, ptr %node_0, i32 0, i32 0, i32 2 | |
%4 = load i16, ptr %3 | |
br label %for_begin_0 | |
for_begin_0: | |
%5 = phi i16 [0, %if_0], [%10, %end_if_0] | |
%6 = icmp ule i16 %5, %4 | |
br i1 %6, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%7 = getelementptr %inner_node_t_0, ptr %node_0, i32 0, i32 1, i16 %5 | |
%8 = load ptr, ptr %7 | |
%9 = icmp ne ptr %8, zeroinitializer | |
br i1 %9, label %if_1, label %end_if_0 | |
if_1: | |
call ccc void @eclair_btree_node_delete_0(ptr %8) | |
br label %end_if_0 | |
end_if_0: | |
%10 = add i16 1, %5 | |
br label %for_begin_0 | |
for_end_0: | |
br label %end_if_1 | |
end_if_1: | |
call ccc void @free(ptr %node_0) | |
ret void | |
} | |
define external ccc void @eclair_btree_clear_0(ptr %tree_0) { | |
start: | |
%0 = getelementptr %btree_t_0, ptr %tree_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = icmp ne ptr %1, zeroinitializer | |
br i1 %2, label %if_0, label %end_if_0 | |
if_0: | |
call ccc void @eclair_btree_node_delete_0(ptr %1) | |
%3 = getelementptr %btree_t_0, ptr %tree_0, i32 0, i32 0 | |
store ptr zeroinitializer, ptr %3 | |
%4 = getelementptr %btree_t_0, ptr %tree_0, i32 0, i32 1 | |
store ptr zeroinitializer, ptr %4 | |
br label %end_if_0 | |
end_if_0: | |
ret void | |
} | |
define external ccc void @eclair_btree_swap_0(ptr %lhs_0, ptr %rhs_0) { | |
start: | |
%0 = getelementptr %btree_t_0, ptr %lhs_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = getelementptr %btree_t_0, ptr %rhs_0, i32 0, i32 0 | |
%3 = load ptr, ptr %2 | |
%4 = getelementptr %btree_t_0, ptr %lhs_0, i32 0, i32 0 | |
store ptr %3, ptr %4 | |
%5 = getelementptr %btree_t_0, ptr %rhs_0, i32 0, i32 0 | |
store ptr %1, ptr %5 | |
%6 = getelementptr %btree_t_0, ptr %lhs_0, i32 0, i32 1 | |
%7 = load ptr, ptr %6 | |
%8 = getelementptr %btree_t_0, ptr %rhs_0, i32 0, i32 1 | |
%9 = load ptr, ptr %8 | |
%10 = getelementptr %btree_t_0, ptr %lhs_0, i32 0, i32 1 | |
store ptr %9, ptr %10 | |
%11 = getelementptr %btree_t_0, ptr %rhs_0, i32 0, i32 1 | |
store ptr %7, ptr %11 | |
ret void | |
} | |
%node_data_t_1 = type {ptr, i16, i16, i1} | |
%node_t_1 = type {%node_data_t_1, [30 x [2 x i32]]} | |
%inner_node_t_1 = type {%node_t_1, [31 x ptr]} | |
%btree_iterator_t_1 = type {ptr, i16} | |
%btree_t_1 = type {ptr, ptr} | |
define external ccc i8 @eclair_btree_value_compare_1(i32 %lhs_0, i32 %rhs_0) { | |
start: | |
%0 = icmp ult i32 %lhs_0, %rhs_0 | |
br i1 %0, label %if_0, label %end_if_0 | |
if_0: | |
ret i8 -1 | |
end_if_0: | |
%1 = icmp ugt i32 %lhs_0, %rhs_0 | |
%2 = select i1 %1, i8 1, i8 0 | |
ret i8 %2 | |
} | |
define external ccc i8 @eclair_btree_value_compare_values_1(ptr %lhs_0, ptr %rhs_0) { | |
start: | |
br label %comparison_0 | |
comparison_0: | |
%0 = getelementptr [2 x i32], ptr %lhs_0, i32 0, i32 0 | |
%1 = getelementptr [2 x i32], ptr %rhs_0, i32 0, i32 0 | |
%2 = load i32, ptr %0 | |
%3 = load i32, ptr %1 | |
%4 = call ccc i8 @eclair_btree_value_compare_1(i32 %2, i32 %3) | |
%5 = icmp eq i8 %4, 0 | |
br i1 %5, label %comparison_1, label %end_0 | |
comparison_1: | |
%6 = getelementptr [2 x i32], ptr %lhs_0, i32 0, i32 1 | |
%7 = getelementptr [2 x i32], ptr %rhs_0, i32 0, i32 1 | |
%8 = load i32, ptr %6 | |
%9 = load i32, ptr %7 | |
%10 = call ccc i8 @eclair_btree_value_compare_1(i32 %8, i32 %9) | |
br label %end_0 | |
end_0: | |
%11 = phi i8 [%4, %comparison_0], [%10, %comparison_1] | |
ret i8 %11 | |
} | |
define external ccc ptr @eclair_btree_node_new_1(i1 %type_0) { | |
start: | |
%0 = select i1 %type_0, i32 504, i32 256 | |
%1 = call ccc ptr @malloc(i32 %0) | |
%2 = getelementptr %node_t_1, ptr %1, i32 0, i32 0, i32 0 | |
store ptr zeroinitializer, ptr %2 | |
%3 = getelementptr %node_t_1, ptr %1, i32 0, i32 0, i32 1 | |
store i16 0, ptr %3 | |
%4 = getelementptr %node_t_1, ptr %1, i32 0, i32 0, i32 2 | |
store i16 0, ptr %4 | |
%5 = getelementptr %node_t_1, ptr %1, i32 0, i32 0, i32 3 | |
store i1 %type_0, ptr %5 | |
%6 = getelementptr %node_t_1, ptr %1, i32 0, i32 1 | |
call ccc void @llvm.memset.p0i8.i64(ptr %6, i8 0, i64 240, i1 0) | |
%7 = icmp eq i1 %type_0, 1 | |
br i1 %7, label %if_0, label %end_if_0 | |
if_0: | |
%8 = getelementptr %inner_node_t_1, ptr %1, i32 0, i32 1 | |
call ccc void @llvm.memset.p0i8.i64(ptr %8, i8 0, i64 248, i1 0) | |
br label %end_if_0 | |
end_if_0: | |
ret ptr %1 | |
} | |
define external ccc i64 @eclair_btree_node_count_entries_1(ptr %node_0) { | |
start: | |
%stack.ptr_0 = alloca i64 | |
%0 = getelementptr %node_t_1, ptr %node_0, i32 0, i32 0, i32 2 | |
%1 = load i16, ptr %0 | |
%2 = getelementptr %node_t_1, ptr %node_0, i32 0, i32 0, i32 3 | |
%3 = load i1, ptr %2 | |
%4 = icmp eq i1 %3, 0 | |
%5 = zext i16 %1 to i64 | |
br i1 %4, label %if_0, label %end_if_0 | |
if_0: | |
ret i64 %5 | |
end_if_0: | |
store i64 %5, ptr %stack.ptr_0 | |
%6 = getelementptr %node_t_1, ptr %node_0, i32 0, i32 0, i32 2 | |
%7 = load i16, ptr %6 | |
br label %for_begin_0 | |
for_begin_0: | |
%8 = phi i16 [0, %end_if_0], [%15, %for_body_0] | |
%9 = icmp ule i16 %8, %7 | |
br i1 %9, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%10 = load i64, ptr %stack.ptr_0 | |
%11 = getelementptr %inner_node_t_1, ptr %node_0, i32 0, i32 1, i16 %8 | |
%12 = load ptr, ptr %11 | |
%13 = call ccc i64 @eclair_btree_node_count_entries_1(ptr %12) | |
%14 = add i64 %10, %13 | |
store i64 %14, ptr %stack.ptr_0 | |
%15 = add i16 1, %8 | |
br label %for_begin_0 | |
for_end_0: | |
%16 = load i64, ptr %stack.ptr_0 | |
ret i64 %16 | |
} | |
define external ccc void @eclair_btree_iterator_init_1(ptr %iter_0, ptr %cur_0, i16 %pos_0) { | |
start: | |
%0 = getelementptr %btree_iterator_t_1, ptr %iter_0, i32 0, i32 0 | |
store ptr %cur_0, ptr %0 | |
%1 = getelementptr %btree_iterator_t_1, ptr %iter_0, i32 0, i32 1 | |
store i16 %pos_0, ptr %1 | |
ret void | |
} | |
define external ccc void @eclair_btree_iterator_end_init_1(ptr %iter_0) { | |
start: | |
call ccc void @eclair_btree_iterator_init_1(ptr %iter_0, ptr zeroinitializer, i16 0) | |
ret void | |
} | |
define external ccc i1 @eclair_btree_iterator_is_equal_1(ptr %lhs_0, ptr %rhs_0) { | |
start: | |
%0 = getelementptr %btree_iterator_t_1, ptr %lhs_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = getelementptr %btree_iterator_t_1, ptr %rhs_0, i32 0, i32 0 | |
%3 = load ptr, ptr %2 | |
%4 = icmp ne ptr %1, %3 | |
br i1 %4, label %if_0, label %end_if_0 | |
if_0: | |
ret i1 0 | |
end_if_0: | |
%5 = getelementptr %btree_iterator_t_1, ptr %lhs_0, i32 0, i32 1 | |
%6 = load i16, ptr %5 | |
%7 = getelementptr %btree_iterator_t_1, ptr %rhs_0, i32 0, i32 1 | |
%8 = load i16, ptr %7 | |
%9 = icmp eq i16 %6, %8 | |
ret i1 %9 | |
} | |
define external ccc ptr @eclair_btree_iterator_current_1(ptr %iter_0) { | |
start: | |
%0 = getelementptr %btree_iterator_t_1, ptr %iter_0, i32 0, i32 1 | |
%1 = load i16, ptr %0 | |
%2 = getelementptr %btree_iterator_t_1, ptr %iter_0, i32 0, i32 0 | |
%3 = load ptr, ptr %2 | |
%4 = getelementptr %node_t_1, ptr %3, i32 0, i32 1, i16 %1 | |
ret ptr %4 | |
} | |
define external ccc void @eclair_btree_iterator_next_1(ptr %iter_0) { | |
start: | |
%stack.ptr_0 = alloca ptr | |
%0 = getelementptr %btree_iterator_t_1, ptr %iter_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = getelementptr %node_t_1, ptr %1, i32 0, i32 0, i32 3 | |
%3 = load i1, ptr %2 | |
%4 = icmp eq i1 %3, 1 | |
br i1 %4, label %if_0, label %end_if_1 | |
if_0: | |
%5 = getelementptr %btree_iterator_t_1, ptr %iter_0, i32 0, i32 1 | |
%6 = load i16, ptr %5 | |
%7 = add i16 1, %6 | |
%8 = getelementptr %btree_iterator_t_1, ptr %iter_0, i32 0, i32 0 | |
%9 = load ptr, ptr %8 | |
%10 = getelementptr %inner_node_t_1, ptr %9, i32 0, i32 1, i16 %7 | |
%11 = load ptr, ptr %10 | |
store ptr %11, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_begin_0: | |
%12 = load ptr, ptr %stack.ptr_0 | |
%13 = getelementptr %node_t_1, ptr %12, i32 0, i32 0, i32 3 | |
%14 = load i1, ptr %13 | |
%15 = icmp eq i1 %14, 1 | |
br i1 %15, label %while_body_0, label %while_end_0 | |
while_body_0: | |
%16 = load ptr, ptr %stack.ptr_0 | |
%17 = getelementptr %inner_node_t_1, ptr %16, i32 0, i32 1, i16 0 | |
%18 = load ptr, ptr %17 | |
store ptr %18, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_end_0: | |
%19 = load ptr, ptr %stack.ptr_0 | |
%20 = getelementptr %btree_iterator_t_1, ptr %iter_0, i32 0, i32 0 | |
store ptr %19, ptr %20 | |
%21 = getelementptr %btree_iterator_t_1, ptr %iter_0, i32 0, i32 1 | |
store i16 0, ptr %21 | |
%22 = getelementptr %node_t_1, ptr %19, i32 0, i32 0, i32 2 | |
%23 = load i16, ptr %22 | |
%24 = icmp ne i16 %23, 0 | |
br i1 %24, label %if_1, label %end_if_0 | |
if_1: | |
ret void | |
end_if_0: | |
br label %leaf.next_0 | |
end_if_1: | |
br label %leaf.next_0 | |
leaf.next_0: | |
%25 = getelementptr %btree_iterator_t_1, ptr %iter_0, i32 0, i32 1 | |
%26 = load i16, ptr %25 | |
%27 = add i16 1, %26 | |
store i16 %27, ptr %25 | |
%28 = getelementptr %btree_iterator_t_1, ptr %iter_0, i32 0, i32 1 | |
%29 = load i16, ptr %28 | |
%30 = getelementptr %btree_iterator_t_1, ptr %iter_0, i32 0, i32 0 | |
%31 = load ptr, ptr %30 | |
%32 = getelementptr %node_t_1, ptr %31, i32 0, i32 0, i32 2 | |
%33 = load i16, ptr %32 | |
%34 = icmp ult i16 %29, %33 | |
br i1 %34, label %if_2, label %end_if_2 | |
if_2: | |
ret void | |
end_if_2: | |
br label %while_begin_1 | |
while_begin_1: | |
%35 = getelementptr %btree_iterator_t_1, ptr %iter_0, i32 0, i32 0 | |
%36 = load ptr, ptr %35 | |
%37 = icmp eq ptr %36, zeroinitializer | |
br i1 %37, label %leaf.no_parent_0, label %leaf.has_parent_0 | |
leaf.no_parent_0: | |
br label %loop.condition.end_0 | |
leaf.has_parent_0: | |
%38 = getelementptr %btree_iterator_t_1, ptr %iter_0, i32 0, i32 1 | |
%39 = load i16, ptr %38 | |
%40 = getelementptr %btree_iterator_t_1, ptr %iter_0, i32 0, i32 0 | |
%41 = load ptr, ptr %40 | |
%42 = getelementptr %node_t_1, ptr %41, i32 0, i32 0, i32 2 | |
%43 = load i16, ptr %42 | |
%44 = icmp eq i16 %39, %43 | |
br label %loop.condition.end_0 | |
loop.condition.end_0: | |
%45 = phi i1 [0, %leaf.no_parent_0], [%44, %leaf.has_parent_0] | |
br i1 %45, label %while_body_1, label %while_end_1 | |
while_body_1: | |
%46 = getelementptr %btree_iterator_t_1, ptr %iter_0, i32 0, i32 0 | |
%47 = load ptr, ptr %46 | |
%48 = getelementptr %node_t_1, ptr %47, i32 0, i32 0, i32 1 | |
%49 = load i16, ptr %48 | |
%50 = getelementptr %btree_iterator_t_1, ptr %iter_0, i32 0, i32 1 | |
store i16 %49, ptr %50 | |
%51 = getelementptr %node_t_1, ptr %47, i32 0, i32 0, i32 0 | |
%52 = load ptr, ptr %51 | |
%53 = getelementptr %btree_iterator_t_1, ptr %iter_0, i32 0, i32 0 | |
store ptr %52, ptr %53 | |
br label %while_begin_1 | |
while_end_1: | |
ret void | |
} | |
define external ccc ptr @eclair_btree_linear_search_lower_bound_1(ptr %val_0, ptr %current_0, ptr %end_0) { | |
start: | |
%stack.ptr_0 = alloca ptr | |
store ptr %current_0, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_begin_0: | |
%0 = load ptr, ptr %stack.ptr_0 | |
%1 = icmp ne ptr %0, %end_0 | |
br i1 %1, label %while_body_0, label %while_end_0 | |
while_body_0: | |
%2 = load ptr, ptr %stack.ptr_0 | |
%3 = call ccc i8 @eclair_btree_value_compare_values_1(ptr %2, ptr %val_0) | |
%4 = icmp ne i8 %3, -1 | |
br i1 %4, label %if_0, label %end_if_0 | |
if_0: | |
ret ptr %2 | |
end_if_0: | |
%5 = getelementptr [2 x i32], ptr %2, i32 1 | |
store ptr %5, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_end_0: | |
ret ptr %end_0 | |
} | |
define external ccc ptr @eclair_btree_linear_search_upper_bound_1(ptr %val_0, ptr %current_0, ptr %end_0) { | |
start: | |
%stack.ptr_0 = alloca ptr | |
store ptr %current_0, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_begin_0: | |
%0 = load ptr, ptr %stack.ptr_0 | |
%1 = icmp ne ptr %0, %end_0 | |
br i1 %1, label %while_body_0, label %while_end_0 | |
while_body_0: | |
%2 = load ptr, ptr %stack.ptr_0 | |
%3 = call ccc i8 @eclair_btree_value_compare_values_1(ptr %2, ptr %val_0) | |
%4 = icmp eq i8 %3, 1 | |
br i1 %4, label %if_0, label %end_if_0 | |
if_0: | |
ret ptr %2 | |
end_if_0: | |
%5 = getelementptr [2 x i32], ptr %2, i32 1 | |
store ptr %5, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_end_0: | |
ret ptr %end_0 | |
} | |
define external ccc void @eclair_btree_init_empty_1(ptr %tree_0) { | |
start: | |
%0 = getelementptr %btree_t_1, ptr %tree_0, i32 0, i32 0 | |
store ptr zeroinitializer, ptr %0 | |
%1 = getelementptr %btree_t_1, ptr %tree_0, i32 0, i32 1 | |
store ptr zeroinitializer, ptr %1 | |
ret void | |
} | |
define external ccc void @eclair_btree_init_1(ptr %tree_0, ptr %start_0, ptr %end_0) { | |
start: | |
call ccc void @eclair_btree_insert_range__1(ptr %tree_0, ptr %start_0, ptr %end_0) | |
ret void | |
} | |
define external ccc void @eclair_btree_destroy_1(ptr %tree_0) { | |
start: | |
call ccc void @eclair_btree_clear_1(ptr %tree_0) | |
ret void | |
} | |
define external ccc i1 @eclair_btree_is_empty_1(ptr %tree_0) { | |
start: | |
%0 = getelementptr %btree_t_1, ptr %tree_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = icmp eq ptr %1, zeroinitializer | |
ret i1 %2 | |
} | |
define external ccc i64 @eclair_btree_size_1(ptr %tree_0) { | |
start: | |
%0 = getelementptr %btree_t_1, ptr %tree_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = icmp eq ptr %1, zeroinitializer | |
br i1 %2, label %null_0, label %not_null_0 | |
null_0: | |
ret i64 0 | |
not_null_0: | |
%3 = call ccc i64 @eclair_btree_node_count_entries_1(ptr %1) | |
ret i64 %3 | |
} | |
define external ccc i16 @eclair_btree_node_split_point_1() { | |
start: | |
%0 = mul i16 3, 30 | |
%1 = udiv i16 %0, 4 | |
%2 = sub i16 30, 2 | |
%3 = icmp ult i16 %1, %2 | |
%4 = select i1 %3, i16 %1, i16 %2 | |
ret i16 %4 | |
} | |
define external ccc void @eclair_btree_node_split_1(ptr %node_0, ptr %root_0) { | |
start: | |
%stack.ptr_0 = alloca i16 | |
%0 = call ccc i16 @eclair_btree_node_split_point_1() | |
%1 = add i16 1, %0 | |
%2 = getelementptr %node_t_1, ptr %node_0, i32 0, i32 0, i32 3 | |
%3 = load i1, ptr %2 | |
%4 = call ccc ptr @eclair_btree_node_new_1(i1 %3) | |
store i16 0, ptr %stack.ptr_0 | |
br label %for_begin_0 | |
for_begin_0: | |
%5 = phi i16 [%1, %start], [%12, %for_body_0] | |
%6 = icmp ult i16 %5, 30 | |
br i1 %6, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%7 = load i16, ptr %stack.ptr_0 | |
%8 = getelementptr %node_t_1, ptr %node_0, i32 0, i32 1, i16 %5 | |
%9 = load [2 x i32], ptr %8 | |
%10 = getelementptr %node_t_1, ptr %4, i32 0, i32 1, i16 %7 | |
store [2 x i32] %9, ptr %10 | |
%11 = add i16 1, %7 | |
store i16 %11, ptr %stack.ptr_0 | |
%12 = add i16 1, %5 | |
br label %for_begin_0 | |
for_end_0: | |
%13 = icmp eq i1 %3, 1 | |
br i1 %13, label %if_0, label %end_if_0 | |
if_0: | |
store i16 0, ptr %stack.ptr_0 | |
br label %for_begin_1 | |
for_begin_1: | |
%14 = phi i16 [%1, %if_0], [%23, %for_body_1] | |
%15 = icmp ule i16 %14, 30 | |
br i1 %15, label %for_body_1, label %for_end_1 | |
for_body_1: | |
%16 = load i16, ptr %stack.ptr_0 | |
%17 = getelementptr %inner_node_t_1, ptr %node_0, i32 0, i32 1, i16 %14 | |
%18 = load ptr, ptr %17 | |
%19 = getelementptr %node_t_1, ptr %18, i32 0, i32 0, i32 0 | |
store ptr %4, ptr %19 | |
%20 = getelementptr %node_t_1, ptr %18, i32 0, i32 0, i32 1 | |
store i16 %16, ptr %20 | |
%21 = getelementptr %inner_node_t_1, ptr %4, i32 0, i32 1, i16 %16 | |
store ptr %18, ptr %21 | |
%22 = add i16 1, %16 | |
store i16 %22, ptr %stack.ptr_0 | |
%23 = add i16 1, %14 | |
br label %for_begin_1 | |
for_end_1: | |
br label %end_if_0 | |
end_if_0: | |
%24 = getelementptr %node_t_1, ptr %node_0, i32 0, i32 0, i32 2 | |
store i16 %0, ptr %24 | |
%25 = sub i16 30, %0 | |
%26 = sub i16 %25, 1 | |
%27 = getelementptr %node_t_1, ptr %4, i32 0, i32 0, i32 2 | |
store i16 %26, ptr %27 | |
call ccc void @eclair_btree_node_grow_parent_1(ptr %node_0, ptr %root_0, ptr %4) | |
ret void | |
} | |
define external ccc void @eclair_btree_node_grow_parent_1(ptr %node_0, ptr %root_0, ptr %sibling_0) { | |
start: | |
%0 = getelementptr %node_t_1, ptr %node_0, i32 0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = icmp eq ptr %1, zeroinitializer | |
%3 = getelementptr %node_t_1, ptr %node_0, i32 0, i32 0, i32 2 | |
%4 = load i16, ptr %3 | |
br i1 %2, label %create_new_root_0, label %insert_new_node_in_parent_0 | |
create_new_root_0: | |
%5 = call ccc ptr @eclair_btree_node_new_1(i1 1) | |
%6 = getelementptr %node_t_1, ptr %5, i32 0, i32 0, i32 2 | |
store i16 1, ptr %6 | |
%7 = getelementptr %node_t_1, ptr %node_0, i32 0, i32 1, i16 %4 | |
%8 = load [2 x i32], ptr %7 | |
%9 = getelementptr %node_t_1, ptr %5, i32 0, i32 1, i16 0 | |
store [2 x i32] %8, ptr %9 | |
%10 = getelementptr %inner_node_t_1, ptr %5, i32 0, i32 1, i16 0 | |
store ptr %node_0, ptr %10 | |
%11 = getelementptr %inner_node_t_1, ptr %5, i32 0, i32 1, i16 1 | |
store ptr %sibling_0, ptr %11 | |
%12 = getelementptr %node_t_1, ptr %node_0, i32 0, i32 0, i32 0 | |
store ptr %5, ptr %12 | |
%13 = getelementptr %node_t_1, ptr %sibling_0, i32 0, i32 0, i32 0 | |
store ptr %5, ptr %13 | |
%14 = getelementptr %node_t_1, ptr %sibling_0, i32 0, i32 0, i32 1 | |
store i16 1, ptr %14 | |
store ptr %5, ptr %root_0 | |
ret void | |
insert_new_node_in_parent_0: | |
%15 = getelementptr %node_t_1, ptr %node_0, i32 0, i32 0, i32 1 | |
%16 = load i16, ptr %15 | |
%17 = getelementptr %node_t_1, ptr %node_0, i32 0, i32 1, i16 %4 | |
call ccc void @eclair_btree_node_insert_inner_1(ptr %1, ptr %root_0, i16 %16, ptr %node_0, ptr %17, ptr %sibling_0) | |
ret void | |
} | |
define external ccc void @eclair_btree_node_insert_inner_1(ptr %node_0, ptr %root_0, i16 %pos_0, ptr %predecessor_0, ptr %key_0, ptr %new_node_0) { | |
start: | |
%stack.ptr_0 = alloca i16 | |
store i16 %pos_0, ptr %stack.ptr_0 | |
%0 = getelementptr %node_t_1, ptr %node_0, i32 0, i32 0, i32 2 | |
%1 = load i16, ptr %0 | |
%2 = icmp uge i16 %1, 30 | |
br i1 %2, label %if_0, label %end_if_1 | |
if_0: | |
%3 = load i16, ptr %stack.ptr_0 | |
%4 = call ccc i16 @eclair_btree_node_rebalance_or_split_1(ptr %node_0, ptr %root_0, i16 %pos_0) | |
%5 = sub i16 %3, %4 | |
store i16 %5, ptr %stack.ptr_0 | |
%6 = getelementptr %node_t_1, ptr %node_0, i32 0, i32 0, i32 2 | |
%7 = load i16, ptr %6 | |
%8 = icmp ugt i16 %5, %7 | |
br i1 %8, label %if_1, label %end_if_0 | |
if_1: | |
%9 = sub i16 %5, %7 | |
%10 = sub i16 %9, 1 | |
store i16 %10, ptr %stack.ptr_0 | |
%11 = getelementptr %node_t_1, ptr %node_0, i32 0, i32 0, i32 0 | |
%12 = load ptr, ptr %11 | |
%13 = getelementptr %node_t_1, ptr %node_0, i32 0, i32 0, i32 1 | |
%14 = load i16, ptr %13 | |
%15 = add i16 1, %14 | |
%16 = getelementptr %inner_node_t_1, ptr %12, i32 0, i32 1, i16 %15 | |
%17 = load ptr, ptr %16 | |
call ccc void @eclair_btree_node_insert_inner_1(ptr %17, ptr %root_0, i16 %10, ptr %predecessor_0, ptr %key_0, ptr %new_node_0) | |
ret void | |
end_if_0: | |
br label %end_if_1 | |
end_if_1: | |
%18 = getelementptr %node_t_1, ptr %node_0, i32 0, i32 0, i32 2 | |
%19 = load i16, ptr %18 | |
%20 = sub i16 %19, 1 | |
%21 = load i16, ptr %stack.ptr_0 | |
br label %for_begin_0 | |
for_begin_0: | |
%22 = phi i16 [%20, %end_if_1], [%37, %for_body_0] | |
%23 = icmp uge i16 %22, %21 | |
br i1 %23, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%24 = add i16 %22, 1 | |
%25 = add i16 %22, 2 | |
%26 = getelementptr %node_t_1, ptr %node_0, i32 0, i32 1, i16 %22 | |
%27 = load [2 x i32], ptr %26 | |
%28 = getelementptr %node_t_1, ptr %node_0, i32 0, i32 1, i16 %24 | |
store [2 x i32] %27, ptr %28 | |
%29 = getelementptr %inner_node_t_1, ptr %node_0, i32 0, i32 1, i16 %24 | |
%30 = load ptr, ptr %29 | |
%31 = getelementptr %inner_node_t_1, ptr %node_0, i32 0, i32 1, i16 %25 | |
store ptr %30, ptr %31 | |
%32 = getelementptr %inner_node_t_1, ptr %node_0, i32 0, i32 1, i16 %25 | |
%33 = load ptr, ptr %32 | |
%34 = getelementptr %node_t_1, ptr %33, i32 0, i32 0, i32 1 | |
%35 = load i16, ptr %34 | |
%36 = add i16 1, %35 | |
store i16 %36, ptr %34 | |
%37 = sub i16 %22, 1 | |
br label %for_begin_0 | |
for_end_0: | |
%38 = load [2 x i32], ptr %key_0 | |
%39 = getelementptr %node_t_1, ptr %node_0, i32 0, i32 1, i16 %21 | |
store [2 x i32] %38, ptr %39 | |
%40 = add i16 %21, 1 | |
%41 = getelementptr %inner_node_t_1, ptr %node_0, i32 0, i32 1, i16 %40 | |
store ptr %new_node_0, ptr %41 | |
%42 = getelementptr %node_t_1, ptr %new_node_0, i32 0, i32 0, i32 0 | |
store ptr %node_0, ptr %42 | |
%43 = getelementptr %node_t_1, ptr %new_node_0, i32 0, i32 0, i32 1 | |
store i16 %40, ptr %43 | |
%44 = getelementptr %node_t_1, ptr %node_0, i32 0, i32 0, i32 2 | |
%45 = load i16, ptr %44 | |
%46 = add i16 1, %45 | |
store i16 %46, ptr %44 | |
ret void | |
} | |
define external ccc i16 @eclair_btree_node_rebalance_or_split_1(ptr %node_0, ptr %root_0, i16 %idx_0) { | |
start: | |
%0 = getelementptr %node_t_1, ptr %node_0, i32 0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = getelementptr %node_t_1, ptr %node_0, i32 0, i32 0, i32 1 | |
%3 = load i16, ptr %2 | |
%4 = icmp ne ptr %1, zeroinitializer | |
%5 = icmp ugt i16 %3, 0 | |
%6 = and i1 %4, %5 | |
br i1 %6, label %rebalance_0, label %split_0 | |
rebalance_0: | |
%7 = sub i16 %3, 1 | |
%8 = getelementptr %inner_node_t_1, ptr %1, i32 0, i32 1, i16 %7 | |
%9 = load ptr, ptr %8 | |
%10 = getelementptr %node_t_1, ptr %9, i32 0, i32 0, i32 2 | |
%11 = load i16, ptr %10 | |
%12 = sub i16 30, %11 | |
%13 = icmp slt i16 %12, %idx_0 | |
%14 = select i1 %13, i16 %12, i16 %idx_0 | |
%15 = icmp ugt i16 %14, 0 | |
br i1 %15, label %if_0, label %end_if_1 | |
if_0: | |
%16 = getelementptr %node_t_1, ptr %node_0, i32 0, i32 0, i32 1 | |
%17 = load i16, ptr %16 | |
%18 = sub i16 %17, 1 | |
%19 = getelementptr %inner_node_t_1, ptr %1, i32 0, i32 0, i32 1, i16 %18 | |
%20 = load [2 x i32], ptr %19 | |
%21 = getelementptr %node_t_1, ptr %9, i32 0, i32 0, i32 2 | |
%22 = load i16, ptr %21 | |
%23 = getelementptr %node_t_1, ptr %9, i32 0, i32 1, i16 %22 | |
store [2 x i32] %20, ptr %23 | |
%24 = sub i16 %14, 1 | |
br label %for_begin_0 | |
for_begin_0: | |
%25 = phi i16 [0, %if_0], [%32, %for_body_0] | |
%26 = icmp ult i16 %25, %24 | |
br i1 %26, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%27 = add i16 %22, 1 | |
%28 = add i16 %25, %27 | |
%29 = getelementptr %node_t_1, ptr %node_0, i32 0, i32 1, i16 %25 | |
%30 = load [2 x i32], ptr %29 | |
%31 = getelementptr %node_t_1, ptr %9, i32 0, i32 1, i16 %28 | |
store [2 x i32] %30, ptr %31 | |
%32 = add i16 1, %25 | |
br label %for_begin_0 | |
for_end_0: | |
%33 = getelementptr %node_t_1, ptr %node_0, i32 0, i32 1, i16 %24 | |
%34 = load [2 x i32], ptr %33 | |
store [2 x i32] %34, ptr %19 | |
%35 = getelementptr %node_t_1, ptr %node_0, i32 0, i32 0, i32 2 | |
%36 = load i16, ptr %35 | |
%37 = sub i16 %36, %14 | |
br label %for_begin_1 | |
for_begin_1: | |
%38 = phi i16 [0, %for_end_0], [%44, %for_body_1] | |
%39 = icmp ult i16 %38, %37 | |
br i1 %39, label %for_body_1, label %for_end_1 | |
for_body_1: | |
%40 = add i16 %38, %14 | |
%41 = getelementptr %node_t_1, ptr %node_0, i32 0, i32 1, i16 %40 | |
%42 = load [2 x i32], ptr %41 | |
%43 = getelementptr %node_t_1, ptr %node_0, i32 0, i32 1, i16 %38 | |
store [2 x i32] %42, ptr %43 | |
%44 = add i16 1, %38 | |
br label %for_begin_1 | |
for_end_1: | |
%45 = getelementptr %node_t_1, ptr %node_0, i32 0, i32 0, i32 3 | |
%46 = load i1, ptr %45 | |
%47 = icmp eq i1 %46, 1 | |
br i1 %47, label %if_1, label %end_if_0 | |
if_1: | |
br label %for_begin_2 | |
for_begin_2: | |
%48 = phi i16 [0, %if_1], [%61, %for_body_2] | |
%49 = icmp ult i16 %48, %14 | |
br i1 %49, label %for_body_2, label %for_end_2 | |
for_body_2: | |
%50 = getelementptr %node_t_1, ptr %9, i32 0, i32 0, i32 2 | |
%51 = load i16, ptr %50 | |
%52 = add i16 %51, 1 | |
%53 = add i16 %48, %52 | |
%54 = getelementptr %inner_node_t_1, ptr %node_0, i32 0, i32 1, i16 %48 | |
%55 = load ptr, ptr %54 | |
%56 = getelementptr %inner_node_t_1, ptr %9, i32 0, i32 1, i16 %53 | |
store ptr %55, ptr %56 | |
%57 = getelementptr %inner_node_t_1, ptr %9, i32 0, i32 1, i16 %53 | |
%58 = load ptr, ptr %57 | |
%59 = getelementptr %node_t_1, ptr %58, i32 0, i32 0, i32 0 | |
store ptr %9, ptr %59 | |
%60 = getelementptr %node_t_1, ptr %58, i32 0, i32 0, i32 1 | |
store i16 %53, ptr %60 | |
%61 = add i16 1, %48 | |
br label %for_begin_2 | |
for_end_2: | |
%62 = sub i16 %36, %14 | |
%63 = add i16 1, %62 | |
br label %for_begin_3 | |
for_begin_3: | |
%64 = phi i16 [0, %for_end_2], [%73, %for_body_3] | |
%65 = icmp ult i16 %64, %63 | |
br i1 %65, label %for_body_3, label %for_end_3 | |
for_body_3: | |
%66 = add i16 %64, %14 | |
%67 = getelementptr %inner_node_t_1, ptr %node_0, i32 0, i32 1, i16 %66 | |
%68 = load ptr, ptr %67 | |
%69 = getelementptr %inner_node_t_1, ptr %node_0, i32 0, i32 1, i16 %64 | |
store ptr %68, ptr %69 | |
%70 = getelementptr %inner_node_t_1, ptr %node_0, i32 0, i32 1, i16 %64 | |
%71 = load ptr, ptr %70 | |
%72 = getelementptr %node_t_1, ptr %71, i32 0, i32 0, i32 1 | |
store i16 %64, ptr %72 | |
%73 = add i16 1, %64 | |
br label %for_begin_3 | |
for_end_3: | |
br label %end_if_0 | |
end_if_0: | |
%74 = getelementptr %node_t_1, ptr %9, i32 0, i32 0, i32 2 | |
%75 = load i16, ptr %74 | |
%76 = add i16 %75, %14 | |
store i16 %76, ptr %74 | |
%77 = getelementptr %node_t_1, ptr %node_0, i32 0, i32 0, i32 2 | |
%78 = load i16, ptr %77 | |
%79 = sub i16 %78, %14 | |
store i16 %79, ptr %77 | |
ret i16 %14 | |
end_if_1: | |
br label %split_0 | |
split_0: | |
call ccc void @eclair_btree_node_split_1(ptr %node_0, ptr %root_0) | |
ret i16 0 | |
} | |
define external ccc i1 @eclair_btree_insert_value_1(ptr %tree_0, ptr %val_0) { | |
start: | |
%stack.ptr_0 = alloca ptr | |
%stack.ptr_1 = alloca i16 | |
%0 = call ccc i1 @eclair_btree_is_empty_1(ptr %tree_0) | |
br i1 %0, label %empty_0, label %non_empty_0 | |
empty_0: | |
%1 = call ccc ptr @eclair_btree_node_new_1(i1 0) | |
%2 = getelementptr %node_t_1, ptr %1, i32 0, i32 0, i32 2 | |
store i16 1, ptr %2 | |
%3 = load [2 x i32], ptr %val_0 | |
%4 = getelementptr %node_t_1, ptr %1, i32 0, i32 1, i16 0 | |
store [2 x i32] %3, ptr %4 | |
%5 = getelementptr %btree_t_1, ptr %tree_0, i32 0, i32 0 | |
store ptr %1, ptr %5 | |
%6 = getelementptr %btree_t_1, ptr %tree_0, i32 0, i32 1 | |
store ptr %1, ptr %6 | |
br label %inserted_new_value_0 | |
non_empty_0: | |
%7 = getelementptr %btree_t_1, ptr %tree_0, i32 0, i32 0 | |
%8 = load ptr, ptr %7 | |
store ptr %8, ptr %stack.ptr_0 | |
br label %loop_0 | |
loop_0: | |
%9 = load ptr, ptr %stack.ptr_0 | |
%10 = getelementptr %node_t_1, ptr %9, i32 0, i32 0, i32 3 | |
%11 = load i1, ptr %10 | |
%12 = icmp eq i1 %11, 1 | |
br i1 %12, label %inner_0, label %leaf_0 | |
inner_0: | |
%13 = getelementptr %node_t_1, ptr %9, i32 0, i32 0, i32 2 | |
%14 = load i16, ptr %13 | |
%15 = getelementptr %node_t_1, ptr %9, i32 0, i32 1, i16 0 | |
%16 = getelementptr %node_t_1, ptr %9, i32 0, i32 1, i16 %14 | |
%17 = call ccc ptr @eclair_btree_linear_search_lower_bound_1(ptr %val_0, ptr %15, ptr %16) | |
%18 = ptrtoint ptr %17 to i64 | |
%19 = ptrtoint ptr %15 to i64 | |
%20 = sub i64 %18, %19 | |
%21 = trunc i64 %20 to i16 | |
%22 = udiv i16 %21, 8 | |
%23 = icmp ne ptr %17, %16 | |
%24 = call ccc i8 @eclair_btree_value_compare_values_1(ptr %17, ptr %val_0) | |
%25 = icmp eq i8 0, %24 | |
%26 = and i1 %23, %25 | |
br i1 %26, label %no_insert_0, label %inner_continue_insert_0 | |
inner_continue_insert_0: | |
%27 = getelementptr %inner_node_t_1, ptr %9, i32 0, i32 1, i16 %22 | |
%28 = load ptr, ptr %27 | |
store ptr %28, ptr %stack.ptr_0 | |
br label %loop_0 | |
leaf_0: | |
%29 = getelementptr %node_t_1, ptr %9, i32 0, i32 0, i32 2 | |
%30 = load i16, ptr %29 | |
%31 = getelementptr %node_t_1, ptr %9, i32 0, i32 1, i16 0 | |
%32 = getelementptr %node_t_1, ptr %9, i32 0, i32 1, i16 %30 | |
%33 = call ccc ptr @eclair_btree_linear_search_upper_bound_1(ptr %val_0, ptr %31, ptr %32) | |
%34 = ptrtoint ptr %33 to i64 | |
%35 = ptrtoint ptr %31 to i64 | |
%36 = sub i64 %34, %35 | |
%37 = trunc i64 %36 to i16 | |
%38 = udiv i16 %37, 8 | |
store i16 %38, ptr %stack.ptr_1 | |
%39 = icmp ne ptr %33, %31 | |
%40 = getelementptr [2 x i32], ptr %33, i32 -1 | |
%41 = call ccc i8 @eclair_btree_value_compare_values_1(ptr %40, ptr %val_0) | |
%42 = icmp eq i8 0, %41 | |
%43 = and i1 %39, %42 | |
br i1 %43, label %no_insert_0, label %leaf_continue_insert_0 | |
leaf_continue_insert_0: | |
%44 = icmp uge i16 %30, 30 | |
br i1 %44, label %split_0, label %no_split_0 | |
split_0: | |
%45 = getelementptr %btree_t_1, ptr %tree_0, i32 0, i32 0 | |
%46 = load i16, ptr %stack.ptr_1 | |
%47 = call ccc i16 @eclair_btree_node_rebalance_or_split_1(ptr %9, ptr %45, i16 %46) | |
%48 = sub i16 %46, %47 | |
store i16 %48, ptr %stack.ptr_1 | |
%49 = getelementptr %node_t_1, ptr %9, i32 0, i32 0, i32 2 | |
%50 = load i16, ptr %49 | |
%51 = icmp ugt i16 %48, %50 | |
br i1 %51, label %if_0, label %end_if_0 | |
if_0: | |
%52 = add i16 %50, 1 | |
%53 = sub i16 %48, %52 | |
store i16 %53, ptr %stack.ptr_1 | |
%54 = getelementptr %node_t_1, ptr %9, i32 0, i32 0, i32 0 | |
%55 = load ptr, ptr %54 | |
%56 = getelementptr %node_t_1, ptr %9, i32 0, i32 0, i32 1 | |
%57 = load i16, ptr %56 | |
%58 = add i16 1, %57 | |
%59 = getelementptr %inner_node_t_1, ptr %55, i32 0, i32 1, i16 %58 | |
%60 = load ptr, ptr %59 | |
store ptr %60, ptr %stack.ptr_0 | |
br label %end_if_0 | |
end_if_0: | |
br label %no_split_0 | |
no_split_0: | |
%61 = load ptr, ptr %stack.ptr_0 | |
%62 = load i16, ptr %stack.ptr_1 | |
%63 = getelementptr %node_t_1, ptr %61, i32 0, i32 0, i32 2 | |
%64 = load i16, ptr %63 | |
br label %for_begin_0 | |
for_begin_0: | |
%65 = phi i16 [%64, %no_split_0], [%71, %for_body_0] | |
%66 = icmp ugt i16 %65, %62 | |
br i1 %66, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%67 = sub i16 %65, 1 | |
%68 = getelementptr %node_t_1, ptr %61, i32 0, i32 1, i16 %67 | |
%69 = load [2 x i32], ptr %68 | |
%70 = getelementptr %node_t_1, ptr %61, i32 0, i32 1, i16 %65 | |
store [2 x i32] %69, ptr %70 | |
%71 = sub i16 %65, 1 | |
br label %for_begin_0 | |
for_end_0: | |
%72 = load [2 x i32], ptr %val_0 | |
%73 = getelementptr %node_t_1, ptr %61, i32 0, i32 1, i16 %62 | |
store [2 x i32] %72, ptr %73 | |
%74 = getelementptr %node_t_1, ptr %61, i32 0, i32 0, i32 2 | |
%75 = load i16, ptr %74 | |
%76 = add i16 1, %75 | |
store i16 %76, ptr %74 | |
br label %inserted_new_value_0 | |
no_insert_0: | |
ret i1 0 | |
inserted_new_value_0: | |
ret i1 1 | |
} | |
define external ccc void @eclair_btree_insert_range__1(ptr %tree_0, ptr %begin_0, ptr %end_0) { | |
start: | |
br label %while_begin_0 | |
while_begin_0: | |
%0 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %begin_0, ptr %end_0) | |
%1 = select i1 %0, i1 0, i1 1 | |
br i1 %1, label %while_body_0, label %while_end_0 | |
while_body_0: | |
%2 = call ccc ptr @eclair_btree_iterator_current_1(ptr %begin_0) | |
%3 = call ccc i1 @eclair_btree_insert_value_1(ptr %tree_0, ptr %2) | |
call ccc void @eclair_btree_iterator_next_1(ptr %begin_0) | |
br label %while_begin_0 | |
while_end_0: | |
ret void | |
} | |
define external ccc void @eclair_btree_begin_1(ptr %tree_0, ptr %result_0) { | |
start: | |
%0 = getelementptr %btree_t_1, ptr %tree_0, i32 0, i32 1 | |
%1 = load ptr, ptr %0 | |
%2 = getelementptr %btree_iterator_t_1, ptr %result_0, i32 0, i32 0 | |
store ptr %1, ptr %2 | |
%3 = getelementptr %btree_iterator_t_1, ptr %result_0, i32 0, i32 1 | |
store i16 0, ptr %3 | |
ret void | |
} | |
define external ccc void @eclair_btree_end_1(ptr %tree_0, ptr %result_0) { | |
start: | |
call ccc void @eclair_btree_iterator_end_init_1(ptr %result_0) | |
ret void | |
} | |
define external ccc i1 @eclair_btree_contains_1(ptr %tree_0, ptr %val_0) { | |
start: | |
%stack.ptr_0 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_1 = alloca %btree_iterator_t_1, i32 1 | |
call ccc void @eclair_btree_find_1(ptr %tree_0, ptr %val_0, ptr %stack.ptr_0) | |
call ccc void @eclair_btree_end_1(ptr %tree_0, ptr %stack.ptr_1) | |
%0 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_0, ptr %stack.ptr_1) | |
%1 = select i1 %0, i1 0, i1 1 | |
ret i1 %1 | |
} | |
define external ccc void @eclair_btree_find_1(ptr %tree_0, ptr %val_0, ptr %result_0) { | |
start: | |
%stack.ptr_0 = alloca ptr | |
%0 = call ccc i1 @eclair_btree_is_empty_1(ptr %tree_0) | |
br i1 %0, label %if_0, label %end_if_0 | |
if_0: | |
call ccc void @eclair_btree_iterator_end_init_1(ptr %result_0) | |
ret void | |
end_if_0: | |
%1 = getelementptr %btree_t_1, ptr %tree_0, i32 0, i32 0 | |
%2 = load ptr, ptr %1 | |
store ptr %2, ptr %stack.ptr_0 | |
br label %loop_0 | |
loop_0: | |
%3 = load ptr, ptr %stack.ptr_0 | |
%4 = getelementptr %node_t_1, ptr %3, i32 0, i32 0, i32 2 | |
%5 = load i16, ptr %4 | |
%6 = getelementptr %node_t_1, ptr %3, i32 0, i32 1, i16 0 | |
%7 = getelementptr %node_t_1, ptr %3, i32 0, i32 1, i16 %5 | |
%8 = call ccc ptr @eclair_btree_linear_search_lower_bound_1(ptr %val_0, ptr %6, ptr %7) | |
%9 = ptrtoint ptr %8 to i64 | |
%10 = ptrtoint ptr %6 to i64 | |
%11 = sub i64 %9, %10 | |
%12 = trunc i64 %11 to i16 | |
%13 = udiv i16 %12, 8 | |
%14 = icmp ult ptr %8, %7 | |
%15 = call ccc i8 @eclair_btree_value_compare_values_1(ptr %8, ptr %val_0) | |
%16 = icmp eq i8 0, %15 | |
%17 = and i1 %14, %16 | |
br i1 %17, label %if_1, label %end_if_1 | |
if_1: | |
call ccc void @eclair_btree_iterator_init_1(ptr %result_0, ptr %3, i16 %13) | |
ret void | |
end_if_1: | |
%18 = getelementptr %node_t_1, ptr %3, i32 0, i32 0, i32 3 | |
%19 = load i1, ptr %18 | |
%20 = icmp eq i1 %19, 0 | |
br i1 %20, label %if_2, label %end_if_2 | |
if_2: | |
call ccc void @eclair_btree_iterator_end_init_1(ptr %result_0) | |
ret void | |
end_if_2: | |
%21 = getelementptr %inner_node_t_1, ptr %3, i32 0, i32 1, i16 %13 | |
%22 = load ptr, ptr %21 | |
store ptr %22, ptr %stack.ptr_0 | |
br label %loop_0 | |
} | |
define external ccc void @eclair_btree_lower_bound_1(ptr %tree_0, ptr %val_0, ptr %result_0) { | |
start: | |
%stack.ptr_0 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_1 = alloca ptr | |
%0 = call ccc i1 @eclair_btree_is_empty_1(ptr %tree_0) | |
br i1 %0, label %if_0, label %end_if_0 | |
if_0: | |
call ccc void @eclair_btree_iterator_end_init_1(ptr %result_0) | |
ret void | |
end_if_0: | |
call ccc void @eclair_btree_iterator_end_init_1(ptr %stack.ptr_0) | |
%1 = getelementptr %btree_t_1, ptr %tree_0, i32 0, i32 0 | |
%2 = load ptr, ptr %1 | |
store ptr %2, ptr %stack.ptr_1 | |
br label %loop_0 | |
loop_0: | |
%3 = load ptr, ptr %stack.ptr_1 | |
%4 = getelementptr %node_t_1, ptr %3, i32 0, i32 0, i32 2 | |
%5 = load i16, ptr %4 | |
%6 = getelementptr %node_t_1, ptr %3, i32 0, i32 1, i16 0 | |
%7 = getelementptr %node_t_1, ptr %3, i32 0, i32 1, i16 %5 | |
%8 = call ccc ptr @eclair_btree_linear_search_lower_bound_1(ptr %val_0, ptr %6, ptr %7) | |
%9 = ptrtoint ptr %8 to i64 | |
%10 = ptrtoint ptr %6 to i64 | |
%11 = sub i64 %9, %10 | |
%12 = trunc i64 %11 to i16 | |
%13 = udiv i16 %12, 8 | |
%14 = getelementptr %node_t_1, ptr %3, i32 0, i32 0, i32 3 | |
%15 = load i1, ptr %14 | |
%16 = icmp eq i1 %15, 0 | |
br i1 %16, label %if_1, label %end_if_1 | |
if_1: | |
%17 = icmp eq ptr %8, %7 | |
br i1 %17, label %handle_last_0, label %handle_not_last_0 | |
handle_last_0: | |
%18 = getelementptr %btree_iterator_t_1, ptr %stack.ptr_0, i32 0, i32 0 | |
%19 = load ptr, ptr %18 | |
%20 = getelementptr %btree_iterator_t_1, ptr %result_0, i32 0, i32 0 | |
store ptr %19, ptr %20 | |
%21 = getelementptr %btree_iterator_t_1, ptr %stack.ptr_0, i32 0, i32 1 | |
%22 = load i16, ptr %21 | |
%23 = getelementptr %btree_iterator_t_1, ptr %result_0, i32 0, i32 1 | |
store i16 %22, ptr %23 | |
ret void | |
handle_not_last_0: | |
call ccc void @eclair_btree_iterator_init_1(ptr %result_0, ptr %3, i16 %13) | |
ret void | |
end_if_1: | |
%24 = icmp ne ptr %8, %7 | |
%25 = call ccc i8 @eclair_btree_value_compare_values_1(ptr %8, ptr %val_0) | |
%26 = icmp eq i8 0, %25 | |
%27 = and i1 %24, %26 | |
br i1 %27, label %if_2, label %end_if_2 | |
if_2: | |
call ccc void @eclair_btree_iterator_init_1(ptr %result_0, ptr %3, i16 %13) | |
ret void | |
end_if_2: | |
br i1 %24, label %if_3, label %end_if_3 | |
if_3: | |
call ccc void @eclair_btree_iterator_init_1(ptr %stack.ptr_0, ptr %3, i16 %13) | |
br label %end_if_3 | |
end_if_3: | |
%28 = getelementptr %inner_node_t_1, ptr %3, i32 0, i32 1, i16 %13 | |
%29 = load ptr, ptr %28 | |
store ptr %29, ptr %stack.ptr_1 | |
br label %loop_0 | |
} | |
define external ccc void @eclair_btree_upper_bound_1(ptr %tree_0, ptr %val_0, ptr %result_0) { | |
start: | |
%stack.ptr_0 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_1 = alloca ptr | |
%0 = call ccc i1 @eclair_btree_is_empty_1(ptr %tree_0) | |
br i1 %0, label %if_0, label %end_if_0 | |
if_0: | |
call ccc void @eclair_btree_iterator_end_init_1(ptr %result_0) | |
ret void | |
end_if_0: | |
call ccc void @eclair_btree_iterator_end_init_1(ptr %stack.ptr_0) | |
%1 = getelementptr %btree_t_1, ptr %tree_0, i32 0, i32 0 | |
%2 = load ptr, ptr %1 | |
store ptr %2, ptr %stack.ptr_1 | |
br label %loop_0 | |
loop_0: | |
%3 = load ptr, ptr %stack.ptr_1 | |
%4 = getelementptr %node_t_1, ptr %3, i32 0, i32 0, i32 2 | |
%5 = load i16, ptr %4 | |
%6 = getelementptr %node_t_1, ptr %3, i32 0, i32 1, i16 0 | |
%7 = getelementptr %node_t_1, ptr %3, i32 0, i32 1, i16 %5 | |
%8 = call ccc ptr @eclair_btree_linear_search_upper_bound_1(ptr %val_0, ptr %6, ptr %7) | |
%9 = ptrtoint ptr %8 to i64 | |
%10 = ptrtoint ptr %6 to i64 | |
%11 = sub i64 %9, %10 | |
%12 = trunc i64 %11 to i16 | |
%13 = udiv i16 %12, 8 | |
%14 = getelementptr %node_t_1, ptr %3, i32 0, i32 0, i32 3 | |
%15 = load i1, ptr %14 | |
%16 = icmp eq i1 %15, 0 | |
br i1 %16, label %if_1, label %end_if_1 | |
if_1: | |
%17 = icmp eq ptr %8, %7 | |
br i1 %17, label %handle_last_0, label %handle_not_last_0 | |
handle_last_0: | |
%18 = getelementptr %btree_iterator_t_1, ptr %stack.ptr_0, i32 0, i32 0 | |
%19 = load ptr, ptr %18 | |
%20 = getelementptr %btree_iterator_t_1, ptr %result_0, i32 0, i32 0 | |
store ptr %19, ptr %20 | |
%21 = getelementptr %btree_iterator_t_1, ptr %stack.ptr_0, i32 0, i32 1 | |
%22 = load i16, ptr %21 | |
%23 = getelementptr %btree_iterator_t_1, ptr %result_0, i32 0, i32 1 | |
store i16 %22, ptr %23 | |
ret void | |
handle_not_last_0: | |
call ccc void @eclair_btree_iterator_init_1(ptr %result_0, ptr %3, i16 %13) | |
ret void | |
end_if_1: | |
%24 = icmp ne ptr %8, %7 | |
br i1 %24, label %if_2, label %end_if_2 | |
if_2: | |
call ccc void @eclair_btree_iterator_init_1(ptr %result_0, ptr %3, i16 %13) | |
br label %end_if_2 | |
end_if_2: | |
%25 = getelementptr %inner_node_t_1, ptr %3, i32 0, i32 1, i16 %13 | |
%26 = load ptr, ptr %25 | |
store ptr %26, ptr %stack.ptr_1 | |
br label %loop_0 | |
} | |
define external ccc void @eclair_btree_node_delete_1(ptr %node_0) { | |
start: | |
%0 = getelementptr %node_t_1, ptr %node_0, i32 0, i32 0, i32 3 | |
%1 = load i1, ptr %0 | |
%2 = icmp eq i1 %1, 1 | |
br i1 %2, label %if_0, label %end_if_1 | |
if_0: | |
%3 = getelementptr %node_t_1, ptr %node_0, i32 0, i32 0, i32 2 | |
%4 = load i16, ptr %3 | |
br label %for_begin_0 | |
for_begin_0: | |
%5 = phi i16 [0, %if_0], [%10, %end_if_0] | |
%6 = icmp ule i16 %5, %4 | |
br i1 %6, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%7 = getelementptr %inner_node_t_1, ptr %node_0, i32 0, i32 1, i16 %5 | |
%8 = load ptr, ptr %7 | |
%9 = icmp ne ptr %8, zeroinitializer | |
br i1 %9, label %if_1, label %end_if_0 | |
if_1: | |
call ccc void @eclair_btree_node_delete_1(ptr %8) | |
br label %end_if_0 | |
end_if_0: | |
%10 = add i16 1, %5 | |
br label %for_begin_0 | |
for_end_0: | |
br label %end_if_1 | |
end_if_1: | |
call ccc void @free(ptr %node_0) | |
ret void | |
} | |
define external ccc void @eclair_btree_clear_1(ptr %tree_0) { | |
start: | |
%0 = getelementptr %btree_t_1, ptr %tree_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = icmp ne ptr %1, zeroinitializer | |
br i1 %2, label %if_0, label %end_if_0 | |
if_0: | |
call ccc void @eclair_btree_node_delete_1(ptr %1) | |
%3 = getelementptr %btree_t_1, ptr %tree_0, i32 0, i32 0 | |
store ptr zeroinitializer, ptr %3 | |
%4 = getelementptr %btree_t_1, ptr %tree_0, i32 0, i32 1 | |
store ptr zeroinitializer, ptr %4 | |
br label %end_if_0 | |
end_if_0: | |
ret void | |
} | |
define external ccc void @eclair_btree_swap_1(ptr %lhs_0, ptr %rhs_0) { | |
start: | |
%0 = getelementptr %btree_t_1, ptr %lhs_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = getelementptr %btree_t_1, ptr %rhs_0, i32 0, i32 0 | |
%3 = load ptr, ptr %2 | |
%4 = getelementptr %btree_t_1, ptr %lhs_0, i32 0, i32 0 | |
store ptr %3, ptr %4 | |
%5 = getelementptr %btree_t_1, ptr %rhs_0, i32 0, i32 0 | |
store ptr %1, ptr %5 | |
%6 = getelementptr %btree_t_1, ptr %lhs_0, i32 0, i32 1 | |
%7 = load ptr, ptr %6 | |
%8 = getelementptr %btree_t_1, ptr %rhs_0, i32 0, i32 1 | |
%9 = load ptr, ptr %8 | |
%10 = getelementptr %btree_t_1, ptr %lhs_0, i32 0, i32 1 | |
store ptr %9, ptr %10 | |
%11 = getelementptr %btree_t_1, ptr %rhs_0, i32 0, i32 1 | |
store ptr %7, ptr %11 | |
ret void | |
} | |
%node_data_t_2 = type {ptr, i16, i16, i1} | |
%node_t_2 = type {%node_data_t_2, [30 x [2 x i32]]} | |
%inner_node_t_2 = type {%node_t_2, [31 x ptr]} | |
%btree_iterator_t_2 = type {ptr, i16} | |
%btree_t_2 = type {ptr, ptr} | |
define external ccc i8 @eclair_btree_value_compare_2(i32 %lhs_0, i32 %rhs_0) { | |
start: | |
%0 = icmp ult i32 %lhs_0, %rhs_0 | |
br i1 %0, label %if_0, label %end_if_0 | |
if_0: | |
ret i8 -1 | |
end_if_0: | |
%1 = icmp ugt i32 %lhs_0, %rhs_0 | |
%2 = select i1 %1, i8 1, i8 0 | |
ret i8 %2 | |
} | |
define external ccc i8 @eclair_btree_value_compare_values_2(ptr %lhs_0, ptr %rhs_0) { | |
start: | |
br label %comparison_0 | |
comparison_0: | |
%0 = getelementptr [2 x i32], ptr %lhs_0, i32 0, i32 1 | |
%1 = getelementptr [2 x i32], ptr %rhs_0, i32 0, i32 1 | |
%2 = load i32, ptr %0 | |
%3 = load i32, ptr %1 | |
%4 = call ccc i8 @eclair_btree_value_compare_2(i32 %2, i32 %3) | |
br label %end_0 | |
end_0: | |
%5 = phi i8 [%4, %comparison_0] | |
ret i8 %5 | |
} | |
define external ccc ptr @eclair_btree_node_new_2(i1 %type_0) { | |
start: | |
%0 = select i1 %type_0, i32 504, i32 256 | |
%1 = call ccc ptr @malloc(i32 %0) | |
%2 = getelementptr %node_t_2, ptr %1, i32 0, i32 0, i32 0 | |
store ptr zeroinitializer, ptr %2 | |
%3 = getelementptr %node_t_2, ptr %1, i32 0, i32 0, i32 1 | |
store i16 0, ptr %3 | |
%4 = getelementptr %node_t_2, ptr %1, i32 0, i32 0, i32 2 | |
store i16 0, ptr %4 | |
%5 = getelementptr %node_t_2, ptr %1, i32 0, i32 0, i32 3 | |
store i1 %type_0, ptr %5 | |
%6 = getelementptr %node_t_2, ptr %1, i32 0, i32 1 | |
call ccc void @llvm.memset.p0i8.i64(ptr %6, i8 0, i64 240, i1 0) | |
%7 = icmp eq i1 %type_0, 1 | |
br i1 %7, label %if_0, label %end_if_0 | |
if_0: | |
%8 = getelementptr %inner_node_t_2, ptr %1, i32 0, i32 1 | |
call ccc void @llvm.memset.p0i8.i64(ptr %8, i8 0, i64 248, i1 0) | |
br label %end_if_0 | |
end_if_0: | |
ret ptr %1 | |
} | |
define external ccc i64 @eclair_btree_node_count_entries_2(ptr %node_0) { | |
start: | |
%stack.ptr_0 = alloca i64 | |
%0 = getelementptr %node_t_2, ptr %node_0, i32 0, i32 0, i32 2 | |
%1 = load i16, ptr %0 | |
%2 = getelementptr %node_t_2, ptr %node_0, i32 0, i32 0, i32 3 | |
%3 = load i1, ptr %2 | |
%4 = icmp eq i1 %3, 0 | |
%5 = zext i16 %1 to i64 | |
br i1 %4, label %if_0, label %end_if_0 | |
if_0: | |
ret i64 %5 | |
end_if_0: | |
store i64 %5, ptr %stack.ptr_0 | |
%6 = getelementptr %node_t_2, ptr %node_0, i32 0, i32 0, i32 2 | |
%7 = load i16, ptr %6 | |
br label %for_begin_0 | |
for_begin_0: | |
%8 = phi i16 [0, %end_if_0], [%15, %for_body_0] | |
%9 = icmp ule i16 %8, %7 | |
br i1 %9, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%10 = load i64, ptr %stack.ptr_0 | |
%11 = getelementptr %inner_node_t_2, ptr %node_0, i32 0, i32 1, i16 %8 | |
%12 = load ptr, ptr %11 | |
%13 = call ccc i64 @eclair_btree_node_count_entries_2(ptr %12) | |
%14 = add i64 %10, %13 | |
store i64 %14, ptr %stack.ptr_0 | |
%15 = add i16 1, %8 | |
br label %for_begin_0 | |
for_end_0: | |
%16 = load i64, ptr %stack.ptr_0 | |
ret i64 %16 | |
} | |
define external ccc void @eclair_btree_iterator_init_2(ptr %iter_0, ptr %cur_0, i16 %pos_0) { | |
start: | |
%0 = getelementptr %btree_iterator_t_2, ptr %iter_0, i32 0, i32 0 | |
store ptr %cur_0, ptr %0 | |
%1 = getelementptr %btree_iterator_t_2, ptr %iter_0, i32 0, i32 1 | |
store i16 %pos_0, ptr %1 | |
ret void | |
} | |
define external ccc void @eclair_btree_iterator_end_init_2(ptr %iter_0) { | |
start: | |
call ccc void @eclair_btree_iterator_init_2(ptr %iter_0, ptr zeroinitializer, i16 0) | |
ret void | |
} | |
define external ccc i1 @eclair_btree_iterator_is_equal_2(ptr %lhs_0, ptr %rhs_0) { | |
start: | |
%0 = getelementptr %btree_iterator_t_2, ptr %lhs_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = getelementptr %btree_iterator_t_2, ptr %rhs_0, i32 0, i32 0 | |
%3 = load ptr, ptr %2 | |
%4 = icmp ne ptr %1, %3 | |
br i1 %4, label %if_0, label %end_if_0 | |
if_0: | |
ret i1 0 | |
end_if_0: | |
%5 = getelementptr %btree_iterator_t_2, ptr %lhs_0, i32 0, i32 1 | |
%6 = load i16, ptr %5 | |
%7 = getelementptr %btree_iterator_t_2, ptr %rhs_0, i32 0, i32 1 | |
%8 = load i16, ptr %7 | |
%9 = icmp eq i16 %6, %8 | |
ret i1 %9 | |
} | |
define external ccc ptr @eclair_btree_iterator_current_2(ptr %iter_0) { | |
start: | |
%0 = getelementptr %btree_iterator_t_2, ptr %iter_0, i32 0, i32 1 | |
%1 = load i16, ptr %0 | |
%2 = getelementptr %btree_iterator_t_2, ptr %iter_0, i32 0, i32 0 | |
%3 = load ptr, ptr %2 | |
%4 = getelementptr %node_t_2, ptr %3, i32 0, i32 1, i16 %1 | |
ret ptr %4 | |
} | |
define external ccc void @eclair_btree_iterator_next_2(ptr %iter_0) { | |
start: | |
%stack.ptr_0 = alloca ptr | |
%0 = getelementptr %btree_iterator_t_2, ptr %iter_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = getelementptr %node_t_2, ptr %1, i32 0, i32 0, i32 3 | |
%3 = load i1, ptr %2 | |
%4 = icmp eq i1 %3, 1 | |
br i1 %4, label %if_0, label %end_if_1 | |
if_0: | |
%5 = getelementptr %btree_iterator_t_2, ptr %iter_0, i32 0, i32 1 | |
%6 = load i16, ptr %5 | |
%7 = add i16 1, %6 | |
%8 = getelementptr %btree_iterator_t_2, ptr %iter_0, i32 0, i32 0 | |
%9 = load ptr, ptr %8 | |
%10 = getelementptr %inner_node_t_2, ptr %9, i32 0, i32 1, i16 %7 | |
%11 = load ptr, ptr %10 | |
store ptr %11, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_begin_0: | |
%12 = load ptr, ptr %stack.ptr_0 | |
%13 = getelementptr %node_t_2, ptr %12, i32 0, i32 0, i32 3 | |
%14 = load i1, ptr %13 | |
%15 = icmp eq i1 %14, 1 | |
br i1 %15, label %while_body_0, label %while_end_0 | |
while_body_0: | |
%16 = load ptr, ptr %stack.ptr_0 | |
%17 = getelementptr %inner_node_t_2, ptr %16, i32 0, i32 1, i16 0 | |
%18 = load ptr, ptr %17 | |
store ptr %18, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_end_0: | |
%19 = load ptr, ptr %stack.ptr_0 | |
%20 = getelementptr %btree_iterator_t_2, ptr %iter_0, i32 0, i32 0 | |
store ptr %19, ptr %20 | |
%21 = getelementptr %btree_iterator_t_2, ptr %iter_0, i32 0, i32 1 | |
store i16 0, ptr %21 | |
%22 = getelementptr %node_t_2, ptr %19, i32 0, i32 0, i32 2 | |
%23 = load i16, ptr %22 | |
%24 = icmp ne i16 %23, 0 | |
br i1 %24, label %if_1, label %end_if_0 | |
if_1: | |
ret void | |
end_if_0: | |
br label %leaf.next_0 | |
end_if_1: | |
br label %leaf.next_0 | |
leaf.next_0: | |
%25 = getelementptr %btree_iterator_t_2, ptr %iter_0, i32 0, i32 1 | |
%26 = load i16, ptr %25 | |
%27 = add i16 1, %26 | |
store i16 %27, ptr %25 | |
%28 = getelementptr %btree_iterator_t_2, ptr %iter_0, i32 0, i32 1 | |
%29 = load i16, ptr %28 | |
%30 = getelementptr %btree_iterator_t_2, ptr %iter_0, i32 0, i32 0 | |
%31 = load ptr, ptr %30 | |
%32 = getelementptr %node_t_2, ptr %31, i32 0, i32 0, i32 2 | |
%33 = load i16, ptr %32 | |
%34 = icmp ult i16 %29, %33 | |
br i1 %34, label %if_2, label %end_if_2 | |
if_2: | |
ret void | |
end_if_2: | |
br label %while_begin_1 | |
while_begin_1: | |
%35 = getelementptr %btree_iterator_t_2, ptr %iter_0, i32 0, i32 0 | |
%36 = load ptr, ptr %35 | |
%37 = icmp eq ptr %36, zeroinitializer | |
br i1 %37, label %leaf.no_parent_0, label %leaf.has_parent_0 | |
leaf.no_parent_0: | |
br label %loop.condition.end_0 | |
leaf.has_parent_0: | |
%38 = getelementptr %btree_iterator_t_2, ptr %iter_0, i32 0, i32 1 | |
%39 = load i16, ptr %38 | |
%40 = getelementptr %btree_iterator_t_2, ptr %iter_0, i32 0, i32 0 | |
%41 = load ptr, ptr %40 | |
%42 = getelementptr %node_t_2, ptr %41, i32 0, i32 0, i32 2 | |
%43 = load i16, ptr %42 | |
%44 = icmp eq i16 %39, %43 | |
br label %loop.condition.end_0 | |
loop.condition.end_0: | |
%45 = phi i1 [0, %leaf.no_parent_0], [%44, %leaf.has_parent_0] | |
br i1 %45, label %while_body_1, label %while_end_1 | |
while_body_1: | |
%46 = getelementptr %btree_iterator_t_2, ptr %iter_0, i32 0, i32 0 | |
%47 = load ptr, ptr %46 | |
%48 = getelementptr %node_t_2, ptr %47, i32 0, i32 0, i32 1 | |
%49 = load i16, ptr %48 | |
%50 = getelementptr %btree_iterator_t_2, ptr %iter_0, i32 0, i32 1 | |
store i16 %49, ptr %50 | |
%51 = getelementptr %node_t_2, ptr %47, i32 0, i32 0, i32 0 | |
%52 = load ptr, ptr %51 | |
%53 = getelementptr %btree_iterator_t_2, ptr %iter_0, i32 0, i32 0 | |
store ptr %52, ptr %53 | |
br label %while_begin_1 | |
while_end_1: | |
ret void | |
} | |
define external ccc ptr @eclair_btree_linear_search_lower_bound_2(ptr %val_0, ptr %current_0, ptr %end_0) { | |
start: | |
%stack.ptr_0 = alloca ptr | |
store ptr %current_0, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_begin_0: | |
%0 = load ptr, ptr %stack.ptr_0 | |
%1 = icmp ne ptr %0, %end_0 | |
br i1 %1, label %while_body_0, label %while_end_0 | |
while_body_0: | |
%2 = load ptr, ptr %stack.ptr_0 | |
%3 = call ccc i8 @eclair_btree_value_compare_values_2(ptr %2, ptr %val_0) | |
%4 = icmp ne i8 %3, -1 | |
br i1 %4, label %if_0, label %end_if_0 | |
if_0: | |
ret ptr %2 | |
end_if_0: | |
%5 = getelementptr [2 x i32], ptr %2, i32 1 | |
store ptr %5, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_end_0: | |
ret ptr %end_0 | |
} | |
define external ccc ptr @eclair_btree_linear_search_upper_bound_2(ptr %val_0, ptr %current_0, ptr %end_0) { | |
start: | |
%stack.ptr_0 = alloca ptr | |
store ptr %current_0, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_begin_0: | |
%0 = load ptr, ptr %stack.ptr_0 | |
%1 = icmp ne ptr %0, %end_0 | |
br i1 %1, label %while_body_0, label %while_end_0 | |
while_body_0: | |
%2 = load ptr, ptr %stack.ptr_0 | |
%3 = call ccc i8 @eclair_btree_value_compare_values_2(ptr %2, ptr %val_0) | |
%4 = icmp eq i8 %3, 1 | |
br i1 %4, label %if_0, label %end_if_0 | |
if_0: | |
ret ptr %2 | |
end_if_0: | |
%5 = getelementptr [2 x i32], ptr %2, i32 1 | |
store ptr %5, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_end_0: | |
ret ptr %end_0 | |
} | |
define external ccc void @eclair_btree_init_empty_2(ptr %tree_0) { | |
start: | |
%0 = getelementptr %btree_t_2, ptr %tree_0, i32 0, i32 0 | |
store ptr zeroinitializer, ptr %0 | |
%1 = getelementptr %btree_t_2, ptr %tree_0, i32 0, i32 1 | |
store ptr zeroinitializer, ptr %1 | |
ret void | |
} | |
define external ccc void @eclair_btree_init_2(ptr %tree_0, ptr %start_0, ptr %end_0) { | |
start: | |
call ccc void @eclair_btree_insert_range__2(ptr %tree_0, ptr %start_0, ptr %end_0) | |
ret void | |
} | |
define external ccc void @eclair_btree_destroy_2(ptr %tree_0) { | |
start: | |
call ccc void @eclair_btree_clear_2(ptr %tree_0) | |
ret void | |
} | |
define external ccc i1 @eclair_btree_is_empty_2(ptr %tree_0) { | |
start: | |
%0 = getelementptr %btree_t_2, ptr %tree_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = icmp eq ptr %1, zeroinitializer | |
ret i1 %2 | |
} | |
define external ccc i64 @eclair_btree_size_2(ptr %tree_0) { | |
start: | |
%0 = getelementptr %btree_t_2, ptr %tree_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = icmp eq ptr %1, zeroinitializer | |
br i1 %2, label %null_0, label %not_null_0 | |
null_0: | |
ret i64 0 | |
not_null_0: | |
%3 = call ccc i64 @eclair_btree_node_count_entries_2(ptr %1) | |
ret i64 %3 | |
} | |
define external ccc i16 @eclair_btree_node_split_point_2() { | |
start: | |
%0 = mul i16 3, 30 | |
%1 = udiv i16 %0, 4 | |
%2 = sub i16 30, 2 | |
%3 = icmp ult i16 %1, %2 | |
%4 = select i1 %3, i16 %1, i16 %2 | |
ret i16 %4 | |
} | |
define external ccc void @eclair_btree_node_split_2(ptr %node_0, ptr %root_0) { | |
start: | |
%stack.ptr_0 = alloca i16 | |
%0 = call ccc i16 @eclair_btree_node_split_point_2() | |
%1 = add i16 1, %0 | |
%2 = getelementptr %node_t_2, ptr %node_0, i32 0, i32 0, i32 3 | |
%3 = load i1, ptr %2 | |
%4 = call ccc ptr @eclair_btree_node_new_2(i1 %3) | |
store i16 0, ptr %stack.ptr_0 | |
br label %for_begin_0 | |
for_begin_0: | |
%5 = phi i16 [%1, %start], [%12, %for_body_0] | |
%6 = icmp ult i16 %5, 30 | |
br i1 %6, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%7 = load i16, ptr %stack.ptr_0 | |
%8 = getelementptr %node_t_2, ptr %node_0, i32 0, i32 1, i16 %5 | |
%9 = load [2 x i32], ptr %8 | |
%10 = getelementptr %node_t_2, ptr %4, i32 0, i32 1, i16 %7 | |
store [2 x i32] %9, ptr %10 | |
%11 = add i16 1, %7 | |
store i16 %11, ptr %stack.ptr_0 | |
%12 = add i16 1, %5 | |
br label %for_begin_0 | |
for_end_0: | |
%13 = icmp eq i1 %3, 1 | |
br i1 %13, label %if_0, label %end_if_0 | |
if_0: | |
store i16 0, ptr %stack.ptr_0 | |
br label %for_begin_1 | |
for_begin_1: | |
%14 = phi i16 [%1, %if_0], [%23, %for_body_1] | |
%15 = icmp ule i16 %14, 30 | |
br i1 %15, label %for_body_1, label %for_end_1 | |
for_body_1: | |
%16 = load i16, ptr %stack.ptr_0 | |
%17 = getelementptr %inner_node_t_2, ptr %node_0, i32 0, i32 1, i16 %14 | |
%18 = load ptr, ptr %17 | |
%19 = getelementptr %node_t_2, ptr %18, i32 0, i32 0, i32 0 | |
store ptr %4, ptr %19 | |
%20 = getelementptr %node_t_2, ptr %18, i32 0, i32 0, i32 1 | |
store i16 %16, ptr %20 | |
%21 = getelementptr %inner_node_t_2, ptr %4, i32 0, i32 1, i16 %16 | |
store ptr %18, ptr %21 | |
%22 = add i16 1, %16 | |
store i16 %22, ptr %stack.ptr_0 | |
%23 = add i16 1, %14 | |
br label %for_begin_1 | |
for_end_1: | |
br label %end_if_0 | |
end_if_0: | |
%24 = getelementptr %node_t_2, ptr %node_0, i32 0, i32 0, i32 2 | |
store i16 %0, ptr %24 | |
%25 = sub i16 30, %0 | |
%26 = sub i16 %25, 1 | |
%27 = getelementptr %node_t_2, ptr %4, i32 0, i32 0, i32 2 | |
store i16 %26, ptr %27 | |
call ccc void @eclair_btree_node_grow_parent_2(ptr %node_0, ptr %root_0, ptr %4) | |
ret void | |
} | |
define external ccc void @eclair_btree_node_grow_parent_2(ptr %node_0, ptr %root_0, ptr %sibling_0) { | |
start: | |
%0 = getelementptr %node_t_2, ptr %node_0, i32 0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = icmp eq ptr %1, zeroinitializer | |
%3 = getelementptr %node_t_2, ptr %node_0, i32 0, i32 0, i32 2 | |
%4 = load i16, ptr %3 | |
br i1 %2, label %create_new_root_0, label %insert_new_node_in_parent_0 | |
create_new_root_0: | |
%5 = call ccc ptr @eclair_btree_node_new_2(i1 1) | |
%6 = getelementptr %node_t_2, ptr %5, i32 0, i32 0, i32 2 | |
store i16 1, ptr %6 | |
%7 = getelementptr %node_t_2, ptr %node_0, i32 0, i32 1, i16 %4 | |
%8 = load [2 x i32], ptr %7 | |
%9 = getelementptr %node_t_2, ptr %5, i32 0, i32 1, i16 0 | |
store [2 x i32] %8, ptr %9 | |
%10 = getelementptr %inner_node_t_2, ptr %5, i32 0, i32 1, i16 0 | |
store ptr %node_0, ptr %10 | |
%11 = getelementptr %inner_node_t_2, ptr %5, i32 0, i32 1, i16 1 | |
store ptr %sibling_0, ptr %11 | |
%12 = getelementptr %node_t_2, ptr %node_0, i32 0, i32 0, i32 0 | |
store ptr %5, ptr %12 | |
%13 = getelementptr %node_t_2, ptr %sibling_0, i32 0, i32 0, i32 0 | |
store ptr %5, ptr %13 | |
%14 = getelementptr %node_t_2, ptr %sibling_0, i32 0, i32 0, i32 1 | |
store i16 1, ptr %14 | |
store ptr %5, ptr %root_0 | |
ret void | |
insert_new_node_in_parent_0: | |
%15 = getelementptr %node_t_2, ptr %node_0, i32 0, i32 0, i32 1 | |
%16 = load i16, ptr %15 | |
%17 = getelementptr %node_t_2, ptr %node_0, i32 0, i32 1, i16 %4 | |
call ccc void @eclair_btree_node_insert_inner_2(ptr %1, ptr %root_0, i16 %16, ptr %node_0, ptr %17, ptr %sibling_0) | |
ret void | |
} | |
define external ccc void @eclair_btree_node_insert_inner_2(ptr %node_0, ptr %root_0, i16 %pos_0, ptr %predecessor_0, ptr %key_0, ptr %new_node_0) { | |
start: | |
%stack.ptr_0 = alloca i16 | |
store i16 %pos_0, ptr %stack.ptr_0 | |
%0 = getelementptr %node_t_2, ptr %node_0, i32 0, i32 0, i32 2 | |
%1 = load i16, ptr %0 | |
%2 = icmp uge i16 %1, 30 | |
br i1 %2, label %if_0, label %end_if_1 | |
if_0: | |
%3 = load i16, ptr %stack.ptr_0 | |
%4 = call ccc i16 @eclair_btree_node_rebalance_or_split_2(ptr %node_0, ptr %root_0, i16 %pos_0) | |
%5 = sub i16 %3, %4 | |
store i16 %5, ptr %stack.ptr_0 | |
%6 = getelementptr %node_t_2, ptr %node_0, i32 0, i32 0, i32 2 | |
%7 = load i16, ptr %6 | |
%8 = icmp ugt i16 %5, %7 | |
br i1 %8, label %if_1, label %end_if_0 | |
if_1: | |
%9 = sub i16 %5, %7 | |
%10 = sub i16 %9, 1 | |
store i16 %10, ptr %stack.ptr_0 | |
%11 = getelementptr %node_t_2, ptr %node_0, i32 0, i32 0, i32 0 | |
%12 = load ptr, ptr %11 | |
%13 = getelementptr %node_t_2, ptr %node_0, i32 0, i32 0, i32 1 | |
%14 = load i16, ptr %13 | |
%15 = add i16 1, %14 | |
%16 = getelementptr %inner_node_t_2, ptr %12, i32 0, i32 1, i16 %15 | |
%17 = load ptr, ptr %16 | |
call ccc void @eclair_btree_node_insert_inner_2(ptr %17, ptr %root_0, i16 %10, ptr %predecessor_0, ptr %key_0, ptr %new_node_0) | |
ret void | |
end_if_0: | |
br label %end_if_1 | |
end_if_1: | |
%18 = getelementptr %node_t_2, ptr %node_0, i32 0, i32 0, i32 2 | |
%19 = load i16, ptr %18 | |
%20 = sub i16 %19, 1 | |
%21 = load i16, ptr %stack.ptr_0 | |
br label %for_begin_0 | |
for_begin_0: | |
%22 = phi i16 [%20, %end_if_1], [%37, %for_body_0] | |
%23 = icmp uge i16 %22, %21 | |
br i1 %23, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%24 = add i16 %22, 1 | |
%25 = add i16 %22, 2 | |
%26 = getelementptr %node_t_2, ptr %node_0, i32 0, i32 1, i16 %22 | |
%27 = load [2 x i32], ptr %26 | |
%28 = getelementptr %node_t_2, ptr %node_0, i32 0, i32 1, i16 %24 | |
store [2 x i32] %27, ptr %28 | |
%29 = getelementptr %inner_node_t_2, ptr %node_0, i32 0, i32 1, i16 %24 | |
%30 = load ptr, ptr %29 | |
%31 = getelementptr %inner_node_t_2, ptr %node_0, i32 0, i32 1, i16 %25 | |
store ptr %30, ptr %31 | |
%32 = getelementptr %inner_node_t_2, ptr %node_0, i32 0, i32 1, i16 %25 | |
%33 = load ptr, ptr %32 | |
%34 = getelementptr %node_t_2, ptr %33, i32 0, i32 0, i32 1 | |
%35 = load i16, ptr %34 | |
%36 = add i16 1, %35 | |
store i16 %36, ptr %34 | |
%37 = sub i16 %22, 1 | |
br label %for_begin_0 | |
for_end_0: | |
%38 = load [2 x i32], ptr %key_0 | |
%39 = getelementptr %node_t_2, ptr %node_0, i32 0, i32 1, i16 %21 | |
store [2 x i32] %38, ptr %39 | |
%40 = add i16 %21, 1 | |
%41 = getelementptr %inner_node_t_2, ptr %node_0, i32 0, i32 1, i16 %40 | |
store ptr %new_node_0, ptr %41 | |
%42 = getelementptr %node_t_2, ptr %new_node_0, i32 0, i32 0, i32 0 | |
store ptr %node_0, ptr %42 | |
%43 = getelementptr %node_t_2, ptr %new_node_0, i32 0, i32 0, i32 1 | |
store i16 %40, ptr %43 | |
%44 = getelementptr %node_t_2, ptr %node_0, i32 0, i32 0, i32 2 | |
%45 = load i16, ptr %44 | |
%46 = add i16 1, %45 | |
store i16 %46, ptr %44 | |
ret void | |
} | |
define external ccc i16 @eclair_btree_node_rebalance_or_split_2(ptr %node_0, ptr %root_0, i16 %idx_0) { | |
start: | |
%0 = getelementptr %node_t_2, ptr %node_0, i32 0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = getelementptr %node_t_2, ptr %node_0, i32 0, i32 0, i32 1 | |
%3 = load i16, ptr %2 | |
%4 = icmp ne ptr %1, zeroinitializer | |
%5 = icmp ugt i16 %3, 0 | |
%6 = and i1 %4, %5 | |
br i1 %6, label %rebalance_0, label %split_0 | |
rebalance_0: | |
%7 = sub i16 %3, 1 | |
%8 = getelementptr %inner_node_t_2, ptr %1, i32 0, i32 1, i16 %7 | |
%9 = load ptr, ptr %8 | |
%10 = getelementptr %node_t_2, ptr %9, i32 0, i32 0, i32 2 | |
%11 = load i16, ptr %10 | |
%12 = sub i16 30, %11 | |
%13 = icmp slt i16 %12, %idx_0 | |
%14 = select i1 %13, i16 %12, i16 %idx_0 | |
%15 = icmp ugt i16 %14, 0 | |
br i1 %15, label %if_0, label %end_if_1 | |
if_0: | |
%16 = getelementptr %node_t_2, ptr %node_0, i32 0, i32 0, i32 1 | |
%17 = load i16, ptr %16 | |
%18 = sub i16 %17, 1 | |
%19 = getelementptr %inner_node_t_2, ptr %1, i32 0, i32 0, i32 1, i16 %18 | |
%20 = load [2 x i32], ptr %19 | |
%21 = getelementptr %node_t_2, ptr %9, i32 0, i32 0, i32 2 | |
%22 = load i16, ptr %21 | |
%23 = getelementptr %node_t_2, ptr %9, i32 0, i32 1, i16 %22 | |
store [2 x i32] %20, ptr %23 | |
%24 = sub i16 %14, 1 | |
br label %for_begin_0 | |
for_begin_0: | |
%25 = phi i16 [0, %if_0], [%32, %for_body_0] | |
%26 = icmp ult i16 %25, %24 | |
br i1 %26, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%27 = add i16 %22, 1 | |
%28 = add i16 %25, %27 | |
%29 = getelementptr %node_t_2, ptr %node_0, i32 0, i32 1, i16 %25 | |
%30 = load [2 x i32], ptr %29 | |
%31 = getelementptr %node_t_2, ptr %9, i32 0, i32 1, i16 %28 | |
store [2 x i32] %30, ptr %31 | |
%32 = add i16 1, %25 | |
br label %for_begin_0 | |
for_end_0: | |
%33 = getelementptr %node_t_2, ptr %node_0, i32 0, i32 1, i16 %24 | |
%34 = load [2 x i32], ptr %33 | |
store [2 x i32] %34, ptr %19 | |
%35 = getelementptr %node_t_2, ptr %node_0, i32 0, i32 0, i32 2 | |
%36 = load i16, ptr %35 | |
%37 = sub i16 %36, %14 | |
br label %for_begin_1 | |
for_begin_1: | |
%38 = phi i16 [0, %for_end_0], [%44, %for_body_1] | |
%39 = icmp ult i16 %38, %37 | |
br i1 %39, label %for_body_1, label %for_end_1 | |
for_body_1: | |
%40 = add i16 %38, %14 | |
%41 = getelementptr %node_t_2, ptr %node_0, i32 0, i32 1, i16 %40 | |
%42 = load [2 x i32], ptr %41 | |
%43 = getelementptr %node_t_2, ptr %node_0, i32 0, i32 1, i16 %38 | |
store [2 x i32] %42, ptr %43 | |
%44 = add i16 1, %38 | |
br label %for_begin_1 | |
for_end_1: | |
%45 = getelementptr %node_t_2, ptr %node_0, i32 0, i32 0, i32 3 | |
%46 = load i1, ptr %45 | |
%47 = icmp eq i1 %46, 1 | |
br i1 %47, label %if_1, label %end_if_0 | |
if_1: | |
br label %for_begin_2 | |
for_begin_2: | |
%48 = phi i16 [0, %if_1], [%61, %for_body_2] | |
%49 = icmp ult i16 %48, %14 | |
br i1 %49, label %for_body_2, label %for_end_2 | |
for_body_2: | |
%50 = getelementptr %node_t_2, ptr %9, i32 0, i32 0, i32 2 | |
%51 = load i16, ptr %50 | |
%52 = add i16 %51, 1 | |
%53 = add i16 %48, %52 | |
%54 = getelementptr %inner_node_t_2, ptr %node_0, i32 0, i32 1, i16 %48 | |
%55 = load ptr, ptr %54 | |
%56 = getelementptr %inner_node_t_2, ptr %9, i32 0, i32 1, i16 %53 | |
store ptr %55, ptr %56 | |
%57 = getelementptr %inner_node_t_2, ptr %9, i32 0, i32 1, i16 %53 | |
%58 = load ptr, ptr %57 | |
%59 = getelementptr %node_t_2, ptr %58, i32 0, i32 0, i32 0 | |
store ptr %9, ptr %59 | |
%60 = getelementptr %node_t_2, ptr %58, i32 0, i32 0, i32 1 | |
store i16 %53, ptr %60 | |
%61 = add i16 1, %48 | |
br label %for_begin_2 | |
for_end_2: | |
%62 = sub i16 %36, %14 | |
%63 = add i16 1, %62 | |
br label %for_begin_3 | |
for_begin_3: | |
%64 = phi i16 [0, %for_end_2], [%73, %for_body_3] | |
%65 = icmp ult i16 %64, %63 | |
br i1 %65, label %for_body_3, label %for_end_3 | |
for_body_3: | |
%66 = add i16 %64, %14 | |
%67 = getelementptr %inner_node_t_2, ptr %node_0, i32 0, i32 1, i16 %66 | |
%68 = load ptr, ptr %67 | |
%69 = getelementptr %inner_node_t_2, ptr %node_0, i32 0, i32 1, i16 %64 | |
store ptr %68, ptr %69 | |
%70 = getelementptr %inner_node_t_2, ptr %node_0, i32 0, i32 1, i16 %64 | |
%71 = load ptr, ptr %70 | |
%72 = getelementptr %node_t_2, ptr %71, i32 0, i32 0, i32 1 | |
store i16 %64, ptr %72 | |
%73 = add i16 1, %64 | |
br label %for_begin_3 | |
for_end_3: | |
br label %end_if_0 | |
end_if_0: | |
%74 = getelementptr %node_t_2, ptr %9, i32 0, i32 0, i32 2 | |
%75 = load i16, ptr %74 | |
%76 = add i16 %75, %14 | |
store i16 %76, ptr %74 | |
%77 = getelementptr %node_t_2, ptr %node_0, i32 0, i32 0, i32 2 | |
%78 = load i16, ptr %77 | |
%79 = sub i16 %78, %14 | |
store i16 %79, ptr %77 | |
ret i16 %14 | |
end_if_1: | |
br label %split_0 | |
split_0: | |
call ccc void @eclair_btree_node_split_2(ptr %node_0, ptr %root_0) | |
ret i16 0 | |
} | |
define external ccc i1 @eclair_btree_insert_value_2(ptr %tree_0, ptr %val_0) { | |
start: | |
%stack.ptr_0 = alloca ptr | |
%stack.ptr_1 = alloca i16 | |
%0 = call ccc i1 @eclair_btree_is_empty_2(ptr %tree_0) | |
br i1 %0, label %empty_0, label %non_empty_0 | |
empty_0: | |
%1 = call ccc ptr @eclair_btree_node_new_2(i1 0) | |
%2 = getelementptr %node_t_2, ptr %1, i32 0, i32 0, i32 2 | |
store i16 1, ptr %2 | |
%3 = load [2 x i32], ptr %val_0 | |
%4 = getelementptr %node_t_2, ptr %1, i32 0, i32 1, i16 0 | |
store [2 x i32] %3, ptr %4 | |
%5 = getelementptr %btree_t_2, ptr %tree_0, i32 0, i32 0 | |
store ptr %1, ptr %5 | |
%6 = getelementptr %btree_t_2, ptr %tree_0, i32 0, i32 1 | |
store ptr %1, ptr %6 | |
br label %inserted_new_value_0 | |
non_empty_0: | |
%7 = getelementptr %btree_t_2, ptr %tree_0, i32 0, i32 0 | |
%8 = load ptr, ptr %7 | |
store ptr %8, ptr %stack.ptr_0 | |
br label %loop_0 | |
loop_0: | |
%9 = load ptr, ptr %stack.ptr_0 | |
%10 = getelementptr %node_t_2, ptr %9, i32 0, i32 0, i32 3 | |
%11 = load i1, ptr %10 | |
%12 = icmp eq i1 %11, 1 | |
br i1 %12, label %inner_0, label %leaf_0 | |
inner_0: | |
%13 = getelementptr %node_t_2, ptr %9, i32 0, i32 0, i32 2 | |
%14 = load i16, ptr %13 | |
%15 = getelementptr %node_t_2, ptr %9, i32 0, i32 1, i16 0 | |
%16 = getelementptr %node_t_2, ptr %9, i32 0, i32 1, i16 %14 | |
%17 = call ccc ptr @eclair_btree_linear_search_lower_bound_2(ptr %val_0, ptr %15, ptr %16) | |
%18 = ptrtoint ptr %17 to i64 | |
%19 = ptrtoint ptr %15 to i64 | |
%20 = sub i64 %18, %19 | |
%21 = trunc i64 %20 to i16 | |
%22 = udiv i16 %21, 8 | |
%23 = icmp ne ptr %17, %16 | |
%24 = call ccc i8 @eclair_btree_value_compare_values_2(ptr %17, ptr %val_0) | |
%25 = icmp eq i8 0, %24 | |
%26 = and i1 %23, %25 | |
br i1 %26, label %no_insert_0, label %inner_continue_insert_0 | |
inner_continue_insert_0: | |
%27 = getelementptr %inner_node_t_2, ptr %9, i32 0, i32 1, i16 %22 | |
%28 = load ptr, ptr %27 | |
store ptr %28, ptr %stack.ptr_0 | |
br label %loop_0 | |
leaf_0: | |
%29 = getelementptr %node_t_2, ptr %9, i32 0, i32 0, i32 2 | |
%30 = load i16, ptr %29 | |
%31 = getelementptr %node_t_2, ptr %9, i32 0, i32 1, i16 0 | |
%32 = getelementptr %node_t_2, ptr %9, i32 0, i32 1, i16 %30 | |
%33 = call ccc ptr @eclair_btree_linear_search_upper_bound_2(ptr %val_0, ptr %31, ptr %32) | |
%34 = ptrtoint ptr %33 to i64 | |
%35 = ptrtoint ptr %31 to i64 | |
%36 = sub i64 %34, %35 | |
%37 = trunc i64 %36 to i16 | |
%38 = udiv i16 %37, 8 | |
store i16 %38, ptr %stack.ptr_1 | |
%39 = icmp ne ptr %33, %31 | |
%40 = getelementptr [2 x i32], ptr %33, i32 -1 | |
%41 = call ccc i8 @eclair_btree_value_compare_values_2(ptr %40, ptr %val_0) | |
%42 = icmp eq i8 0, %41 | |
%43 = and i1 %39, %42 | |
br i1 %43, label %no_insert_0, label %leaf_continue_insert_0 | |
leaf_continue_insert_0: | |
%44 = icmp uge i16 %30, 30 | |
br i1 %44, label %split_0, label %no_split_0 | |
split_0: | |
%45 = getelementptr %btree_t_2, ptr %tree_0, i32 0, i32 0 | |
%46 = load i16, ptr %stack.ptr_1 | |
%47 = call ccc i16 @eclair_btree_node_rebalance_or_split_2(ptr %9, ptr %45, i16 %46) | |
%48 = sub i16 %46, %47 | |
store i16 %48, ptr %stack.ptr_1 | |
%49 = getelementptr %node_t_2, ptr %9, i32 0, i32 0, i32 2 | |
%50 = load i16, ptr %49 | |
%51 = icmp ugt i16 %48, %50 | |
br i1 %51, label %if_0, label %end_if_0 | |
if_0: | |
%52 = add i16 %50, 1 | |
%53 = sub i16 %48, %52 | |
store i16 %53, ptr %stack.ptr_1 | |
%54 = getelementptr %node_t_2, ptr %9, i32 0, i32 0, i32 0 | |
%55 = load ptr, ptr %54 | |
%56 = getelementptr %node_t_2, ptr %9, i32 0, i32 0, i32 1 | |
%57 = load i16, ptr %56 | |
%58 = add i16 1, %57 | |
%59 = getelementptr %inner_node_t_2, ptr %55, i32 0, i32 1, i16 %58 | |
%60 = load ptr, ptr %59 | |
store ptr %60, ptr %stack.ptr_0 | |
br label %end_if_0 | |
end_if_0: | |
br label %no_split_0 | |
no_split_0: | |
%61 = load ptr, ptr %stack.ptr_0 | |
%62 = load i16, ptr %stack.ptr_1 | |
%63 = getelementptr %node_t_2, ptr %61, i32 0, i32 0, i32 2 | |
%64 = load i16, ptr %63 | |
br label %for_begin_0 | |
for_begin_0: | |
%65 = phi i16 [%64, %no_split_0], [%71, %for_body_0] | |
%66 = icmp ugt i16 %65, %62 | |
br i1 %66, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%67 = sub i16 %65, 1 | |
%68 = getelementptr %node_t_2, ptr %61, i32 0, i32 1, i16 %67 | |
%69 = load [2 x i32], ptr %68 | |
%70 = getelementptr %node_t_2, ptr %61, i32 0, i32 1, i16 %65 | |
store [2 x i32] %69, ptr %70 | |
%71 = sub i16 %65, 1 | |
br label %for_begin_0 | |
for_end_0: | |
%72 = load [2 x i32], ptr %val_0 | |
%73 = getelementptr %node_t_2, ptr %61, i32 0, i32 1, i16 %62 | |
store [2 x i32] %72, ptr %73 | |
%74 = getelementptr %node_t_2, ptr %61, i32 0, i32 0, i32 2 | |
%75 = load i16, ptr %74 | |
%76 = add i16 1, %75 | |
store i16 %76, ptr %74 | |
br label %inserted_new_value_0 | |
no_insert_0: | |
ret i1 0 | |
inserted_new_value_0: | |
ret i1 1 | |
} | |
define external ccc void @eclair_btree_insert_range__2(ptr %tree_0, ptr %begin_0, ptr %end_0) { | |
start: | |
br label %while_begin_0 | |
while_begin_0: | |
%0 = call ccc i1 @eclair_btree_iterator_is_equal_2(ptr %begin_0, ptr %end_0) | |
%1 = select i1 %0, i1 0, i1 1 | |
br i1 %1, label %while_body_0, label %while_end_0 | |
while_body_0: | |
%2 = call ccc ptr @eclair_btree_iterator_current_2(ptr %begin_0) | |
%3 = call ccc i1 @eclair_btree_insert_value_2(ptr %tree_0, ptr %2) | |
call ccc void @eclair_btree_iterator_next_2(ptr %begin_0) | |
br label %while_begin_0 | |
while_end_0: | |
ret void | |
} | |
define external ccc void @eclair_btree_begin_2(ptr %tree_0, ptr %result_0) { | |
start: | |
%0 = getelementptr %btree_t_2, ptr %tree_0, i32 0, i32 1 | |
%1 = load ptr, ptr %0 | |
%2 = getelementptr %btree_iterator_t_2, ptr %result_0, i32 0, i32 0 | |
store ptr %1, ptr %2 | |
%3 = getelementptr %btree_iterator_t_2, ptr %result_0, i32 0, i32 1 | |
store i16 0, ptr %3 | |
ret void | |
} | |
define external ccc void @eclair_btree_end_2(ptr %tree_0, ptr %result_0) { | |
start: | |
call ccc void @eclair_btree_iterator_end_init_2(ptr %result_0) | |
ret void | |
} | |
define external ccc i1 @eclair_btree_contains_2(ptr %tree_0, ptr %val_0) { | |
start: | |
%stack.ptr_0 = alloca %btree_iterator_t_2, i32 1 | |
%stack.ptr_1 = alloca %btree_iterator_t_2, i32 1 | |
call ccc void @eclair_btree_find_2(ptr %tree_0, ptr %val_0, ptr %stack.ptr_0) | |
call ccc void @eclair_btree_end_2(ptr %tree_0, ptr %stack.ptr_1) | |
%0 = call ccc i1 @eclair_btree_iterator_is_equal_2(ptr %stack.ptr_0, ptr %stack.ptr_1) | |
%1 = select i1 %0, i1 0, i1 1 | |
ret i1 %1 | |
} | |
define external ccc void @eclair_btree_find_2(ptr %tree_0, ptr %val_0, ptr %result_0) { | |
start: | |
%stack.ptr_0 = alloca ptr | |
%0 = call ccc i1 @eclair_btree_is_empty_2(ptr %tree_0) | |
br i1 %0, label %if_0, label %end_if_0 | |
if_0: | |
call ccc void @eclair_btree_iterator_end_init_2(ptr %result_0) | |
ret void | |
end_if_0: | |
%1 = getelementptr %btree_t_2, ptr %tree_0, i32 0, i32 0 | |
%2 = load ptr, ptr %1 | |
store ptr %2, ptr %stack.ptr_0 | |
br label %loop_0 | |
loop_0: | |
%3 = load ptr, ptr %stack.ptr_0 | |
%4 = getelementptr %node_t_2, ptr %3, i32 0, i32 0, i32 2 | |
%5 = load i16, ptr %4 | |
%6 = getelementptr %node_t_2, ptr %3, i32 0, i32 1, i16 0 | |
%7 = getelementptr %node_t_2, ptr %3, i32 0, i32 1, i16 %5 | |
%8 = call ccc ptr @eclair_btree_linear_search_lower_bound_2(ptr %val_0, ptr %6, ptr %7) | |
%9 = ptrtoint ptr %8 to i64 | |
%10 = ptrtoint ptr %6 to i64 | |
%11 = sub i64 %9, %10 | |
%12 = trunc i64 %11 to i16 | |
%13 = udiv i16 %12, 8 | |
%14 = icmp ult ptr %8, %7 | |
%15 = call ccc i8 @eclair_btree_value_compare_values_2(ptr %8, ptr %val_0) | |
%16 = icmp eq i8 0, %15 | |
%17 = and i1 %14, %16 | |
br i1 %17, label %if_1, label %end_if_1 | |
if_1: | |
call ccc void @eclair_btree_iterator_init_2(ptr %result_0, ptr %3, i16 %13) | |
ret void | |
end_if_1: | |
%18 = getelementptr %node_t_2, ptr %3, i32 0, i32 0, i32 3 | |
%19 = load i1, ptr %18 | |
%20 = icmp eq i1 %19, 0 | |
br i1 %20, label %if_2, label %end_if_2 | |
if_2: | |
call ccc void @eclair_btree_iterator_end_init_2(ptr %result_0) | |
ret void | |
end_if_2: | |
%21 = getelementptr %inner_node_t_2, ptr %3, i32 0, i32 1, i16 %13 | |
%22 = load ptr, ptr %21 | |
store ptr %22, ptr %stack.ptr_0 | |
br label %loop_0 | |
} | |
define external ccc void @eclair_btree_lower_bound_2(ptr %tree_0, ptr %val_0, ptr %result_0) { | |
start: | |
%stack.ptr_0 = alloca %btree_iterator_t_2, i32 1 | |
%stack.ptr_1 = alloca ptr | |
%0 = call ccc i1 @eclair_btree_is_empty_2(ptr %tree_0) | |
br i1 %0, label %if_0, label %end_if_0 | |
if_0: | |
call ccc void @eclair_btree_iterator_end_init_2(ptr %result_0) | |
ret void | |
end_if_0: | |
call ccc void @eclair_btree_iterator_end_init_2(ptr %stack.ptr_0) | |
%1 = getelementptr %btree_t_2, ptr %tree_0, i32 0, i32 0 | |
%2 = load ptr, ptr %1 | |
store ptr %2, ptr %stack.ptr_1 | |
br label %loop_0 | |
loop_0: | |
%3 = load ptr, ptr %stack.ptr_1 | |
%4 = getelementptr %node_t_2, ptr %3, i32 0, i32 0, i32 2 | |
%5 = load i16, ptr %4 | |
%6 = getelementptr %node_t_2, ptr %3, i32 0, i32 1, i16 0 | |
%7 = getelementptr %node_t_2, ptr %3, i32 0, i32 1, i16 %5 | |
%8 = call ccc ptr @eclair_btree_linear_search_lower_bound_2(ptr %val_0, ptr %6, ptr %7) | |
%9 = ptrtoint ptr %8 to i64 | |
%10 = ptrtoint ptr %6 to i64 | |
%11 = sub i64 %9, %10 | |
%12 = trunc i64 %11 to i16 | |
%13 = udiv i16 %12, 8 | |
%14 = getelementptr %node_t_2, ptr %3, i32 0, i32 0, i32 3 | |
%15 = load i1, ptr %14 | |
%16 = icmp eq i1 %15, 0 | |
br i1 %16, label %if_1, label %end_if_1 | |
if_1: | |
%17 = icmp eq ptr %8, %7 | |
br i1 %17, label %handle_last_0, label %handle_not_last_0 | |
handle_last_0: | |
%18 = getelementptr %btree_iterator_t_2, ptr %stack.ptr_0, i32 0, i32 0 | |
%19 = load ptr, ptr %18 | |
%20 = getelementptr %btree_iterator_t_2, ptr %result_0, i32 0, i32 0 | |
store ptr %19, ptr %20 | |
%21 = getelementptr %btree_iterator_t_2, ptr %stack.ptr_0, i32 0, i32 1 | |
%22 = load i16, ptr %21 | |
%23 = getelementptr %btree_iterator_t_2, ptr %result_0, i32 0, i32 1 | |
store i16 %22, ptr %23 | |
ret void | |
handle_not_last_0: | |
call ccc void @eclair_btree_iterator_init_2(ptr %result_0, ptr %3, i16 %13) | |
ret void | |
end_if_1: | |
%24 = icmp ne ptr %8, %7 | |
%25 = call ccc i8 @eclair_btree_value_compare_values_2(ptr %8, ptr %val_0) | |
%26 = icmp eq i8 0, %25 | |
%27 = and i1 %24, %26 | |
br i1 %27, label %if_2, label %end_if_2 | |
if_2: | |
call ccc void @eclair_btree_iterator_init_2(ptr %result_0, ptr %3, i16 %13) | |
ret void | |
end_if_2: | |
br i1 %24, label %if_3, label %end_if_3 | |
if_3: | |
call ccc void @eclair_btree_iterator_init_2(ptr %stack.ptr_0, ptr %3, i16 %13) | |
br label %end_if_3 | |
end_if_3: | |
%28 = getelementptr %inner_node_t_2, ptr %3, i32 0, i32 1, i16 %13 | |
%29 = load ptr, ptr %28 | |
store ptr %29, ptr %stack.ptr_1 | |
br label %loop_0 | |
} | |
define external ccc void @eclair_btree_upper_bound_2(ptr %tree_0, ptr %val_0, ptr %result_0) { | |
start: | |
%stack.ptr_0 = alloca %btree_iterator_t_2, i32 1 | |
%stack.ptr_1 = alloca ptr | |
%0 = call ccc i1 @eclair_btree_is_empty_2(ptr %tree_0) | |
br i1 %0, label %if_0, label %end_if_0 | |
if_0: | |
call ccc void @eclair_btree_iterator_end_init_2(ptr %result_0) | |
ret void | |
end_if_0: | |
call ccc void @eclair_btree_iterator_end_init_2(ptr %stack.ptr_0) | |
%1 = getelementptr %btree_t_2, ptr %tree_0, i32 0, i32 0 | |
%2 = load ptr, ptr %1 | |
store ptr %2, ptr %stack.ptr_1 | |
br label %loop_0 | |
loop_0: | |
%3 = load ptr, ptr %stack.ptr_1 | |
%4 = getelementptr %node_t_2, ptr %3, i32 0, i32 0, i32 2 | |
%5 = load i16, ptr %4 | |
%6 = getelementptr %node_t_2, ptr %3, i32 0, i32 1, i16 0 | |
%7 = getelementptr %node_t_2, ptr %3, i32 0, i32 1, i16 %5 | |
%8 = call ccc ptr @eclair_btree_linear_search_upper_bound_2(ptr %val_0, ptr %6, ptr %7) | |
%9 = ptrtoint ptr %8 to i64 | |
%10 = ptrtoint ptr %6 to i64 | |
%11 = sub i64 %9, %10 | |
%12 = trunc i64 %11 to i16 | |
%13 = udiv i16 %12, 8 | |
%14 = getelementptr %node_t_2, ptr %3, i32 0, i32 0, i32 3 | |
%15 = load i1, ptr %14 | |
%16 = icmp eq i1 %15, 0 | |
br i1 %16, label %if_1, label %end_if_1 | |
if_1: | |
%17 = icmp eq ptr %8, %7 | |
br i1 %17, label %handle_last_0, label %handle_not_last_0 | |
handle_last_0: | |
%18 = getelementptr %btree_iterator_t_2, ptr %stack.ptr_0, i32 0, i32 0 | |
%19 = load ptr, ptr %18 | |
%20 = getelementptr %btree_iterator_t_2, ptr %result_0, i32 0, i32 0 | |
store ptr %19, ptr %20 | |
%21 = getelementptr %btree_iterator_t_2, ptr %stack.ptr_0, i32 0, i32 1 | |
%22 = load i16, ptr %21 | |
%23 = getelementptr %btree_iterator_t_2, ptr %result_0, i32 0, i32 1 | |
store i16 %22, ptr %23 | |
ret void | |
handle_not_last_0: | |
call ccc void @eclair_btree_iterator_init_2(ptr %result_0, ptr %3, i16 %13) | |
ret void | |
end_if_1: | |
%24 = icmp ne ptr %8, %7 | |
br i1 %24, label %if_2, label %end_if_2 | |
if_2: | |
call ccc void @eclair_btree_iterator_init_2(ptr %result_0, ptr %3, i16 %13) | |
br label %end_if_2 | |
end_if_2: | |
%25 = getelementptr %inner_node_t_2, ptr %3, i32 0, i32 1, i16 %13 | |
%26 = load ptr, ptr %25 | |
store ptr %26, ptr %stack.ptr_1 | |
br label %loop_0 | |
} | |
define external ccc void @eclair_btree_node_delete_2(ptr %node_0) { | |
start: | |
%0 = getelementptr %node_t_2, ptr %node_0, i32 0, i32 0, i32 3 | |
%1 = load i1, ptr %0 | |
%2 = icmp eq i1 %1, 1 | |
br i1 %2, label %if_0, label %end_if_1 | |
if_0: | |
%3 = getelementptr %node_t_2, ptr %node_0, i32 0, i32 0, i32 2 | |
%4 = load i16, ptr %3 | |
br label %for_begin_0 | |
for_begin_0: | |
%5 = phi i16 [0, %if_0], [%10, %end_if_0] | |
%6 = icmp ule i16 %5, %4 | |
br i1 %6, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%7 = getelementptr %inner_node_t_2, ptr %node_0, i32 0, i32 1, i16 %5 | |
%8 = load ptr, ptr %7 | |
%9 = icmp ne ptr %8, zeroinitializer | |
br i1 %9, label %if_1, label %end_if_0 | |
if_1: | |
call ccc void @eclair_btree_node_delete_2(ptr %8) | |
br label %end_if_0 | |
end_if_0: | |
%10 = add i16 1, %5 | |
br label %for_begin_0 | |
for_end_0: | |
br label %end_if_1 | |
end_if_1: | |
call ccc void @free(ptr %node_0) | |
ret void | |
} | |
define external ccc void @eclair_btree_clear_2(ptr %tree_0) { | |
start: | |
%0 = getelementptr %btree_t_2, ptr %tree_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = icmp ne ptr %1, zeroinitializer | |
br i1 %2, label %if_0, label %end_if_0 | |
if_0: | |
call ccc void @eclair_btree_node_delete_2(ptr %1) | |
%3 = getelementptr %btree_t_2, ptr %tree_0, i32 0, i32 0 | |
store ptr zeroinitializer, ptr %3 | |
%4 = getelementptr %btree_t_2, ptr %tree_0, i32 0, i32 1 | |
store ptr zeroinitializer, ptr %4 | |
br label %end_if_0 | |
end_if_0: | |
ret void | |
} | |
define external ccc void @eclair_btree_swap_2(ptr %lhs_0, ptr %rhs_0) { | |
start: | |
%0 = getelementptr %btree_t_2, ptr %lhs_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = getelementptr %btree_t_2, ptr %rhs_0, i32 0, i32 0 | |
%3 = load ptr, ptr %2 | |
%4 = getelementptr %btree_t_2, ptr %lhs_0, i32 0, i32 0 | |
store ptr %3, ptr %4 | |
%5 = getelementptr %btree_t_2, ptr %rhs_0, i32 0, i32 0 | |
store ptr %1, ptr %5 | |
%6 = getelementptr %btree_t_2, ptr %lhs_0, i32 0, i32 1 | |
%7 = load ptr, ptr %6 | |
%8 = getelementptr %btree_t_2, ptr %rhs_0, i32 0, i32 1 | |
%9 = load ptr, ptr %8 | |
%10 = getelementptr %btree_t_2, ptr %lhs_0, i32 0, i32 1 | |
store ptr %9, ptr %10 | |
%11 = getelementptr %btree_t_2, ptr %rhs_0, i32 0, i32 1 | |
store ptr %7, ptr %11 | |
ret void | |
} | |
%node_data_t_3 = type {ptr, i16, i16, i1} | |
%node_t_3 = type {%node_data_t_3, [15 x [4 x i32]]} | |
%inner_node_t_3 = type {%node_t_3, [16 x ptr]} | |
%btree_iterator_t_3 = type {ptr, i16} | |
%btree_t_3 = type {ptr, ptr} | |
define external ccc i8 @eclair_btree_value_compare_3(i32 %lhs_0, i32 %rhs_0) { | |
start: | |
%0 = icmp ult i32 %lhs_0, %rhs_0 | |
br i1 %0, label %if_0, label %end_if_0 | |
if_0: | |
ret i8 -1 | |
end_if_0: | |
%1 = icmp ugt i32 %lhs_0, %rhs_0 | |
%2 = select i1 %1, i8 1, i8 0 | |
ret i8 %2 | |
} | |
define external ccc i8 @eclair_btree_value_compare_values_3(ptr %lhs_0, ptr %rhs_0) { | |
start: | |
br label %comparison_0 | |
comparison_0: | |
%0 = getelementptr [4 x i32], ptr %lhs_0, i32 0, i32 2 | |
%1 = getelementptr [4 x i32], ptr %rhs_0, i32 0, i32 2 | |
%2 = load i32, ptr %0 | |
%3 = load i32, ptr %1 | |
%4 = call ccc i8 @eclair_btree_value_compare_3(i32 %2, i32 %3) | |
%5 = icmp eq i8 %4, 0 | |
br i1 %5, label %comparison_3, label %end_0 | |
comparison_1: | |
%6 = getelementptr [4 x i32], ptr %lhs_0, i32 0, i32 3 | |
%7 = getelementptr [4 x i32], ptr %rhs_0, i32 0, i32 3 | |
%8 = load i32, ptr %6 | |
%9 = load i32, ptr %7 | |
%10 = call ccc i8 @eclair_btree_value_compare_3(i32 %8, i32 %9) | |
%11 = icmp eq i8 %10, 0 | |
br i1 %11, label %comparison_3, label %end_0 | |
comparison_2: | |
%12 = getelementptr [4 x i32], ptr %lhs_0, i32 0, i32 0 | |
%13 = getelementptr [4 x i32], ptr %rhs_0, i32 0, i32 0 | |
%14 = load i32, ptr %12 | |
%15 = load i32, ptr %13 | |
%16 = call ccc i8 @eclair_btree_value_compare_3(i32 %14, i32 %15) | |
%17 = icmp eq i8 %16, 0 | |
br i1 %17, label %comparison_3, label %end_0 | |
comparison_3: | |
%18 = getelementptr [4 x i32], ptr %lhs_0, i32 0, i32 1 | |
%19 = getelementptr [4 x i32], ptr %rhs_0, i32 0, i32 1 | |
%20 = load i32, ptr %18 | |
%21 = load i32, ptr %19 | |
%22 = call ccc i8 @eclair_btree_value_compare_3(i32 %20, i32 %21) | |
br label %end_0 | |
end_0: | |
%23 = phi i8 [%4, %comparison_0], [%10, %comparison_1], [%16, %comparison_2], [%22, %comparison_3] | |
ret i8 %23 | |
} | |
define external ccc ptr @eclair_btree_node_new_3(i1 %type_0) { | |
start: | |
%0 = select i1 %type_0, i32 384, i32 256 | |
%1 = call ccc ptr @malloc(i32 %0) | |
%2 = getelementptr %node_t_3, ptr %1, i32 0, i32 0, i32 0 | |
store ptr zeroinitializer, ptr %2 | |
%3 = getelementptr %node_t_3, ptr %1, i32 0, i32 0, i32 1 | |
store i16 0, ptr %3 | |
%4 = getelementptr %node_t_3, ptr %1, i32 0, i32 0, i32 2 | |
store i16 0, ptr %4 | |
%5 = getelementptr %node_t_3, ptr %1, i32 0, i32 0, i32 3 | |
store i1 %type_0, ptr %5 | |
%6 = getelementptr %node_t_3, ptr %1, i32 0, i32 1 | |
call ccc void @llvm.memset.p0i8.i64(ptr %6, i8 0, i64 240, i1 0) | |
%7 = icmp eq i1 %type_0, 1 | |
br i1 %7, label %if_0, label %end_if_0 | |
if_0: | |
%8 = getelementptr %inner_node_t_3, ptr %1, i32 0, i32 1 | |
call ccc void @llvm.memset.p0i8.i64(ptr %8, i8 0, i64 128, i1 0) | |
br label %end_if_0 | |
end_if_0: | |
ret ptr %1 | |
} | |
define external ccc i64 @eclair_btree_node_count_entries_3(ptr %node_0) { | |
start: | |
%stack.ptr_0 = alloca i64 | |
%0 = getelementptr %node_t_3, ptr %node_0, i32 0, i32 0, i32 2 | |
%1 = load i16, ptr %0 | |
%2 = getelementptr %node_t_3, ptr %node_0, i32 0, i32 0, i32 3 | |
%3 = load i1, ptr %2 | |
%4 = icmp eq i1 %3, 0 | |
%5 = zext i16 %1 to i64 | |
br i1 %4, label %if_0, label %end_if_0 | |
if_0: | |
ret i64 %5 | |
end_if_0: | |
store i64 %5, ptr %stack.ptr_0 | |
%6 = getelementptr %node_t_3, ptr %node_0, i32 0, i32 0, i32 2 | |
%7 = load i16, ptr %6 | |
br label %for_begin_0 | |
for_begin_0: | |
%8 = phi i16 [0, %end_if_0], [%15, %for_body_0] | |
%9 = icmp ule i16 %8, %7 | |
br i1 %9, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%10 = load i64, ptr %stack.ptr_0 | |
%11 = getelementptr %inner_node_t_3, ptr %node_0, i32 0, i32 1, i16 %8 | |
%12 = load ptr, ptr %11 | |
%13 = call ccc i64 @eclair_btree_node_count_entries_3(ptr %12) | |
%14 = add i64 %10, %13 | |
store i64 %14, ptr %stack.ptr_0 | |
%15 = add i16 1, %8 | |
br label %for_begin_0 | |
for_end_0: | |
%16 = load i64, ptr %stack.ptr_0 | |
ret i64 %16 | |
} | |
define external ccc void @eclair_btree_iterator_init_3(ptr %iter_0, ptr %cur_0, i16 %pos_0) { | |
start: | |
%0 = getelementptr %btree_iterator_t_3, ptr %iter_0, i32 0, i32 0 | |
store ptr %cur_0, ptr %0 | |
%1 = getelementptr %btree_iterator_t_3, ptr %iter_0, i32 0, i32 1 | |
store i16 %pos_0, ptr %1 | |
ret void | |
} | |
define external ccc void @eclair_btree_iterator_end_init_3(ptr %iter_0) { | |
start: | |
call ccc void @eclair_btree_iterator_init_3(ptr %iter_0, ptr zeroinitializer, i16 0) | |
ret void | |
} | |
define external ccc i1 @eclair_btree_iterator_is_equal_3(ptr %lhs_0, ptr %rhs_0) { | |
start: | |
%0 = getelementptr %btree_iterator_t_3, ptr %lhs_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = getelementptr %btree_iterator_t_3, ptr %rhs_0, i32 0, i32 0 | |
%3 = load ptr, ptr %2 | |
%4 = icmp ne ptr %1, %3 | |
br i1 %4, label %if_0, label %end_if_0 | |
if_0: | |
ret i1 0 | |
end_if_0: | |
%5 = getelementptr %btree_iterator_t_3, ptr %lhs_0, i32 0, i32 1 | |
%6 = load i16, ptr %5 | |
%7 = getelementptr %btree_iterator_t_3, ptr %rhs_0, i32 0, i32 1 | |
%8 = load i16, ptr %7 | |
%9 = icmp eq i16 %6, %8 | |
ret i1 %9 | |
} | |
define external ccc ptr @eclair_btree_iterator_current_3(ptr %iter_0) { | |
start: | |
%0 = getelementptr %btree_iterator_t_3, ptr %iter_0, i32 0, i32 1 | |
%1 = load i16, ptr %0 | |
%2 = getelementptr %btree_iterator_t_3, ptr %iter_0, i32 0, i32 0 | |
%3 = load ptr, ptr %2 | |
%4 = getelementptr %node_t_3, ptr %3, i32 0, i32 1, i16 %1 | |
ret ptr %4 | |
} | |
define external ccc void @eclair_btree_iterator_next_3(ptr %iter_0) { | |
start: | |
%stack.ptr_0 = alloca ptr | |
%0 = getelementptr %btree_iterator_t_3, ptr %iter_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = getelementptr %node_t_3, ptr %1, i32 0, i32 0, i32 3 | |
%3 = load i1, ptr %2 | |
%4 = icmp eq i1 %3, 1 | |
br i1 %4, label %if_0, label %end_if_1 | |
if_0: | |
%5 = getelementptr %btree_iterator_t_3, ptr %iter_0, i32 0, i32 1 | |
%6 = load i16, ptr %5 | |
%7 = add i16 1, %6 | |
%8 = getelementptr %btree_iterator_t_3, ptr %iter_0, i32 0, i32 0 | |
%9 = load ptr, ptr %8 | |
%10 = getelementptr %inner_node_t_3, ptr %9, i32 0, i32 1, i16 %7 | |
%11 = load ptr, ptr %10 | |
store ptr %11, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_begin_0: | |
%12 = load ptr, ptr %stack.ptr_0 | |
%13 = getelementptr %node_t_3, ptr %12, i32 0, i32 0, i32 3 | |
%14 = load i1, ptr %13 | |
%15 = icmp eq i1 %14, 1 | |
br i1 %15, label %while_body_0, label %while_end_0 | |
while_body_0: | |
%16 = load ptr, ptr %stack.ptr_0 | |
%17 = getelementptr %inner_node_t_3, ptr %16, i32 0, i32 1, i16 0 | |
%18 = load ptr, ptr %17 | |
store ptr %18, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_end_0: | |
%19 = load ptr, ptr %stack.ptr_0 | |
%20 = getelementptr %btree_iterator_t_3, ptr %iter_0, i32 0, i32 0 | |
store ptr %19, ptr %20 | |
%21 = getelementptr %btree_iterator_t_3, ptr %iter_0, i32 0, i32 1 | |
store i16 0, ptr %21 | |
%22 = getelementptr %node_t_3, ptr %19, i32 0, i32 0, i32 2 | |
%23 = load i16, ptr %22 | |
%24 = icmp ne i16 %23, 0 | |
br i1 %24, label %if_1, label %end_if_0 | |
if_1: | |
ret void | |
end_if_0: | |
br label %leaf.next_0 | |
end_if_1: | |
br label %leaf.next_0 | |
leaf.next_0: | |
%25 = getelementptr %btree_iterator_t_3, ptr %iter_0, i32 0, i32 1 | |
%26 = load i16, ptr %25 | |
%27 = add i16 1, %26 | |
store i16 %27, ptr %25 | |
%28 = getelementptr %btree_iterator_t_3, ptr %iter_0, i32 0, i32 1 | |
%29 = load i16, ptr %28 | |
%30 = getelementptr %btree_iterator_t_3, ptr %iter_0, i32 0, i32 0 | |
%31 = load ptr, ptr %30 | |
%32 = getelementptr %node_t_3, ptr %31, i32 0, i32 0, i32 2 | |
%33 = load i16, ptr %32 | |
%34 = icmp ult i16 %29, %33 | |
br i1 %34, label %if_2, label %end_if_2 | |
if_2: | |
ret void | |
end_if_2: | |
br label %while_begin_1 | |
while_begin_1: | |
%35 = getelementptr %btree_iterator_t_3, ptr %iter_0, i32 0, i32 0 | |
%36 = load ptr, ptr %35 | |
%37 = icmp eq ptr %36, zeroinitializer | |
br i1 %37, label %leaf.no_parent_0, label %leaf.has_parent_0 | |
leaf.no_parent_0: | |
br label %loop.condition.end_0 | |
leaf.has_parent_0: | |
%38 = getelementptr %btree_iterator_t_3, ptr %iter_0, i32 0, i32 1 | |
%39 = load i16, ptr %38 | |
%40 = getelementptr %btree_iterator_t_3, ptr %iter_0, i32 0, i32 0 | |
%41 = load ptr, ptr %40 | |
%42 = getelementptr %node_t_3, ptr %41, i32 0, i32 0, i32 2 | |
%43 = load i16, ptr %42 | |
%44 = icmp eq i16 %39, %43 | |
br label %loop.condition.end_0 | |
loop.condition.end_0: | |
%45 = phi i1 [0, %leaf.no_parent_0], [%44, %leaf.has_parent_0] | |
br i1 %45, label %while_body_1, label %while_end_1 | |
while_body_1: | |
%46 = getelementptr %btree_iterator_t_3, ptr %iter_0, i32 0, i32 0 | |
%47 = load ptr, ptr %46 | |
%48 = getelementptr %node_t_3, ptr %47, i32 0, i32 0, i32 1 | |
%49 = load i16, ptr %48 | |
%50 = getelementptr %btree_iterator_t_3, ptr %iter_0, i32 0, i32 1 | |
store i16 %49, ptr %50 | |
%51 = getelementptr %node_t_3, ptr %47, i32 0, i32 0, i32 0 | |
%52 = load ptr, ptr %51 | |
%53 = getelementptr %btree_iterator_t_3, ptr %iter_0, i32 0, i32 0 | |
store ptr %52, ptr %53 | |
br label %while_begin_1 | |
while_end_1: | |
ret void | |
} | |
define external ccc ptr @eclair_btree_linear_search_lower_bound_3(ptr %val_0, ptr %current_0, ptr %end_0) { | |
start: | |
%stack.ptr_0 = alloca ptr | |
store ptr %current_0, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_begin_0: | |
%0 = load ptr, ptr %stack.ptr_0 | |
%1 = icmp ne ptr %0, %end_0 | |
br i1 %1, label %while_body_0, label %while_end_0 | |
while_body_0: | |
%2 = load ptr, ptr %stack.ptr_0 | |
%3 = call ccc i8 @eclair_btree_value_compare_values_3(ptr %2, ptr %val_0) | |
%4 = icmp ne i8 %3, -1 | |
br i1 %4, label %if_0, label %end_if_0 | |
if_0: | |
ret ptr %2 | |
end_if_0: | |
%5 = getelementptr [4 x i32], ptr %2, i32 1 | |
store ptr %5, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_end_0: | |
ret ptr %end_0 | |
} | |
define external ccc ptr @eclair_btree_linear_search_upper_bound_3(ptr %val_0, ptr %current_0, ptr %end_0) { | |
start: | |
%stack.ptr_0 = alloca ptr | |
store ptr %current_0, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_begin_0: | |
%0 = load ptr, ptr %stack.ptr_0 | |
%1 = icmp ne ptr %0, %end_0 | |
br i1 %1, label %while_body_0, label %while_end_0 | |
while_body_0: | |
%2 = load ptr, ptr %stack.ptr_0 | |
%3 = call ccc i8 @eclair_btree_value_compare_values_3(ptr %2, ptr %val_0) | |
%4 = icmp eq i8 %3, 1 | |
br i1 %4, label %if_0, label %end_if_0 | |
if_0: | |
ret ptr %2 | |
end_if_0: | |
%5 = getelementptr [4 x i32], ptr %2, i32 1 | |
store ptr %5, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_end_0: | |
ret ptr %end_0 | |
} | |
define external ccc void @eclair_btree_init_empty_3(ptr %tree_0) { | |
start: | |
%0 = getelementptr %btree_t_3, ptr %tree_0, i32 0, i32 0 | |
store ptr zeroinitializer, ptr %0 | |
%1 = getelementptr %btree_t_3, ptr %tree_0, i32 0, i32 1 | |
store ptr zeroinitializer, ptr %1 | |
ret void | |
} | |
define external ccc void @eclair_btree_init_3(ptr %tree_0, ptr %start_0, ptr %end_0) { | |
start: | |
call ccc void @eclair_btree_insert_range__3(ptr %tree_0, ptr %start_0, ptr %end_0) | |
ret void | |
} | |
define external ccc void @eclair_btree_destroy_3(ptr %tree_0) { | |
start: | |
call ccc void @eclair_btree_clear_3(ptr %tree_0) | |
ret void | |
} | |
define external ccc i1 @eclair_btree_is_empty_3(ptr %tree_0) { | |
start: | |
%0 = getelementptr %btree_t_3, ptr %tree_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = icmp eq ptr %1, zeroinitializer | |
ret i1 %2 | |
} | |
define external ccc i64 @eclair_btree_size_3(ptr %tree_0) { | |
start: | |
%0 = getelementptr %btree_t_3, ptr %tree_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = icmp eq ptr %1, zeroinitializer | |
br i1 %2, label %null_0, label %not_null_0 | |
null_0: | |
ret i64 0 | |
not_null_0: | |
%3 = call ccc i64 @eclair_btree_node_count_entries_3(ptr %1) | |
ret i64 %3 | |
} | |
define external ccc i16 @eclair_btree_node_split_point_3() { | |
start: | |
%0 = mul i16 3, 15 | |
%1 = udiv i16 %0, 4 | |
%2 = sub i16 15, 2 | |
%3 = icmp ult i16 %1, %2 | |
%4 = select i1 %3, i16 %1, i16 %2 | |
ret i16 %4 | |
} | |
define external ccc void @eclair_btree_node_split_3(ptr %node_0, ptr %root_0) { | |
start: | |
%stack.ptr_0 = alloca i16 | |
%0 = call ccc i16 @eclair_btree_node_split_point_3() | |
%1 = add i16 1, %0 | |
%2 = getelementptr %node_t_3, ptr %node_0, i32 0, i32 0, i32 3 | |
%3 = load i1, ptr %2 | |
%4 = call ccc ptr @eclair_btree_node_new_3(i1 %3) | |
store i16 0, ptr %stack.ptr_0 | |
br label %for_begin_0 | |
for_begin_0: | |
%5 = phi i16 [%1, %start], [%12, %for_body_0] | |
%6 = icmp ult i16 %5, 15 | |
br i1 %6, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%7 = load i16, ptr %stack.ptr_0 | |
%8 = getelementptr %node_t_3, ptr %node_0, i32 0, i32 1, i16 %5 | |
%9 = load [4 x i32], ptr %8 | |
%10 = getelementptr %node_t_3, ptr %4, i32 0, i32 1, i16 %7 | |
store [4 x i32] %9, ptr %10 | |
%11 = add i16 1, %7 | |
store i16 %11, ptr %stack.ptr_0 | |
%12 = add i16 1, %5 | |
br label %for_begin_0 | |
for_end_0: | |
%13 = icmp eq i1 %3, 1 | |
br i1 %13, label %if_0, label %end_if_0 | |
if_0: | |
store i16 0, ptr %stack.ptr_0 | |
br label %for_begin_1 | |
for_begin_1: | |
%14 = phi i16 [%1, %if_0], [%23, %for_body_1] | |
%15 = icmp ule i16 %14, 15 | |
br i1 %15, label %for_body_1, label %for_end_1 | |
for_body_1: | |
%16 = load i16, ptr %stack.ptr_0 | |
%17 = getelementptr %inner_node_t_3, ptr %node_0, i32 0, i32 1, i16 %14 | |
%18 = load ptr, ptr %17 | |
%19 = getelementptr %node_t_3, ptr %18, i32 0, i32 0, i32 0 | |
store ptr %4, ptr %19 | |
%20 = getelementptr %node_t_3, ptr %18, i32 0, i32 0, i32 1 | |
store i16 %16, ptr %20 | |
%21 = getelementptr %inner_node_t_3, ptr %4, i32 0, i32 1, i16 %16 | |
store ptr %18, ptr %21 | |
%22 = add i16 1, %16 | |
store i16 %22, ptr %stack.ptr_0 | |
%23 = add i16 1, %14 | |
br label %for_begin_1 | |
for_end_1: | |
br label %end_if_0 | |
end_if_0: | |
%24 = getelementptr %node_t_3, ptr %node_0, i32 0, i32 0, i32 2 | |
store i16 %0, ptr %24 | |
%25 = sub i16 15, %0 | |
%26 = sub i16 %25, 1 | |
%27 = getelementptr %node_t_3, ptr %4, i32 0, i32 0, i32 2 | |
store i16 %26, ptr %27 | |
call ccc void @eclair_btree_node_grow_parent_3(ptr %node_0, ptr %root_0, ptr %4) | |
ret void | |
} | |
define external ccc void @eclair_btree_node_grow_parent_3(ptr %node_0, ptr %root_0, ptr %sibling_0) { | |
start: | |
%0 = getelementptr %node_t_3, ptr %node_0, i32 0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = icmp eq ptr %1, zeroinitializer | |
%3 = getelementptr %node_t_3, ptr %node_0, i32 0, i32 0, i32 2 | |
%4 = load i16, ptr %3 | |
br i1 %2, label %create_new_root_0, label %insert_new_node_in_parent_0 | |
create_new_root_0: | |
%5 = call ccc ptr @eclair_btree_node_new_3(i1 1) | |
%6 = getelementptr %node_t_3, ptr %5, i32 0, i32 0, i32 2 | |
store i16 1, ptr %6 | |
%7 = getelementptr %node_t_3, ptr %node_0, i32 0, i32 1, i16 %4 | |
%8 = load [4 x i32], ptr %7 | |
%9 = getelementptr %node_t_3, ptr %5, i32 0, i32 1, i16 0 | |
store [4 x i32] %8, ptr %9 | |
%10 = getelementptr %inner_node_t_3, ptr %5, i32 0, i32 1, i16 0 | |
store ptr %node_0, ptr %10 | |
%11 = getelementptr %inner_node_t_3, ptr %5, i32 0, i32 1, i16 1 | |
store ptr %sibling_0, ptr %11 | |
%12 = getelementptr %node_t_3, ptr %node_0, i32 0, i32 0, i32 0 | |
store ptr %5, ptr %12 | |
%13 = getelementptr %node_t_3, ptr %sibling_0, i32 0, i32 0, i32 0 | |
store ptr %5, ptr %13 | |
%14 = getelementptr %node_t_3, ptr %sibling_0, i32 0, i32 0, i32 1 | |
store i16 1, ptr %14 | |
store ptr %5, ptr %root_0 | |
ret void | |
insert_new_node_in_parent_0: | |
%15 = getelementptr %node_t_3, ptr %node_0, i32 0, i32 0, i32 1 | |
%16 = load i16, ptr %15 | |
%17 = getelementptr %node_t_3, ptr %node_0, i32 0, i32 1, i16 %4 | |
call ccc void @eclair_btree_node_insert_inner_3(ptr %1, ptr %root_0, i16 %16, ptr %node_0, ptr %17, ptr %sibling_0) | |
ret void | |
} | |
define external ccc void @eclair_btree_node_insert_inner_3(ptr %node_0, ptr %root_0, i16 %pos_0, ptr %predecessor_0, ptr %key_0, ptr %new_node_0) { | |
start: | |
%stack.ptr_0 = alloca i16 | |
store i16 %pos_0, ptr %stack.ptr_0 | |
%0 = getelementptr %node_t_3, ptr %node_0, i32 0, i32 0, i32 2 | |
%1 = load i16, ptr %0 | |
%2 = icmp uge i16 %1, 15 | |
br i1 %2, label %if_0, label %end_if_1 | |
if_0: | |
%3 = load i16, ptr %stack.ptr_0 | |
%4 = call ccc i16 @eclair_btree_node_rebalance_or_split_3(ptr %node_0, ptr %root_0, i16 %pos_0) | |
%5 = sub i16 %3, %4 | |
store i16 %5, ptr %stack.ptr_0 | |
%6 = getelementptr %node_t_3, ptr %node_0, i32 0, i32 0, i32 2 | |
%7 = load i16, ptr %6 | |
%8 = icmp ugt i16 %5, %7 | |
br i1 %8, label %if_1, label %end_if_0 | |
if_1: | |
%9 = sub i16 %5, %7 | |
%10 = sub i16 %9, 1 | |
store i16 %10, ptr %stack.ptr_0 | |
%11 = getelementptr %node_t_3, ptr %node_0, i32 0, i32 0, i32 0 | |
%12 = load ptr, ptr %11 | |
%13 = getelementptr %node_t_3, ptr %node_0, i32 0, i32 0, i32 1 | |
%14 = load i16, ptr %13 | |
%15 = add i16 1, %14 | |
%16 = getelementptr %inner_node_t_3, ptr %12, i32 0, i32 1, i16 %15 | |
%17 = load ptr, ptr %16 | |
call ccc void @eclair_btree_node_insert_inner_3(ptr %17, ptr %root_0, i16 %10, ptr %predecessor_0, ptr %key_0, ptr %new_node_0) | |
ret void | |
end_if_0: | |
br label %end_if_1 | |
end_if_1: | |
%18 = getelementptr %node_t_3, ptr %node_0, i32 0, i32 0, i32 2 | |
%19 = load i16, ptr %18 | |
%20 = sub i16 %19, 1 | |
%21 = load i16, ptr %stack.ptr_0 | |
br label %for_begin_0 | |
for_begin_0: | |
%22 = phi i16 [%20, %end_if_1], [%37, %for_body_0] | |
%23 = icmp uge i16 %22, %21 | |
br i1 %23, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%24 = add i16 %22, 1 | |
%25 = add i16 %22, 2 | |
%26 = getelementptr %node_t_3, ptr %node_0, i32 0, i32 1, i16 %22 | |
%27 = load [4 x i32], ptr %26 | |
%28 = getelementptr %node_t_3, ptr %node_0, i32 0, i32 1, i16 %24 | |
store [4 x i32] %27, ptr %28 | |
%29 = getelementptr %inner_node_t_3, ptr %node_0, i32 0, i32 1, i16 %24 | |
%30 = load ptr, ptr %29 | |
%31 = getelementptr %inner_node_t_3, ptr %node_0, i32 0, i32 1, i16 %25 | |
store ptr %30, ptr %31 | |
%32 = getelementptr %inner_node_t_3, ptr %node_0, i32 0, i32 1, i16 %25 | |
%33 = load ptr, ptr %32 | |
%34 = getelementptr %node_t_3, ptr %33, i32 0, i32 0, i32 1 | |
%35 = load i16, ptr %34 | |
%36 = add i16 1, %35 | |
store i16 %36, ptr %34 | |
%37 = sub i16 %22, 1 | |
br label %for_begin_0 | |
for_end_0: | |
%38 = load [4 x i32], ptr %key_0 | |
%39 = getelementptr %node_t_3, ptr %node_0, i32 0, i32 1, i16 %21 | |
store [4 x i32] %38, ptr %39 | |
%40 = add i16 %21, 1 | |
%41 = getelementptr %inner_node_t_3, ptr %node_0, i32 0, i32 1, i16 %40 | |
store ptr %new_node_0, ptr %41 | |
%42 = getelementptr %node_t_3, ptr %new_node_0, i32 0, i32 0, i32 0 | |
store ptr %node_0, ptr %42 | |
%43 = getelementptr %node_t_3, ptr %new_node_0, i32 0, i32 0, i32 1 | |
store i16 %40, ptr %43 | |
%44 = getelementptr %node_t_3, ptr %node_0, i32 0, i32 0, i32 2 | |
%45 = load i16, ptr %44 | |
%46 = add i16 1, %45 | |
store i16 %46, ptr %44 | |
ret void | |
} | |
define external ccc i16 @eclair_btree_node_rebalance_or_split_3(ptr %node_0, ptr %root_0, i16 %idx_0) { | |
start: | |
%0 = getelementptr %node_t_3, ptr %node_0, i32 0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = getelementptr %node_t_3, ptr %node_0, i32 0, i32 0, i32 1 | |
%3 = load i16, ptr %2 | |
%4 = icmp ne ptr %1, zeroinitializer | |
%5 = icmp ugt i16 %3, 0 | |
%6 = and i1 %4, %5 | |
br i1 %6, label %rebalance_0, label %split_0 | |
rebalance_0: | |
%7 = sub i16 %3, 1 | |
%8 = getelementptr %inner_node_t_3, ptr %1, i32 0, i32 1, i16 %7 | |
%9 = load ptr, ptr %8 | |
%10 = getelementptr %node_t_3, ptr %9, i32 0, i32 0, i32 2 | |
%11 = load i16, ptr %10 | |
%12 = sub i16 15, %11 | |
%13 = icmp slt i16 %12, %idx_0 | |
%14 = select i1 %13, i16 %12, i16 %idx_0 | |
%15 = icmp ugt i16 %14, 0 | |
br i1 %15, label %if_0, label %end_if_1 | |
if_0: | |
%16 = getelementptr %node_t_3, ptr %node_0, i32 0, i32 0, i32 1 | |
%17 = load i16, ptr %16 | |
%18 = sub i16 %17, 1 | |
%19 = getelementptr %inner_node_t_3, ptr %1, i32 0, i32 0, i32 1, i16 %18 | |
%20 = load [4 x i32], ptr %19 | |
%21 = getelementptr %node_t_3, ptr %9, i32 0, i32 0, i32 2 | |
%22 = load i16, ptr %21 | |
%23 = getelementptr %node_t_3, ptr %9, i32 0, i32 1, i16 %22 | |
store [4 x i32] %20, ptr %23 | |
%24 = sub i16 %14, 1 | |
br label %for_begin_0 | |
for_begin_0: | |
%25 = phi i16 [0, %if_0], [%32, %for_body_0] | |
%26 = icmp ult i16 %25, %24 | |
br i1 %26, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%27 = add i16 %22, 1 | |
%28 = add i16 %25, %27 | |
%29 = getelementptr %node_t_3, ptr %node_0, i32 0, i32 1, i16 %25 | |
%30 = load [4 x i32], ptr %29 | |
%31 = getelementptr %node_t_3, ptr %9, i32 0, i32 1, i16 %28 | |
store [4 x i32] %30, ptr %31 | |
%32 = add i16 1, %25 | |
br label %for_begin_0 | |
for_end_0: | |
%33 = getelementptr %node_t_3, ptr %node_0, i32 0, i32 1, i16 %24 | |
%34 = load [4 x i32], ptr %33 | |
store [4 x i32] %34, ptr %19 | |
%35 = getelementptr %node_t_3, ptr %node_0, i32 0, i32 0, i32 2 | |
%36 = load i16, ptr %35 | |
%37 = sub i16 %36, %14 | |
br label %for_begin_1 | |
for_begin_1: | |
%38 = phi i16 [0, %for_end_0], [%44, %for_body_1] | |
%39 = icmp ult i16 %38, %37 | |
br i1 %39, label %for_body_1, label %for_end_1 | |
for_body_1: | |
%40 = add i16 %38, %14 | |
%41 = getelementptr %node_t_3, ptr %node_0, i32 0, i32 1, i16 %40 | |
%42 = load [4 x i32], ptr %41 | |
%43 = getelementptr %node_t_3, ptr %node_0, i32 0, i32 1, i16 %38 | |
store [4 x i32] %42, ptr %43 | |
%44 = add i16 1, %38 | |
br label %for_begin_1 | |
for_end_1: | |
%45 = getelementptr %node_t_3, ptr %node_0, i32 0, i32 0, i32 3 | |
%46 = load i1, ptr %45 | |
%47 = icmp eq i1 %46, 1 | |
br i1 %47, label %if_1, label %end_if_0 | |
if_1: | |
br label %for_begin_2 | |
for_begin_2: | |
%48 = phi i16 [0, %if_1], [%61, %for_body_2] | |
%49 = icmp ult i16 %48, %14 | |
br i1 %49, label %for_body_2, label %for_end_2 | |
for_body_2: | |
%50 = getelementptr %node_t_3, ptr %9, i32 0, i32 0, i32 2 | |
%51 = load i16, ptr %50 | |
%52 = add i16 %51, 1 | |
%53 = add i16 %48, %52 | |
%54 = getelementptr %inner_node_t_3, ptr %node_0, i32 0, i32 1, i16 %48 | |
%55 = load ptr, ptr %54 | |
%56 = getelementptr %inner_node_t_3, ptr %9, i32 0, i32 1, i16 %53 | |
store ptr %55, ptr %56 | |
%57 = getelementptr %inner_node_t_3, ptr %9, i32 0, i32 1, i16 %53 | |
%58 = load ptr, ptr %57 | |
%59 = getelementptr %node_t_3, ptr %58, i32 0, i32 0, i32 0 | |
store ptr %9, ptr %59 | |
%60 = getelementptr %node_t_3, ptr %58, i32 0, i32 0, i32 1 | |
store i16 %53, ptr %60 | |
%61 = add i16 1, %48 | |
br label %for_begin_2 | |
for_end_2: | |
%62 = sub i16 %36, %14 | |
%63 = add i16 1, %62 | |
br label %for_begin_3 | |
for_begin_3: | |
%64 = phi i16 [0, %for_end_2], [%73, %for_body_3] | |
%65 = icmp ult i16 %64, %63 | |
br i1 %65, label %for_body_3, label %for_end_3 | |
for_body_3: | |
%66 = add i16 %64, %14 | |
%67 = getelementptr %inner_node_t_3, ptr %node_0, i32 0, i32 1, i16 %66 | |
%68 = load ptr, ptr %67 | |
%69 = getelementptr %inner_node_t_3, ptr %node_0, i32 0, i32 1, i16 %64 | |
store ptr %68, ptr %69 | |
%70 = getelementptr %inner_node_t_3, ptr %node_0, i32 0, i32 1, i16 %64 | |
%71 = load ptr, ptr %70 | |
%72 = getelementptr %node_t_3, ptr %71, i32 0, i32 0, i32 1 | |
store i16 %64, ptr %72 | |
%73 = add i16 1, %64 | |
br label %for_begin_3 | |
for_end_3: | |
br label %end_if_0 | |
end_if_0: | |
%74 = getelementptr %node_t_3, ptr %9, i32 0, i32 0, i32 2 | |
%75 = load i16, ptr %74 | |
%76 = add i16 %75, %14 | |
store i16 %76, ptr %74 | |
%77 = getelementptr %node_t_3, ptr %node_0, i32 0, i32 0, i32 2 | |
%78 = load i16, ptr %77 | |
%79 = sub i16 %78, %14 | |
store i16 %79, ptr %77 | |
ret i16 %14 | |
end_if_1: | |
br label %split_0 | |
split_0: | |
call ccc void @eclair_btree_node_split_3(ptr %node_0, ptr %root_0) | |
ret i16 0 | |
} | |
define external ccc i1 @eclair_btree_insert_value_3(ptr %tree_0, ptr %val_0) { | |
start: | |
%stack.ptr_0 = alloca ptr | |
%stack.ptr_1 = alloca i16 | |
%0 = call ccc i1 @eclair_btree_is_empty_3(ptr %tree_0) | |
br i1 %0, label %empty_0, label %non_empty_0 | |
empty_0: | |
%1 = call ccc ptr @eclair_btree_node_new_3(i1 0) | |
%2 = getelementptr %node_t_3, ptr %1, i32 0, i32 0, i32 2 | |
store i16 1, ptr %2 | |
%3 = load [4 x i32], ptr %val_0 | |
%4 = getelementptr %node_t_3, ptr %1, i32 0, i32 1, i16 0 | |
store [4 x i32] %3, ptr %4 | |
%5 = getelementptr %btree_t_3, ptr %tree_0, i32 0, i32 0 | |
store ptr %1, ptr %5 | |
%6 = getelementptr %btree_t_3, ptr %tree_0, i32 0, i32 1 | |
store ptr %1, ptr %6 | |
br label %inserted_new_value_0 | |
non_empty_0: | |
%7 = getelementptr %btree_t_3, ptr %tree_0, i32 0, i32 0 | |
%8 = load ptr, ptr %7 | |
store ptr %8, ptr %stack.ptr_0 | |
br label %loop_0 | |
loop_0: | |
%9 = load ptr, ptr %stack.ptr_0 | |
%10 = getelementptr %node_t_3, ptr %9, i32 0, i32 0, i32 3 | |
%11 = load i1, ptr %10 | |
%12 = icmp eq i1 %11, 1 | |
br i1 %12, label %inner_0, label %leaf_0 | |
inner_0: | |
%13 = getelementptr %node_t_3, ptr %9, i32 0, i32 0, i32 2 | |
%14 = load i16, ptr %13 | |
%15 = getelementptr %node_t_3, ptr %9, i32 0, i32 1, i16 0 | |
%16 = getelementptr %node_t_3, ptr %9, i32 0, i32 1, i16 %14 | |
%17 = call ccc ptr @eclair_btree_linear_search_lower_bound_3(ptr %val_0, ptr %15, ptr %16) | |
%18 = ptrtoint ptr %17 to i64 | |
%19 = ptrtoint ptr %15 to i64 | |
%20 = sub i64 %18, %19 | |
%21 = trunc i64 %20 to i16 | |
%22 = udiv i16 %21, 16 | |
%23 = icmp ne ptr %17, %16 | |
%24 = call ccc i8 @eclair_btree_value_compare_values_3(ptr %17, ptr %val_0) | |
%25 = icmp eq i8 0, %24 | |
%26 = and i1 %23, %25 | |
br i1 %26, label %no_insert_0, label %inner_continue_insert_0 | |
inner_continue_insert_0: | |
%27 = getelementptr %inner_node_t_3, ptr %9, i32 0, i32 1, i16 %22 | |
%28 = load ptr, ptr %27 | |
store ptr %28, ptr %stack.ptr_0 | |
br label %loop_0 | |
leaf_0: | |
%29 = getelementptr %node_t_3, ptr %9, i32 0, i32 0, i32 2 | |
%30 = load i16, ptr %29 | |
%31 = getelementptr %node_t_3, ptr %9, i32 0, i32 1, i16 0 | |
%32 = getelementptr %node_t_3, ptr %9, i32 0, i32 1, i16 %30 | |
%33 = call ccc ptr @eclair_btree_linear_search_upper_bound_3(ptr %val_0, ptr %31, ptr %32) | |
%34 = ptrtoint ptr %33 to i64 | |
%35 = ptrtoint ptr %31 to i64 | |
%36 = sub i64 %34, %35 | |
%37 = trunc i64 %36 to i16 | |
%38 = udiv i16 %37, 16 | |
store i16 %38, ptr %stack.ptr_1 | |
%39 = icmp ne ptr %33, %31 | |
%40 = getelementptr [4 x i32], ptr %33, i32 -1 | |
%41 = call ccc i8 @eclair_btree_value_compare_values_3(ptr %40, ptr %val_0) | |
%42 = icmp eq i8 0, %41 | |
%43 = and i1 %39, %42 | |
br i1 %43, label %no_insert_0, label %leaf_continue_insert_0 | |
leaf_continue_insert_0: | |
%44 = icmp uge i16 %30, 15 | |
br i1 %44, label %split_0, label %no_split_0 | |
split_0: | |
%45 = getelementptr %btree_t_3, ptr %tree_0, i32 0, i32 0 | |
%46 = load i16, ptr %stack.ptr_1 | |
%47 = call ccc i16 @eclair_btree_node_rebalance_or_split_3(ptr %9, ptr %45, i16 %46) | |
%48 = sub i16 %46, %47 | |
store i16 %48, ptr %stack.ptr_1 | |
%49 = getelementptr %node_t_3, ptr %9, i32 0, i32 0, i32 2 | |
%50 = load i16, ptr %49 | |
%51 = icmp ugt i16 %48, %50 | |
br i1 %51, label %if_0, label %end_if_0 | |
if_0: | |
%52 = add i16 %50, 1 | |
%53 = sub i16 %48, %52 | |
store i16 %53, ptr %stack.ptr_1 | |
%54 = getelementptr %node_t_3, ptr %9, i32 0, i32 0, i32 0 | |
%55 = load ptr, ptr %54 | |
%56 = getelementptr %node_t_3, ptr %9, i32 0, i32 0, i32 1 | |
%57 = load i16, ptr %56 | |
%58 = add i16 1, %57 | |
%59 = getelementptr %inner_node_t_3, ptr %55, i32 0, i32 1, i16 %58 | |
%60 = load ptr, ptr %59 | |
store ptr %60, ptr %stack.ptr_0 | |
br label %end_if_0 | |
end_if_0: | |
br label %no_split_0 | |
no_split_0: | |
%61 = load ptr, ptr %stack.ptr_0 | |
%62 = load i16, ptr %stack.ptr_1 | |
%63 = getelementptr %node_t_3, ptr %61, i32 0, i32 0, i32 2 | |
%64 = load i16, ptr %63 | |
br label %for_begin_0 | |
for_begin_0: | |
%65 = phi i16 [%64, %no_split_0], [%71, %for_body_0] | |
%66 = icmp ugt i16 %65, %62 | |
br i1 %66, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%67 = sub i16 %65, 1 | |
%68 = getelementptr %node_t_3, ptr %61, i32 0, i32 1, i16 %67 | |
%69 = load [4 x i32], ptr %68 | |
%70 = getelementptr %node_t_3, ptr %61, i32 0, i32 1, i16 %65 | |
store [4 x i32] %69, ptr %70 | |
%71 = sub i16 %65, 1 | |
br label %for_begin_0 | |
for_end_0: | |
%72 = load [4 x i32], ptr %val_0 | |
%73 = getelementptr %node_t_3, ptr %61, i32 0, i32 1, i16 %62 | |
store [4 x i32] %72, ptr %73 | |
%74 = getelementptr %node_t_3, ptr %61, i32 0, i32 0, i32 2 | |
%75 = load i16, ptr %74 | |
%76 = add i16 1, %75 | |
store i16 %76, ptr %74 | |
br label %inserted_new_value_0 | |
no_insert_0: | |
ret i1 0 | |
inserted_new_value_0: | |
ret i1 1 | |
} | |
define external ccc void @eclair_btree_insert_range__3(ptr %tree_0, ptr %begin_0, ptr %end_0) { | |
start: | |
br label %while_begin_0 | |
while_begin_0: | |
%0 = call ccc i1 @eclair_btree_iterator_is_equal_3(ptr %begin_0, ptr %end_0) | |
%1 = select i1 %0, i1 0, i1 1 | |
br i1 %1, label %while_body_0, label %while_end_0 | |
while_body_0: | |
%2 = call ccc ptr @eclair_btree_iterator_current_3(ptr %begin_0) | |
%3 = call ccc i1 @eclair_btree_insert_value_3(ptr %tree_0, ptr %2) | |
call ccc void @eclair_btree_iterator_next_3(ptr %begin_0) | |
br label %while_begin_0 | |
while_end_0: | |
ret void | |
} | |
define external ccc void @eclair_btree_begin_3(ptr %tree_0, ptr %result_0) { | |
start: | |
%0 = getelementptr %btree_t_3, ptr %tree_0, i32 0, i32 1 | |
%1 = load ptr, ptr %0 | |
%2 = getelementptr %btree_iterator_t_3, ptr %result_0, i32 0, i32 0 | |
store ptr %1, ptr %2 | |
%3 = getelementptr %btree_iterator_t_3, ptr %result_0, i32 0, i32 1 | |
store i16 0, ptr %3 | |
ret void | |
} | |
define external ccc void @eclair_btree_end_3(ptr %tree_0, ptr %result_0) { | |
start: | |
call ccc void @eclair_btree_iterator_end_init_3(ptr %result_0) | |
ret void | |
} | |
define external ccc i1 @eclair_btree_contains_3(ptr %tree_0, ptr %val_0) { | |
start: | |
%stack.ptr_0 = alloca %btree_iterator_t_3, i32 1 | |
%stack.ptr_1 = alloca %btree_iterator_t_3, i32 1 | |
call ccc void @eclair_btree_find_3(ptr %tree_0, ptr %val_0, ptr %stack.ptr_0) | |
call ccc void @eclair_btree_end_3(ptr %tree_0, ptr %stack.ptr_1) | |
%0 = call ccc i1 @eclair_btree_iterator_is_equal_3(ptr %stack.ptr_0, ptr %stack.ptr_1) | |
%1 = select i1 %0, i1 0, i1 1 | |
ret i1 %1 | |
} | |
define external ccc void @eclair_btree_find_3(ptr %tree_0, ptr %val_0, ptr %result_0) { | |
start: | |
%stack.ptr_0 = alloca ptr | |
%0 = call ccc i1 @eclair_btree_is_empty_3(ptr %tree_0) | |
br i1 %0, label %if_0, label %end_if_0 | |
if_0: | |
call ccc void @eclair_btree_iterator_end_init_3(ptr %result_0) | |
ret void | |
end_if_0: | |
%1 = getelementptr %btree_t_3, ptr %tree_0, i32 0, i32 0 | |
%2 = load ptr, ptr %1 | |
store ptr %2, ptr %stack.ptr_0 | |
br label %loop_0 | |
loop_0: | |
%3 = load ptr, ptr %stack.ptr_0 | |
%4 = getelementptr %node_t_3, ptr %3, i32 0, i32 0, i32 2 | |
%5 = load i16, ptr %4 | |
%6 = getelementptr %node_t_3, ptr %3, i32 0, i32 1, i16 0 | |
%7 = getelementptr %node_t_3, ptr %3, i32 0, i32 1, i16 %5 | |
%8 = call ccc ptr @eclair_btree_linear_search_lower_bound_3(ptr %val_0, ptr %6, ptr %7) | |
%9 = ptrtoint ptr %8 to i64 | |
%10 = ptrtoint ptr %6 to i64 | |
%11 = sub i64 %9, %10 | |
%12 = trunc i64 %11 to i16 | |
%13 = udiv i16 %12, 16 | |
%14 = icmp ult ptr %8, %7 | |
%15 = call ccc i8 @eclair_btree_value_compare_values_3(ptr %8, ptr %val_0) | |
%16 = icmp eq i8 0, %15 | |
%17 = and i1 %14, %16 | |
br i1 %17, label %if_1, label %end_if_1 | |
if_1: | |
call ccc void @eclair_btree_iterator_init_3(ptr %result_0, ptr %3, i16 %13) | |
ret void | |
end_if_1: | |
%18 = getelementptr %node_t_3, ptr %3, i32 0, i32 0, i32 3 | |
%19 = load i1, ptr %18 | |
%20 = icmp eq i1 %19, 0 | |
br i1 %20, label %if_2, label %end_if_2 | |
if_2: | |
call ccc void @eclair_btree_iterator_end_init_3(ptr %result_0) | |
ret void | |
end_if_2: | |
%21 = getelementptr %inner_node_t_3, ptr %3, i32 0, i32 1, i16 %13 | |
%22 = load ptr, ptr %21 | |
store ptr %22, ptr %stack.ptr_0 | |
br label %loop_0 | |
} | |
define external ccc void @eclair_btree_lower_bound_3(ptr %tree_0, ptr %val_0, ptr %result_0) { | |
start: | |
%stack.ptr_0 = alloca %btree_iterator_t_3, i32 1 | |
%stack.ptr_1 = alloca ptr | |
%0 = call ccc i1 @eclair_btree_is_empty_3(ptr %tree_0) | |
br i1 %0, label %if_0, label %end_if_0 | |
if_0: | |
call ccc void @eclair_btree_iterator_end_init_3(ptr %result_0) | |
ret void | |
end_if_0: | |
call ccc void @eclair_btree_iterator_end_init_3(ptr %stack.ptr_0) | |
%1 = getelementptr %btree_t_3, ptr %tree_0, i32 0, i32 0 | |
%2 = load ptr, ptr %1 | |
store ptr %2, ptr %stack.ptr_1 | |
br label %loop_0 | |
loop_0: | |
%3 = load ptr, ptr %stack.ptr_1 | |
%4 = getelementptr %node_t_3, ptr %3, i32 0, i32 0, i32 2 | |
%5 = load i16, ptr %4 | |
%6 = getelementptr %node_t_3, ptr %3, i32 0, i32 1, i16 0 | |
%7 = getelementptr %node_t_3, ptr %3, i32 0, i32 1, i16 %5 | |
%8 = call ccc ptr @eclair_btree_linear_search_lower_bound_3(ptr %val_0, ptr %6, ptr %7) | |
%9 = ptrtoint ptr %8 to i64 | |
%10 = ptrtoint ptr %6 to i64 | |
%11 = sub i64 %9, %10 | |
%12 = trunc i64 %11 to i16 | |
%13 = udiv i16 %12, 16 | |
%14 = getelementptr %node_t_3, ptr %3, i32 0, i32 0, i32 3 | |
%15 = load i1, ptr %14 | |
%16 = icmp eq i1 %15, 0 | |
br i1 %16, label %if_1, label %end_if_1 | |
if_1: | |
%17 = icmp eq ptr %8, %7 | |
br i1 %17, label %handle_last_0, label %handle_not_last_0 | |
handle_last_0: | |
%18 = getelementptr %btree_iterator_t_3, ptr %stack.ptr_0, i32 0, i32 0 | |
%19 = load ptr, ptr %18 | |
%20 = getelementptr %btree_iterator_t_3, ptr %result_0, i32 0, i32 0 | |
store ptr %19, ptr %20 | |
%21 = getelementptr %btree_iterator_t_3, ptr %stack.ptr_0, i32 0, i32 1 | |
%22 = load i16, ptr %21 | |
%23 = getelementptr %btree_iterator_t_3, ptr %result_0, i32 0, i32 1 | |
store i16 %22, ptr %23 | |
ret void | |
handle_not_last_0: | |
call ccc void @eclair_btree_iterator_init_3(ptr %result_0, ptr %3, i16 %13) | |
ret void | |
end_if_1: | |
%24 = icmp ne ptr %8, %7 | |
%25 = call ccc i8 @eclair_btree_value_compare_values_3(ptr %8, ptr %val_0) | |
%26 = icmp eq i8 0, %25 | |
%27 = and i1 %24, %26 | |
br i1 %27, label %if_2, label %end_if_2 | |
if_2: | |
call ccc void @eclair_btree_iterator_init_3(ptr %result_0, ptr %3, i16 %13) | |
ret void | |
end_if_2: | |
br i1 %24, label %if_3, label %end_if_3 | |
if_3: | |
call ccc void @eclair_btree_iterator_init_3(ptr %stack.ptr_0, ptr %3, i16 %13) | |
br label %end_if_3 | |
end_if_3: | |
%28 = getelementptr %inner_node_t_3, ptr %3, i32 0, i32 1, i16 %13 | |
%29 = load ptr, ptr %28 | |
store ptr %29, ptr %stack.ptr_1 | |
br label %loop_0 | |
} | |
define external ccc void @eclair_btree_upper_bound_3(ptr %tree_0, ptr %val_0, ptr %result_0) { | |
start: | |
%stack.ptr_0 = alloca %btree_iterator_t_3, i32 1 | |
%stack.ptr_1 = alloca ptr | |
%0 = call ccc i1 @eclair_btree_is_empty_3(ptr %tree_0) | |
br i1 %0, label %if_0, label %end_if_0 | |
if_0: | |
call ccc void @eclair_btree_iterator_end_init_3(ptr %result_0) | |
ret void | |
end_if_0: | |
call ccc void @eclair_btree_iterator_end_init_3(ptr %stack.ptr_0) | |
%1 = getelementptr %btree_t_3, ptr %tree_0, i32 0, i32 0 | |
%2 = load ptr, ptr %1 | |
store ptr %2, ptr %stack.ptr_1 | |
br label %loop_0 | |
loop_0: | |
%3 = load ptr, ptr %stack.ptr_1 | |
%4 = getelementptr %node_t_3, ptr %3, i32 0, i32 0, i32 2 | |
%5 = load i16, ptr %4 | |
%6 = getelementptr %node_t_3, ptr %3, i32 0, i32 1, i16 0 | |
%7 = getelementptr %node_t_3, ptr %3, i32 0, i32 1, i16 %5 | |
%8 = call ccc ptr @eclair_btree_linear_search_upper_bound_3(ptr %val_0, ptr %6, ptr %7) | |
%9 = ptrtoint ptr %8 to i64 | |
%10 = ptrtoint ptr %6 to i64 | |
%11 = sub i64 %9, %10 | |
%12 = trunc i64 %11 to i16 | |
%13 = udiv i16 %12, 16 | |
%14 = getelementptr %node_t_3, ptr %3, i32 0, i32 0, i32 3 | |
%15 = load i1, ptr %14 | |
%16 = icmp eq i1 %15, 0 | |
br i1 %16, label %if_1, label %end_if_1 | |
if_1: | |
%17 = icmp eq ptr %8, %7 | |
br i1 %17, label %handle_last_0, label %handle_not_last_0 | |
handle_last_0: | |
%18 = getelementptr %btree_iterator_t_3, ptr %stack.ptr_0, i32 0, i32 0 | |
%19 = load ptr, ptr %18 | |
%20 = getelementptr %btree_iterator_t_3, ptr %result_0, i32 0, i32 0 | |
store ptr %19, ptr %20 | |
%21 = getelementptr %btree_iterator_t_3, ptr %stack.ptr_0, i32 0, i32 1 | |
%22 = load i16, ptr %21 | |
%23 = getelementptr %btree_iterator_t_3, ptr %result_0, i32 0, i32 1 | |
store i16 %22, ptr %23 | |
ret void | |
handle_not_last_0: | |
call ccc void @eclair_btree_iterator_init_3(ptr %result_0, ptr %3, i16 %13) | |
ret void | |
end_if_1: | |
%24 = icmp ne ptr %8, %7 | |
br i1 %24, label %if_2, label %end_if_2 | |
if_2: | |
call ccc void @eclair_btree_iterator_init_3(ptr %result_0, ptr %3, i16 %13) | |
br label %end_if_2 | |
end_if_2: | |
%25 = getelementptr %inner_node_t_3, ptr %3, i32 0, i32 1, i16 %13 | |
%26 = load ptr, ptr %25 | |
store ptr %26, ptr %stack.ptr_1 | |
br label %loop_0 | |
} | |
define external ccc void @eclair_btree_node_delete_3(ptr %node_0) { | |
start: | |
%0 = getelementptr %node_t_3, ptr %node_0, i32 0, i32 0, i32 3 | |
%1 = load i1, ptr %0 | |
%2 = icmp eq i1 %1, 1 | |
br i1 %2, label %if_0, label %end_if_1 | |
if_0: | |
%3 = getelementptr %node_t_3, ptr %node_0, i32 0, i32 0, i32 2 | |
%4 = load i16, ptr %3 | |
br label %for_begin_0 | |
for_begin_0: | |
%5 = phi i16 [0, %if_0], [%10, %end_if_0] | |
%6 = icmp ule i16 %5, %4 | |
br i1 %6, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%7 = getelementptr %inner_node_t_3, ptr %node_0, i32 0, i32 1, i16 %5 | |
%8 = load ptr, ptr %7 | |
%9 = icmp ne ptr %8, zeroinitializer | |
br i1 %9, label %if_1, label %end_if_0 | |
if_1: | |
call ccc void @eclair_btree_node_delete_3(ptr %8) | |
br label %end_if_0 | |
end_if_0: | |
%10 = add i16 1, %5 | |
br label %for_begin_0 | |
for_end_0: | |
br label %end_if_1 | |
end_if_1: | |
call ccc void @free(ptr %node_0) | |
ret void | |
} | |
define external ccc void @eclair_btree_clear_3(ptr %tree_0) { | |
start: | |
%0 = getelementptr %btree_t_3, ptr %tree_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = icmp ne ptr %1, zeroinitializer | |
br i1 %2, label %if_0, label %end_if_0 | |
if_0: | |
call ccc void @eclair_btree_node_delete_3(ptr %1) | |
%3 = getelementptr %btree_t_3, ptr %tree_0, i32 0, i32 0 | |
store ptr zeroinitializer, ptr %3 | |
%4 = getelementptr %btree_t_3, ptr %tree_0, i32 0, i32 1 | |
store ptr zeroinitializer, ptr %4 | |
br label %end_if_0 | |
end_if_0: | |
ret void | |
} | |
define external ccc void @eclair_btree_swap_3(ptr %lhs_0, ptr %rhs_0) { | |
start: | |
%0 = getelementptr %btree_t_3, ptr %lhs_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = getelementptr %btree_t_3, ptr %rhs_0, i32 0, i32 0 | |
%3 = load ptr, ptr %2 | |
%4 = getelementptr %btree_t_3, ptr %lhs_0, i32 0, i32 0 | |
store ptr %3, ptr %4 | |
%5 = getelementptr %btree_t_3, ptr %rhs_0, i32 0, i32 0 | |
store ptr %1, ptr %5 | |
%6 = getelementptr %btree_t_3, ptr %lhs_0, i32 0, i32 1 | |
%7 = load ptr, ptr %6 | |
%8 = getelementptr %btree_t_3, ptr %rhs_0, i32 0, i32 1 | |
%9 = load ptr, ptr %8 | |
%10 = getelementptr %btree_t_3, ptr %lhs_0, i32 0, i32 1 | |
store ptr %9, ptr %10 | |
%11 = getelementptr %btree_t_3, ptr %rhs_0, i32 0, i32 1 | |
store ptr %7, ptr %11 | |
ret void | |
} | |
%node_data_t_4 = type {ptr, i16, i16, i1} | |
%node_t_4 = type {%node_data_t_4, [15 x [4 x i32]]} | |
%inner_node_t_4 = type {%node_t_4, [16 x ptr]} | |
%btree_iterator_t_4 = type {ptr, i16} | |
%btree_t_4 = type {ptr, ptr} | |
define external ccc i8 @eclair_btree_value_compare_4(i32 %lhs_0, i32 %rhs_0) { | |
start: | |
%0 = icmp ult i32 %lhs_0, %rhs_0 | |
br i1 %0, label %if_0, label %end_if_0 | |
if_0: | |
ret i8 -1 | |
end_if_0: | |
%1 = icmp ugt i32 %lhs_0, %rhs_0 | |
%2 = select i1 %1, i8 1, i8 0 | |
ret i8 %2 | |
} | |
define external ccc i8 @eclair_btree_value_compare_values_4(ptr %lhs_0, ptr %rhs_0) { | |
start: | |
br label %comparison_0 | |
comparison_0: | |
%0 = getelementptr [4 x i32], ptr %lhs_0, i32 0, i32 0 | |
%1 = getelementptr [4 x i32], ptr %rhs_0, i32 0, i32 0 | |
%2 = load i32, ptr %0 | |
%3 = load i32, ptr %1 | |
%4 = call ccc i8 @eclair_btree_value_compare_4(i32 %2, i32 %3) | |
%5 = icmp eq i8 %4, 0 | |
br i1 %5, label %comparison_3, label %end_0 | |
comparison_1: | |
%6 = getelementptr [4 x i32], ptr %lhs_0, i32 0, i32 1 | |
%7 = getelementptr [4 x i32], ptr %rhs_0, i32 0, i32 1 | |
%8 = load i32, ptr %6 | |
%9 = load i32, ptr %7 | |
%10 = call ccc i8 @eclair_btree_value_compare_4(i32 %8, i32 %9) | |
%11 = icmp eq i8 %10, 0 | |
br i1 %11, label %comparison_3, label %end_0 | |
comparison_2: | |
%12 = getelementptr [4 x i32], ptr %lhs_0, i32 0, i32 2 | |
%13 = getelementptr [4 x i32], ptr %rhs_0, i32 0, i32 2 | |
%14 = load i32, ptr %12 | |
%15 = load i32, ptr %13 | |
%16 = call ccc i8 @eclair_btree_value_compare_4(i32 %14, i32 %15) | |
%17 = icmp eq i8 %16, 0 | |
br i1 %17, label %comparison_3, label %end_0 | |
comparison_3: | |
%18 = getelementptr [4 x i32], ptr %lhs_0, i32 0, i32 3 | |
%19 = getelementptr [4 x i32], ptr %rhs_0, i32 0, i32 3 | |
%20 = load i32, ptr %18 | |
%21 = load i32, ptr %19 | |
%22 = call ccc i8 @eclair_btree_value_compare_4(i32 %20, i32 %21) | |
br label %end_0 | |
end_0: | |
%23 = phi i8 [%4, %comparison_0], [%10, %comparison_1], [%16, %comparison_2], [%22, %comparison_3] | |
ret i8 %23 | |
} | |
define external ccc ptr @eclair_btree_node_new_4(i1 %type_0) { | |
start: | |
%0 = select i1 %type_0, i32 384, i32 256 | |
%1 = call ccc ptr @malloc(i32 %0) | |
%2 = getelementptr %node_t_4, ptr %1, i32 0, i32 0, i32 0 | |
store ptr zeroinitializer, ptr %2 | |
%3 = getelementptr %node_t_4, ptr %1, i32 0, i32 0, i32 1 | |
store i16 0, ptr %3 | |
%4 = getelementptr %node_t_4, ptr %1, i32 0, i32 0, i32 2 | |
store i16 0, ptr %4 | |
%5 = getelementptr %node_t_4, ptr %1, i32 0, i32 0, i32 3 | |
store i1 %type_0, ptr %5 | |
%6 = getelementptr %node_t_4, ptr %1, i32 0, i32 1 | |
call ccc void @llvm.memset.p0i8.i64(ptr %6, i8 0, i64 240, i1 0) | |
%7 = icmp eq i1 %type_0, 1 | |
br i1 %7, label %if_0, label %end_if_0 | |
if_0: | |
%8 = getelementptr %inner_node_t_4, ptr %1, i32 0, i32 1 | |
call ccc void @llvm.memset.p0i8.i64(ptr %8, i8 0, i64 128, i1 0) | |
br label %end_if_0 | |
end_if_0: | |
ret ptr %1 | |
} | |
define external ccc i64 @eclair_btree_node_count_entries_4(ptr %node_0) { | |
start: | |
%stack.ptr_0 = alloca i64 | |
%0 = getelementptr %node_t_4, ptr %node_0, i32 0, i32 0, i32 2 | |
%1 = load i16, ptr %0 | |
%2 = getelementptr %node_t_4, ptr %node_0, i32 0, i32 0, i32 3 | |
%3 = load i1, ptr %2 | |
%4 = icmp eq i1 %3, 0 | |
%5 = zext i16 %1 to i64 | |
br i1 %4, label %if_0, label %end_if_0 | |
if_0: | |
ret i64 %5 | |
end_if_0: | |
store i64 %5, ptr %stack.ptr_0 | |
%6 = getelementptr %node_t_4, ptr %node_0, i32 0, i32 0, i32 2 | |
%7 = load i16, ptr %6 | |
br label %for_begin_0 | |
for_begin_0: | |
%8 = phi i16 [0, %end_if_0], [%15, %for_body_0] | |
%9 = icmp ule i16 %8, %7 | |
br i1 %9, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%10 = load i64, ptr %stack.ptr_0 | |
%11 = getelementptr %inner_node_t_4, ptr %node_0, i32 0, i32 1, i16 %8 | |
%12 = load ptr, ptr %11 | |
%13 = call ccc i64 @eclair_btree_node_count_entries_4(ptr %12) | |
%14 = add i64 %10, %13 | |
store i64 %14, ptr %stack.ptr_0 | |
%15 = add i16 1, %8 | |
br label %for_begin_0 | |
for_end_0: | |
%16 = load i64, ptr %stack.ptr_0 | |
ret i64 %16 | |
} | |
define external ccc void @eclair_btree_iterator_init_4(ptr %iter_0, ptr %cur_0, i16 %pos_0) { | |
start: | |
%0 = getelementptr %btree_iterator_t_4, ptr %iter_0, i32 0, i32 0 | |
store ptr %cur_0, ptr %0 | |
%1 = getelementptr %btree_iterator_t_4, ptr %iter_0, i32 0, i32 1 | |
store i16 %pos_0, ptr %1 | |
ret void | |
} | |
define external ccc void @eclair_btree_iterator_end_init_4(ptr %iter_0) { | |
start: | |
call ccc void @eclair_btree_iterator_init_4(ptr %iter_0, ptr zeroinitializer, i16 0) | |
ret void | |
} | |
define external ccc i1 @eclair_btree_iterator_is_equal_4(ptr %lhs_0, ptr %rhs_0) { | |
start: | |
%0 = getelementptr %btree_iterator_t_4, ptr %lhs_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = getelementptr %btree_iterator_t_4, ptr %rhs_0, i32 0, i32 0 | |
%3 = load ptr, ptr %2 | |
%4 = icmp ne ptr %1, %3 | |
br i1 %4, label %if_0, label %end_if_0 | |
if_0: | |
ret i1 0 | |
end_if_0: | |
%5 = getelementptr %btree_iterator_t_4, ptr %lhs_0, i32 0, i32 1 | |
%6 = load i16, ptr %5 | |
%7 = getelementptr %btree_iterator_t_4, ptr %rhs_0, i32 0, i32 1 | |
%8 = load i16, ptr %7 | |
%9 = icmp eq i16 %6, %8 | |
ret i1 %9 | |
} | |
define external ccc ptr @eclair_btree_iterator_current_4(ptr %iter_0) { | |
start: | |
%0 = getelementptr %btree_iterator_t_4, ptr %iter_0, i32 0, i32 1 | |
%1 = load i16, ptr %0 | |
%2 = getelementptr %btree_iterator_t_4, ptr %iter_0, i32 0, i32 0 | |
%3 = load ptr, ptr %2 | |
%4 = getelementptr %node_t_4, ptr %3, i32 0, i32 1, i16 %1 | |
ret ptr %4 | |
} | |
define external ccc void @eclair_btree_iterator_next_4(ptr %iter_0) { | |
start: | |
%stack.ptr_0 = alloca ptr | |
%0 = getelementptr %btree_iterator_t_4, ptr %iter_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = getelementptr %node_t_4, ptr %1, i32 0, i32 0, i32 3 | |
%3 = load i1, ptr %2 | |
%4 = icmp eq i1 %3, 1 | |
br i1 %4, label %if_0, label %end_if_1 | |
if_0: | |
%5 = getelementptr %btree_iterator_t_4, ptr %iter_0, i32 0, i32 1 | |
%6 = load i16, ptr %5 | |
%7 = add i16 1, %6 | |
%8 = getelementptr %btree_iterator_t_4, ptr %iter_0, i32 0, i32 0 | |
%9 = load ptr, ptr %8 | |
%10 = getelementptr %inner_node_t_4, ptr %9, i32 0, i32 1, i16 %7 | |
%11 = load ptr, ptr %10 | |
store ptr %11, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_begin_0: | |
%12 = load ptr, ptr %stack.ptr_0 | |
%13 = getelementptr %node_t_4, ptr %12, i32 0, i32 0, i32 3 | |
%14 = load i1, ptr %13 | |
%15 = icmp eq i1 %14, 1 | |
br i1 %15, label %while_body_0, label %while_end_0 | |
while_body_0: | |
%16 = load ptr, ptr %stack.ptr_0 | |
%17 = getelementptr %inner_node_t_4, ptr %16, i32 0, i32 1, i16 0 | |
%18 = load ptr, ptr %17 | |
store ptr %18, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_end_0: | |
%19 = load ptr, ptr %stack.ptr_0 | |
%20 = getelementptr %btree_iterator_t_4, ptr %iter_0, i32 0, i32 0 | |
store ptr %19, ptr %20 | |
%21 = getelementptr %btree_iterator_t_4, ptr %iter_0, i32 0, i32 1 | |
store i16 0, ptr %21 | |
%22 = getelementptr %node_t_4, ptr %19, i32 0, i32 0, i32 2 | |
%23 = load i16, ptr %22 | |
%24 = icmp ne i16 %23, 0 | |
br i1 %24, label %if_1, label %end_if_0 | |
if_1: | |
ret void | |
end_if_0: | |
br label %leaf.next_0 | |
end_if_1: | |
br label %leaf.next_0 | |
leaf.next_0: | |
%25 = getelementptr %btree_iterator_t_4, ptr %iter_0, i32 0, i32 1 | |
%26 = load i16, ptr %25 | |
%27 = add i16 1, %26 | |
store i16 %27, ptr %25 | |
%28 = getelementptr %btree_iterator_t_4, ptr %iter_0, i32 0, i32 1 | |
%29 = load i16, ptr %28 | |
%30 = getelementptr %btree_iterator_t_4, ptr %iter_0, i32 0, i32 0 | |
%31 = load ptr, ptr %30 | |
%32 = getelementptr %node_t_4, ptr %31, i32 0, i32 0, i32 2 | |
%33 = load i16, ptr %32 | |
%34 = icmp ult i16 %29, %33 | |
br i1 %34, label %if_2, label %end_if_2 | |
if_2: | |
ret void | |
end_if_2: | |
br label %while_begin_1 | |
while_begin_1: | |
%35 = getelementptr %btree_iterator_t_4, ptr %iter_0, i32 0, i32 0 | |
%36 = load ptr, ptr %35 | |
%37 = icmp eq ptr %36, zeroinitializer | |
br i1 %37, label %leaf.no_parent_0, label %leaf.has_parent_0 | |
leaf.no_parent_0: | |
br label %loop.condition.end_0 | |
leaf.has_parent_0: | |
%38 = getelementptr %btree_iterator_t_4, ptr %iter_0, i32 0, i32 1 | |
%39 = load i16, ptr %38 | |
%40 = getelementptr %btree_iterator_t_4, ptr %iter_0, i32 0, i32 0 | |
%41 = load ptr, ptr %40 | |
%42 = getelementptr %node_t_4, ptr %41, i32 0, i32 0, i32 2 | |
%43 = load i16, ptr %42 | |
%44 = icmp eq i16 %39, %43 | |
br label %loop.condition.end_0 | |
loop.condition.end_0: | |
%45 = phi i1 [0, %leaf.no_parent_0], [%44, %leaf.has_parent_0] | |
br i1 %45, label %while_body_1, label %while_end_1 | |
while_body_1: | |
%46 = getelementptr %btree_iterator_t_4, ptr %iter_0, i32 0, i32 0 | |
%47 = load ptr, ptr %46 | |
%48 = getelementptr %node_t_4, ptr %47, i32 0, i32 0, i32 1 | |
%49 = load i16, ptr %48 | |
%50 = getelementptr %btree_iterator_t_4, ptr %iter_0, i32 0, i32 1 | |
store i16 %49, ptr %50 | |
%51 = getelementptr %node_t_4, ptr %47, i32 0, i32 0, i32 0 | |
%52 = load ptr, ptr %51 | |
%53 = getelementptr %btree_iterator_t_4, ptr %iter_0, i32 0, i32 0 | |
store ptr %52, ptr %53 | |
br label %while_begin_1 | |
while_end_1: | |
ret void | |
} | |
define external ccc ptr @eclair_btree_linear_search_lower_bound_4(ptr %val_0, ptr %current_0, ptr %end_0) { | |
start: | |
%stack.ptr_0 = alloca ptr | |
store ptr %current_0, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_begin_0: | |
%0 = load ptr, ptr %stack.ptr_0 | |
%1 = icmp ne ptr %0, %end_0 | |
br i1 %1, label %while_body_0, label %while_end_0 | |
while_body_0: | |
%2 = load ptr, ptr %stack.ptr_0 | |
%3 = call ccc i8 @eclair_btree_value_compare_values_4(ptr %2, ptr %val_0) | |
%4 = icmp ne i8 %3, -1 | |
br i1 %4, label %if_0, label %end_if_0 | |
if_0: | |
ret ptr %2 | |
end_if_0: | |
%5 = getelementptr [4 x i32], ptr %2, i32 1 | |
store ptr %5, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_end_0: | |
ret ptr %end_0 | |
} | |
define external ccc ptr @eclair_btree_linear_search_upper_bound_4(ptr %val_0, ptr %current_0, ptr %end_0) { | |
start: | |
%stack.ptr_0 = alloca ptr | |
store ptr %current_0, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_begin_0: | |
%0 = load ptr, ptr %stack.ptr_0 | |
%1 = icmp ne ptr %0, %end_0 | |
br i1 %1, label %while_body_0, label %while_end_0 | |
while_body_0: | |
%2 = load ptr, ptr %stack.ptr_0 | |
%3 = call ccc i8 @eclair_btree_value_compare_values_4(ptr %2, ptr %val_0) | |
%4 = icmp eq i8 %3, 1 | |
br i1 %4, label %if_0, label %end_if_0 | |
if_0: | |
ret ptr %2 | |
end_if_0: | |
%5 = getelementptr [4 x i32], ptr %2, i32 1 | |
store ptr %5, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_end_0: | |
ret ptr %end_0 | |
} | |
define external ccc void @eclair_btree_init_empty_4(ptr %tree_0) { | |
start: | |
%0 = getelementptr %btree_t_4, ptr %tree_0, i32 0, i32 0 | |
store ptr zeroinitializer, ptr %0 | |
%1 = getelementptr %btree_t_4, ptr %tree_0, i32 0, i32 1 | |
store ptr zeroinitializer, ptr %1 | |
ret void | |
} | |
define external ccc void @eclair_btree_init_4(ptr %tree_0, ptr %start_0, ptr %end_0) { | |
start: | |
call ccc void @eclair_btree_insert_range__4(ptr %tree_0, ptr %start_0, ptr %end_0) | |
ret void | |
} | |
define external ccc void @eclair_btree_destroy_4(ptr %tree_0) { | |
start: | |
call ccc void @eclair_btree_clear_4(ptr %tree_0) | |
ret void | |
} | |
define external ccc i1 @eclair_btree_is_empty_4(ptr %tree_0) { | |
start: | |
%0 = getelementptr %btree_t_4, ptr %tree_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = icmp eq ptr %1, zeroinitializer | |
ret i1 %2 | |
} | |
define external ccc i64 @eclair_btree_size_4(ptr %tree_0) { | |
start: | |
%0 = getelementptr %btree_t_4, ptr %tree_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = icmp eq ptr %1, zeroinitializer | |
br i1 %2, label %null_0, label %not_null_0 | |
null_0: | |
ret i64 0 | |
not_null_0: | |
%3 = call ccc i64 @eclair_btree_node_count_entries_4(ptr %1) | |
ret i64 %3 | |
} | |
define external ccc i16 @eclair_btree_node_split_point_4() { | |
start: | |
%0 = mul i16 3, 15 | |
%1 = udiv i16 %0, 4 | |
%2 = sub i16 15, 2 | |
%3 = icmp ult i16 %1, %2 | |
%4 = select i1 %3, i16 %1, i16 %2 | |
ret i16 %4 | |
} | |
define external ccc void @eclair_btree_node_split_4(ptr %node_0, ptr %root_0) { | |
start: | |
%stack.ptr_0 = alloca i16 | |
%0 = call ccc i16 @eclair_btree_node_split_point_4() | |
%1 = add i16 1, %0 | |
%2 = getelementptr %node_t_4, ptr %node_0, i32 0, i32 0, i32 3 | |
%3 = load i1, ptr %2 | |
%4 = call ccc ptr @eclair_btree_node_new_4(i1 %3) | |
store i16 0, ptr %stack.ptr_0 | |
br label %for_begin_0 | |
for_begin_0: | |
%5 = phi i16 [%1, %start], [%12, %for_body_0] | |
%6 = icmp ult i16 %5, 15 | |
br i1 %6, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%7 = load i16, ptr %stack.ptr_0 | |
%8 = getelementptr %node_t_4, ptr %node_0, i32 0, i32 1, i16 %5 | |
%9 = load [4 x i32], ptr %8 | |
%10 = getelementptr %node_t_4, ptr %4, i32 0, i32 1, i16 %7 | |
store [4 x i32] %9, ptr %10 | |
%11 = add i16 1, %7 | |
store i16 %11, ptr %stack.ptr_0 | |
%12 = add i16 1, %5 | |
br label %for_begin_0 | |
for_end_0: | |
%13 = icmp eq i1 %3, 1 | |
br i1 %13, label %if_0, label %end_if_0 | |
if_0: | |
store i16 0, ptr %stack.ptr_0 | |
br label %for_begin_1 | |
for_begin_1: | |
%14 = phi i16 [%1, %if_0], [%23, %for_body_1] | |
%15 = icmp ule i16 %14, 15 | |
br i1 %15, label %for_body_1, label %for_end_1 | |
for_body_1: | |
%16 = load i16, ptr %stack.ptr_0 | |
%17 = getelementptr %inner_node_t_4, ptr %node_0, i32 0, i32 1, i16 %14 | |
%18 = load ptr, ptr %17 | |
%19 = getelementptr %node_t_4, ptr %18, i32 0, i32 0, i32 0 | |
store ptr %4, ptr %19 | |
%20 = getelementptr %node_t_4, ptr %18, i32 0, i32 0, i32 1 | |
store i16 %16, ptr %20 | |
%21 = getelementptr %inner_node_t_4, ptr %4, i32 0, i32 1, i16 %16 | |
store ptr %18, ptr %21 | |
%22 = add i16 1, %16 | |
store i16 %22, ptr %stack.ptr_0 | |
%23 = add i16 1, %14 | |
br label %for_begin_1 | |
for_end_1: | |
br label %end_if_0 | |
end_if_0: | |
%24 = getelementptr %node_t_4, ptr %node_0, i32 0, i32 0, i32 2 | |
store i16 %0, ptr %24 | |
%25 = sub i16 15, %0 | |
%26 = sub i16 %25, 1 | |
%27 = getelementptr %node_t_4, ptr %4, i32 0, i32 0, i32 2 | |
store i16 %26, ptr %27 | |
call ccc void @eclair_btree_node_grow_parent_4(ptr %node_0, ptr %root_0, ptr %4) | |
ret void | |
} | |
define external ccc void @eclair_btree_node_grow_parent_4(ptr %node_0, ptr %root_0, ptr %sibling_0) { | |
start: | |
%0 = getelementptr %node_t_4, ptr %node_0, i32 0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = icmp eq ptr %1, zeroinitializer | |
%3 = getelementptr %node_t_4, ptr %node_0, i32 0, i32 0, i32 2 | |
%4 = load i16, ptr %3 | |
br i1 %2, label %create_new_root_0, label %insert_new_node_in_parent_0 | |
create_new_root_0: | |
%5 = call ccc ptr @eclair_btree_node_new_4(i1 1) | |
%6 = getelementptr %node_t_4, ptr %5, i32 0, i32 0, i32 2 | |
store i16 1, ptr %6 | |
%7 = getelementptr %node_t_4, ptr %node_0, i32 0, i32 1, i16 %4 | |
%8 = load [4 x i32], ptr %7 | |
%9 = getelementptr %node_t_4, ptr %5, i32 0, i32 1, i16 0 | |
store [4 x i32] %8, ptr %9 | |
%10 = getelementptr %inner_node_t_4, ptr %5, i32 0, i32 1, i16 0 | |
store ptr %node_0, ptr %10 | |
%11 = getelementptr %inner_node_t_4, ptr %5, i32 0, i32 1, i16 1 | |
store ptr %sibling_0, ptr %11 | |
%12 = getelementptr %node_t_4, ptr %node_0, i32 0, i32 0, i32 0 | |
store ptr %5, ptr %12 | |
%13 = getelementptr %node_t_4, ptr %sibling_0, i32 0, i32 0, i32 0 | |
store ptr %5, ptr %13 | |
%14 = getelementptr %node_t_4, ptr %sibling_0, i32 0, i32 0, i32 1 | |
store i16 1, ptr %14 | |
store ptr %5, ptr %root_0 | |
ret void | |
insert_new_node_in_parent_0: | |
%15 = getelementptr %node_t_4, ptr %node_0, i32 0, i32 0, i32 1 | |
%16 = load i16, ptr %15 | |
%17 = getelementptr %node_t_4, ptr %node_0, i32 0, i32 1, i16 %4 | |
call ccc void @eclair_btree_node_insert_inner_4(ptr %1, ptr %root_0, i16 %16, ptr %node_0, ptr %17, ptr %sibling_0) | |
ret void | |
} | |
define external ccc void @eclair_btree_node_insert_inner_4(ptr %node_0, ptr %root_0, i16 %pos_0, ptr %predecessor_0, ptr %key_0, ptr %new_node_0) { | |
start: | |
%stack.ptr_0 = alloca i16 | |
store i16 %pos_0, ptr %stack.ptr_0 | |
%0 = getelementptr %node_t_4, ptr %node_0, i32 0, i32 0, i32 2 | |
%1 = load i16, ptr %0 | |
%2 = icmp uge i16 %1, 15 | |
br i1 %2, label %if_0, label %end_if_1 | |
if_0: | |
%3 = load i16, ptr %stack.ptr_0 | |
%4 = call ccc i16 @eclair_btree_node_rebalance_or_split_4(ptr %node_0, ptr %root_0, i16 %pos_0) | |
%5 = sub i16 %3, %4 | |
store i16 %5, ptr %stack.ptr_0 | |
%6 = getelementptr %node_t_4, ptr %node_0, i32 0, i32 0, i32 2 | |
%7 = load i16, ptr %6 | |
%8 = icmp ugt i16 %5, %7 | |
br i1 %8, label %if_1, label %end_if_0 | |
if_1: | |
%9 = sub i16 %5, %7 | |
%10 = sub i16 %9, 1 | |
store i16 %10, ptr %stack.ptr_0 | |
%11 = getelementptr %node_t_4, ptr %node_0, i32 0, i32 0, i32 0 | |
%12 = load ptr, ptr %11 | |
%13 = getelementptr %node_t_4, ptr %node_0, i32 0, i32 0, i32 1 | |
%14 = load i16, ptr %13 | |
%15 = add i16 1, %14 | |
%16 = getelementptr %inner_node_t_4, ptr %12, i32 0, i32 1, i16 %15 | |
%17 = load ptr, ptr %16 | |
call ccc void @eclair_btree_node_insert_inner_4(ptr %17, ptr %root_0, i16 %10, ptr %predecessor_0, ptr %key_0, ptr %new_node_0) | |
ret void | |
end_if_0: | |
br label %end_if_1 | |
end_if_1: | |
%18 = getelementptr %node_t_4, ptr %node_0, i32 0, i32 0, i32 2 | |
%19 = load i16, ptr %18 | |
%20 = sub i16 %19, 1 | |
%21 = load i16, ptr %stack.ptr_0 | |
br label %for_begin_0 | |
for_begin_0: | |
%22 = phi i16 [%20, %end_if_1], [%37, %for_body_0] | |
%23 = icmp uge i16 %22, %21 | |
br i1 %23, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%24 = add i16 %22, 1 | |
%25 = add i16 %22, 2 | |
%26 = getelementptr %node_t_4, ptr %node_0, i32 0, i32 1, i16 %22 | |
%27 = load [4 x i32], ptr %26 | |
%28 = getelementptr %node_t_4, ptr %node_0, i32 0, i32 1, i16 %24 | |
store [4 x i32] %27, ptr %28 | |
%29 = getelementptr %inner_node_t_4, ptr %node_0, i32 0, i32 1, i16 %24 | |
%30 = load ptr, ptr %29 | |
%31 = getelementptr %inner_node_t_4, ptr %node_0, i32 0, i32 1, i16 %25 | |
store ptr %30, ptr %31 | |
%32 = getelementptr %inner_node_t_4, ptr %node_0, i32 0, i32 1, i16 %25 | |
%33 = load ptr, ptr %32 | |
%34 = getelementptr %node_t_4, ptr %33, i32 0, i32 0, i32 1 | |
%35 = load i16, ptr %34 | |
%36 = add i16 1, %35 | |
store i16 %36, ptr %34 | |
%37 = sub i16 %22, 1 | |
br label %for_begin_0 | |
for_end_0: | |
%38 = load [4 x i32], ptr %key_0 | |
%39 = getelementptr %node_t_4, ptr %node_0, i32 0, i32 1, i16 %21 | |
store [4 x i32] %38, ptr %39 | |
%40 = add i16 %21, 1 | |
%41 = getelementptr %inner_node_t_4, ptr %node_0, i32 0, i32 1, i16 %40 | |
store ptr %new_node_0, ptr %41 | |
%42 = getelementptr %node_t_4, ptr %new_node_0, i32 0, i32 0, i32 0 | |
store ptr %node_0, ptr %42 | |
%43 = getelementptr %node_t_4, ptr %new_node_0, i32 0, i32 0, i32 1 | |
store i16 %40, ptr %43 | |
%44 = getelementptr %node_t_4, ptr %node_0, i32 0, i32 0, i32 2 | |
%45 = load i16, ptr %44 | |
%46 = add i16 1, %45 | |
store i16 %46, ptr %44 | |
ret void | |
} | |
define external ccc i16 @eclair_btree_node_rebalance_or_split_4(ptr %node_0, ptr %root_0, i16 %idx_0) { | |
start: | |
%0 = getelementptr %node_t_4, ptr %node_0, i32 0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = getelementptr %node_t_4, ptr %node_0, i32 0, i32 0, i32 1 | |
%3 = load i16, ptr %2 | |
%4 = icmp ne ptr %1, zeroinitializer | |
%5 = icmp ugt i16 %3, 0 | |
%6 = and i1 %4, %5 | |
br i1 %6, label %rebalance_0, label %split_0 | |
rebalance_0: | |
%7 = sub i16 %3, 1 | |
%8 = getelementptr %inner_node_t_4, ptr %1, i32 0, i32 1, i16 %7 | |
%9 = load ptr, ptr %8 | |
%10 = getelementptr %node_t_4, ptr %9, i32 0, i32 0, i32 2 | |
%11 = load i16, ptr %10 | |
%12 = sub i16 15, %11 | |
%13 = icmp slt i16 %12, %idx_0 | |
%14 = select i1 %13, i16 %12, i16 %idx_0 | |
%15 = icmp ugt i16 %14, 0 | |
br i1 %15, label %if_0, label %end_if_1 | |
if_0: | |
%16 = getelementptr %node_t_4, ptr %node_0, i32 0, i32 0, i32 1 | |
%17 = load i16, ptr %16 | |
%18 = sub i16 %17, 1 | |
%19 = getelementptr %inner_node_t_4, ptr %1, i32 0, i32 0, i32 1, i16 %18 | |
%20 = load [4 x i32], ptr %19 | |
%21 = getelementptr %node_t_4, ptr %9, i32 0, i32 0, i32 2 | |
%22 = load i16, ptr %21 | |
%23 = getelementptr %node_t_4, ptr %9, i32 0, i32 1, i16 %22 | |
store [4 x i32] %20, ptr %23 | |
%24 = sub i16 %14, 1 | |
br label %for_begin_0 | |
for_begin_0: | |
%25 = phi i16 [0, %if_0], [%32, %for_body_0] | |
%26 = icmp ult i16 %25, %24 | |
br i1 %26, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%27 = add i16 %22, 1 | |
%28 = add i16 %25, %27 | |
%29 = getelementptr %node_t_4, ptr %node_0, i32 0, i32 1, i16 %25 | |
%30 = load [4 x i32], ptr %29 | |
%31 = getelementptr %node_t_4, ptr %9, i32 0, i32 1, i16 %28 | |
store [4 x i32] %30, ptr %31 | |
%32 = add i16 1, %25 | |
br label %for_begin_0 | |
for_end_0: | |
%33 = getelementptr %node_t_4, ptr %node_0, i32 0, i32 1, i16 %24 | |
%34 = load [4 x i32], ptr %33 | |
store [4 x i32] %34, ptr %19 | |
%35 = getelementptr %node_t_4, ptr %node_0, i32 0, i32 0, i32 2 | |
%36 = load i16, ptr %35 | |
%37 = sub i16 %36, %14 | |
br label %for_begin_1 | |
for_begin_1: | |
%38 = phi i16 [0, %for_end_0], [%44, %for_body_1] | |
%39 = icmp ult i16 %38, %37 | |
br i1 %39, label %for_body_1, label %for_end_1 | |
for_body_1: | |
%40 = add i16 %38, %14 | |
%41 = getelementptr %node_t_4, ptr %node_0, i32 0, i32 1, i16 %40 | |
%42 = load [4 x i32], ptr %41 | |
%43 = getelementptr %node_t_4, ptr %node_0, i32 0, i32 1, i16 %38 | |
store [4 x i32] %42, ptr %43 | |
%44 = add i16 1, %38 | |
br label %for_begin_1 | |
for_end_1: | |
%45 = getelementptr %node_t_4, ptr %node_0, i32 0, i32 0, i32 3 | |
%46 = load i1, ptr %45 | |
%47 = icmp eq i1 %46, 1 | |
br i1 %47, label %if_1, label %end_if_0 | |
if_1: | |
br label %for_begin_2 | |
for_begin_2: | |
%48 = phi i16 [0, %if_1], [%61, %for_body_2] | |
%49 = icmp ult i16 %48, %14 | |
br i1 %49, label %for_body_2, label %for_end_2 | |
for_body_2: | |
%50 = getelementptr %node_t_4, ptr %9, i32 0, i32 0, i32 2 | |
%51 = load i16, ptr %50 | |
%52 = add i16 %51, 1 | |
%53 = add i16 %48, %52 | |
%54 = getelementptr %inner_node_t_4, ptr %node_0, i32 0, i32 1, i16 %48 | |
%55 = load ptr, ptr %54 | |
%56 = getelementptr %inner_node_t_4, ptr %9, i32 0, i32 1, i16 %53 | |
store ptr %55, ptr %56 | |
%57 = getelementptr %inner_node_t_4, ptr %9, i32 0, i32 1, i16 %53 | |
%58 = load ptr, ptr %57 | |
%59 = getelementptr %node_t_4, ptr %58, i32 0, i32 0, i32 0 | |
store ptr %9, ptr %59 | |
%60 = getelementptr %node_t_4, ptr %58, i32 0, i32 0, i32 1 | |
store i16 %53, ptr %60 | |
%61 = add i16 1, %48 | |
br label %for_begin_2 | |
for_end_2: | |
%62 = sub i16 %36, %14 | |
%63 = add i16 1, %62 | |
br label %for_begin_3 | |
for_begin_3: | |
%64 = phi i16 [0, %for_end_2], [%73, %for_body_3] | |
%65 = icmp ult i16 %64, %63 | |
br i1 %65, label %for_body_3, label %for_end_3 | |
for_body_3: | |
%66 = add i16 %64, %14 | |
%67 = getelementptr %inner_node_t_4, ptr %node_0, i32 0, i32 1, i16 %66 | |
%68 = load ptr, ptr %67 | |
%69 = getelementptr %inner_node_t_4, ptr %node_0, i32 0, i32 1, i16 %64 | |
store ptr %68, ptr %69 | |
%70 = getelementptr %inner_node_t_4, ptr %node_0, i32 0, i32 1, i16 %64 | |
%71 = load ptr, ptr %70 | |
%72 = getelementptr %node_t_4, ptr %71, i32 0, i32 0, i32 1 | |
store i16 %64, ptr %72 | |
%73 = add i16 1, %64 | |
br label %for_begin_3 | |
for_end_3: | |
br label %end_if_0 | |
end_if_0: | |
%74 = getelementptr %node_t_4, ptr %9, i32 0, i32 0, i32 2 | |
%75 = load i16, ptr %74 | |
%76 = add i16 %75, %14 | |
store i16 %76, ptr %74 | |
%77 = getelementptr %node_t_4, ptr %node_0, i32 0, i32 0, i32 2 | |
%78 = load i16, ptr %77 | |
%79 = sub i16 %78, %14 | |
store i16 %79, ptr %77 | |
ret i16 %14 | |
end_if_1: | |
br label %split_0 | |
split_0: | |
call ccc void @eclair_btree_node_split_4(ptr %node_0, ptr %root_0) | |
ret i16 0 | |
} | |
define external ccc i1 @eclair_btree_insert_value_4(ptr %tree_0, ptr %val_0) { | |
start: | |
%stack.ptr_0 = alloca ptr | |
%stack.ptr_1 = alloca i16 | |
%0 = call ccc i1 @eclair_btree_is_empty_4(ptr %tree_0) | |
br i1 %0, label %empty_0, label %non_empty_0 | |
empty_0: | |
%1 = call ccc ptr @eclair_btree_node_new_4(i1 0) | |
%2 = getelementptr %node_t_4, ptr %1, i32 0, i32 0, i32 2 | |
store i16 1, ptr %2 | |
%3 = load [4 x i32], ptr %val_0 | |
%4 = getelementptr %node_t_4, ptr %1, i32 0, i32 1, i16 0 | |
store [4 x i32] %3, ptr %4 | |
%5 = getelementptr %btree_t_4, ptr %tree_0, i32 0, i32 0 | |
store ptr %1, ptr %5 | |
%6 = getelementptr %btree_t_4, ptr %tree_0, i32 0, i32 1 | |
store ptr %1, ptr %6 | |
br label %inserted_new_value_0 | |
non_empty_0: | |
%7 = getelementptr %btree_t_4, ptr %tree_0, i32 0, i32 0 | |
%8 = load ptr, ptr %7 | |
store ptr %8, ptr %stack.ptr_0 | |
br label %loop_0 | |
loop_0: | |
%9 = load ptr, ptr %stack.ptr_0 | |
%10 = getelementptr %node_t_4, ptr %9, i32 0, i32 0, i32 3 | |
%11 = load i1, ptr %10 | |
%12 = icmp eq i1 %11, 1 | |
br i1 %12, label %inner_0, label %leaf_0 | |
inner_0: | |
%13 = getelementptr %node_t_4, ptr %9, i32 0, i32 0, i32 2 | |
%14 = load i16, ptr %13 | |
%15 = getelementptr %node_t_4, ptr %9, i32 0, i32 1, i16 0 | |
%16 = getelementptr %node_t_4, ptr %9, i32 0, i32 1, i16 %14 | |
%17 = call ccc ptr @eclair_btree_linear_search_lower_bound_4(ptr %val_0, ptr %15, ptr %16) | |
%18 = ptrtoint ptr %17 to i64 | |
%19 = ptrtoint ptr %15 to i64 | |
%20 = sub i64 %18, %19 | |
%21 = trunc i64 %20 to i16 | |
%22 = udiv i16 %21, 16 | |
%23 = icmp ne ptr %17, %16 | |
%24 = call ccc i8 @eclair_btree_value_compare_values_4(ptr %17, ptr %val_0) | |
%25 = icmp eq i8 0, %24 | |
%26 = and i1 %23, %25 | |
br i1 %26, label %no_insert_0, label %inner_continue_insert_0 | |
inner_continue_insert_0: | |
%27 = getelementptr %inner_node_t_4, ptr %9, i32 0, i32 1, i16 %22 | |
%28 = load ptr, ptr %27 | |
store ptr %28, ptr %stack.ptr_0 | |
br label %loop_0 | |
leaf_0: | |
%29 = getelementptr %node_t_4, ptr %9, i32 0, i32 0, i32 2 | |
%30 = load i16, ptr %29 | |
%31 = getelementptr %node_t_4, ptr %9, i32 0, i32 1, i16 0 | |
%32 = getelementptr %node_t_4, ptr %9, i32 0, i32 1, i16 %30 | |
%33 = call ccc ptr @eclair_btree_linear_search_upper_bound_4(ptr %val_0, ptr %31, ptr %32) | |
%34 = ptrtoint ptr %33 to i64 | |
%35 = ptrtoint ptr %31 to i64 | |
%36 = sub i64 %34, %35 | |
%37 = trunc i64 %36 to i16 | |
%38 = udiv i16 %37, 16 | |
store i16 %38, ptr %stack.ptr_1 | |
%39 = icmp ne ptr %33, %31 | |
%40 = getelementptr [4 x i32], ptr %33, i32 -1 | |
%41 = call ccc i8 @eclair_btree_value_compare_values_4(ptr %40, ptr %val_0) | |
%42 = icmp eq i8 0, %41 | |
%43 = and i1 %39, %42 | |
br i1 %43, label %no_insert_0, label %leaf_continue_insert_0 | |
leaf_continue_insert_0: | |
%44 = icmp uge i16 %30, 15 | |
br i1 %44, label %split_0, label %no_split_0 | |
split_0: | |
%45 = getelementptr %btree_t_4, ptr %tree_0, i32 0, i32 0 | |
%46 = load i16, ptr %stack.ptr_1 | |
%47 = call ccc i16 @eclair_btree_node_rebalance_or_split_4(ptr %9, ptr %45, i16 %46) | |
%48 = sub i16 %46, %47 | |
store i16 %48, ptr %stack.ptr_1 | |
%49 = getelementptr %node_t_4, ptr %9, i32 0, i32 0, i32 2 | |
%50 = load i16, ptr %49 | |
%51 = icmp ugt i16 %48, %50 | |
br i1 %51, label %if_0, label %end_if_0 | |
if_0: | |
%52 = add i16 %50, 1 | |
%53 = sub i16 %48, %52 | |
store i16 %53, ptr %stack.ptr_1 | |
%54 = getelementptr %node_t_4, ptr %9, i32 0, i32 0, i32 0 | |
%55 = load ptr, ptr %54 | |
%56 = getelementptr %node_t_4, ptr %9, i32 0, i32 0, i32 1 | |
%57 = load i16, ptr %56 | |
%58 = add i16 1, %57 | |
%59 = getelementptr %inner_node_t_4, ptr %55, i32 0, i32 1, i16 %58 | |
%60 = load ptr, ptr %59 | |
store ptr %60, ptr %stack.ptr_0 | |
br label %end_if_0 | |
end_if_0: | |
br label %no_split_0 | |
no_split_0: | |
%61 = load ptr, ptr %stack.ptr_0 | |
%62 = load i16, ptr %stack.ptr_1 | |
%63 = getelementptr %node_t_4, ptr %61, i32 0, i32 0, i32 2 | |
%64 = load i16, ptr %63 | |
br label %for_begin_0 | |
for_begin_0: | |
%65 = phi i16 [%64, %no_split_0], [%71, %for_body_0] | |
%66 = icmp ugt i16 %65, %62 | |
br i1 %66, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%67 = sub i16 %65, 1 | |
%68 = getelementptr %node_t_4, ptr %61, i32 0, i32 1, i16 %67 | |
%69 = load [4 x i32], ptr %68 | |
%70 = getelementptr %node_t_4, ptr %61, i32 0, i32 1, i16 %65 | |
store [4 x i32] %69, ptr %70 | |
%71 = sub i16 %65, 1 | |
br label %for_begin_0 | |
for_end_0: | |
%72 = load [4 x i32], ptr %val_0 | |
%73 = getelementptr %node_t_4, ptr %61, i32 0, i32 1, i16 %62 | |
store [4 x i32] %72, ptr %73 | |
%74 = getelementptr %node_t_4, ptr %61, i32 0, i32 0, i32 2 | |
%75 = load i16, ptr %74 | |
%76 = add i16 1, %75 | |
store i16 %76, ptr %74 | |
br label %inserted_new_value_0 | |
no_insert_0: | |
ret i1 0 | |
inserted_new_value_0: | |
ret i1 1 | |
} | |
define external ccc void @eclair_btree_insert_range__4(ptr %tree_0, ptr %begin_0, ptr %end_0) { | |
start: | |
br label %while_begin_0 | |
while_begin_0: | |
%0 = call ccc i1 @eclair_btree_iterator_is_equal_4(ptr %begin_0, ptr %end_0) | |
%1 = select i1 %0, i1 0, i1 1 | |
br i1 %1, label %while_body_0, label %while_end_0 | |
while_body_0: | |
%2 = call ccc ptr @eclair_btree_iterator_current_4(ptr %begin_0) | |
%3 = call ccc i1 @eclair_btree_insert_value_4(ptr %tree_0, ptr %2) | |
call ccc void @eclair_btree_iterator_next_4(ptr %begin_0) | |
br label %while_begin_0 | |
while_end_0: | |
ret void | |
} | |
define external ccc void @eclair_btree_begin_4(ptr %tree_0, ptr %result_0) { | |
start: | |
%0 = getelementptr %btree_t_4, ptr %tree_0, i32 0, i32 1 | |
%1 = load ptr, ptr %0 | |
%2 = getelementptr %btree_iterator_t_4, ptr %result_0, i32 0, i32 0 | |
store ptr %1, ptr %2 | |
%3 = getelementptr %btree_iterator_t_4, ptr %result_0, i32 0, i32 1 | |
store i16 0, ptr %3 | |
ret void | |
} | |
define external ccc void @eclair_btree_end_4(ptr %tree_0, ptr %result_0) { | |
start: | |
call ccc void @eclair_btree_iterator_end_init_4(ptr %result_0) | |
ret void | |
} | |
define external ccc i1 @eclair_btree_contains_4(ptr %tree_0, ptr %val_0) { | |
start: | |
%stack.ptr_0 = alloca %btree_iterator_t_4, i32 1 | |
%stack.ptr_1 = alloca %btree_iterator_t_4, i32 1 | |
call ccc void @eclair_btree_find_4(ptr %tree_0, ptr %val_0, ptr %stack.ptr_0) | |
call ccc void @eclair_btree_end_4(ptr %tree_0, ptr %stack.ptr_1) | |
%0 = call ccc i1 @eclair_btree_iterator_is_equal_4(ptr %stack.ptr_0, ptr %stack.ptr_1) | |
%1 = select i1 %0, i1 0, i1 1 | |
ret i1 %1 | |
} | |
define external ccc void @eclair_btree_find_4(ptr %tree_0, ptr %val_0, ptr %result_0) { | |
start: | |
%stack.ptr_0 = alloca ptr | |
%0 = call ccc i1 @eclair_btree_is_empty_4(ptr %tree_0) | |
br i1 %0, label %if_0, label %end_if_0 | |
if_0: | |
call ccc void @eclair_btree_iterator_end_init_4(ptr %result_0) | |
ret void | |
end_if_0: | |
%1 = getelementptr %btree_t_4, ptr %tree_0, i32 0, i32 0 | |
%2 = load ptr, ptr %1 | |
store ptr %2, ptr %stack.ptr_0 | |
br label %loop_0 | |
loop_0: | |
%3 = load ptr, ptr %stack.ptr_0 | |
%4 = getelementptr %node_t_4, ptr %3, i32 0, i32 0, i32 2 | |
%5 = load i16, ptr %4 | |
%6 = getelementptr %node_t_4, ptr %3, i32 0, i32 1, i16 0 | |
%7 = getelementptr %node_t_4, ptr %3, i32 0, i32 1, i16 %5 | |
%8 = call ccc ptr @eclair_btree_linear_search_lower_bound_4(ptr %val_0, ptr %6, ptr %7) | |
%9 = ptrtoint ptr %8 to i64 | |
%10 = ptrtoint ptr %6 to i64 | |
%11 = sub i64 %9, %10 | |
%12 = trunc i64 %11 to i16 | |
%13 = udiv i16 %12, 16 | |
%14 = icmp ult ptr %8, %7 | |
%15 = call ccc i8 @eclair_btree_value_compare_values_4(ptr %8, ptr %val_0) | |
%16 = icmp eq i8 0, %15 | |
%17 = and i1 %14, %16 | |
br i1 %17, label %if_1, label %end_if_1 | |
if_1: | |
call ccc void @eclair_btree_iterator_init_4(ptr %result_0, ptr %3, i16 %13) | |
ret void | |
end_if_1: | |
%18 = getelementptr %node_t_4, ptr %3, i32 0, i32 0, i32 3 | |
%19 = load i1, ptr %18 | |
%20 = icmp eq i1 %19, 0 | |
br i1 %20, label %if_2, label %end_if_2 | |
if_2: | |
call ccc void @eclair_btree_iterator_end_init_4(ptr %result_0) | |
ret void | |
end_if_2: | |
%21 = getelementptr %inner_node_t_4, ptr %3, i32 0, i32 1, i16 %13 | |
%22 = load ptr, ptr %21 | |
store ptr %22, ptr %stack.ptr_0 | |
br label %loop_0 | |
} | |
define external ccc void @eclair_btree_lower_bound_4(ptr %tree_0, ptr %val_0, ptr %result_0) { | |
start: | |
%stack.ptr_0 = alloca %btree_iterator_t_4, i32 1 | |
%stack.ptr_1 = alloca ptr | |
%0 = call ccc i1 @eclair_btree_is_empty_4(ptr %tree_0) | |
br i1 %0, label %if_0, label %end_if_0 | |
if_0: | |
call ccc void @eclair_btree_iterator_end_init_4(ptr %result_0) | |
ret void | |
end_if_0: | |
call ccc void @eclair_btree_iterator_end_init_4(ptr %stack.ptr_0) | |
%1 = getelementptr %btree_t_4, ptr %tree_0, i32 0, i32 0 | |
%2 = load ptr, ptr %1 | |
store ptr %2, ptr %stack.ptr_1 | |
br label %loop_0 | |
loop_0: | |
%3 = load ptr, ptr %stack.ptr_1 | |
%4 = getelementptr %node_t_4, ptr %3, i32 0, i32 0, i32 2 | |
%5 = load i16, ptr %4 | |
%6 = getelementptr %node_t_4, ptr %3, i32 0, i32 1, i16 0 | |
%7 = getelementptr %node_t_4, ptr %3, i32 0, i32 1, i16 %5 | |
%8 = call ccc ptr @eclair_btree_linear_search_lower_bound_4(ptr %val_0, ptr %6, ptr %7) | |
%9 = ptrtoint ptr %8 to i64 | |
%10 = ptrtoint ptr %6 to i64 | |
%11 = sub i64 %9, %10 | |
%12 = trunc i64 %11 to i16 | |
%13 = udiv i16 %12, 16 | |
%14 = getelementptr %node_t_4, ptr %3, i32 0, i32 0, i32 3 | |
%15 = load i1, ptr %14 | |
%16 = icmp eq i1 %15, 0 | |
br i1 %16, label %if_1, label %end_if_1 | |
if_1: | |
%17 = icmp eq ptr %8, %7 | |
br i1 %17, label %handle_last_0, label %handle_not_last_0 | |
handle_last_0: | |
%18 = getelementptr %btree_iterator_t_4, ptr %stack.ptr_0, i32 0, i32 0 | |
%19 = load ptr, ptr %18 | |
%20 = getelementptr %btree_iterator_t_4, ptr %result_0, i32 0, i32 0 | |
store ptr %19, ptr %20 | |
%21 = getelementptr %btree_iterator_t_4, ptr %stack.ptr_0, i32 0, i32 1 | |
%22 = load i16, ptr %21 | |
%23 = getelementptr %btree_iterator_t_4, ptr %result_0, i32 0, i32 1 | |
store i16 %22, ptr %23 | |
ret void | |
handle_not_last_0: | |
call ccc void @eclair_btree_iterator_init_4(ptr %result_0, ptr %3, i16 %13) | |
ret void | |
end_if_1: | |
%24 = icmp ne ptr %8, %7 | |
%25 = call ccc i8 @eclair_btree_value_compare_values_4(ptr %8, ptr %val_0) | |
%26 = icmp eq i8 0, %25 | |
%27 = and i1 %24, %26 | |
br i1 %27, label %if_2, label %end_if_2 | |
if_2: | |
call ccc void @eclair_btree_iterator_init_4(ptr %result_0, ptr %3, i16 %13) | |
ret void | |
end_if_2: | |
br i1 %24, label %if_3, label %end_if_3 | |
if_3: | |
call ccc void @eclair_btree_iterator_init_4(ptr %stack.ptr_0, ptr %3, i16 %13) | |
br label %end_if_3 | |
end_if_3: | |
%28 = getelementptr %inner_node_t_4, ptr %3, i32 0, i32 1, i16 %13 | |
%29 = load ptr, ptr %28 | |
store ptr %29, ptr %stack.ptr_1 | |
br label %loop_0 | |
} | |
define external ccc void @eclair_btree_upper_bound_4(ptr %tree_0, ptr %val_0, ptr %result_0) { | |
start: | |
%stack.ptr_0 = alloca %btree_iterator_t_4, i32 1 | |
%stack.ptr_1 = alloca ptr | |
%0 = call ccc i1 @eclair_btree_is_empty_4(ptr %tree_0) | |
br i1 %0, label %if_0, label %end_if_0 | |
if_0: | |
call ccc void @eclair_btree_iterator_end_init_4(ptr %result_0) | |
ret void | |
end_if_0: | |
call ccc void @eclair_btree_iterator_end_init_4(ptr %stack.ptr_0) | |
%1 = getelementptr %btree_t_4, ptr %tree_0, i32 0, i32 0 | |
%2 = load ptr, ptr %1 | |
store ptr %2, ptr %stack.ptr_1 | |
br label %loop_0 | |
loop_0: | |
%3 = load ptr, ptr %stack.ptr_1 | |
%4 = getelementptr %node_t_4, ptr %3, i32 0, i32 0, i32 2 | |
%5 = load i16, ptr %4 | |
%6 = getelementptr %node_t_4, ptr %3, i32 0, i32 1, i16 0 | |
%7 = getelementptr %node_t_4, ptr %3, i32 0, i32 1, i16 %5 | |
%8 = call ccc ptr @eclair_btree_linear_search_upper_bound_4(ptr %val_0, ptr %6, ptr %7) | |
%9 = ptrtoint ptr %8 to i64 | |
%10 = ptrtoint ptr %6 to i64 | |
%11 = sub i64 %9, %10 | |
%12 = trunc i64 %11 to i16 | |
%13 = udiv i16 %12, 16 | |
%14 = getelementptr %node_t_4, ptr %3, i32 0, i32 0, i32 3 | |
%15 = load i1, ptr %14 | |
%16 = icmp eq i1 %15, 0 | |
br i1 %16, label %if_1, label %end_if_1 | |
if_1: | |
%17 = icmp eq ptr %8, %7 | |
br i1 %17, label %handle_last_0, label %handle_not_last_0 | |
handle_last_0: | |
%18 = getelementptr %btree_iterator_t_4, ptr %stack.ptr_0, i32 0, i32 0 | |
%19 = load ptr, ptr %18 | |
%20 = getelementptr %btree_iterator_t_4, ptr %result_0, i32 0, i32 0 | |
store ptr %19, ptr %20 | |
%21 = getelementptr %btree_iterator_t_4, ptr %stack.ptr_0, i32 0, i32 1 | |
%22 = load i16, ptr %21 | |
%23 = getelementptr %btree_iterator_t_4, ptr %result_0, i32 0, i32 1 | |
store i16 %22, ptr %23 | |
ret void | |
handle_not_last_0: | |
call ccc void @eclair_btree_iterator_init_4(ptr %result_0, ptr %3, i16 %13) | |
ret void | |
end_if_1: | |
%24 = icmp ne ptr %8, %7 | |
br i1 %24, label %if_2, label %end_if_2 | |
if_2: | |
call ccc void @eclair_btree_iterator_init_4(ptr %result_0, ptr %3, i16 %13) | |
br label %end_if_2 | |
end_if_2: | |
%25 = getelementptr %inner_node_t_4, ptr %3, i32 0, i32 1, i16 %13 | |
%26 = load ptr, ptr %25 | |
store ptr %26, ptr %stack.ptr_1 | |
br label %loop_0 | |
} | |
define external ccc void @eclair_btree_node_delete_4(ptr %node_0) { | |
start: | |
%0 = getelementptr %node_t_4, ptr %node_0, i32 0, i32 0, i32 3 | |
%1 = load i1, ptr %0 | |
%2 = icmp eq i1 %1, 1 | |
br i1 %2, label %if_0, label %end_if_1 | |
if_0: | |
%3 = getelementptr %node_t_4, ptr %node_0, i32 0, i32 0, i32 2 | |
%4 = load i16, ptr %3 | |
br label %for_begin_0 | |
for_begin_0: | |
%5 = phi i16 [0, %if_0], [%10, %end_if_0] | |
%6 = icmp ule i16 %5, %4 | |
br i1 %6, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%7 = getelementptr %inner_node_t_4, ptr %node_0, i32 0, i32 1, i16 %5 | |
%8 = load ptr, ptr %7 | |
%9 = icmp ne ptr %8, zeroinitializer | |
br i1 %9, label %if_1, label %end_if_0 | |
if_1: | |
call ccc void @eclair_btree_node_delete_4(ptr %8) | |
br label %end_if_0 | |
end_if_0: | |
%10 = add i16 1, %5 | |
br label %for_begin_0 | |
for_end_0: | |
br label %end_if_1 | |
end_if_1: | |
call ccc void @free(ptr %node_0) | |
ret void | |
} | |
define external ccc void @eclair_btree_clear_4(ptr %tree_0) { | |
start: | |
%0 = getelementptr %btree_t_4, ptr %tree_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = icmp ne ptr %1, zeroinitializer | |
br i1 %2, label %if_0, label %end_if_0 | |
if_0: | |
call ccc void @eclair_btree_node_delete_4(ptr %1) | |
%3 = getelementptr %btree_t_4, ptr %tree_0, i32 0, i32 0 | |
store ptr zeroinitializer, ptr %3 | |
%4 = getelementptr %btree_t_4, ptr %tree_0, i32 0, i32 1 | |
store ptr zeroinitializer, ptr %4 | |
br label %end_if_0 | |
end_if_0: | |
ret void | |
} | |
define external ccc void @eclair_btree_swap_4(ptr %lhs_0, ptr %rhs_0) { | |
start: | |
%0 = getelementptr %btree_t_4, ptr %lhs_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = getelementptr %btree_t_4, ptr %rhs_0, i32 0, i32 0 | |
%3 = load ptr, ptr %2 | |
%4 = getelementptr %btree_t_4, ptr %lhs_0, i32 0, i32 0 | |
store ptr %3, ptr %4 | |
%5 = getelementptr %btree_t_4, ptr %rhs_0, i32 0, i32 0 | |
store ptr %1, ptr %5 | |
%6 = getelementptr %btree_t_4, ptr %lhs_0, i32 0, i32 1 | |
%7 = load ptr, ptr %6 | |
%8 = getelementptr %btree_t_4, ptr %rhs_0, i32 0, i32 1 | |
%9 = load ptr, ptr %8 | |
%10 = getelementptr %btree_t_4, ptr %lhs_0, i32 0, i32 1 | |
store ptr %9, ptr %10 | |
%11 = getelementptr %btree_t_4, ptr %rhs_0, i32 0, i32 1 | |
store ptr %7, ptr %11 | |
ret void | |
} | |
%node_data_t_5 = type {ptr, i16, i16, i1} | |
%node_t_5 = type {%node_data_t_5, [15 x [4 x i32]]} | |
%inner_node_t_5 = type {%node_t_5, [16 x ptr]} | |
%btree_iterator_t_5 = type {ptr, i16} | |
%btree_t_5 = type {ptr, ptr} | |
define external ccc i8 @eclair_btree_value_compare_5(i32 %lhs_0, i32 %rhs_0) { | |
start: | |
%0 = icmp ult i32 %lhs_0, %rhs_0 | |
br i1 %0, label %if_0, label %end_if_0 | |
if_0: | |
ret i8 -1 | |
end_if_0: | |
%1 = icmp ugt i32 %lhs_0, %rhs_0 | |
%2 = select i1 %1, i8 1, i8 0 | |
ret i8 %2 | |
} | |
define external ccc i8 @eclair_btree_value_compare_values_5(ptr %lhs_0, ptr %rhs_0) { | |
start: | |
br label %comparison_0 | |
comparison_0: | |
%0 = getelementptr [4 x i32], ptr %lhs_0, i32 0, i32 1 | |
%1 = getelementptr [4 x i32], ptr %rhs_0, i32 0, i32 1 | |
%2 = load i32, ptr %0 | |
%3 = load i32, ptr %1 | |
%4 = call ccc i8 @eclair_btree_value_compare_5(i32 %2, i32 %3) | |
br label %end_0 | |
end_0: | |
%5 = phi i8 [%4, %comparison_0] | |
ret i8 %5 | |
} | |
define external ccc ptr @eclair_btree_node_new_5(i1 %type_0) { | |
start: | |
%0 = select i1 %type_0, i32 384, i32 256 | |
%1 = call ccc ptr @malloc(i32 %0) | |
%2 = getelementptr %node_t_5, ptr %1, i32 0, i32 0, i32 0 | |
store ptr zeroinitializer, ptr %2 | |
%3 = getelementptr %node_t_5, ptr %1, i32 0, i32 0, i32 1 | |
store i16 0, ptr %3 | |
%4 = getelementptr %node_t_5, ptr %1, i32 0, i32 0, i32 2 | |
store i16 0, ptr %4 | |
%5 = getelementptr %node_t_5, ptr %1, i32 0, i32 0, i32 3 | |
store i1 %type_0, ptr %5 | |
%6 = getelementptr %node_t_5, ptr %1, i32 0, i32 1 | |
call ccc void @llvm.memset.p0i8.i64(ptr %6, i8 0, i64 240, i1 0) | |
%7 = icmp eq i1 %type_0, 1 | |
br i1 %7, label %if_0, label %end_if_0 | |
if_0: | |
%8 = getelementptr %inner_node_t_5, ptr %1, i32 0, i32 1 | |
call ccc void @llvm.memset.p0i8.i64(ptr %8, i8 0, i64 128, i1 0) | |
br label %end_if_0 | |
end_if_0: | |
ret ptr %1 | |
} | |
define external ccc i64 @eclair_btree_node_count_entries_5(ptr %node_0) { | |
start: | |
%stack.ptr_0 = alloca i64 | |
%0 = getelementptr %node_t_5, ptr %node_0, i32 0, i32 0, i32 2 | |
%1 = load i16, ptr %0 | |
%2 = getelementptr %node_t_5, ptr %node_0, i32 0, i32 0, i32 3 | |
%3 = load i1, ptr %2 | |
%4 = icmp eq i1 %3, 0 | |
%5 = zext i16 %1 to i64 | |
br i1 %4, label %if_0, label %end_if_0 | |
if_0: | |
ret i64 %5 | |
end_if_0: | |
store i64 %5, ptr %stack.ptr_0 | |
%6 = getelementptr %node_t_5, ptr %node_0, i32 0, i32 0, i32 2 | |
%7 = load i16, ptr %6 | |
br label %for_begin_0 | |
for_begin_0: | |
%8 = phi i16 [0, %end_if_0], [%15, %for_body_0] | |
%9 = icmp ule i16 %8, %7 | |
br i1 %9, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%10 = load i64, ptr %stack.ptr_0 | |
%11 = getelementptr %inner_node_t_5, ptr %node_0, i32 0, i32 1, i16 %8 | |
%12 = load ptr, ptr %11 | |
%13 = call ccc i64 @eclair_btree_node_count_entries_5(ptr %12) | |
%14 = add i64 %10, %13 | |
store i64 %14, ptr %stack.ptr_0 | |
%15 = add i16 1, %8 | |
br label %for_begin_0 | |
for_end_0: | |
%16 = load i64, ptr %stack.ptr_0 | |
ret i64 %16 | |
} | |
define external ccc void @eclair_btree_iterator_init_5(ptr %iter_0, ptr %cur_0, i16 %pos_0) { | |
start: | |
%0 = getelementptr %btree_iterator_t_5, ptr %iter_0, i32 0, i32 0 | |
store ptr %cur_0, ptr %0 | |
%1 = getelementptr %btree_iterator_t_5, ptr %iter_0, i32 0, i32 1 | |
store i16 %pos_0, ptr %1 | |
ret void | |
} | |
define external ccc void @eclair_btree_iterator_end_init_5(ptr %iter_0) { | |
start: | |
call ccc void @eclair_btree_iterator_init_5(ptr %iter_0, ptr zeroinitializer, i16 0) | |
ret void | |
} | |
define external ccc i1 @eclair_btree_iterator_is_equal_5(ptr %lhs_0, ptr %rhs_0) { | |
start: | |
%0 = getelementptr %btree_iterator_t_5, ptr %lhs_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = getelementptr %btree_iterator_t_5, ptr %rhs_0, i32 0, i32 0 | |
%3 = load ptr, ptr %2 | |
%4 = icmp ne ptr %1, %3 | |
br i1 %4, label %if_0, label %end_if_0 | |
if_0: | |
ret i1 0 | |
end_if_0: | |
%5 = getelementptr %btree_iterator_t_5, ptr %lhs_0, i32 0, i32 1 | |
%6 = load i16, ptr %5 | |
%7 = getelementptr %btree_iterator_t_5, ptr %rhs_0, i32 0, i32 1 | |
%8 = load i16, ptr %7 | |
%9 = icmp eq i16 %6, %8 | |
ret i1 %9 | |
} | |
define external ccc ptr @eclair_btree_iterator_current_5(ptr %iter_0) { | |
start: | |
%0 = getelementptr %btree_iterator_t_5, ptr %iter_0, i32 0, i32 1 | |
%1 = load i16, ptr %0 | |
%2 = getelementptr %btree_iterator_t_5, ptr %iter_0, i32 0, i32 0 | |
%3 = load ptr, ptr %2 | |
%4 = getelementptr %node_t_5, ptr %3, i32 0, i32 1, i16 %1 | |
ret ptr %4 | |
} | |
define external ccc void @eclair_btree_iterator_next_5(ptr %iter_0) { | |
start: | |
%stack.ptr_0 = alloca ptr | |
%0 = getelementptr %btree_iterator_t_5, ptr %iter_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = getelementptr %node_t_5, ptr %1, i32 0, i32 0, i32 3 | |
%3 = load i1, ptr %2 | |
%4 = icmp eq i1 %3, 1 | |
br i1 %4, label %if_0, label %end_if_1 | |
if_0: | |
%5 = getelementptr %btree_iterator_t_5, ptr %iter_0, i32 0, i32 1 | |
%6 = load i16, ptr %5 | |
%7 = add i16 1, %6 | |
%8 = getelementptr %btree_iterator_t_5, ptr %iter_0, i32 0, i32 0 | |
%9 = load ptr, ptr %8 | |
%10 = getelementptr %inner_node_t_5, ptr %9, i32 0, i32 1, i16 %7 | |
%11 = load ptr, ptr %10 | |
store ptr %11, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_begin_0: | |
%12 = load ptr, ptr %stack.ptr_0 | |
%13 = getelementptr %node_t_5, ptr %12, i32 0, i32 0, i32 3 | |
%14 = load i1, ptr %13 | |
%15 = icmp eq i1 %14, 1 | |
br i1 %15, label %while_body_0, label %while_end_0 | |
while_body_0: | |
%16 = load ptr, ptr %stack.ptr_0 | |
%17 = getelementptr %inner_node_t_5, ptr %16, i32 0, i32 1, i16 0 | |
%18 = load ptr, ptr %17 | |
store ptr %18, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_end_0: | |
%19 = load ptr, ptr %stack.ptr_0 | |
%20 = getelementptr %btree_iterator_t_5, ptr %iter_0, i32 0, i32 0 | |
store ptr %19, ptr %20 | |
%21 = getelementptr %btree_iterator_t_5, ptr %iter_0, i32 0, i32 1 | |
store i16 0, ptr %21 | |
%22 = getelementptr %node_t_5, ptr %19, i32 0, i32 0, i32 2 | |
%23 = load i16, ptr %22 | |
%24 = icmp ne i16 %23, 0 | |
br i1 %24, label %if_1, label %end_if_0 | |
if_1: | |
ret void | |
end_if_0: | |
br label %leaf.next_0 | |
end_if_1: | |
br label %leaf.next_0 | |
leaf.next_0: | |
%25 = getelementptr %btree_iterator_t_5, ptr %iter_0, i32 0, i32 1 | |
%26 = load i16, ptr %25 | |
%27 = add i16 1, %26 | |
store i16 %27, ptr %25 | |
%28 = getelementptr %btree_iterator_t_5, ptr %iter_0, i32 0, i32 1 | |
%29 = load i16, ptr %28 | |
%30 = getelementptr %btree_iterator_t_5, ptr %iter_0, i32 0, i32 0 | |
%31 = load ptr, ptr %30 | |
%32 = getelementptr %node_t_5, ptr %31, i32 0, i32 0, i32 2 | |
%33 = load i16, ptr %32 | |
%34 = icmp ult i16 %29, %33 | |
br i1 %34, label %if_2, label %end_if_2 | |
if_2: | |
ret void | |
end_if_2: | |
br label %while_begin_1 | |
while_begin_1: | |
%35 = getelementptr %btree_iterator_t_5, ptr %iter_0, i32 0, i32 0 | |
%36 = load ptr, ptr %35 | |
%37 = icmp eq ptr %36, zeroinitializer | |
br i1 %37, label %leaf.no_parent_0, label %leaf.has_parent_0 | |
leaf.no_parent_0: | |
br label %loop.condition.end_0 | |
leaf.has_parent_0: | |
%38 = getelementptr %btree_iterator_t_5, ptr %iter_0, i32 0, i32 1 | |
%39 = load i16, ptr %38 | |
%40 = getelementptr %btree_iterator_t_5, ptr %iter_0, i32 0, i32 0 | |
%41 = load ptr, ptr %40 | |
%42 = getelementptr %node_t_5, ptr %41, i32 0, i32 0, i32 2 | |
%43 = load i16, ptr %42 | |
%44 = icmp eq i16 %39, %43 | |
br label %loop.condition.end_0 | |
loop.condition.end_0: | |
%45 = phi i1 [0, %leaf.no_parent_0], [%44, %leaf.has_parent_0] | |
br i1 %45, label %while_body_1, label %while_end_1 | |
while_body_1: | |
%46 = getelementptr %btree_iterator_t_5, ptr %iter_0, i32 0, i32 0 | |
%47 = load ptr, ptr %46 | |
%48 = getelementptr %node_t_5, ptr %47, i32 0, i32 0, i32 1 | |
%49 = load i16, ptr %48 | |
%50 = getelementptr %btree_iterator_t_5, ptr %iter_0, i32 0, i32 1 | |
store i16 %49, ptr %50 | |
%51 = getelementptr %node_t_5, ptr %47, i32 0, i32 0, i32 0 | |
%52 = load ptr, ptr %51 | |
%53 = getelementptr %btree_iterator_t_5, ptr %iter_0, i32 0, i32 0 | |
store ptr %52, ptr %53 | |
br label %while_begin_1 | |
while_end_1: | |
ret void | |
} | |
define external ccc ptr @eclair_btree_linear_search_lower_bound_5(ptr %val_0, ptr %current_0, ptr %end_0) { | |
start: | |
%stack.ptr_0 = alloca ptr | |
store ptr %current_0, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_begin_0: | |
%0 = load ptr, ptr %stack.ptr_0 | |
%1 = icmp ne ptr %0, %end_0 | |
br i1 %1, label %while_body_0, label %while_end_0 | |
while_body_0: | |
%2 = load ptr, ptr %stack.ptr_0 | |
%3 = call ccc i8 @eclair_btree_value_compare_values_5(ptr %2, ptr %val_0) | |
%4 = icmp ne i8 %3, -1 | |
br i1 %4, label %if_0, label %end_if_0 | |
if_0: | |
ret ptr %2 | |
end_if_0: | |
%5 = getelementptr [4 x i32], ptr %2, i32 1 | |
store ptr %5, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_end_0: | |
ret ptr %end_0 | |
} | |
define external ccc ptr @eclair_btree_linear_search_upper_bound_5(ptr %val_0, ptr %current_0, ptr %end_0) { | |
start: | |
%stack.ptr_0 = alloca ptr | |
store ptr %current_0, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_begin_0: | |
%0 = load ptr, ptr %stack.ptr_0 | |
%1 = icmp ne ptr %0, %end_0 | |
br i1 %1, label %while_body_0, label %while_end_0 | |
while_body_0: | |
%2 = load ptr, ptr %stack.ptr_0 | |
%3 = call ccc i8 @eclair_btree_value_compare_values_5(ptr %2, ptr %val_0) | |
%4 = icmp eq i8 %3, 1 | |
br i1 %4, label %if_0, label %end_if_0 | |
if_0: | |
ret ptr %2 | |
end_if_0: | |
%5 = getelementptr [4 x i32], ptr %2, i32 1 | |
store ptr %5, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_end_0: | |
ret ptr %end_0 | |
} | |
define external ccc void @eclair_btree_init_empty_5(ptr %tree_0) { | |
start: | |
%0 = getelementptr %btree_t_5, ptr %tree_0, i32 0, i32 0 | |
store ptr zeroinitializer, ptr %0 | |
%1 = getelementptr %btree_t_5, ptr %tree_0, i32 0, i32 1 | |
store ptr zeroinitializer, ptr %1 | |
ret void | |
} | |
define external ccc void @eclair_btree_init_5(ptr %tree_0, ptr %start_0, ptr %end_0) { | |
start: | |
call ccc void @eclair_btree_insert_range__5(ptr %tree_0, ptr %start_0, ptr %end_0) | |
ret void | |
} | |
define external ccc void @eclair_btree_destroy_5(ptr %tree_0) { | |
start: | |
call ccc void @eclair_btree_clear_5(ptr %tree_0) | |
ret void | |
} | |
define external ccc i1 @eclair_btree_is_empty_5(ptr %tree_0) { | |
start: | |
%0 = getelementptr %btree_t_5, ptr %tree_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = icmp eq ptr %1, zeroinitializer | |
ret i1 %2 | |
} | |
define external ccc i64 @eclair_btree_size_5(ptr %tree_0) { | |
start: | |
%0 = getelementptr %btree_t_5, ptr %tree_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = icmp eq ptr %1, zeroinitializer | |
br i1 %2, label %null_0, label %not_null_0 | |
null_0: | |
ret i64 0 | |
not_null_0: | |
%3 = call ccc i64 @eclair_btree_node_count_entries_5(ptr %1) | |
ret i64 %3 | |
} | |
define external ccc i16 @eclair_btree_node_split_point_5() { | |
start: | |
%0 = mul i16 3, 15 | |
%1 = udiv i16 %0, 4 | |
%2 = sub i16 15, 2 | |
%3 = icmp ult i16 %1, %2 | |
%4 = select i1 %3, i16 %1, i16 %2 | |
ret i16 %4 | |
} | |
define external ccc void @eclair_btree_node_split_5(ptr %node_0, ptr %root_0) { | |
start: | |
%stack.ptr_0 = alloca i16 | |
%0 = call ccc i16 @eclair_btree_node_split_point_5() | |
%1 = add i16 1, %0 | |
%2 = getelementptr %node_t_5, ptr %node_0, i32 0, i32 0, i32 3 | |
%3 = load i1, ptr %2 | |
%4 = call ccc ptr @eclair_btree_node_new_5(i1 %3) | |
store i16 0, ptr %stack.ptr_0 | |
br label %for_begin_0 | |
for_begin_0: | |
%5 = phi i16 [%1, %start], [%12, %for_body_0] | |
%6 = icmp ult i16 %5, 15 | |
br i1 %6, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%7 = load i16, ptr %stack.ptr_0 | |
%8 = getelementptr %node_t_5, ptr %node_0, i32 0, i32 1, i16 %5 | |
%9 = load [4 x i32], ptr %8 | |
%10 = getelementptr %node_t_5, ptr %4, i32 0, i32 1, i16 %7 | |
store [4 x i32] %9, ptr %10 | |
%11 = add i16 1, %7 | |
store i16 %11, ptr %stack.ptr_0 | |
%12 = add i16 1, %5 | |
br label %for_begin_0 | |
for_end_0: | |
%13 = icmp eq i1 %3, 1 | |
br i1 %13, label %if_0, label %end_if_0 | |
if_0: | |
store i16 0, ptr %stack.ptr_0 | |
br label %for_begin_1 | |
for_begin_1: | |
%14 = phi i16 [%1, %if_0], [%23, %for_body_1] | |
%15 = icmp ule i16 %14, 15 | |
br i1 %15, label %for_body_1, label %for_end_1 | |
for_body_1: | |
%16 = load i16, ptr %stack.ptr_0 | |
%17 = getelementptr %inner_node_t_5, ptr %node_0, i32 0, i32 1, i16 %14 | |
%18 = load ptr, ptr %17 | |
%19 = getelementptr %node_t_5, ptr %18, i32 0, i32 0, i32 0 | |
store ptr %4, ptr %19 | |
%20 = getelementptr %node_t_5, ptr %18, i32 0, i32 0, i32 1 | |
store i16 %16, ptr %20 | |
%21 = getelementptr %inner_node_t_5, ptr %4, i32 0, i32 1, i16 %16 | |
store ptr %18, ptr %21 | |
%22 = add i16 1, %16 | |
store i16 %22, ptr %stack.ptr_0 | |
%23 = add i16 1, %14 | |
br label %for_begin_1 | |
for_end_1: | |
br label %end_if_0 | |
end_if_0: | |
%24 = getelementptr %node_t_5, ptr %node_0, i32 0, i32 0, i32 2 | |
store i16 %0, ptr %24 | |
%25 = sub i16 15, %0 | |
%26 = sub i16 %25, 1 | |
%27 = getelementptr %node_t_5, ptr %4, i32 0, i32 0, i32 2 | |
store i16 %26, ptr %27 | |
call ccc void @eclair_btree_node_grow_parent_5(ptr %node_0, ptr %root_0, ptr %4) | |
ret void | |
} | |
define external ccc void @eclair_btree_node_grow_parent_5(ptr %node_0, ptr %root_0, ptr %sibling_0) { | |
start: | |
%0 = getelementptr %node_t_5, ptr %node_0, i32 0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = icmp eq ptr %1, zeroinitializer | |
%3 = getelementptr %node_t_5, ptr %node_0, i32 0, i32 0, i32 2 | |
%4 = load i16, ptr %3 | |
br i1 %2, label %create_new_root_0, label %insert_new_node_in_parent_0 | |
create_new_root_0: | |
%5 = call ccc ptr @eclair_btree_node_new_5(i1 1) | |
%6 = getelementptr %node_t_5, ptr %5, i32 0, i32 0, i32 2 | |
store i16 1, ptr %6 | |
%7 = getelementptr %node_t_5, ptr %node_0, i32 0, i32 1, i16 %4 | |
%8 = load [4 x i32], ptr %7 | |
%9 = getelementptr %node_t_5, ptr %5, i32 0, i32 1, i16 0 | |
store [4 x i32] %8, ptr %9 | |
%10 = getelementptr %inner_node_t_5, ptr %5, i32 0, i32 1, i16 0 | |
store ptr %node_0, ptr %10 | |
%11 = getelementptr %inner_node_t_5, ptr %5, i32 0, i32 1, i16 1 | |
store ptr %sibling_0, ptr %11 | |
%12 = getelementptr %node_t_5, ptr %node_0, i32 0, i32 0, i32 0 | |
store ptr %5, ptr %12 | |
%13 = getelementptr %node_t_5, ptr %sibling_0, i32 0, i32 0, i32 0 | |
store ptr %5, ptr %13 | |
%14 = getelementptr %node_t_5, ptr %sibling_0, i32 0, i32 0, i32 1 | |
store i16 1, ptr %14 | |
store ptr %5, ptr %root_0 | |
ret void | |
insert_new_node_in_parent_0: | |
%15 = getelementptr %node_t_5, ptr %node_0, i32 0, i32 0, i32 1 | |
%16 = load i16, ptr %15 | |
%17 = getelementptr %node_t_5, ptr %node_0, i32 0, i32 1, i16 %4 | |
call ccc void @eclair_btree_node_insert_inner_5(ptr %1, ptr %root_0, i16 %16, ptr %node_0, ptr %17, ptr %sibling_0) | |
ret void | |
} | |
define external ccc void @eclair_btree_node_insert_inner_5(ptr %node_0, ptr %root_0, i16 %pos_0, ptr %predecessor_0, ptr %key_0, ptr %new_node_0) { | |
start: | |
%stack.ptr_0 = alloca i16 | |
store i16 %pos_0, ptr %stack.ptr_0 | |
%0 = getelementptr %node_t_5, ptr %node_0, i32 0, i32 0, i32 2 | |
%1 = load i16, ptr %0 | |
%2 = icmp uge i16 %1, 15 | |
br i1 %2, label %if_0, label %end_if_1 | |
if_0: | |
%3 = load i16, ptr %stack.ptr_0 | |
%4 = call ccc i16 @eclair_btree_node_rebalance_or_split_5(ptr %node_0, ptr %root_0, i16 %pos_0) | |
%5 = sub i16 %3, %4 | |
store i16 %5, ptr %stack.ptr_0 | |
%6 = getelementptr %node_t_5, ptr %node_0, i32 0, i32 0, i32 2 | |
%7 = load i16, ptr %6 | |
%8 = icmp ugt i16 %5, %7 | |
br i1 %8, label %if_1, label %end_if_0 | |
if_1: | |
%9 = sub i16 %5, %7 | |
%10 = sub i16 %9, 1 | |
store i16 %10, ptr %stack.ptr_0 | |
%11 = getelementptr %node_t_5, ptr %node_0, i32 0, i32 0, i32 0 | |
%12 = load ptr, ptr %11 | |
%13 = getelementptr %node_t_5, ptr %node_0, i32 0, i32 0, i32 1 | |
%14 = load i16, ptr %13 | |
%15 = add i16 1, %14 | |
%16 = getelementptr %inner_node_t_5, ptr %12, i32 0, i32 1, i16 %15 | |
%17 = load ptr, ptr %16 | |
call ccc void @eclair_btree_node_insert_inner_5(ptr %17, ptr %root_0, i16 %10, ptr %predecessor_0, ptr %key_0, ptr %new_node_0) | |
ret void | |
end_if_0: | |
br label %end_if_1 | |
end_if_1: | |
%18 = getelementptr %node_t_5, ptr %node_0, i32 0, i32 0, i32 2 | |
%19 = load i16, ptr %18 | |
%20 = sub i16 %19, 1 | |
%21 = load i16, ptr %stack.ptr_0 | |
br label %for_begin_0 | |
for_begin_0: | |
%22 = phi i16 [%20, %end_if_1], [%37, %for_body_0] | |
%23 = icmp uge i16 %22, %21 | |
br i1 %23, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%24 = add i16 %22, 1 | |
%25 = add i16 %22, 2 | |
%26 = getelementptr %node_t_5, ptr %node_0, i32 0, i32 1, i16 %22 | |
%27 = load [4 x i32], ptr %26 | |
%28 = getelementptr %node_t_5, ptr %node_0, i32 0, i32 1, i16 %24 | |
store [4 x i32] %27, ptr %28 | |
%29 = getelementptr %inner_node_t_5, ptr %node_0, i32 0, i32 1, i16 %24 | |
%30 = load ptr, ptr %29 | |
%31 = getelementptr %inner_node_t_5, ptr %node_0, i32 0, i32 1, i16 %25 | |
store ptr %30, ptr %31 | |
%32 = getelementptr %inner_node_t_5, ptr %node_0, i32 0, i32 1, i16 %25 | |
%33 = load ptr, ptr %32 | |
%34 = getelementptr %node_t_5, ptr %33, i32 0, i32 0, i32 1 | |
%35 = load i16, ptr %34 | |
%36 = add i16 1, %35 | |
store i16 %36, ptr %34 | |
%37 = sub i16 %22, 1 | |
br label %for_begin_0 | |
for_end_0: | |
%38 = load [4 x i32], ptr %key_0 | |
%39 = getelementptr %node_t_5, ptr %node_0, i32 0, i32 1, i16 %21 | |
store [4 x i32] %38, ptr %39 | |
%40 = add i16 %21, 1 | |
%41 = getelementptr %inner_node_t_5, ptr %node_0, i32 0, i32 1, i16 %40 | |
store ptr %new_node_0, ptr %41 | |
%42 = getelementptr %node_t_5, ptr %new_node_0, i32 0, i32 0, i32 0 | |
store ptr %node_0, ptr %42 | |
%43 = getelementptr %node_t_5, ptr %new_node_0, i32 0, i32 0, i32 1 | |
store i16 %40, ptr %43 | |
%44 = getelementptr %node_t_5, ptr %node_0, i32 0, i32 0, i32 2 | |
%45 = load i16, ptr %44 | |
%46 = add i16 1, %45 | |
store i16 %46, ptr %44 | |
ret void | |
} | |
define external ccc i16 @eclair_btree_node_rebalance_or_split_5(ptr %node_0, ptr %root_0, i16 %idx_0) { | |
start: | |
%0 = getelementptr %node_t_5, ptr %node_0, i32 0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = getelementptr %node_t_5, ptr %node_0, i32 0, i32 0, i32 1 | |
%3 = load i16, ptr %2 | |
%4 = icmp ne ptr %1, zeroinitializer | |
%5 = icmp ugt i16 %3, 0 | |
%6 = and i1 %4, %5 | |
br i1 %6, label %rebalance_0, label %split_0 | |
rebalance_0: | |
%7 = sub i16 %3, 1 | |
%8 = getelementptr %inner_node_t_5, ptr %1, i32 0, i32 1, i16 %7 | |
%9 = load ptr, ptr %8 | |
%10 = getelementptr %node_t_5, ptr %9, i32 0, i32 0, i32 2 | |
%11 = load i16, ptr %10 | |
%12 = sub i16 15, %11 | |
%13 = icmp slt i16 %12, %idx_0 | |
%14 = select i1 %13, i16 %12, i16 %idx_0 | |
%15 = icmp ugt i16 %14, 0 | |
br i1 %15, label %if_0, label %end_if_1 | |
if_0: | |
%16 = getelementptr %node_t_5, ptr %node_0, i32 0, i32 0, i32 1 | |
%17 = load i16, ptr %16 | |
%18 = sub i16 %17, 1 | |
%19 = getelementptr %inner_node_t_5, ptr %1, i32 0, i32 0, i32 1, i16 %18 | |
%20 = load [4 x i32], ptr %19 | |
%21 = getelementptr %node_t_5, ptr %9, i32 0, i32 0, i32 2 | |
%22 = load i16, ptr %21 | |
%23 = getelementptr %node_t_5, ptr %9, i32 0, i32 1, i16 %22 | |
store [4 x i32] %20, ptr %23 | |
%24 = sub i16 %14, 1 | |
br label %for_begin_0 | |
for_begin_0: | |
%25 = phi i16 [0, %if_0], [%32, %for_body_0] | |
%26 = icmp ult i16 %25, %24 | |
br i1 %26, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%27 = add i16 %22, 1 | |
%28 = add i16 %25, %27 | |
%29 = getelementptr %node_t_5, ptr %node_0, i32 0, i32 1, i16 %25 | |
%30 = load [4 x i32], ptr %29 | |
%31 = getelementptr %node_t_5, ptr %9, i32 0, i32 1, i16 %28 | |
store [4 x i32] %30, ptr %31 | |
%32 = add i16 1, %25 | |
br label %for_begin_0 | |
for_end_0: | |
%33 = getelementptr %node_t_5, ptr %node_0, i32 0, i32 1, i16 %24 | |
%34 = load [4 x i32], ptr %33 | |
store [4 x i32] %34, ptr %19 | |
%35 = getelementptr %node_t_5, ptr %node_0, i32 0, i32 0, i32 2 | |
%36 = load i16, ptr %35 | |
%37 = sub i16 %36, %14 | |
br label %for_begin_1 | |
for_begin_1: | |
%38 = phi i16 [0, %for_end_0], [%44, %for_body_1] | |
%39 = icmp ult i16 %38, %37 | |
br i1 %39, label %for_body_1, label %for_end_1 | |
for_body_1: | |
%40 = add i16 %38, %14 | |
%41 = getelementptr %node_t_5, ptr %node_0, i32 0, i32 1, i16 %40 | |
%42 = load [4 x i32], ptr %41 | |
%43 = getelementptr %node_t_5, ptr %node_0, i32 0, i32 1, i16 %38 | |
store [4 x i32] %42, ptr %43 | |
%44 = add i16 1, %38 | |
br label %for_begin_1 | |
for_end_1: | |
%45 = getelementptr %node_t_5, ptr %node_0, i32 0, i32 0, i32 3 | |
%46 = load i1, ptr %45 | |
%47 = icmp eq i1 %46, 1 | |
br i1 %47, label %if_1, label %end_if_0 | |
if_1: | |
br label %for_begin_2 | |
for_begin_2: | |
%48 = phi i16 [0, %if_1], [%61, %for_body_2] | |
%49 = icmp ult i16 %48, %14 | |
br i1 %49, label %for_body_2, label %for_end_2 | |
for_body_2: | |
%50 = getelementptr %node_t_5, ptr %9, i32 0, i32 0, i32 2 | |
%51 = load i16, ptr %50 | |
%52 = add i16 %51, 1 | |
%53 = add i16 %48, %52 | |
%54 = getelementptr %inner_node_t_5, ptr %node_0, i32 0, i32 1, i16 %48 | |
%55 = load ptr, ptr %54 | |
%56 = getelementptr %inner_node_t_5, ptr %9, i32 0, i32 1, i16 %53 | |
store ptr %55, ptr %56 | |
%57 = getelementptr %inner_node_t_5, ptr %9, i32 0, i32 1, i16 %53 | |
%58 = load ptr, ptr %57 | |
%59 = getelementptr %node_t_5, ptr %58, i32 0, i32 0, i32 0 | |
store ptr %9, ptr %59 | |
%60 = getelementptr %node_t_5, ptr %58, i32 0, i32 0, i32 1 | |
store i16 %53, ptr %60 | |
%61 = add i16 1, %48 | |
br label %for_begin_2 | |
for_end_2: | |
%62 = sub i16 %36, %14 | |
%63 = add i16 1, %62 | |
br label %for_begin_3 | |
for_begin_3: | |
%64 = phi i16 [0, %for_end_2], [%73, %for_body_3] | |
%65 = icmp ult i16 %64, %63 | |
br i1 %65, label %for_body_3, label %for_end_3 | |
for_body_3: | |
%66 = add i16 %64, %14 | |
%67 = getelementptr %inner_node_t_5, ptr %node_0, i32 0, i32 1, i16 %66 | |
%68 = load ptr, ptr %67 | |
%69 = getelementptr %inner_node_t_5, ptr %node_0, i32 0, i32 1, i16 %64 | |
store ptr %68, ptr %69 | |
%70 = getelementptr %inner_node_t_5, ptr %node_0, i32 0, i32 1, i16 %64 | |
%71 = load ptr, ptr %70 | |
%72 = getelementptr %node_t_5, ptr %71, i32 0, i32 0, i32 1 | |
store i16 %64, ptr %72 | |
%73 = add i16 1, %64 | |
br label %for_begin_3 | |
for_end_3: | |
br label %end_if_0 | |
end_if_0: | |
%74 = getelementptr %node_t_5, ptr %9, i32 0, i32 0, i32 2 | |
%75 = load i16, ptr %74 | |
%76 = add i16 %75, %14 | |
store i16 %76, ptr %74 | |
%77 = getelementptr %node_t_5, ptr %node_0, i32 0, i32 0, i32 2 | |
%78 = load i16, ptr %77 | |
%79 = sub i16 %78, %14 | |
store i16 %79, ptr %77 | |
ret i16 %14 | |
end_if_1: | |
br label %split_0 | |
split_0: | |
call ccc void @eclair_btree_node_split_5(ptr %node_0, ptr %root_0) | |
ret i16 0 | |
} | |
define external ccc i1 @eclair_btree_insert_value_5(ptr %tree_0, ptr %val_0) { | |
start: | |
%stack.ptr_0 = alloca ptr | |
%stack.ptr_1 = alloca i16 | |
%0 = call ccc i1 @eclair_btree_is_empty_5(ptr %tree_0) | |
br i1 %0, label %empty_0, label %non_empty_0 | |
empty_0: | |
%1 = call ccc ptr @eclair_btree_node_new_5(i1 0) | |
%2 = getelementptr %node_t_5, ptr %1, i32 0, i32 0, i32 2 | |
store i16 1, ptr %2 | |
%3 = load [4 x i32], ptr %val_0 | |
%4 = getelementptr %node_t_5, ptr %1, i32 0, i32 1, i16 0 | |
store [4 x i32] %3, ptr %4 | |
%5 = getelementptr %btree_t_5, ptr %tree_0, i32 0, i32 0 | |
store ptr %1, ptr %5 | |
%6 = getelementptr %btree_t_5, ptr %tree_0, i32 0, i32 1 | |
store ptr %1, ptr %6 | |
br label %inserted_new_value_0 | |
non_empty_0: | |
%7 = getelementptr %btree_t_5, ptr %tree_0, i32 0, i32 0 | |
%8 = load ptr, ptr %7 | |
store ptr %8, ptr %stack.ptr_0 | |
br label %loop_0 | |
loop_0: | |
%9 = load ptr, ptr %stack.ptr_0 | |
%10 = getelementptr %node_t_5, ptr %9, i32 0, i32 0, i32 3 | |
%11 = load i1, ptr %10 | |
%12 = icmp eq i1 %11, 1 | |
br i1 %12, label %inner_0, label %leaf_0 | |
inner_0: | |
%13 = getelementptr %node_t_5, ptr %9, i32 0, i32 0, i32 2 | |
%14 = load i16, ptr %13 | |
%15 = getelementptr %node_t_5, ptr %9, i32 0, i32 1, i16 0 | |
%16 = getelementptr %node_t_5, ptr %9, i32 0, i32 1, i16 %14 | |
%17 = call ccc ptr @eclair_btree_linear_search_lower_bound_5(ptr %val_0, ptr %15, ptr %16) | |
%18 = ptrtoint ptr %17 to i64 | |
%19 = ptrtoint ptr %15 to i64 | |
%20 = sub i64 %18, %19 | |
%21 = trunc i64 %20 to i16 | |
%22 = udiv i16 %21, 16 | |
%23 = icmp ne ptr %17, %16 | |
%24 = call ccc i8 @eclair_btree_value_compare_values_5(ptr %17, ptr %val_0) | |
%25 = icmp eq i8 0, %24 | |
%26 = and i1 %23, %25 | |
br i1 %26, label %no_insert_0, label %inner_continue_insert_0 | |
inner_continue_insert_0: | |
%27 = getelementptr %inner_node_t_5, ptr %9, i32 0, i32 1, i16 %22 | |
%28 = load ptr, ptr %27 | |
store ptr %28, ptr %stack.ptr_0 | |
br label %loop_0 | |
leaf_0: | |
%29 = getelementptr %node_t_5, ptr %9, i32 0, i32 0, i32 2 | |
%30 = load i16, ptr %29 | |
%31 = getelementptr %node_t_5, ptr %9, i32 0, i32 1, i16 0 | |
%32 = getelementptr %node_t_5, ptr %9, i32 0, i32 1, i16 %30 | |
%33 = call ccc ptr @eclair_btree_linear_search_upper_bound_5(ptr %val_0, ptr %31, ptr %32) | |
%34 = ptrtoint ptr %33 to i64 | |
%35 = ptrtoint ptr %31 to i64 | |
%36 = sub i64 %34, %35 | |
%37 = trunc i64 %36 to i16 | |
%38 = udiv i16 %37, 16 | |
store i16 %38, ptr %stack.ptr_1 | |
%39 = icmp ne ptr %33, %31 | |
%40 = getelementptr [4 x i32], ptr %33, i32 -1 | |
%41 = call ccc i8 @eclair_btree_value_compare_values_5(ptr %40, ptr %val_0) | |
%42 = icmp eq i8 0, %41 | |
%43 = and i1 %39, %42 | |
br i1 %43, label %no_insert_0, label %leaf_continue_insert_0 | |
leaf_continue_insert_0: | |
%44 = icmp uge i16 %30, 15 | |
br i1 %44, label %split_0, label %no_split_0 | |
split_0: | |
%45 = getelementptr %btree_t_5, ptr %tree_0, i32 0, i32 0 | |
%46 = load i16, ptr %stack.ptr_1 | |
%47 = call ccc i16 @eclair_btree_node_rebalance_or_split_5(ptr %9, ptr %45, i16 %46) | |
%48 = sub i16 %46, %47 | |
store i16 %48, ptr %stack.ptr_1 | |
%49 = getelementptr %node_t_5, ptr %9, i32 0, i32 0, i32 2 | |
%50 = load i16, ptr %49 | |
%51 = icmp ugt i16 %48, %50 | |
br i1 %51, label %if_0, label %end_if_0 | |
if_0: | |
%52 = add i16 %50, 1 | |
%53 = sub i16 %48, %52 | |
store i16 %53, ptr %stack.ptr_1 | |
%54 = getelementptr %node_t_5, ptr %9, i32 0, i32 0, i32 0 | |
%55 = load ptr, ptr %54 | |
%56 = getelementptr %node_t_5, ptr %9, i32 0, i32 0, i32 1 | |
%57 = load i16, ptr %56 | |
%58 = add i16 1, %57 | |
%59 = getelementptr %inner_node_t_5, ptr %55, i32 0, i32 1, i16 %58 | |
%60 = load ptr, ptr %59 | |
store ptr %60, ptr %stack.ptr_0 | |
br label %end_if_0 | |
end_if_0: | |
br label %no_split_0 | |
no_split_0: | |
%61 = load ptr, ptr %stack.ptr_0 | |
%62 = load i16, ptr %stack.ptr_1 | |
%63 = getelementptr %node_t_5, ptr %61, i32 0, i32 0, i32 2 | |
%64 = load i16, ptr %63 | |
br label %for_begin_0 | |
for_begin_0: | |
%65 = phi i16 [%64, %no_split_0], [%71, %for_body_0] | |
%66 = icmp ugt i16 %65, %62 | |
br i1 %66, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%67 = sub i16 %65, 1 | |
%68 = getelementptr %node_t_5, ptr %61, i32 0, i32 1, i16 %67 | |
%69 = load [4 x i32], ptr %68 | |
%70 = getelementptr %node_t_5, ptr %61, i32 0, i32 1, i16 %65 | |
store [4 x i32] %69, ptr %70 | |
%71 = sub i16 %65, 1 | |
br label %for_begin_0 | |
for_end_0: | |
%72 = load [4 x i32], ptr %val_0 | |
%73 = getelementptr %node_t_5, ptr %61, i32 0, i32 1, i16 %62 | |
store [4 x i32] %72, ptr %73 | |
%74 = getelementptr %node_t_5, ptr %61, i32 0, i32 0, i32 2 | |
%75 = load i16, ptr %74 | |
%76 = add i16 1, %75 | |
store i16 %76, ptr %74 | |
br label %inserted_new_value_0 | |
no_insert_0: | |
ret i1 0 | |
inserted_new_value_0: | |
ret i1 1 | |
} | |
define external ccc void @eclair_btree_insert_range__5(ptr %tree_0, ptr %begin_0, ptr %end_0) { | |
start: | |
br label %while_begin_0 | |
while_begin_0: | |
%0 = call ccc i1 @eclair_btree_iterator_is_equal_5(ptr %begin_0, ptr %end_0) | |
%1 = select i1 %0, i1 0, i1 1 | |
br i1 %1, label %while_body_0, label %while_end_0 | |
while_body_0: | |
%2 = call ccc ptr @eclair_btree_iterator_current_5(ptr %begin_0) | |
%3 = call ccc i1 @eclair_btree_insert_value_5(ptr %tree_0, ptr %2) | |
call ccc void @eclair_btree_iterator_next_5(ptr %begin_0) | |
br label %while_begin_0 | |
while_end_0: | |
ret void | |
} | |
define external ccc void @eclair_btree_begin_5(ptr %tree_0, ptr %result_0) { | |
start: | |
%0 = getelementptr %btree_t_5, ptr %tree_0, i32 0, i32 1 | |
%1 = load ptr, ptr %0 | |
%2 = getelementptr %btree_iterator_t_5, ptr %result_0, i32 0, i32 0 | |
store ptr %1, ptr %2 | |
%3 = getelementptr %btree_iterator_t_5, ptr %result_0, i32 0, i32 1 | |
store i16 0, ptr %3 | |
ret void | |
} | |
define external ccc void @eclair_btree_end_5(ptr %tree_0, ptr %result_0) { | |
start: | |
call ccc void @eclair_btree_iterator_end_init_5(ptr %result_0) | |
ret void | |
} | |
define external ccc i1 @eclair_btree_contains_5(ptr %tree_0, ptr %val_0) { | |
start: | |
%stack.ptr_0 = alloca %btree_iterator_t_5, i32 1 | |
%stack.ptr_1 = alloca %btree_iterator_t_5, i32 1 | |
call ccc void @eclair_btree_find_5(ptr %tree_0, ptr %val_0, ptr %stack.ptr_0) | |
call ccc void @eclair_btree_end_5(ptr %tree_0, ptr %stack.ptr_1) | |
%0 = call ccc i1 @eclair_btree_iterator_is_equal_5(ptr %stack.ptr_0, ptr %stack.ptr_1) | |
%1 = select i1 %0, i1 0, i1 1 | |
ret i1 %1 | |
} | |
define external ccc void @eclair_btree_find_5(ptr %tree_0, ptr %val_0, ptr %result_0) { | |
start: | |
%stack.ptr_0 = alloca ptr | |
%0 = call ccc i1 @eclair_btree_is_empty_5(ptr %tree_0) | |
br i1 %0, label %if_0, label %end_if_0 | |
if_0: | |
call ccc void @eclair_btree_iterator_end_init_5(ptr %result_0) | |
ret void | |
end_if_0: | |
%1 = getelementptr %btree_t_5, ptr %tree_0, i32 0, i32 0 | |
%2 = load ptr, ptr %1 | |
store ptr %2, ptr %stack.ptr_0 | |
br label %loop_0 | |
loop_0: | |
%3 = load ptr, ptr %stack.ptr_0 | |
%4 = getelementptr %node_t_5, ptr %3, i32 0, i32 0, i32 2 | |
%5 = load i16, ptr %4 | |
%6 = getelementptr %node_t_5, ptr %3, i32 0, i32 1, i16 0 | |
%7 = getelementptr %node_t_5, ptr %3, i32 0, i32 1, i16 %5 | |
%8 = call ccc ptr @eclair_btree_linear_search_lower_bound_5(ptr %val_0, ptr %6, ptr %7) | |
%9 = ptrtoint ptr %8 to i64 | |
%10 = ptrtoint ptr %6 to i64 | |
%11 = sub i64 %9, %10 | |
%12 = trunc i64 %11 to i16 | |
%13 = udiv i16 %12, 16 | |
%14 = icmp ult ptr %8, %7 | |
%15 = call ccc i8 @eclair_btree_value_compare_values_5(ptr %8, ptr %val_0) | |
%16 = icmp eq i8 0, %15 | |
%17 = and i1 %14, %16 | |
br i1 %17, label %if_1, label %end_if_1 | |
if_1: | |
call ccc void @eclair_btree_iterator_init_5(ptr %result_0, ptr %3, i16 %13) | |
ret void | |
end_if_1: | |
%18 = getelementptr %node_t_5, ptr %3, i32 0, i32 0, i32 3 | |
%19 = load i1, ptr %18 | |
%20 = icmp eq i1 %19, 0 | |
br i1 %20, label %if_2, label %end_if_2 | |
if_2: | |
call ccc void @eclair_btree_iterator_end_init_5(ptr %result_0) | |
ret void | |
end_if_2: | |
%21 = getelementptr %inner_node_t_5, ptr %3, i32 0, i32 1, i16 %13 | |
%22 = load ptr, ptr %21 | |
store ptr %22, ptr %stack.ptr_0 | |
br label %loop_0 | |
} | |
define external ccc void @eclair_btree_lower_bound_5(ptr %tree_0, ptr %val_0, ptr %result_0) { | |
start: | |
%stack.ptr_0 = alloca %btree_iterator_t_5, i32 1 | |
%stack.ptr_1 = alloca ptr | |
%0 = call ccc i1 @eclair_btree_is_empty_5(ptr %tree_0) | |
br i1 %0, label %if_0, label %end_if_0 | |
if_0: | |
call ccc void @eclair_btree_iterator_end_init_5(ptr %result_0) | |
ret void | |
end_if_0: | |
call ccc void @eclair_btree_iterator_end_init_5(ptr %stack.ptr_0) | |
%1 = getelementptr %btree_t_5, ptr %tree_0, i32 0, i32 0 | |
%2 = load ptr, ptr %1 | |
store ptr %2, ptr %stack.ptr_1 | |
br label %loop_0 | |
loop_0: | |
%3 = load ptr, ptr %stack.ptr_1 | |
%4 = getelementptr %node_t_5, ptr %3, i32 0, i32 0, i32 2 | |
%5 = load i16, ptr %4 | |
%6 = getelementptr %node_t_5, ptr %3, i32 0, i32 1, i16 0 | |
%7 = getelementptr %node_t_5, ptr %3, i32 0, i32 1, i16 %5 | |
%8 = call ccc ptr @eclair_btree_linear_search_lower_bound_5(ptr %val_0, ptr %6, ptr %7) | |
%9 = ptrtoint ptr %8 to i64 | |
%10 = ptrtoint ptr %6 to i64 | |
%11 = sub i64 %9, %10 | |
%12 = trunc i64 %11 to i16 | |
%13 = udiv i16 %12, 16 | |
%14 = getelementptr %node_t_5, ptr %3, i32 0, i32 0, i32 3 | |
%15 = load i1, ptr %14 | |
%16 = icmp eq i1 %15, 0 | |
br i1 %16, label %if_1, label %end_if_1 | |
if_1: | |
%17 = icmp eq ptr %8, %7 | |
br i1 %17, label %handle_last_0, label %handle_not_last_0 | |
handle_last_0: | |
%18 = getelementptr %btree_iterator_t_5, ptr %stack.ptr_0, i32 0, i32 0 | |
%19 = load ptr, ptr %18 | |
%20 = getelementptr %btree_iterator_t_5, ptr %result_0, i32 0, i32 0 | |
store ptr %19, ptr %20 | |
%21 = getelementptr %btree_iterator_t_5, ptr %stack.ptr_0, i32 0, i32 1 | |
%22 = load i16, ptr %21 | |
%23 = getelementptr %btree_iterator_t_5, ptr %result_0, i32 0, i32 1 | |
store i16 %22, ptr %23 | |
ret void | |
handle_not_last_0: | |
call ccc void @eclair_btree_iterator_init_5(ptr %result_0, ptr %3, i16 %13) | |
ret void | |
end_if_1: | |
%24 = icmp ne ptr %8, %7 | |
%25 = call ccc i8 @eclair_btree_value_compare_values_5(ptr %8, ptr %val_0) | |
%26 = icmp eq i8 0, %25 | |
%27 = and i1 %24, %26 | |
br i1 %27, label %if_2, label %end_if_2 | |
if_2: | |
call ccc void @eclair_btree_iterator_init_5(ptr %result_0, ptr %3, i16 %13) | |
ret void | |
end_if_2: | |
br i1 %24, label %if_3, label %end_if_3 | |
if_3: | |
call ccc void @eclair_btree_iterator_init_5(ptr %stack.ptr_0, ptr %3, i16 %13) | |
br label %end_if_3 | |
end_if_3: | |
%28 = getelementptr %inner_node_t_5, ptr %3, i32 0, i32 1, i16 %13 | |
%29 = load ptr, ptr %28 | |
store ptr %29, ptr %stack.ptr_1 | |
br label %loop_0 | |
} | |
define external ccc void @eclair_btree_upper_bound_5(ptr %tree_0, ptr %val_0, ptr %result_0) { | |
start: | |
%stack.ptr_0 = alloca %btree_iterator_t_5, i32 1 | |
%stack.ptr_1 = alloca ptr | |
%0 = call ccc i1 @eclair_btree_is_empty_5(ptr %tree_0) | |
br i1 %0, label %if_0, label %end_if_0 | |
if_0: | |
call ccc void @eclair_btree_iterator_end_init_5(ptr %result_0) | |
ret void | |
end_if_0: | |
call ccc void @eclair_btree_iterator_end_init_5(ptr %stack.ptr_0) | |
%1 = getelementptr %btree_t_5, ptr %tree_0, i32 0, i32 0 | |
%2 = load ptr, ptr %1 | |
store ptr %2, ptr %stack.ptr_1 | |
br label %loop_0 | |
loop_0: | |
%3 = load ptr, ptr %stack.ptr_1 | |
%4 = getelementptr %node_t_5, ptr %3, i32 0, i32 0, i32 2 | |
%5 = load i16, ptr %4 | |
%6 = getelementptr %node_t_5, ptr %3, i32 0, i32 1, i16 0 | |
%7 = getelementptr %node_t_5, ptr %3, i32 0, i32 1, i16 %5 | |
%8 = call ccc ptr @eclair_btree_linear_search_upper_bound_5(ptr %val_0, ptr %6, ptr %7) | |
%9 = ptrtoint ptr %8 to i64 | |
%10 = ptrtoint ptr %6 to i64 | |
%11 = sub i64 %9, %10 | |
%12 = trunc i64 %11 to i16 | |
%13 = udiv i16 %12, 16 | |
%14 = getelementptr %node_t_5, ptr %3, i32 0, i32 0, i32 3 | |
%15 = load i1, ptr %14 | |
%16 = icmp eq i1 %15, 0 | |
br i1 %16, label %if_1, label %end_if_1 | |
if_1: | |
%17 = icmp eq ptr %8, %7 | |
br i1 %17, label %handle_last_0, label %handle_not_last_0 | |
handle_last_0: | |
%18 = getelementptr %btree_iterator_t_5, ptr %stack.ptr_0, i32 0, i32 0 | |
%19 = load ptr, ptr %18 | |
%20 = getelementptr %btree_iterator_t_5, ptr %result_0, i32 0, i32 0 | |
store ptr %19, ptr %20 | |
%21 = getelementptr %btree_iterator_t_5, ptr %stack.ptr_0, i32 0, i32 1 | |
%22 = load i16, ptr %21 | |
%23 = getelementptr %btree_iterator_t_5, ptr %result_0, i32 0, i32 1 | |
store i16 %22, ptr %23 | |
ret void | |
handle_not_last_0: | |
call ccc void @eclair_btree_iterator_init_5(ptr %result_0, ptr %3, i16 %13) | |
ret void | |
end_if_1: | |
%24 = icmp ne ptr %8, %7 | |
br i1 %24, label %if_2, label %end_if_2 | |
if_2: | |
call ccc void @eclair_btree_iterator_init_5(ptr %result_0, ptr %3, i16 %13) | |
br label %end_if_2 | |
end_if_2: | |
%25 = getelementptr %inner_node_t_5, ptr %3, i32 0, i32 1, i16 %13 | |
%26 = load ptr, ptr %25 | |
store ptr %26, ptr %stack.ptr_1 | |
br label %loop_0 | |
} | |
define external ccc void @eclair_btree_node_delete_5(ptr %node_0) { | |
start: | |
%0 = getelementptr %node_t_5, ptr %node_0, i32 0, i32 0, i32 3 | |
%1 = load i1, ptr %0 | |
%2 = icmp eq i1 %1, 1 | |
br i1 %2, label %if_0, label %end_if_1 | |
if_0: | |
%3 = getelementptr %node_t_5, ptr %node_0, i32 0, i32 0, i32 2 | |
%4 = load i16, ptr %3 | |
br label %for_begin_0 | |
for_begin_0: | |
%5 = phi i16 [0, %if_0], [%10, %end_if_0] | |
%6 = icmp ule i16 %5, %4 | |
br i1 %6, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%7 = getelementptr %inner_node_t_5, ptr %node_0, i32 0, i32 1, i16 %5 | |
%8 = load ptr, ptr %7 | |
%9 = icmp ne ptr %8, zeroinitializer | |
br i1 %9, label %if_1, label %end_if_0 | |
if_1: | |
call ccc void @eclair_btree_node_delete_5(ptr %8) | |
br label %end_if_0 | |
end_if_0: | |
%10 = add i16 1, %5 | |
br label %for_begin_0 | |
for_end_0: | |
br label %end_if_1 | |
end_if_1: | |
call ccc void @free(ptr %node_0) | |
ret void | |
} | |
define external ccc void @eclair_btree_clear_5(ptr %tree_0) { | |
start: | |
%0 = getelementptr %btree_t_5, ptr %tree_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = icmp ne ptr %1, zeroinitializer | |
br i1 %2, label %if_0, label %end_if_0 | |
if_0: | |
call ccc void @eclair_btree_node_delete_5(ptr %1) | |
%3 = getelementptr %btree_t_5, ptr %tree_0, i32 0, i32 0 | |
store ptr zeroinitializer, ptr %3 | |
%4 = getelementptr %btree_t_5, ptr %tree_0, i32 0, i32 1 | |
store ptr zeroinitializer, ptr %4 | |
br label %end_if_0 | |
end_if_0: | |
ret void | |
} | |
define external ccc void @eclair_btree_swap_5(ptr %lhs_0, ptr %rhs_0) { | |
start: | |
%0 = getelementptr %btree_t_5, ptr %lhs_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = getelementptr %btree_t_5, ptr %rhs_0, i32 0, i32 0 | |
%3 = load ptr, ptr %2 | |
%4 = getelementptr %btree_t_5, ptr %lhs_0, i32 0, i32 0 | |
store ptr %3, ptr %4 | |
%5 = getelementptr %btree_t_5, ptr %rhs_0, i32 0, i32 0 | |
store ptr %1, ptr %5 | |
%6 = getelementptr %btree_t_5, ptr %lhs_0, i32 0, i32 1 | |
%7 = load ptr, ptr %6 | |
%8 = getelementptr %btree_t_5, ptr %rhs_0, i32 0, i32 1 | |
%9 = load ptr, ptr %8 | |
%10 = getelementptr %btree_t_5, ptr %lhs_0, i32 0, i32 1 | |
store ptr %9, ptr %10 | |
%11 = getelementptr %btree_t_5, ptr %rhs_0, i32 0, i32 1 | |
store ptr %7, ptr %11 | |
ret void | |
} | |
%node_data_t_6 = type {ptr, i16, i16, i1} | |
%node_t_6 = type {%node_data_t_6, [60 x [1 x i32]]} | |
%inner_node_t_6 = type {%node_t_6, [61 x ptr]} | |
%btree_iterator_t_6 = type {ptr, i16} | |
%btree_t_6 = type {ptr, ptr} | |
define external ccc i8 @eclair_btree_value_compare_6(i32 %lhs_0, i32 %rhs_0) { | |
start: | |
%0 = icmp ult i32 %lhs_0, %rhs_0 | |
br i1 %0, label %if_0, label %end_if_0 | |
if_0: | |
ret i8 -1 | |
end_if_0: | |
%1 = icmp ugt i32 %lhs_0, %rhs_0 | |
%2 = select i1 %1, i8 1, i8 0 | |
ret i8 %2 | |
} | |
define external ccc i8 @eclair_btree_value_compare_values_6(ptr %lhs_0, ptr %rhs_0) { | |
start: | |
br label %comparison_0 | |
comparison_0: | |
%0 = getelementptr [1 x i32], ptr %lhs_0, i32 0, i32 0 | |
%1 = getelementptr [1 x i32], ptr %rhs_0, i32 0, i32 0 | |
%2 = load i32, ptr %0 | |
%3 = load i32, ptr %1 | |
%4 = call ccc i8 @eclair_btree_value_compare_6(i32 %2, i32 %3) | |
br label %end_0 | |
end_0: | |
%5 = phi i8 [%4, %comparison_0] | |
ret i8 %5 | |
} | |
define external ccc ptr @eclair_btree_node_new_6(i1 %type_0) { | |
start: | |
%0 = select i1 %type_0, i32 744, i32 256 | |
%1 = call ccc ptr @malloc(i32 %0) | |
%2 = getelementptr %node_t_6, ptr %1, i32 0, i32 0, i32 0 | |
store ptr zeroinitializer, ptr %2 | |
%3 = getelementptr %node_t_6, ptr %1, i32 0, i32 0, i32 1 | |
store i16 0, ptr %3 | |
%4 = getelementptr %node_t_6, ptr %1, i32 0, i32 0, i32 2 | |
store i16 0, ptr %4 | |
%5 = getelementptr %node_t_6, ptr %1, i32 0, i32 0, i32 3 | |
store i1 %type_0, ptr %5 | |
%6 = getelementptr %node_t_6, ptr %1, i32 0, i32 1 | |
call ccc void @llvm.memset.p0i8.i64(ptr %6, i8 0, i64 240, i1 0) | |
%7 = icmp eq i1 %type_0, 1 | |
br i1 %7, label %if_0, label %end_if_0 | |
if_0: | |
%8 = getelementptr %inner_node_t_6, ptr %1, i32 0, i32 1 | |
call ccc void @llvm.memset.p0i8.i64(ptr %8, i8 0, i64 488, i1 0) | |
br label %end_if_0 | |
end_if_0: | |
ret ptr %1 | |
} | |
define external ccc i64 @eclair_btree_node_count_entries_6(ptr %node_0) { | |
start: | |
%stack.ptr_0 = alloca i64 | |
%0 = getelementptr %node_t_6, ptr %node_0, i32 0, i32 0, i32 2 | |
%1 = load i16, ptr %0 | |
%2 = getelementptr %node_t_6, ptr %node_0, i32 0, i32 0, i32 3 | |
%3 = load i1, ptr %2 | |
%4 = icmp eq i1 %3, 0 | |
%5 = zext i16 %1 to i64 | |
br i1 %4, label %if_0, label %end_if_0 | |
if_0: | |
ret i64 %5 | |
end_if_0: | |
store i64 %5, ptr %stack.ptr_0 | |
%6 = getelementptr %node_t_6, ptr %node_0, i32 0, i32 0, i32 2 | |
%7 = load i16, ptr %6 | |
br label %for_begin_0 | |
for_begin_0: | |
%8 = phi i16 [0, %end_if_0], [%15, %for_body_0] | |
%9 = icmp ule i16 %8, %7 | |
br i1 %9, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%10 = load i64, ptr %stack.ptr_0 | |
%11 = getelementptr %inner_node_t_6, ptr %node_0, i32 0, i32 1, i16 %8 | |
%12 = load ptr, ptr %11 | |
%13 = call ccc i64 @eclair_btree_node_count_entries_6(ptr %12) | |
%14 = add i64 %10, %13 | |
store i64 %14, ptr %stack.ptr_0 | |
%15 = add i16 1, %8 | |
br label %for_begin_0 | |
for_end_0: | |
%16 = load i64, ptr %stack.ptr_0 | |
ret i64 %16 | |
} | |
define external ccc void @eclair_btree_iterator_init_6(ptr %iter_0, ptr %cur_0, i16 %pos_0) { | |
start: | |
%0 = getelementptr %btree_iterator_t_6, ptr %iter_0, i32 0, i32 0 | |
store ptr %cur_0, ptr %0 | |
%1 = getelementptr %btree_iterator_t_6, ptr %iter_0, i32 0, i32 1 | |
store i16 %pos_0, ptr %1 | |
ret void | |
} | |
define external ccc void @eclair_btree_iterator_end_init_6(ptr %iter_0) { | |
start: | |
call ccc void @eclair_btree_iterator_init_6(ptr %iter_0, ptr zeroinitializer, i16 0) | |
ret void | |
} | |
define external ccc i1 @eclair_btree_iterator_is_equal_6(ptr %lhs_0, ptr %rhs_0) { | |
start: | |
%0 = getelementptr %btree_iterator_t_6, ptr %lhs_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = getelementptr %btree_iterator_t_6, ptr %rhs_0, i32 0, i32 0 | |
%3 = load ptr, ptr %2 | |
%4 = icmp ne ptr %1, %3 | |
br i1 %4, label %if_0, label %end_if_0 | |
if_0: | |
ret i1 0 | |
end_if_0: | |
%5 = getelementptr %btree_iterator_t_6, ptr %lhs_0, i32 0, i32 1 | |
%6 = load i16, ptr %5 | |
%7 = getelementptr %btree_iterator_t_6, ptr %rhs_0, i32 0, i32 1 | |
%8 = load i16, ptr %7 | |
%9 = icmp eq i16 %6, %8 | |
ret i1 %9 | |
} | |
define external ccc ptr @eclair_btree_iterator_current_6(ptr %iter_0) { | |
start: | |
%0 = getelementptr %btree_iterator_t_6, ptr %iter_0, i32 0, i32 1 | |
%1 = load i16, ptr %0 | |
%2 = getelementptr %btree_iterator_t_6, ptr %iter_0, i32 0, i32 0 | |
%3 = load ptr, ptr %2 | |
%4 = getelementptr %node_t_6, ptr %3, i32 0, i32 1, i16 %1 | |
ret ptr %4 | |
} | |
define external ccc void @eclair_btree_iterator_next_6(ptr %iter_0) { | |
start: | |
%stack.ptr_0 = alloca ptr | |
%0 = getelementptr %btree_iterator_t_6, ptr %iter_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = getelementptr %node_t_6, ptr %1, i32 0, i32 0, i32 3 | |
%3 = load i1, ptr %2 | |
%4 = icmp eq i1 %3, 1 | |
br i1 %4, label %if_0, label %end_if_1 | |
if_0: | |
%5 = getelementptr %btree_iterator_t_6, ptr %iter_0, i32 0, i32 1 | |
%6 = load i16, ptr %5 | |
%7 = add i16 1, %6 | |
%8 = getelementptr %btree_iterator_t_6, ptr %iter_0, i32 0, i32 0 | |
%9 = load ptr, ptr %8 | |
%10 = getelementptr %inner_node_t_6, ptr %9, i32 0, i32 1, i16 %7 | |
%11 = load ptr, ptr %10 | |
store ptr %11, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_begin_0: | |
%12 = load ptr, ptr %stack.ptr_0 | |
%13 = getelementptr %node_t_6, ptr %12, i32 0, i32 0, i32 3 | |
%14 = load i1, ptr %13 | |
%15 = icmp eq i1 %14, 1 | |
br i1 %15, label %while_body_0, label %while_end_0 | |
while_body_0: | |
%16 = load ptr, ptr %stack.ptr_0 | |
%17 = getelementptr %inner_node_t_6, ptr %16, i32 0, i32 1, i16 0 | |
%18 = load ptr, ptr %17 | |
store ptr %18, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_end_0: | |
%19 = load ptr, ptr %stack.ptr_0 | |
%20 = getelementptr %btree_iterator_t_6, ptr %iter_0, i32 0, i32 0 | |
store ptr %19, ptr %20 | |
%21 = getelementptr %btree_iterator_t_6, ptr %iter_0, i32 0, i32 1 | |
store i16 0, ptr %21 | |
%22 = getelementptr %node_t_6, ptr %19, i32 0, i32 0, i32 2 | |
%23 = load i16, ptr %22 | |
%24 = icmp ne i16 %23, 0 | |
br i1 %24, label %if_1, label %end_if_0 | |
if_1: | |
ret void | |
end_if_0: | |
br label %leaf.next_0 | |
end_if_1: | |
br label %leaf.next_0 | |
leaf.next_0: | |
%25 = getelementptr %btree_iterator_t_6, ptr %iter_0, i32 0, i32 1 | |
%26 = load i16, ptr %25 | |
%27 = add i16 1, %26 | |
store i16 %27, ptr %25 | |
%28 = getelementptr %btree_iterator_t_6, ptr %iter_0, i32 0, i32 1 | |
%29 = load i16, ptr %28 | |
%30 = getelementptr %btree_iterator_t_6, ptr %iter_0, i32 0, i32 0 | |
%31 = load ptr, ptr %30 | |
%32 = getelementptr %node_t_6, ptr %31, i32 0, i32 0, i32 2 | |
%33 = load i16, ptr %32 | |
%34 = icmp ult i16 %29, %33 | |
br i1 %34, label %if_2, label %end_if_2 | |
if_2: | |
ret void | |
end_if_2: | |
br label %while_begin_1 | |
while_begin_1: | |
%35 = getelementptr %btree_iterator_t_6, ptr %iter_0, i32 0, i32 0 | |
%36 = load ptr, ptr %35 | |
%37 = icmp eq ptr %36, zeroinitializer | |
br i1 %37, label %leaf.no_parent_0, label %leaf.has_parent_0 | |
leaf.no_parent_0: | |
br label %loop.condition.end_0 | |
leaf.has_parent_0: | |
%38 = getelementptr %btree_iterator_t_6, ptr %iter_0, i32 0, i32 1 | |
%39 = load i16, ptr %38 | |
%40 = getelementptr %btree_iterator_t_6, ptr %iter_0, i32 0, i32 0 | |
%41 = load ptr, ptr %40 | |
%42 = getelementptr %node_t_6, ptr %41, i32 0, i32 0, i32 2 | |
%43 = load i16, ptr %42 | |
%44 = icmp eq i16 %39, %43 | |
br label %loop.condition.end_0 | |
loop.condition.end_0: | |
%45 = phi i1 [0, %leaf.no_parent_0], [%44, %leaf.has_parent_0] | |
br i1 %45, label %while_body_1, label %while_end_1 | |
while_body_1: | |
%46 = getelementptr %btree_iterator_t_6, ptr %iter_0, i32 0, i32 0 | |
%47 = load ptr, ptr %46 | |
%48 = getelementptr %node_t_6, ptr %47, i32 0, i32 0, i32 1 | |
%49 = load i16, ptr %48 | |
%50 = getelementptr %btree_iterator_t_6, ptr %iter_0, i32 0, i32 1 | |
store i16 %49, ptr %50 | |
%51 = getelementptr %node_t_6, ptr %47, i32 0, i32 0, i32 0 | |
%52 = load ptr, ptr %51 | |
%53 = getelementptr %btree_iterator_t_6, ptr %iter_0, i32 0, i32 0 | |
store ptr %52, ptr %53 | |
br label %while_begin_1 | |
while_end_1: | |
ret void | |
} | |
define external ccc ptr @eclair_btree_linear_search_lower_bound_6(ptr %val_0, ptr %current_0, ptr %end_0) { | |
start: | |
%stack.ptr_0 = alloca ptr | |
store ptr %current_0, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_begin_0: | |
%0 = load ptr, ptr %stack.ptr_0 | |
%1 = icmp ne ptr %0, %end_0 | |
br i1 %1, label %while_body_0, label %while_end_0 | |
while_body_0: | |
%2 = load ptr, ptr %stack.ptr_0 | |
%3 = call ccc i8 @eclair_btree_value_compare_values_6(ptr %2, ptr %val_0) | |
%4 = icmp ne i8 %3, -1 | |
br i1 %4, label %if_0, label %end_if_0 | |
if_0: | |
ret ptr %2 | |
end_if_0: | |
%5 = getelementptr [1 x i32], ptr %2, i32 1 | |
store ptr %5, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_end_0: | |
ret ptr %end_0 | |
} | |
define external ccc ptr @eclair_btree_linear_search_upper_bound_6(ptr %val_0, ptr %current_0, ptr %end_0) { | |
start: | |
%stack.ptr_0 = alloca ptr | |
store ptr %current_0, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_begin_0: | |
%0 = load ptr, ptr %stack.ptr_0 | |
%1 = icmp ne ptr %0, %end_0 | |
br i1 %1, label %while_body_0, label %while_end_0 | |
while_body_0: | |
%2 = load ptr, ptr %stack.ptr_0 | |
%3 = call ccc i8 @eclair_btree_value_compare_values_6(ptr %2, ptr %val_0) | |
%4 = icmp eq i8 %3, 1 | |
br i1 %4, label %if_0, label %end_if_0 | |
if_0: | |
ret ptr %2 | |
end_if_0: | |
%5 = getelementptr [1 x i32], ptr %2, i32 1 | |
store ptr %5, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_end_0: | |
ret ptr %end_0 | |
} | |
define external ccc void @eclair_btree_init_empty_6(ptr %tree_0) { | |
start: | |
%0 = getelementptr %btree_t_6, ptr %tree_0, i32 0, i32 0 | |
store ptr zeroinitializer, ptr %0 | |
%1 = getelementptr %btree_t_6, ptr %tree_0, i32 0, i32 1 | |
store ptr zeroinitializer, ptr %1 | |
ret void | |
} | |
define external ccc void @eclair_btree_init_6(ptr %tree_0, ptr %start_0, ptr %end_0) { | |
start: | |
call ccc void @eclair_btree_insert_range__6(ptr %tree_0, ptr %start_0, ptr %end_0) | |
ret void | |
} | |
define external ccc void @eclair_btree_destroy_6(ptr %tree_0) { | |
start: | |
call ccc void @eclair_btree_clear_6(ptr %tree_0) | |
ret void | |
} | |
define external ccc i1 @eclair_btree_is_empty_6(ptr %tree_0) { | |
start: | |
%0 = getelementptr %btree_t_6, ptr %tree_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = icmp eq ptr %1, zeroinitializer | |
ret i1 %2 | |
} | |
define external ccc i64 @eclair_btree_size_6(ptr %tree_0) { | |
start: | |
%0 = getelementptr %btree_t_6, ptr %tree_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = icmp eq ptr %1, zeroinitializer | |
br i1 %2, label %null_0, label %not_null_0 | |
null_0: | |
ret i64 0 | |
not_null_0: | |
%3 = call ccc i64 @eclair_btree_node_count_entries_6(ptr %1) | |
ret i64 %3 | |
} | |
define external ccc i16 @eclair_btree_node_split_point_6() { | |
start: | |
%0 = mul i16 3, 60 | |
%1 = udiv i16 %0, 4 | |
%2 = sub i16 60, 2 | |
%3 = icmp ult i16 %1, %2 | |
%4 = select i1 %3, i16 %1, i16 %2 | |
ret i16 %4 | |
} | |
define external ccc void @eclair_btree_node_split_6(ptr %node_0, ptr %root_0) { | |
start: | |
%stack.ptr_0 = alloca i16 | |
%0 = call ccc i16 @eclair_btree_node_split_point_6() | |
%1 = add i16 1, %0 | |
%2 = getelementptr %node_t_6, ptr %node_0, i32 0, i32 0, i32 3 | |
%3 = load i1, ptr %2 | |
%4 = call ccc ptr @eclair_btree_node_new_6(i1 %3) | |
store i16 0, ptr %stack.ptr_0 | |
br label %for_begin_0 | |
for_begin_0: | |
%5 = phi i16 [%1, %start], [%12, %for_body_0] | |
%6 = icmp ult i16 %5, 60 | |
br i1 %6, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%7 = load i16, ptr %stack.ptr_0 | |
%8 = getelementptr %node_t_6, ptr %node_0, i32 0, i32 1, i16 %5 | |
%9 = load [1 x i32], ptr %8 | |
%10 = getelementptr %node_t_6, ptr %4, i32 0, i32 1, i16 %7 | |
store [1 x i32] %9, ptr %10 | |
%11 = add i16 1, %7 | |
store i16 %11, ptr %stack.ptr_0 | |
%12 = add i16 1, %5 | |
br label %for_begin_0 | |
for_end_0: | |
%13 = icmp eq i1 %3, 1 | |
br i1 %13, label %if_0, label %end_if_0 | |
if_0: | |
store i16 0, ptr %stack.ptr_0 | |
br label %for_begin_1 | |
for_begin_1: | |
%14 = phi i16 [%1, %if_0], [%23, %for_body_1] | |
%15 = icmp ule i16 %14, 60 | |
br i1 %15, label %for_body_1, label %for_end_1 | |
for_body_1: | |
%16 = load i16, ptr %stack.ptr_0 | |
%17 = getelementptr %inner_node_t_6, ptr %node_0, i32 0, i32 1, i16 %14 | |
%18 = load ptr, ptr %17 | |
%19 = getelementptr %node_t_6, ptr %18, i32 0, i32 0, i32 0 | |
store ptr %4, ptr %19 | |
%20 = getelementptr %node_t_6, ptr %18, i32 0, i32 0, i32 1 | |
store i16 %16, ptr %20 | |
%21 = getelementptr %inner_node_t_6, ptr %4, i32 0, i32 1, i16 %16 | |
store ptr %18, ptr %21 | |
%22 = add i16 1, %16 | |
store i16 %22, ptr %stack.ptr_0 | |
%23 = add i16 1, %14 | |
br label %for_begin_1 | |
for_end_1: | |
br label %end_if_0 | |
end_if_0: | |
%24 = getelementptr %node_t_6, ptr %node_0, i32 0, i32 0, i32 2 | |
store i16 %0, ptr %24 | |
%25 = sub i16 60, %0 | |
%26 = sub i16 %25, 1 | |
%27 = getelementptr %node_t_6, ptr %4, i32 0, i32 0, i32 2 | |
store i16 %26, ptr %27 | |
call ccc void @eclair_btree_node_grow_parent_6(ptr %node_0, ptr %root_0, ptr %4) | |
ret void | |
} | |
define external ccc void @eclair_btree_node_grow_parent_6(ptr %node_0, ptr %root_0, ptr %sibling_0) { | |
start: | |
%0 = getelementptr %node_t_6, ptr %node_0, i32 0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = icmp eq ptr %1, zeroinitializer | |
%3 = getelementptr %node_t_6, ptr %node_0, i32 0, i32 0, i32 2 | |
%4 = load i16, ptr %3 | |
br i1 %2, label %create_new_root_0, label %insert_new_node_in_parent_0 | |
create_new_root_0: | |
%5 = call ccc ptr @eclair_btree_node_new_6(i1 1) | |
%6 = getelementptr %node_t_6, ptr %5, i32 0, i32 0, i32 2 | |
store i16 1, ptr %6 | |
%7 = getelementptr %node_t_6, ptr %node_0, i32 0, i32 1, i16 %4 | |
%8 = load [1 x i32], ptr %7 | |
%9 = getelementptr %node_t_6, ptr %5, i32 0, i32 1, i16 0 | |
store [1 x i32] %8, ptr %9 | |
%10 = getelementptr %inner_node_t_6, ptr %5, i32 0, i32 1, i16 0 | |
store ptr %node_0, ptr %10 | |
%11 = getelementptr %inner_node_t_6, ptr %5, i32 0, i32 1, i16 1 | |
store ptr %sibling_0, ptr %11 | |
%12 = getelementptr %node_t_6, ptr %node_0, i32 0, i32 0, i32 0 | |
store ptr %5, ptr %12 | |
%13 = getelementptr %node_t_6, ptr %sibling_0, i32 0, i32 0, i32 0 | |
store ptr %5, ptr %13 | |
%14 = getelementptr %node_t_6, ptr %sibling_0, i32 0, i32 0, i32 1 | |
store i16 1, ptr %14 | |
store ptr %5, ptr %root_0 | |
ret void | |
insert_new_node_in_parent_0: | |
%15 = getelementptr %node_t_6, ptr %node_0, i32 0, i32 0, i32 1 | |
%16 = load i16, ptr %15 | |
%17 = getelementptr %node_t_6, ptr %node_0, i32 0, i32 1, i16 %4 | |
call ccc void @eclair_btree_node_insert_inner_6(ptr %1, ptr %root_0, i16 %16, ptr %node_0, ptr %17, ptr %sibling_0) | |
ret void | |
} | |
define external ccc void @eclair_btree_node_insert_inner_6(ptr %node_0, ptr %root_0, i16 %pos_0, ptr %predecessor_0, ptr %key_0, ptr %new_node_0) { | |
start: | |
%stack.ptr_0 = alloca i16 | |
store i16 %pos_0, ptr %stack.ptr_0 | |
%0 = getelementptr %node_t_6, ptr %node_0, i32 0, i32 0, i32 2 | |
%1 = load i16, ptr %0 | |
%2 = icmp uge i16 %1, 60 | |
br i1 %2, label %if_0, label %end_if_1 | |
if_0: | |
%3 = load i16, ptr %stack.ptr_0 | |
%4 = call ccc i16 @eclair_btree_node_rebalance_or_split_6(ptr %node_0, ptr %root_0, i16 %pos_0) | |
%5 = sub i16 %3, %4 | |
store i16 %5, ptr %stack.ptr_0 | |
%6 = getelementptr %node_t_6, ptr %node_0, i32 0, i32 0, i32 2 | |
%7 = load i16, ptr %6 | |
%8 = icmp ugt i16 %5, %7 | |
br i1 %8, label %if_1, label %end_if_0 | |
if_1: | |
%9 = sub i16 %5, %7 | |
%10 = sub i16 %9, 1 | |
store i16 %10, ptr %stack.ptr_0 | |
%11 = getelementptr %node_t_6, ptr %node_0, i32 0, i32 0, i32 0 | |
%12 = load ptr, ptr %11 | |
%13 = getelementptr %node_t_6, ptr %node_0, i32 0, i32 0, i32 1 | |
%14 = load i16, ptr %13 | |
%15 = add i16 1, %14 | |
%16 = getelementptr %inner_node_t_6, ptr %12, i32 0, i32 1, i16 %15 | |
%17 = load ptr, ptr %16 | |
call ccc void @eclair_btree_node_insert_inner_6(ptr %17, ptr %root_0, i16 %10, ptr %predecessor_0, ptr %key_0, ptr %new_node_0) | |
ret void | |
end_if_0: | |
br label %end_if_1 | |
end_if_1: | |
%18 = getelementptr %node_t_6, ptr %node_0, i32 0, i32 0, i32 2 | |
%19 = load i16, ptr %18 | |
%20 = sub i16 %19, 1 | |
%21 = load i16, ptr %stack.ptr_0 | |
br label %for_begin_0 | |
for_begin_0: | |
%22 = phi i16 [%20, %end_if_1], [%37, %for_body_0] | |
%23 = icmp uge i16 %22, %21 | |
br i1 %23, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%24 = add i16 %22, 1 | |
%25 = add i16 %22, 2 | |
%26 = getelementptr %node_t_6, ptr %node_0, i32 0, i32 1, i16 %22 | |
%27 = load [1 x i32], ptr %26 | |
%28 = getelementptr %node_t_6, ptr %node_0, i32 0, i32 1, i16 %24 | |
store [1 x i32] %27, ptr %28 | |
%29 = getelementptr %inner_node_t_6, ptr %node_0, i32 0, i32 1, i16 %24 | |
%30 = load ptr, ptr %29 | |
%31 = getelementptr %inner_node_t_6, ptr %node_0, i32 0, i32 1, i16 %25 | |
store ptr %30, ptr %31 | |
%32 = getelementptr %inner_node_t_6, ptr %node_0, i32 0, i32 1, i16 %25 | |
%33 = load ptr, ptr %32 | |
%34 = getelementptr %node_t_6, ptr %33, i32 0, i32 0, i32 1 | |
%35 = load i16, ptr %34 | |
%36 = add i16 1, %35 | |
store i16 %36, ptr %34 | |
%37 = sub i16 %22, 1 | |
br label %for_begin_0 | |
for_end_0: | |
%38 = load [1 x i32], ptr %key_0 | |
%39 = getelementptr %node_t_6, ptr %node_0, i32 0, i32 1, i16 %21 | |
store [1 x i32] %38, ptr %39 | |
%40 = add i16 %21, 1 | |
%41 = getelementptr %inner_node_t_6, ptr %node_0, i32 0, i32 1, i16 %40 | |
store ptr %new_node_0, ptr %41 | |
%42 = getelementptr %node_t_6, ptr %new_node_0, i32 0, i32 0, i32 0 | |
store ptr %node_0, ptr %42 | |
%43 = getelementptr %node_t_6, ptr %new_node_0, i32 0, i32 0, i32 1 | |
store i16 %40, ptr %43 | |
%44 = getelementptr %node_t_6, ptr %node_0, i32 0, i32 0, i32 2 | |
%45 = load i16, ptr %44 | |
%46 = add i16 1, %45 | |
store i16 %46, ptr %44 | |
ret void | |
} | |
define external ccc i16 @eclair_btree_node_rebalance_or_split_6(ptr %node_0, ptr %root_0, i16 %idx_0) { | |
start: | |
%0 = getelementptr %node_t_6, ptr %node_0, i32 0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = getelementptr %node_t_6, ptr %node_0, i32 0, i32 0, i32 1 | |
%3 = load i16, ptr %2 | |
%4 = icmp ne ptr %1, zeroinitializer | |
%5 = icmp ugt i16 %3, 0 | |
%6 = and i1 %4, %5 | |
br i1 %6, label %rebalance_0, label %split_0 | |
rebalance_0: | |
%7 = sub i16 %3, 1 | |
%8 = getelementptr %inner_node_t_6, ptr %1, i32 0, i32 1, i16 %7 | |
%9 = load ptr, ptr %8 | |
%10 = getelementptr %node_t_6, ptr %9, i32 0, i32 0, i32 2 | |
%11 = load i16, ptr %10 | |
%12 = sub i16 60, %11 | |
%13 = icmp slt i16 %12, %idx_0 | |
%14 = select i1 %13, i16 %12, i16 %idx_0 | |
%15 = icmp ugt i16 %14, 0 | |
br i1 %15, label %if_0, label %end_if_1 | |
if_0: | |
%16 = getelementptr %node_t_6, ptr %node_0, i32 0, i32 0, i32 1 | |
%17 = load i16, ptr %16 | |
%18 = sub i16 %17, 1 | |
%19 = getelementptr %inner_node_t_6, ptr %1, i32 0, i32 0, i32 1, i16 %18 | |
%20 = load [1 x i32], ptr %19 | |
%21 = getelementptr %node_t_6, ptr %9, i32 0, i32 0, i32 2 | |
%22 = load i16, ptr %21 | |
%23 = getelementptr %node_t_6, ptr %9, i32 0, i32 1, i16 %22 | |
store [1 x i32] %20, ptr %23 | |
%24 = sub i16 %14, 1 | |
br label %for_begin_0 | |
for_begin_0: | |
%25 = phi i16 [0, %if_0], [%32, %for_body_0] | |
%26 = icmp ult i16 %25, %24 | |
br i1 %26, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%27 = add i16 %22, 1 | |
%28 = add i16 %25, %27 | |
%29 = getelementptr %node_t_6, ptr %node_0, i32 0, i32 1, i16 %25 | |
%30 = load [1 x i32], ptr %29 | |
%31 = getelementptr %node_t_6, ptr %9, i32 0, i32 1, i16 %28 | |
store [1 x i32] %30, ptr %31 | |
%32 = add i16 1, %25 | |
br label %for_begin_0 | |
for_end_0: | |
%33 = getelementptr %node_t_6, ptr %node_0, i32 0, i32 1, i16 %24 | |
%34 = load [1 x i32], ptr %33 | |
store [1 x i32] %34, ptr %19 | |
%35 = getelementptr %node_t_6, ptr %node_0, i32 0, i32 0, i32 2 | |
%36 = load i16, ptr %35 | |
%37 = sub i16 %36, %14 | |
br label %for_begin_1 | |
for_begin_1: | |
%38 = phi i16 [0, %for_end_0], [%44, %for_body_1] | |
%39 = icmp ult i16 %38, %37 | |
br i1 %39, label %for_body_1, label %for_end_1 | |
for_body_1: | |
%40 = add i16 %38, %14 | |
%41 = getelementptr %node_t_6, ptr %node_0, i32 0, i32 1, i16 %40 | |
%42 = load [1 x i32], ptr %41 | |
%43 = getelementptr %node_t_6, ptr %node_0, i32 0, i32 1, i16 %38 | |
store [1 x i32] %42, ptr %43 | |
%44 = add i16 1, %38 | |
br label %for_begin_1 | |
for_end_1: | |
%45 = getelementptr %node_t_6, ptr %node_0, i32 0, i32 0, i32 3 | |
%46 = load i1, ptr %45 | |
%47 = icmp eq i1 %46, 1 | |
br i1 %47, label %if_1, label %end_if_0 | |
if_1: | |
br label %for_begin_2 | |
for_begin_2: | |
%48 = phi i16 [0, %if_1], [%61, %for_body_2] | |
%49 = icmp ult i16 %48, %14 | |
br i1 %49, label %for_body_2, label %for_end_2 | |
for_body_2: | |
%50 = getelementptr %node_t_6, ptr %9, i32 0, i32 0, i32 2 | |
%51 = load i16, ptr %50 | |
%52 = add i16 %51, 1 | |
%53 = add i16 %48, %52 | |
%54 = getelementptr %inner_node_t_6, ptr %node_0, i32 0, i32 1, i16 %48 | |
%55 = load ptr, ptr %54 | |
%56 = getelementptr %inner_node_t_6, ptr %9, i32 0, i32 1, i16 %53 | |
store ptr %55, ptr %56 | |
%57 = getelementptr %inner_node_t_6, ptr %9, i32 0, i32 1, i16 %53 | |
%58 = load ptr, ptr %57 | |
%59 = getelementptr %node_t_6, ptr %58, i32 0, i32 0, i32 0 | |
store ptr %9, ptr %59 | |
%60 = getelementptr %node_t_6, ptr %58, i32 0, i32 0, i32 1 | |
store i16 %53, ptr %60 | |
%61 = add i16 1, %48 | |
br label %for_begin_2 | |
for_end_2: | |
%62 = sub i16 %36, %14 | |
%63 = add i16 1, %62 | |
br label %for_begin_3 | |
for_begin_3: | |
%64 = phi i16 [0, %for_end_2], [%73, %for_body_3] | |
%65 = icmp ult i16 %64, %63 | |
br i1 %65, label %for_body_3, label %for_end_3 | |
for_body_3: | |
%66 = add i16 %64, %14 | |
%67 = getelementptr %inner_node_t_6, ptr %node_0, i32 0, i32 1, i16 %66 | |
%68 = load ptr, ptr %67 | |
%69 = getelementptr %inner_node_t_6, ptr %node_0, i32 0, i32 1, i16 %64 | |
store ptr %68, ptr %69 | |
%70 = getelementptr %inner_node_t_6, ptr %node_0, i32 0, i32 1, i16 %64 | |
%71 = load ptr, ptr %70 | |
%72 = getelementptr %node_t_6, ptr %71, i32 0, i32 0, i32 1 | |
store i16 %64, ptr %72 | |
%73 = add i16 1, %64 | |
br label %for_begin_3 | |
for_end_3: | |
br label %end_if_0 | |
end_if_0: | |
%74 = getelementptr %node_t_6, ptr %9, i32 0, i32 0, i32 2 | |
%75 = load i16, ptr %74 | |
%76 = add i16 %75, %14 | |
store i16 %76, ptr %74 | |
%77 = getelementptr %node_t_6, ptr %node_0, i32 0, i32 0, i32 2 | |
%78 = load i16, ptr %77 | |
%79 = sub i16 %78, %14 | |
store i16 %79, ptr %77 | |
ret i16 %14 | |
end_if_1: | |
br label %split_0 | |
split_0: | |
call ccc void @eclair_btree_node_split_6(ptr %node_0, ptr %root_0) | |
ret i16 0 | |
} | |
define external ccc i1 @eclair_btree_insert_value_6(ptr %tree_0, ptr %val_0) { | |
start: | |
%stack.ptr_0 = alloca ptr | |
%stack.ptr_1 = alloca i16 | |
%0 = call ccc i1 @eclair_btree_is_empty_6(ptr %tree_0) | |
br i1 %0, label %empty_0, label %non_empty_0 | |
empty_0: | |
%1 = call ccc ptr @eclair_btree_node_new_6(i1 0) | |
%2 = getelementptr %node_t_6, ptr %1, i32 0, i32 0, i32 2 | |
store i16 1, ptr %2 | |
%3 = load [1 x i32], ptr %val_0 | |
%4 = getelementptr %node_t_6, ptr %1, i32 0, i32 1, i16 0 | |
store [1 x i32] %3, ptr %4 | |
%5 = getelementptr %btree_t_6, ptr %tree_0, i32 0, i32 0 | |
store ptr %1, ptr %5 | |
%6 = getelementptr %btree_t_6, ptr %tree_0, i32 0, i32 1 | |
store ptr %1, ptr %6 | |
br label %inserted_new_value_0 | |
non_empty_0: | |
%7 = getelementptr %btree_t_6, ptr %tree_0, i32 0, i32 0 | |
%8 = load ptr, ptr %7 | |
store ptr %8, ptr %stack.ptr_0 | |
br label %loop_0 | |
loop_0: | |
%9 = load ptr, ptr %stack.ptr_0 | |
%10 = getelementptr %node_t_6, ptr %9, i32 0, i32 0, i32 3 | |
%11 = load i1, ptr %10 | |
%12 = icmp eq i1 %11, 1 | |
br i1 %12, label %inner_0, label %leaf_0 | |
inner_0: | |
%13 = getelementptr %node_t_6, ptr %9, i32 0, i32 0, i32 2 | |
%14 = load i16, ptr %13 | |
%15 = getelementptr %node_t_6, ptr %9, i32 0, i32 1, i16 0 | |
%16 = getelementptr %node_t_6, ptr %9, i32 0, i32 1, i16 %14 | |
%17 = call ccc ptr @eclair_btree_linear_search_lower_bound_6(ptr %val_0, ptr %15, ptr %16) | |
%18 = ptrtoint ptr %17 to i64 | |
%19 = ptrtoint ptr %15 to i64 | |
%20 = sub i64 %18, %19 | |
%21 = trunc i64 %20 to i16 | |
%22 = udiv i16 %21, 4 | |
%23 = icmp ne ptr %17, %16 | |
%24 = call ccc i8 @eclair_btree_value_compare_values_6(ptr %17, ptr %val_0) | |
%25 = icmp eq i8 0, %24 | |
%26 = and i1 %23, %25 | |
br i1 %26, label %no_insert_0, label %inner_continue_insert_0 | |
inner_continue_insert_0: | |
%27 = getelementptr %inner_node_t_6, ptr %9, i32 0, i32 1, i16 %22 | |
%28 = load ptr, ptr %27 | |
store ptr %28, ptr %stack.ptr_0 | |
br label %loop_0 | |
leaf_0: | |
%29 = getelementptr %node_t_6, ptr %9, i32 0, i32 0, i32 2 | |
%30 = load i16, ptr %29 | |
%31 = getelementptr %node_t_6, ptr %9, i32 0, i32 1, i16 0 | |
%32 = getelementptr %node_t_6, ptr %9, i32 0, i32 1, i16 %30 | |
%33 = call ccc ptr @eclair_btree_linear_search_upper_bound_6(ptr %val_0, ptr %31, ptr %32) | |
%34 = ptrtoint ptr %33 to i64 | |
%35 = ptrtoint ptr %31 to i64 | |
%36 = sub i64 %34, %35 | |
%37 = trunc i64 %36 to i16 | |
%38 = udiv i16 %37, 4 | |
store i16 %38, ptr %stack.ptr_1 | |
%39 = icmp ne ptr %33, %31 | |
%40 = getelementptr [1 x i32], ptr %33, i32 -1 | |
%41 = call ccc i8 @eclair_btree_value_compare_values_6(ptr %40, ptr %val_0) | |
%42 = icmp eq i8 0, %41 | |
%43 = and i1 %39, %42 | |
br i1 %43, label %no_insert_0, label %leaf_continue_insert_0 | |
leaf_continue_insert_0: | |
%44 = icmp uge i16 %30, 60 | |
br i1 %44, label %split_0, label %no_split_0 | |
split_0: | |
%45 = getelementptr %btree_t_6, ptr %tree_0, i32 0, i32 0 | |
%46 = load i16, ptr %stack.ptr_1 | |
%47 = call ccc i16 @eclair_btree_node_rebalance_or_split_6(ptr %9, ptr %45, i16 %46) | |
%48 = sub i16 %46, %47 | |
store i16 %48, ptr %stack.ptr_1 | |
%49 = getelementptr %node_t_6, ptr %9, i32 0, i32 0, i32 2 | |
%50 = load i16, ptr %49 | |
%51 = icmp ugt i16 %48, %50 | |
br i1 %51, label %if_0, label %end_if_0 | |
if_0: | |
%52 = add i16 %50, 1 | |
%53 = sub i16 %48, %52 | |
store i16 %53, ptr %stack.ptr_1 | |
%54 = getelementptr %node_t_6, ptr %9, i32 0, i32 0, i32 0 | |
%55 = load ptr, ptr %54 | |
%56 = getelementptr %node_t_6, ptr %9, i32 0, i32 0, i32 1 | |
%57 = load i16, ptr %56 | |
%58 = add i16 1, %57 | |
%59 = getelementptr %inner_node_t_6, ptr %55, i32 0, i32 1, i16 %58 | |
%60 = load ptr, ptr %59 | |
store ptr %60, ptr %stack.ptr_0 | |
br label %end_if_0 | |
end_if_0: | |
br label %no_split_0 | |
no_split_0: | |
%61 = load ptr, ptr %stack.ptr_0 | |
%62 = load i16, ptr %stack.ptr_1 | |
%63 = getelementptr %node_t_6, ptr %61, i32 0, i32 0, i32 2 | |
%64 = load i16, ptr %63 | |
br label %for_begin_0 | |
for_begin_0: | |
%65 = phi i16 [%64, %no_split_0], [%71, %for_body_0] | |
%66 = icmp ugt i16 %65, %62 | |
br i1 %66, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%67 = sub i16 %65, 1 | |
%68 = getelementptr %node_t_6, ptr %61, i32 0, i32 1, i16 %67 | |
%69 = load [1 x i32], ptr %68 | |
%70 = getelementptr %node_t_6, ptr %61, i32 0, i32 1, i16 %65 | |
store [1 x i32] %69, ptr %70 | |
%71 = sub i16 %65, 1 | |
br label %for_begin_0 | |
for_end_0: | |
%72 = load [1 x i32], ptr %val_0 | |
%73 = getelementptr %node_t_6, ptr %61, i32 0, i32 1, i16 %62 | |
store [1 x i32] %72, ptr %73 | |
%74 = getelementptr %node_t_6, ptr %61, i32 0, i32 0, i32 2 | |
%75 = load i16, ptr %74 | |
%76 = add i16 1, %75 | |
store i16 %76, ptr %74 | |
br label %inserted_new_value_0 | |
no_insert_0: | |
ret i1 0 | |
inserted_new_value_0: | |
ret i1 1 | |
} | |
define external ccc void @eclair_btree_insert_range__6(ptr %tree_0, ptr %begin_0, ptr %end_0) { | |
start: | |
br label %while_begin_0 | |
while_begin_0: | |
%0 = call ccc i1 @eclair_btree_iterator_is_equal_6(ptr %begin_0, ptr %end_0) | |
%1 = select i1 %0, i1 0, i1 1 | |
br i1 %1, label %while_body_0, label %while_end_0 | |
while_body_0: | |
%2 = call ccc ptr @eclair_btree_iterator_current_6(ptr %begin_0) | |
%3 = call ccc i1 @eclair_btree_insert_value_6(ptr %tree_0, ptr %2) | |
call ccc void @eclair_btree_iterator_next_6(ptr %begin_0) | |
br label %while_begin_0 | |
while_end_0: | |
ret void | |
} | |
define external ccc void @eclair_btree_begin_6(ptr %tree_0, ptr %result_0) { | |
start: | |
%0 = getelementptr %btree_t_6, ptr %tree_0, i32 0, i32 1 | |
%1 = load ptr, ptr %0 | |
%2 = getelementptr %btree_iterator_t_6, ptr %result_0, i32 0, i32 0 | |
store ptr %1, ptr %2 | |
%3 = getelementptr %btree_iterator_t_6, ptr %result_0, i32 0, i32 1 | |
store i16 0, ptr %3 | |
ret void | |
} | |
define external ccc void @eclair_btree_end_6(ptr %tree_0, ptr %result_0) { | |
start: | |
call ccc void @eclair_btree_iterator_end_init_6(ptr %result_0) | |
ret void | |
} | |
define external ccc i1 @eclair_btree_contains_6(ptr %tree_0, ptr %val_0) { | |
start: | |
%stack.ptr_0 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_1 = alloca %btree_iterator_t_6, i32 1 | |
call ccc void @eclair_btree_find_6(ptr %tree_0, ptr %val_0, ptr %stack.ptr_0) | |
call ccc void @eclair_btree_end_6(ptr %tree_0, ptr %stack.ptr_1) | |
%0 = call ccc i1 @eclair_btree_iterator_is_equal_6(ptr %stack.ptr_0, ptr %stack.ptr_1) | |
%1 = select i1 %0, i1 0, i1 1 | |
ret i1 %1 | |
} | |
define external ccc void @eclair_btree_find_6(ptr %tree_0, ptr %val_0, ptr %result_0) { | |
start: | |
%stack.ptr_0 = alloca ptr | |
%0 = call ccc i1 @eclair_btree_is_empty_6(ptr %tree_0) | |
br i1 %0, label %if_0, label %end_if_0 | |
if_0: | |
call ccc void @eclair_btree_iterator_end_init_6(ptr %result_0) | |
ret void | |
end_if_0: | |
%1 = getelementptr %btree_t_6, ptr %tree_0, i32 0, i32 0 | |
%2 = load ptr, ptr %1 | |
store ptr %2, ptr %stack.ptr_0 | |
br label %loop_0 | |
loop_0: | |
%3 = load ptr, ptr %stack.ptr_0 | |
%4 = getelementptr %node_t_6, ptr %3, i32 0, i32 0, i32 2 | |
%5 = load i16, ptr %4 | |
%6 = getelementptr %node_t_6, ptr %3, i32 0, i32 1, i16 0 | |
%7 = getelementptr %node_t_6, ptr %3, i32 0, i32 1, i16 %5 | |
%8 = call ccc ptr @eclair_btree_linear_search_lower_bound_6(ptr %val_0, ptr %6, ptr %7) | |
%9 = ptrtoint ptr %8 to i64 | |
%10 = ptrtoint ptr %6 to i64 | |
%11 = sub i64 %9, %10 | |
%12 = trunc i64 %11 to i16 | |
%13 = udiv i16 %12, 4 | |
%14 = icmp ult ptr %8, %7 | |
%15 = call ccc i8 @eclair_btree_value_compare_values_6(ptr %8, ptr %val_0) | |
%16 = icmp eq i8 0, %15 | |
%17 = and i1 %14, %16 | |
br i1 %17, label %if_1, label %end_if_1 | |
if_1: | |
call ccc void @eclair_btree_iterator_init_6(ptr %result_0, ptr %3, i16 %13) | |
ret void | |
end_if_1: | |
%18 = getelementptr %node_t_6, ptr %3, i32 0, i32 0, i32 3 | |
%19 = load i1, ptr %18 | |
%20 = icmp eq i1 %19, 0 | |
br i1 %20, label %if_2, label %end_if_2 | |
if_2: | |
call ccc void @eclair_btree_iterator_end_init_6(ptr %result_0) | |
ret void | |
end_if_2: | |
%21 = getelementptr %inner_node_t_6, ptr %3, i32 0, i32 1, i16 %13 | |
%22 = load ptr, ptr %21 | |
store ptr %22, ptr %stack.ptr_0 | |
br label %loop_0 | |
} | |
define external ccc void @eclair_btree_lower_bound_6(ptr %tree_0, ptr %val_0, ptr %result_0) { | |
start: | |
%stack.ptr_0 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_1 = alloca ptr | |
%0 = call ccc i1 @eclair_btree_is_empty_6(ptr %tree_0) | |
br i1 %0, label %if_0, label %end_if_0 | |
if_0: | |
call ccc void @eclair_btree_iterator_end_init_6(ptr %result_0) | |
ret void | |
end_if_0: | |
call ccc void @eclair_btree_iterator_end_init_6(ptr %stack.ptr_0) | |
%1 = getelementptr %btree_t_6, ptr %tree_0, i32 0, i32 0 | |
%2 = load ptr, ptr %1 | |
store ptr %2, ptr %stack.ptr_1 | |
br label %loop_0 | |
loop_0: | |
%3 = load ptr, ptr %stack.ptr_1 | |
%4 = getelementptr %node_t_6, ptr %3, i32 0, i32 0, i32 2 | |
%5 = load i16, ptr %4 | |
%6 = getelementptr %node_t_6, ptr %3, i32 0, i32 1, i16 0 | |
%7 = getelementptr %node_t_6, ptr %3, i32 0, i32 1, i16 %5 | |
%8 = call ccc ptr @eclair_btree_linear_search_lower_bound_6(ptr %val_0, ptr %6, ptr %7) | |
%9 = ptrtoint ptr %8 to i64 | |
%10 = ptrtoint ptr %6 to i64 | |
%11 = sub i64 %9, %10 | |
%12 = trunc i64 %11 to i16 | |
%13 = udiv i16 %12, 4 | |
%14 = getelementptr %node_t_6, ptr %3, i32 0, i32 0, i32 3 | |
%15 = load i1, ptr %14 | |
%16 = icmp eq i1 %15, 0 | |
br i1 %16, label %if_1, label %end_if_1 | |
if_1: | |
%17 = icmp eq ptr %8, %7 | |
br i1 %17, label %handle_last_0, label %handle_not_last_0 | |
handle_last_0: | |
%18 = getelementptr %btree_iterator_t_6, ptr %stack.ptr_0, i32 0, i32 0 | |
%19 = load ptr, ptr %18 | |
%20 = getelementptr %btree_iterator_t_6, ptr %result_0, i32 0, i32 0 | |
store ptr %19, ptr %20 | |
%21 = getelementptr %btree_iterator_t_6, ptr %stack.ptr_0, i32 0, i32 1 | |
%22 = load i16, ptr %21 | |
%23 = getelementptr %btree_iterator_t_6, ptr %result_0, i32 0, i32 1 | |
store i16 %22, ptr %23 | |
ret void | |
handle_not_last_0: | |
call ccc void @eclair_btree_iterator_init_6(ptr %result_0, ptr %3, i16 %13) | |
ret void | |
end_if_1: | |
%24 = icmp ne ptr %8, %7 | |
%25 = call ccc i8 @eclair_btree_value_compare_values_6(ptr %8, ptr %val_0) | |
%26 = icmp eq i8 0, %25 | |
%27 = and i1 %24, %26 | |
br i1 %27, label %if_2, label %end_if_2 | |
if_2: | |
call ccc void @eclair_btree_iterator_init_6(ptr %result_0, ptr %3, i16 %13) | |
ret void | |
end_if_2: | |
br i1 %24, label %if_3, label %end_if_3 | |
if_3: | |
call ccc void @eclair_btree_iterator_init_6(ptr %stack.ptr_0, ptr %3, i16 %13) | |
br label %end_if_3 | |
end_if_3: | |
%28 = getelementptr %inner_node_t_6, ptr %3, i32 0, i32 1, i16 %13 | |
%29 = load ptr, ptr %28 | |
store ptr %29, ptr %stack.ptr_1 | |
br label %loop_0 | |
} | |
define external ccc void @eclair_btree_upper_bound_6(ptr %tree_0, ptr %val_0, ptr %result_0) { | |
start: | |
%stack.ptr_0 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_1 = alloca ptr | |
%0 = call ccc i1 @eclair_btree_is_empty_6(ptr %tree_0) | |
br i1 %0, label %if_0, label %end_if_0 | |
if_0: | |
call ccc void @eclair_btree_iterator_end_init_6(ptr %result_0) | |
ret void | |
end_if_0: | |
call ccc void @eclair_btree_iterator_end_init_6(ptr %stack.ptr_0) | |
%1 = getelementptr %btree_t_6, ptr %tree_0, i32 0, i32 0 | |
%2 = load ptr, ptr %1 | |
store ptr %2, ptr %stack.ptr_1 | |
br label %loop_0 | |
loop_0: | |
%3 = load ptr, ptr %stack.ptr_1 | |
%4 = getelementptr %node_t_6, ptr %3, i32 0, i32 0, i32 2 | |
%5 = load i16, ptr %4 | |
%6 = getelementptr %node_t_6, ptr %3, i32 0, i32 1, i16 0 | |
%7 = getelementptr %node_t_6, ptr %3, i32 0, i32 1, i16 %5 | |
%8 = call ccc ptr @eclair_btree_linear_search_upper_bound_6(ptr %val_0, ptr %6, ptr %7) | |
%9 = ptrtoint ptr %8 to i64 | |
%10 = ptrtoint ptr %6 to i64 | |
%11 = sub i64 %9, %10 | |
%12 = trunc i64 %11 to i16 | |
%13 = udiv i16 %12, 4 | |
%14 = getelementptr %node_t_6, ptr %3, i32 0, i32 0, i32 3 | |
%15 = load i1, ptr %14 | |
%16 = icmp eq i1 %15, 0 | |
br i1 %16, label %if_1, label %end_if_1 | |
if_1: | |
%17 = icmp eq ptr %8, %7 | |
br i1 %17, label %handle_last_0, label %handle_not_last_0 | |
handle_last_0: | |
%18 = getelementptr %btree_iterator_t_6, ptr %stack.ptr_0, i32 0, i32 0 | |
%19 = load ptr, ptr %18 | |
%20 = getelementptr %btree_iterator_t_6, ptr %result_0, i32 0, i32 0 | |
store ptr %19, ptr %20 | |
%21 = getelementptr %btree_iterator_t_6, ptr %stack.ptr_0, i32 0, i32 1 | |
%22 = load i16, ptr %21 | |
%23 = getelementptr %btree_iterator_t_6, ptr %result_0, i32 0, i32 1 | |
store i16 %22, ptr %23 | |
ret void | |
handle_not_last_0: | |
call ccc void @eclair_btree_iterator_init_6(ptr %result_0, ptr %3, i16 %13) | |
ret void | |
end_if_1: | |
%24 = icmp ne ptr %8, %7 | |
br i1 %24, label %if_2, label %end_if_2 | |
if_2: | |
call ccc void @eclair_btree_iterator_init_6(ptr %result_0, ptr %3, i16 %13) | |
br label %end_if_2 | |
end_if_2: | |
%25 = getelementptr %inner_node_t_6, ptr %3, i32 0, i32 1, i16 %13 | |
%26 = load ptr, ptr %25 | |
store ptr %26, ptr %stack.ptr_1 | |
br label %loop_0 | |
} | |
define external ccc void @eclair_btree_node_delete_6(ptr %node_0) { | |
start: | |
%0 = getelementptr %node_t_6, ptr %node_0, i32 0, i32 0, i32 3 | |
%1 = load i1, ptr %0 | |
%2 = icmp eq i1 %1, 1 | |
br i1 %2, label %if_0, label %end_if_1 | |
if_0: | |
%3 = getelementptr %node_t_6, ptr %node_0, i32 0, i32 0, i32 2 | |
%4 = load i16, ptr %3 | |
br label %for_begin_0 | |
for_begin_0: | |
%5 = phi i16 [0, %if_0], [%10, %end_if_0] | |
%6 = icmp ule i16 %5, %4 | |
br i1 %6, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%7 = getelementptr %inner_node_t_6, ptr %node_0, i32 0, i32 1, i16 %5 | |
%8 = load ptr, ptr %7 | |
%9 = icmp ne ptr %8, zeroinitializer | |
br i1 %9, label %if_1, label %end_if_0 | |
if_1: | |
call ccc void @eclair_btree_node_delete_6(ptr %8) | |
br label %end_if_0 | |
end_if_0: | |
%10 = add i16 1, %5 | |
br label %for_begin_0 | |
for_end_0: | |
br label %end_if_1 | |
end_if_1: | |
call ccc void @free(ptr %node_0) | |
ret void | |
} | |
define external ccc void @eclair_btree_clear_6(ptr %tree_0) { | |
start: | |
%0 = getelementptr %btree_t_6, ptr %tree_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = icmp ne ptr %1, zeroinitializer | |
br i1 %2, label %if_0, label %end_if_0 | |
if_0: | |
call ccc void @eclair_btree_node_delete_6(ptr %1) | |
%3 = getelementptr %btree_t_6, ptr %tree_0, i32 0, i32 0 | |
store ptr zeroinitializer, ptr %3 | |
%4 = getelementptr %btree_t_6, ptr %tree_0, i32 0, i32 1 | |
store ptr zeroinitializer, ptr %4 | |
br label %end_if_0 | |
end_if_0: | |
ret void | |
} | |
define external ccc void @eclair_btree_swap_6(ptr %lhs_0, ptr %rhs_0) { | |
start: | |
%0 = getelementptr %btree_t_6, ptr %lhs_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = getelementptr %btree_t_6, ptr %rhs_0, i32 0, i32 0 | |
%3 = load ptr, ptr %2 | |
%4 = getelementptr %btree_t_6, ptr %lhs_0, i32 0, i32 0 | |
store ptr %3, ptr %4 | |
%5 = getelementptr %btree_t_6, ptr %rhs_0, i32 0, i32 0 | |
store ptr %1, ptr %5 | |
%6 = getelementptr %btree_t_6, ptr %lhs_0, i32 0, i32 1 | |
%7 = load ptr, ptr %6 | |
%8 = getelementptr %btree_t_6, ptr %rhs_0, i32 0, i32 1 | |
%9 = load ptr, ptr %8 | |
%10 = getelementptr %btree_t_6, ptr %lhs_0, i32 0, i32 1 | |
store ptr %9, ptr %10 | |
%11 = getelementptr %btree_t_6, ptr %rhs_0, i32 0, i32 1 | |
store ptr %7, ptr %11 | |
ret void | |
} | |
%node_data_t_7 = type {ptr, i16, i16, i1} | |
%node_t_7 = type {%node_data_t_7, [30 x [2 x i32]]} | |
%inner_node_t_7 = type {%node_t_7, [31 x ptr]} | |
%btree_iterator_t_7 = type {ptr, i16} | |
%btree_t_7 = type {ptr, ptr} | |
define external ccc i8 @eclair_btree_value_compare_7(i32 %lhs_0, i32 %rhs_0) { | |
start: | |
%0 = icmp ult i32 %lhs_0, %rhs_0 | |
br i1 %0, label %if_0, label %end_if_0 | |
if_0: | |
ret i8 -1 | |
end_if_0: | |
%1 = icmp ugt i32 %lhs_0, %rhs_0 | |
%2 = select i1 %1, i8 1, i8 0 | |
ret i8 %2 | |
} | |
define external ccc i8 @eclair_btree_value_compare_values_7(ptr %lhs_0, ptr %rhs_0) { | |
start: | |
br label %comparison_0 | |
comparison_0: | |
%0 = getelementptr [2 x i32], ptr %lhs_0, i32 0, i32 1 | |
%1 = getelementptr [2 x i32], ptr %rhs_0, i32 0, i32 1 | |
%2 = load i32, ptr %0 | |
%3 = load i32, ptr %1 | |
%4 = call ccc i8 @eclair_btree_value_compare_7(i32 %2, i32 %3) | |
%5 = icmp eq i8 %4, 0 | |
br i1 %5, label %comparison_1, label %end_0 | |
comparison_1: | |
%6 = getelementptr [2 x i32], ptr %lhs_0, i32 0, i32 0 | |
%7 = getelementptr [2 x i32], ptr %rhs_0, i32 0, i32 0 | |
%8 = load i32, ptr %6 | |
%9 = load i32, ptr %7 | |
%10 = call ccc i8 @eclair_btree_value_compare_7(i32 %8, i32 %9) | |
br label %end_0 | |
end_0: | |
%11 = phi i8 [%4, %comparison_0], [%10, %comparison_1] | |
ret i8 %11 | |
} | |
define external ccc ptr @eclair_btree_node_new_7(i1 %type_0) { | |
start: | |
%0 = select i1 %type_0, i32 504, i32 256 | |
%1 = call ccc ptr @malloc(i32 %0) | |
%2 = getelementptr %node_t_7, ptr %1, i32 0, i32 0, i32 0 | |
store ptr zeroinitializer, ptr %2 | |
%3 = getelementptr %node_t_7, ptr %1, i32 0, i32 0, i32 1 | |
store i16 0, ptr %3 | |
%4 = getelementptr %node_t_7, ptr %1, i32 0, i32 0, i32 2 | |
store i16 0, ptr %4 | |
%5 = getelementptr %node_t_7, ptr %1, i32 0, i32 0, i32 3 | |
store i1 %type_0, ptr %5 | |
%6 = getelementptr %node_t_7, ptr %1, i32 0, i32 1 | |
call ccc void @llvm.memset.p0i8.i64(ptr %6, i8 0, i64 240, i1 0) | |
%7 = icmp eq i1 %type_0, 1 | |
br i1 %7, label %if_0, label %end_if_0 | |
if_0: | |
%8 = getelementptr %inner_node_t_7, ptr %1, i32 0, i32 1 | |
call ccc void @llvm.memset.p0i8.i64(ptr %8, i8 0, i64 248, i1 0) | |
br label %end_if_0 | |
end_if_0: | |
ret ptr %1 | |
} | |
define external ccc i64 @eclair_btree_node_count_entries_7(ptr %node_0) { | |
start: | |
%stack.ptr_0 = alloca i64 | |
%0 = getelementptr %node_t_7, ptr %node_0, i32 0, i32 0, i32 2 | |
%1 = load i16, ptr %0 | |
%2 = getelementptr %node_t_7, ptr %node_0, i32 0, i32 0, i32 3 | |
%3 = load i1, ptr %2 | |
%4 = icmp eq i1 %3, 0 | |
%5 = zext i16 %1 to i64 | |
br i1 %4, label %if_0, label %end_if_0 | |
if_0: | |
ret i64 %5 | |
end_if_0: | |
store i64 %5, ptr %stack.ptr_0 | |
%6 = getelementptr %node_t_7, ptr %node_0, i32 0, i32 0, i32 2 | |
%7 = load i16, ptr %6 | |
br label %for_begin_0 | |
for_begin_0: | |
%8 = phi i16 [0, %end_if_0], [%15, %for_body_0] | |
%9 = icmp ule i16 %8, %7 | |
br i1 %9, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%10 = load i64, ptr %stack.ptr_0 | |
%11 = getelementptr %inner_node_t_7, ptr %node_0, i32 0, i32 1, i16 %8 | |
%12 = load ptr, ptr %11 | |
%13 = call ccc i64 @eclair_btree_node_count_entries_7(ptr %12) | |
%14 = add i64 %10, %13 | |
store i64 %14, ptr %stack.ptr_0 | |
%15 = add i16 1, %8 | |
br label %for_begin_0 | |
for_end_0: | |
%16 = load i64, ptr %stack.ptr_0 | |
ret i64 %16 | |
} | |
define external ccc void @eclair_btree_iterator_init_7(ptr %iter_0, ptr %cur_0, i16 %pos_0) { | |
start: | |
%0 = getelementptr %btree_iterator_t_7, ptr %iter_0, i32 0, i32 0 | |
store ptr %cur_0, ptr %0 | |
%1 = getelementptr %btree_iterator_t_7, ptr %iter_0, i32 0, i32 1 | |
store i16 %pos_0, ptr %1 | |
ret void | |
} | |
define external ccc void @eclair_btree_iterator_end_init_7(ptr %iter_0) { | |
start: | |
call ccc void @eclair_btree_iterator_init_7(ptr %iter_0, ptr zeroinitializer, i16 0) | |
ret void | |
} | |
define external ccc i1 @eclair_btree_iterator_is_equal_7(ptr %lhs_0, ptr %rhs_0) { | |
start: | |
%0 = getelementptr %btree_iterator_t_7, ptr %lhs_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = getelementptr %btree_iterator_t_7, ptr %rhs_0, i32 0, i32 0 | |
%3 = load ptr, ptr %2 | |
%4 = icmp ne ptr %1, %3 | |
br i1 %4, label %if_0, label %end_if_0 | |
if_0: | |
ret i1 0 | |
end_if_0: | |
%5 = getelementptr %btree_iterator_t_7, ptr %lhs_0, i32 0, i32 1 | |
%6 = load i16, ptr %5 | |
%7 = getelementptr %btree_iterator_t_7, ptr %rhs_0, i32 0, i32 1 | |
%8 = load i16, ptr %7 | |
%9 = icmp eq i16 %6, %8 | |
ret i1 %9 | |
} | |
define external ccc ptr @eclair_btree_iterator_current_7(ptr %iter_0) { | |
start: | |
%0 = getelementptr %btree_iterator_t_7, ptr %iter_0, i32 0, i32 1 | |
%1 = load i16, ptr %0 | |
%2 = getelementptr %btree_iterator_t_7, ptr %iter_0, i32 0, i32 0 | |
%3 = load ptr, ptr %2 | |
%4 = getelementptr %node_t_7, ptr %3, i32 0, i32 1, i16 %1 | |
ret ptr %4 | |
} | |
define external ccc void @eclair_btree_iterator_next_7(ptr %iter_0) { | |
start: | |
%stack.ptr_0 = alloca ptr | |
%0 = getelementptr %btree_iterator_t_7, ptr %iter_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = getelementptr %node_t_7, ptr %1, i32 0, i32 0, i32 3 | |
%3 = load i1, ptr %2 | |
%4 = icmp eq i1 %3, 1 | |
br i1 %4, label %if_0, label %end_if_1 | |
if_0: | |
%5 = getelementptr %btree_iterator_t_7, ptr %iter_0, i32 0, i32 1 | |
%6 = load i16, ptr %5 | |
%7 = add i16 1, %6 | |
%8 = getelementptr %btree_iterator_t_7, ptr %iter_0, i32 0, i32 0 | |
%9 = load ptr, ptr %8 | |
%10 = getelementptr %inner_node_t_7, ptr %9, i32 0, i32 1, i16 %7 | |
%11 = load ptr, ptr %10 | |
store ptr %11, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_begin_0: | |
%12 = load ptr, ptr %stack.ptr_0 | |
%13 = getelementptr %node_t_7, ptr %12, i32 0, i32 0, i32 3 | |
%14 = load i1, ptr %13 | |
%15 = icmp eq i1 %14, 1 | |
br i1 %15, label %while_body_0, label %while_end_0 | |
while_body_0: | |
%16 = load ptr, ptr %stack.ptr_0 | |
%17 = getelementptr %inner_node_t_7, ptr %16, i32 0, i32 1, i16 0 | |
%18 = load ptr, ptr %17 | |
store ptr %18, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_end_0: | |
%19 = load ptr, ptr %stack.ptr_0 | |
%20 = getelementptr %btree_iterator_t_7, ptr %iter_0, i32 0, i32 0 | |
store ptr %19, ptr %20 | |
%21 = getelementptr %btree_iterator_t_7, ptr %iter_0, i32 0, i32 1 | |
store i16 0, ptr %21 | |
%22 = getelementptr %node_t_7, ptr %19, i32 0, i32 0, i32 2 | |
%23 = load i16, ptr %22 | |
%24 = icmp ne i16 %23, 0 | |
br i1 %24, label %if_1, label %end_if_0 | |
if_1: | |
ret void | |
end_if_0: | |
br label %leaf.next_0 | |
end_if_1: | |
br label %leaf.next_0 | |
leaf.next_0: | |
%25 = getelementptr %btree_iterator_t_7, ptr %iter_0, i32 0, i32 1 | |
%26 = load i16, ptr %25 | |
%27 = add i16 1, %26 | |
store i16 %27, ptr %25 | |
%28 = getelementptr %btree_iterator_t_7, ptr %iter_0, i32 0, i32 1 | |
%29 = load i16, ptr %28 | |
%30 = getelementptr %btree_iterator_t_7, ptr %iter_0, i32 0, i32 0 | |
%31 = load ptr, ptr %30 | |
%32 = getelementptr %node_t_7, ptr %31, i32 0, i32 0, i32 2 | |
%33 = load i16, ptr %32 | |
%34 = icmp ult i16 %29, %33 | |
br i1 %34, label %if_2, label %end_if_2 | |
if_2: | |
ret void | |
end_if_2: | |
br label %while_begin_1 | |
while_begin_1: | |
%35 = getelementptr %btree_iterator_t_7, ptr %iter_0, i32 0, i32 0 | |
%36 = load ptr, ptr %35 | |
%37 = icmp eq ptr %36, zeroinitializer | |
br i1 %37, label %leaf.no_parent_0, label %leaf.has_parent_0 | |
leaf.no_parent_0: | |
br label %loop.condition.end_0 | |
leaf.has_parent_0: | |
%38 = getelementptr %btree_iterator_t_7, ptr %iter_0, i32 0, i32 1 | |
%39 = load i16, ptr %38 | |
%40 = getelementptr %btree_iterator_t_7, ptr %iter_0, i32 0, i32 0 | |
%41 = load ptr, ptr %40 | |
%42 = getelementptr %node_t_7, ptr %41, i32 0, i32 0, i32 2 | |
%43 = load i16, ptr %42 | |
%44 = icmp eq i16 %39, %43 | |
br label %loop.condition.end_0 | |
loop.condition.end_0: | |
%45 = phi i1 [0, %leaf.no_parent_0], [%44, %leaf.has_parent_0] | |
br i1 %45, label %while_body_1, label %while_end_1 | |
while_body_1: | |
%46 = getelementptr %btree_iterator_t_7, ptr %iter_0, i32 0, i32 0 | |
%47 = load ptr, ptr %46 | |
%48 = getelementptr %node_t_7, ptr %47, i32 0, i32 0, i32 1 | |
%49 = load i16, ptr %48 | |
%50 = getelementptr %btree_iterator_t_7, ptr %iter_0, i32 0, i32 1 | |
store i16 %49, ptr %50 | |
%51 = getelementptr %node_t_7, ptr %47, i32 0, i32 0, i32 0 | |
%52 = load ptr, ptr %51 | |
%53 = getelementptr %btree_iterator_t_7, ptr %iter_0, i32 0, i32 0 | |
store ptr %52, ptr %53 | |
br label %while_begin_1 | |
while_end_1: | |
ret void | |
} | |
define external ccc ptr @eclair_btree_linear_search_lower_bound_7(ptr %val_0, ptr %current_0, ptr %end_0) { | |
start: | |
%stack.ptr_0 = alloca ptr | |
store ptr %current_0, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_begin_0: | |
%0 = load ptr, ptr %stack.ptr_0 | |
%1 = icmp ne ptr %0, %end_0 | |
br i1 %1, label %while_body_0, label %while_end_0 | |
while_body_0: | |
%2 = load ptr, ptr %stack.ptr_0 | |
%3 = call ccc i8 @eclair_btree_value_compare_values_7(ptr %2, ptr %val_0) | |
%4 = icmp ne i8 %3, -1 | |
br i1 %4, label %if_0, label %end_if_0 | |
if_0: | |
ret ptr %2 | |
end_if_0: | |
%5 = getelementptr [2 x i32], ptr %2, i32 1 | |
store ptr %5, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_end_0: | |
ret ptr %end_0 | |
} | |
define external ccc ptr @eclair_btree_linear_search_upper_bound_7(ptr %val_0, ptr %current_0, ptr %end_0) { | |
start: | |
%stack.ptr_0 = alloca ptr | |
store ptr %current_0, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_begin_0: | |
%0 = load ptr, ptr %stack.ptr_0 | |
%1 = icmp ne ptr %0, %end_0 | |
br i1 %1, label %while_body_0, label %while_end_0 | |
while_body_0: | |
%2 = load ptr, ptr %stack.ptr_0 | |
%3 = call ccc i8 @eclair_btree_value_compare_values_7(ptr %2, ptr %val_0) | |
%4 = icmp eq i8 %3, 1 | |
br i1 %4, label %if_0, label %end_if_0 | |
if_0: | |
ret ptr %2 | |
end_if_0: | |
%5 = getelementptr [2 x i32], ptr %2, i32 1 | |
store ptr %5, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_end_0: | |
ret ptr %end_0 | |
} | |
define external ccc void @eclair_btree_init_empty_7(ptr %tree_0) { | |
start: | |
%0 = getelementptr %btree_t_7, ptr %tree_0, i32 0, i32 0 | |
store ptr zeroinitializer, ptr %0 | |
%1 = getelementptr %btree_t_7, ptr %tree_0, i32 0, i32 1 | |
store ptr zeroinitializer, ptr %1 | |
ret void | |
} | |
define external ccc void @eclair_btree_init_7(ptr %tree_0, ptr %start_0, ptr %end_0) { | |
start: | |
call ccc void @eclair_btree_insert_range__7(ptr %tree_0, ptr %start_0, ptr %end_0) | |
ret void | |
} | |
define external ccc void @eclair_btree_destroy_7(ptr %tree_0) { | |
start: | |
call ccc void @eclair_btree_clear_7(ptr %tree_0) | |
ret void | |
} | |
define external ccc i1 @eclair_btree_is_empty_7(ptr %tree_0) { | |
start: | |
%0 = getelementptr %btree_t_7, ptr %tree_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = icmp eq ptr %1, zeroinitializer | |
ret i1 %2 | |
} | |
define external ccc i64 @eclair_btree_size_7(ptr %tree_0) { | |
start: | |
%0 = getelementptr %btree_t_7, ptr %tree_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = icmp eq ptr %1, zeroinitializer | |
br i1 %2, label %null_0, label %not_null_0 | |
null_0: | |
ret i64 0 | |
not_null_0: | |
%3 = call ccc i64 @eclair_btree_node_count_entries_7(ptr %1) | |
ret i64 %3 | |
} | |
define external ccc i16 @eclair_btree_node_split_point_7() { | |
start: | |
%0 = mul i16 3, 30 | |
%1 = udiv i16 %0, 4 | |
%2 = sub i16 30, 2 | |
%3 = icmp ult i16 %1, %2 | |
%4 = select i1 %3, i16 %1, i16 %2 | |
ret i16 %4 | |
} | |
define external ccc void @eclair_btree_node_split_7(ptr %node_0, ptr %root_0) { | |
start: | |
%stack.ptr_0 = alloca i16 | |
%0 = call ccc i16 @eclair_btree_node_split_point_7() | |
%1 = add i16 1, %0 | |
%2 = getelementptr %node_t_7, ptr %node_0, i32 0, i32 0, i32 3 | |
%3 = load i1, ptr %2 | |
%4 = call ccc ptr @eclair_btree_node_new_7(i1 %3) | |
store i16 0, ptr %stack.ptr_0 | |
br label %for_begin_0 | |
for_begin_0: | |
%5 = phi i16 [%1, %start], [%12, %for_body_0] | |
%6 = icmp ult i16 %5, 30 | |
br i1 %6, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%7 = load i16, ptr %stack.ptr_0 | |
%8 = getelementptr %node_t_7, ptr %node_0, i32 0, i32 1, i16 %5 | |
%9 = load [2 x i32], ptr %8 | |
%10 = getelementptr %node_t_7, ptr %4, i32 0, i32 1, i16 %7 | |
store [2 x i32] %9, ptr %10 | |
%11 = add i16 1, %7 | |
store i16 %11, ptr %stack.ptr_0 | |
%12 = add i16 1, %5 | |
br label %for_begin_0 | |
for_end_0: | |
%13 = icmp eq i1 %3, 1 | |
br i1 %13, label %if_0, label %end_if_0 | |
if_0: | |
store i16 0, ptr %stack.ptr_0 | |
br label %for_begin_1 | |
for_begin_1: | |
%14 = phi i16 [%1, %if_0], [%23, %for_body_1] | |
%15 = icmp ule i16 %14, 30 | |
br i1 %15, label %for_body_1, label %for_end_1 | |
for_body_1: | |
%16 = load i16, ptr %stack.ptr_0 | |
%17 = getelementptr %inner_node_t_7, ptr %node_0, i32 0, i32 1, i16 %14 | |
%18 = load ptr, ptr %17 | |
%19 = getelementptr %node_t_7, ptr %18, i32 0, i32 0, i32 0 | |
store ptr %4, ptr %19 | |
%20 = getelementptr %node_t_7, ptr %18, i32 0, i32 0, i32 1 | |
store i16 %16, ptr %20 | |
%21 = getelementptr %inner_node_t_7, ptr %4, i32 0, i32 1, i16 %16 | |
store ptr %18, ptr %21 | |
%22 = add i16 1, %16 | |
store i16 %22, ptr %stack.ptr_0 | |
%23 = add i16 1, %14 | |
br label %for_begin_1 | |
for_end_1: | |
br label %end_if_0 | |
end_if_0: | |
%24 = getelementptr %node_t_7, ptr %node_0, i32 0, i32 0, i32 2 | |
store i16 %0, ptr %24 | |
%25 = sub i16 30, %0 | |
%26 = sub i16 %25, 1 | |
%27 = getelementptr %node_t_7, ptr %4, i32 0, i32 0, i32 2 | |
store i16 %26, ptr %27 | |
call ccc void @eclair_btree_node_grow_parent_7(ptr %node_0, ptr %root_0, ptr %4) | |
ret void | |
} | |
define external ccc void @eclair_btree_node_grow_parent_7(ptr %node_0, ptr %root_0, ptr %sibling_0) { | |
start: | |
%0 = getelementptr %node_t_7, ptr %node_0, i32 0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = icmp eq ptr %1, zeroinitializer | |
%3 = getelementptr %node_t_7, ptr %node_0, i32 0, i32 0, i32 2 | |
%4 = load i16, ptr %3 | |
br i1 %2, label %create_new_root_0, label %insert_new_node_in_parent_0 | |
create_new_root_0: | |
%5 = call ccc ptr @eclair_btree_node_new_7(i1 1) | |
%6 = getelementptr %node_t_7, ptr %5, i32 0, i32 0, i32 2 | |
store i16 1, ptr %6 | |
%7 = getelementptr %node_t_7, ptr %node_0, i32 0, i32 1, i16 %4 | |
%8 = load [2 x i32], ptr %7 | |
%9 = getelementptr %node_t_7, ptr %5, i32 0, i32 1, i16 0 | |
store [2 x i32] %8, ptr %9 | |
%10 = getelementptr %inner_node_t_7, ptr %5, i32 0, i32 1, i16 0 | |
store ptr %node_0, ptr %10 | |
%11 = getelementptr %inner_node_t_7, ptr %5, i32 0, i32 1, i16 1 | |
store ptr %sibling_0, ptr %11 | |
%12 = getelementptr %node_t_7, ptr %node_0, i32 0, i32 0, i32 0 | |
store ptr %5, ptr %12 | |
%13 = getelementptr %node_t_7, ptr %sibling_0, i32 0, i32 0, i32 0 | |
store ptr %5, ptr %13 | |
%14 = getelementptr %node_t_7, ptr %sibling_0, i32 0, i32 0, i32 1 | |
store i16 1, ptr %14 | |
store ptr %5, ptr %root_0 | |
ret void | |
insert_new_node_in_parent_0: | |
%15 = getelementptr %node_t_7, ptr %node_0, i32 0, i32 0, i32 1 | |
%16 = load i16, ptr %15 | |
%17 = getelementptr %node_t_7, ptr %node_0, i32 0, i32 1, i16 %4 | |
call ccc void @eclair_btree_node_insert_inner_7(ptr %1, ptr %root_0, i16 %16, ptr %node_0, ptr %17, ptr %sibling_0) | |
ret void | |
} | |
define external ccc void @eclair_btree_node_insert_inner_7(ptr %node_0, ptr %root_0, i16 %pos_0, ptr %predecessor_0, ptr %key_0, ptr %new_node_0) { | |
start: | |
%stack.ptr_0 = alloca i16 | |
store i16 %pos_0, ptr %stack.ptr_0 | |
%0 = getelementptr %node_t_7, ptr %node_0, i32 0, i32 0, i32 2 | |
%1 = load i16, ptr %0 | |
%2 = icmp uge i16 %1, 30 | |
br i1 %2, label %if_0, label %end_if_1 | |
if_0: | |
%3 = load i16, ptr %stack.ptr_0 | |
%4 = call ccc i16 @eclair_btree_node_rebalance_or_split_7(ptr %node_0, ptr %root_0, i16 %pos_0) | |
%5 = sub i16 %3, %4 | |
store i16 %5, ptr %stack.ptr_0 | |
%6 = getelementptr %node_t_7, ptr %node_0, i32 0, i32 0, i32 2 | |
%7 = load i16, ptr %6 | |
%8 = icmp ugt i16 %5, %7 | |
br i1 %8, label %if_1, label %end_if_0 | |
if_1: | |
%9 = sub i16 %5, %7 | |
%10 = sub i16 %9, 1 | |
store i16 %10, ptr %stack.ptr_0 | |
%11 = getelementptr %node_t_7, ptr %node_0, i32 0, i32 0, i32 0 | |
%12 = load ptr, ptr %11 | |
%13 = getelementptr %node_t_7, ptr %node_0, i32 0, i32 0, i32 1 | |
%14 = load i16, ptr %13 | |
%15 = add i16 1, %14 | |
%16 = getelementptr %inner_node_t_7, ptr %12, i32 0, i32 1, i16 %15 | |
%17 = load ptr, ptr %16 | |
call ccc void @eclair_btree_node_insert_inner_7(ptr %17, ptr %root_0, i16 %10, ptr %predecessor_0, ptr %key_0, ptr %new_node_0) | |
ret void | |
end_if_0: | |
br label %end_if_1 | |
end_if_1: | |
%18 = getelementptr %node_t_7, ptr %node_0, i32 0, i32 0, i32 2 | |
%19 = load i16, ptr %18 | |
%20 = sub i16 %19, 1 | |
%21 = load i16, ptr %stack.ptr_0 | |
br label %for_begin_0 | |
for_begin_0: | |
%22 = phi i16 [%20, %end_if_1], [%37, %for_body_0] | |
%23 = icmp uge i16 %22, %21 | |
br i1 %23, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%24 = add i16 %22, 1 | |
%25 = add i16 %22, 2 | |
%26 = getelementptr %node_t_7, ptr %node_0, i32 0, i32 1, i16 %22 | |
%27 = load [2 x i32], ptr %26 | |
%28 = getelementptr %node_t_7, ptr %node_0, i32 0, i32 1, i16 %24 | |
store [2 x i32] %27, ptr %28 | |
%29 = getelementptr %inner_node_t_7, ptr %node_0, i32 0, i32 1, i16 %24 | |
%30 = load ptr, ptr %29 | |
%31 = getelementptr %inner_node_t_7, ptr %node_0, i32 0, i32 1, i16 %25 | |
store ptr %30, ptr %31 | |
%32 = getelementptr %inner_node_t_7, ptr %node_0, i32 0, i32 1, i16 %25 | |
%33 = load ptr, ptr %32 | |
%34 = getelementptr %node_t_7, ptr %33, i32 0, i32 0, i32 1 | |
%35 = load i16, ptr %34 | |
%36 = add i16 1, %35 | |
store i16 %36, ptr %34 | |
%37 = sub i16 %22, 1 | |
br label %for_begin_0 | |
for_end_0: | |
%38 = load [2 x i32], ptr %key_0 | |
%39 = getelementptr %node_t_7, ptr %node_0, i32 0, i32 1, i16 %21 | |
store [2 x i32] %38, ptr %39 | |
%40 = add i16 %21, 1 | |
%41 = getelementptr %inner_node_t_7, ptr %node_0, i32 0, i32 1, i16 %40 | |
store ptr %new_node_0, ptr %41 | |
%42 = getelementptr %node_t_7, ptr %new_node_0, i32 0, i32 0, i32 0 | |
store ptr %node_0, ptr %42 | |
%43 = getelementptr %node_t_7, ptr %new_node_0, i32 0, i32 0, i32 1 | |
store i16 %40, ptr %43 | |
%44 = getelementptr %node_t_7, ptr %node_0, i32 0, i32 0, i32 2 | |
%45 = load i16, ptr %44 | |
%46 = add i16 1, %45 | |
store i16 %46, ptr %44 | |
ret void | |
} | |
define external ccc i16 @eclair_btree_node_rebalance_or_split_7(ptr %node_0, ptr %root_0, i16 %idx_0) { | |
start: | |
%0 = getelementptr %node_t_7, ptr %node_0, i32 0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = getelementptr %node_t_7, ptr %node_0, i32 0, i32 0, i32 1 | |
%3 = load i16, ptr %2 | |
%4 = icmp ne ptr %1, zeroinitializer | |
%5 = icmp ugt i16 %3, 0 | |
%6 = and i1 %4, %5 | |
br i1 %6, label %rebalance_0, label %split_0 | |
rebalance_0: | |
%7 = sub i16 %3, 1 | |
%8 = getelementptr %inner_node_t_7, ptr %1, i32 0, i32 1, i16 %7 | |
%9 = load ptr, ptr %8 | |
%10 = getelementptr %node_t_7, ptr %9, i32 0, i32 0, i32 2 | |
%11 = load i16, ptr %10 | |
%12 = sub i16 30, %11 | |
%13 = icmp slt i16 %12, %idx_0 | |
%14 = select i1 %13, i16 %12, i16 %idx_0 | |
%15 = icmp ugt i16 %14, 0 | |
br i1 %15, label %if_0, label %end_if_1 | |
if_0: | |
%16 = getelementptr %node_t_7, ptr %node_0, i32 0, i32 0, i32 1 | |
%17 = load i16, ptr %16 | |
%18 = sub i16 %17, 1 | |
%19 = getelementptr %inner_node_t_7, ptr %1, i32 0, i32 0, i32 1, i16 %18 | |
%20 = load [2 x i32], ptr %19 | |
%21 = getelementptr %node_t_7, ptr %9, i32 0, i32 0, i32 2 | |
%22 = load i16, ptr %21 | |
%23 = getelementptr %node_t_7, ptr %9, i32 0, i32 1, i16 %22 | |
store [2 x i32] %20, ptr %23 | |
%24 = sub i16 %14, 1 | |
br label %for_begin_0 | |
for_begin_0: | |
%25 = phi i16 [0, %if_0], [%32, %for_body_0] | |
%26 = icmp ult i16 %25, %24 | |
br i1 %26, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%27 = add i16 %22, 1 | |
%28 = add i16 %25, %27 | |
%29 = getelementptr %node_t_7, ptr %node_0, i32 0, i32 1, i16 %25 | |
%30 = load [2 x i32], ptr %29 | |
%31 = getelementptr %node_t_7, ptr %9, i32 0, i32 1, i16 %28 | |
store [2 x i32] %30, ptr %31 | |
%32 = add i16 1, %25 | |
br label %for_begin_0 | |
for_end_0: | |
%33 = getelementptr %node_t_7, ptr %node_0, i32 0, i32 1, i16 %24 | |
%34 = load [2 x i32], ptr %33 | |
store [2 x i32] %34, ptr %19 | |
%35 = getelementptr %node_t_7, ptr %node_0, i32 0, i32 0, i32 2 | |
%36 = load i16, ptr %35 | |
%37 = sub i16 %36, %14 | |
br label %for_begin_1 | |
for_begin_1: | |
%38 = phi i16 [0, %for_end_0], [%44, %for_body_1] | |
%39 = icmp ult i16 %38, %37 | |
br i1 %39, label %for_body_1, label %for_end_1 | |
for_body_1: | |
%40 = add i16 %38, %14 | |
%41 = getelementptr %node_t_7, ptr %node_0, i32 0, i32 1, i16 %40 | |
%42 = load [2 x i32], ptr %41 | |
%43 = getelementptr %node_t_7, ptr %node_0, i32 0, i32 1, i16 %38 | |
store [2 x i32] %42, ptr %43 | |
%44 = add i16 1, %38 | |
br label %for_begin_1 | |
for_end_1: | |
%45 = getelementptr %node_t_7, ptr %node_0, i32 0, i32 0, i32 3 | |
%46 = load i1, ptr %45 | |
%47 = icmp eq i1 %46, 1 | |
br i1 %47, label %if_1, label %end_if_0 | |
if_1: | |
br label %for_begin_2 | |
for_begin_2: | |
%48 = phi i16 [0, %if_1], [%61, %for_body_2] | |
%49 = icmp ult i16 %48, %14 | |
br i1 %49, label %for_body_2, label %for_end_2 | |
for_body_2: | |
%50 = getelementptr %node_t_7, ptr %9, i32 0, i32 0, i32 2 | |
%51 = load i16, ptr %50 | |
%52 = add i16 %51, 1 | |
%53 = add i16 %48, %52 | |
%54 = getelementptr %inner_node_t_7, ptr %node_0, i32 0, i32 1, i16 %48 | |
%55 = load ptr, ptr %54 | |
%56 = getelementptr %inner_node_t_7, ptr %9, i32 0, i32 1, i16 %53 | |
store ptr %55, ptr %56 | |
%57 = getelementptr %inner_node_t_7, ptr %9, i32 0, i32 1, i16 %53 | |
%58 = load ptr, ptr %57 | |
%59 = getelementptr %node_t_7, ptr %58, i32 0, i32 0, i32 0 | |
store ptr %9, ptr %59 | |
%60 = getelementptr %node_t_7, ptr %58, i32 0, i32 0, i32 1 | |
store i16 %53, ptr %60 | |
%61 = add i16 1, %48 | |
br label %for_begin_2 | |
for_end_2: | |
%62 = sub i16 %36, %14 | |
%63 = add i16 1, %62 | |
br label %for_begin_3 | |
for_begin_3: | |
%64 = phi i16 [0, %for_end_2], [%73, %for_body_3] | |
%65 = icmp ult i16 %64, %63 | |
br i1 %65, label %for_body_3, label %for_end_3 | |
for_body_3: | |
%66 = add i16 %64, %14 | |
%67 = getelementptr %inner_node_t_7, ptr %node_0, i32 0, i32 1, i16 %66 | |
%68 = load ptr, ptr %67 | |
%69 = getelementptr %inner_node_t_7, ptr %node_0, i32 0, i32 1, i16 %64 | |
store ptr %68, ptr %69 | |
%70 = getelementptr %inner_node_t_7, ptr %node_0, i32 0, i32 1, i16 %64 | |
%71 = load ptr, ptr %70 | |
%72 = getelementptr %node_t_7, ptr %71, i32 0, i32 0, i32 1 | |
store i16 %64, ptr %72 | |
%73 = add i16 1, %64 | |
br label %for_begin_3 | |
for_end_3: | |
br label %end_if_0 | |
end_if_0: | |
%74 = getelementptr %node_t_7, ptr %9, i32 0, i32 0, i32 2 | |
%75 = load i16, ptr %74 | |
%76 = add i16 %75, %14 | |
store i16 %76, ptr %74 | |
%77 = getelementptr %node_t_7, ptr %node_0, i32 0, i32 0, i32 2 | |
%78 = load i16, ptr %77 | |
%79 = sub i16 %78, %14 | |
store i16 %79, ptr %77 | |
ret i16 %14 | |
end_if_1: | |
br label %split_0 | |
split_0: | |
call ccc void @eclair_btree_node_split_7(ptr %node_0, ptr %root_0) | |
ret i16 0 | |
} | |
define external ccc i1 @eclair_btree_insert_value_7(ptr %tree_0, ptr %val_0) { | |
start: | |
%stack.ptr_0 = alloca ptr | |
%stack.ptr_1 = alloca i16 | |
%0 = call ccc i1 @eclair_btree_is_empty_7(ptr %tree_0) | |
br i1 %0, label %empty_0, label %non_empty_0 | |
empty_0: | |
%1 = call ccc ptr @eclair_btree_node_new_7(i1 0) | |
%2 = getelementptr %node_t_7, ptr %1, i32 0, i32 0, i32 2 | |
store i16 1, ptr %2 | |
%3 = load [2 x i32], ptr %val_0 | |
%4 = getelementptr %node_t_7, ptr %1, i32 0, i32 1, i16 0 | |
store [2 x i32] %3, ptr %4 | |
%5 = getelementptr %btree_t_7, ptr %tree_0, i32 0, i32 0 | |
store ptr %1, ptr %5 | |
%6 = getelementptr %btree_t_7, ptr %tree_0, i32 0, i32 1 | |
store ptr %1, ptr %6 | |
br label %inserted_new_value_0 | |
non_empty_0: | |
%7 = getelementptr %btree_t_7, ptr %tree_0, i32 0, i32 0 | |
%8 = load ptr, ptr %7 | |
store ptr %8, ptr %stack.ptr_0 | |
br label %loop_0 | |
loop_0: | |
%9 = load ptr, ptr %stack.ptr_0 | |
%10 = getelementptr %node_t_7, ptr %9, i32 0, i32 0, i32 3 | |
%11 = load i1, ptr %10 | |
%12 = icmp eq i1 %11, 1 | |
br i1 %12, label %inner_0, label %leaf_0 | |
inner_0: | |
%13 = getelementptr %node_t_7, ptr %9, i32 0, i32 0, i32 2 | |
%14 = load i16, ptr %13 | |
%15 = getelementptr %node_t_7, ptr %9, i32 0, i32 1, i16 0 | |
%16 = getelementptr %node_t_7, ptr %9, i32 0, i32 1, i16 %14 | |
%17 = call ccc ptr @eclair_btree_linear_search_lower_bound_7(ptr %val_0, ptr %15, ptr %16) | |
%18 = ptrtoint ptr %17 to i64 | |
%19 = ptrtoint ptr %15 to i64 | |
%20 = sub i64 %18, %19 | |
%21 = trunc i64 %20 to i16 | |
%22 = udiv i16 %21, 8 | |
%23 = icmp ne ptr %17, %16 | |
%24 = call ccc i8 @eclair_btree_value_compare_values_7(ptr %17, ptr %val_0) | |
%25 = icmp eq i8 0, %24 | |
%26 = and i1 %23, %25 | |
br i1 %26, label %no_insert_0, label %inner_continue_insert_0 | |
inner_continue_insert_0: | |
%27 = getelementptr %inner_node_t_7, ptr %9, i32 0, i32 1, i16 %22 | |
%28 = load ptr, ptr %27 | |
store ptr %28, ptr %stack.ptr_0 | |
br label %loop_0 | |
leaf_0: | |
%29 = getelementptr %node_t_7, ptr %9, i32 0, i32 0, i32 2 | |
%30 = load i16, ptr %29 | |
%31 = getelementptr %node_t_7, ptr %9, i32 0, i32 1, i16 0 | |
%32 = getelementptr %node_t_7, ptr %9, i32 0, i32 1, i16 %30 | |
%33 = call ccc ptr @eclair_btree_linear_search_upper_bound_7(ptr %val_0, ptr %31, ptr %32) | |
%34 = ptrtoint ptr %33 to i64 | |
%35 = ptrtoint ptr %31 to i64 | |
%36 = sub i64 %34, %35 | |
%37 = trunc i64 %36 to i16 | |
%38 = udiv i16 %37, 8 | |
store i16 %38, ptr %stack.ptr_1 | |
%39 = icmp ne ptr %33, %31 | |
%40 = getelementptr [2 x i32], ptr %33, i32 -1 | |
%41 = call ccc i8 @eclair_btree_value_compare_values_7(ptr %40, ptr %val_0) | |
%42 = icmp eq i8 0, %41 | |
%43 = and i1 %39, %42 | |
br i1 %43, label %no_insert_0, label %leaf_continue_insert_0 | |
leaf_continue_insert_0: | |
%44 = icmp uge i16 %30, 30 | |
br i1 %44, label %split_0, label %no_split_0 | |
split_0: | |
%45 = getelementptr %btree_t_7, ptr %tree_0, i32 0, i32 0 | |
%46 = load i16, ptr %stack.ptr_1 | |
%47 = call ccc i16 @eclair_btree_node_rebalance_or_split_7(ptr %9, ptr %45, i16 %46) | |
%48 = sub i16 %46, %47 | |
store i16 %48, ptr %stack.ptr_1 | |
%49 = getelementptr %node_t_7, ptr %9, i32 0, i32 0, i32 2 | |
%50 = load i16, ptr %49 | |
%51 = icmp ugt i16 %48, %50 | |
br i1 %51, label %if_0, label %end_if_0 | |
if_0: | |
%52 = add i16 %50, 1 | |
%53 = sub i16 %48, %52 | |
store i16 %53, ptr %stack.ptr_1 | |
%54 = getelementptr %node_t_7, ptr %9, i32 0, i32 0, i32 0 | |
%55 = load ptr, ptr %54 | |
%56 = getelementptr %node_t_7, ptr %9, i32 0, i32 0, i32 1 | |
%57 = load i16, ptr %56 | |
%58 = add i16 1, %57 | |
%59 = getelementptr %inner_node_t_7, ptr %55, i32 0, i32 1, i16 %58 | |
%60 = load ptr, ptr %59 | |
store ptr %60, ptr %stack.ptr_0 | |
br label %end_if_0 | |
end_if_0: | |
br label %no_split_0 | |
no_split_0: | |
%61 = load ptr, ptr %stack.ptr_0 | |
%62 = load i16, ptr %stack.ptr_1 | |
%63 = getelementptr %node_t_7, ptr %61, i32 0, i32 0, i32 2 | |
%64 = load i16, ptr %63 | |
br label %for_begin_0 | |
for_begin_0: | |
%65 = phi i16 [%64, %no_split_0], [%71, %for_body_0] | |
%66 = icmp ugt i16 %65, %62 | |
br i1 %66, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%67 = sub i16 %65, 1 | |
%68 = getelementptr %node_t_7, ptr %61, i32 0, i32 1, i16 %67 | |
%69 = load [2 x i32], ptr %68 | |
%70 = getelementptr %node_t_7, ptr %61, i32 0, i32 1, i16 %65 | |
store [2 x i32] %69, ptr %70 | |
%71 = sub i16 %65, 1 | |
br label %for_begin_0 | |
for_end_0: | |
%72 = load [2 x i32], ptr %val_0 | |
%73 = getelementptr %node_t_7, ptr %61, i32 0, i32 1, i16 %62 | |
store [2 x i32] %72, ptr %73 | |
%74 = getelementptr %node_t_7, ptr %61, i32 0, i32 0, i32 2 | |
%75 = load i16, ptr %74 | |
%76 = add i16 1, %75 | |
store i16 %76, ptr %74 | |
br label %inserted_new_value_0 | |
no_insert_0: | |
ret i1 0 | |
inserted_new_value_0: | |
ret i1 1 | |
} | |
define external ccc void @eclair_btree_insert_range__7(ptr %tree_0, ptr %begin_0, ptr %end_0) { | |
start: | |
br label %while_begin_0 | |
while_begin_0: | |
%0 = call ccc i1 @eclair_btree_iterator_is_equal_7(ptr %begin_0, ptr %end_0) | |
%1 = select i1 %0, i1 0, i1 1 | |
br i1 %1, label %while_body_0, label %while_end_0 | |
while_body_0: | |
%2 = call ccc ptr @eclair_btree_iterator_current_7(ptr %begin_0) | |
%3 = call ccc i1 @eclair_btree_insert_value_7(ptr %tree_0, ptr %2) | |
call ccc void @eclair_btree_iterator_next_7(ptr %begin_0) | |
br label %while_begin_0 | |
while_end_0: | |
ret void | |
} | |
define external ccc void @eclair_btree_begin_7(ptr %tree_0, ptr %result_0) { | |
start: | |
%0 = getelementptr %btree_t_7, ptr %tree_0, i32 0, i32 1 | |
%1 = load ptr, ptr %0 | |
%2 = getelementptr %btree_iterator_t_7, ptr %result_0, i32 0, i32 0 | |
store ptr %1, ptr %2 | |
%3 = getelementptr %btree_iterator_t_7, ptr %result_0, i32 0, i32 1 | |
store i16 0, ptr %3 | |
ret void | |
} | |
define external ccc void @eclair_btree_end_7(ptr %tree_0, ptr %result_0) { | |
start: | |
call ccc void @eclair_btree_iterator_end_init_7(ptr %result_0) | |
ret void | |
} | |
define external ccc i1 @eclair_btree_contains_7(ptr %tree_0, ptr %val_0) { | |
start: | |
%stack.ptr_0 = alloca %btree_iterator_t_7, i32 1 | |
%stack.ptr_1 = alloca %btree_iterator_t_7, i32 1 | |
call ccc void @eclair_btree_find_7(ptr %tree_0, ptr %val_0, ptr %stack.ptr_0) | |
call ccc void @eclair_btree_end_7(ptr %tree_0, ptr %stack.ptr_1) | |
%0 = call ccc i1 @eclair_btree_iterator_is_equal_7(ptr %stack.ptr_0, ptr %stack.ptr_1) | |
%1 = select i1 %0, i1 0, i1 1 | |
ret i1 %1 | |
} | |
define external ccc void @eclair_btree_find_7(ptr %tree_0, ptr %val_0, ptr %result_0) { | |
start: | |
%stack.ptr_0 = alloca ptr | |
%0 = call ccc i1 @eclair_btree_is_empty_7(ptr %tree_0) | |
br i1 %0, label %if_0, label %end_if_0 | |
if_0: | |
call ccc void @eclair_btree_iterator_end_init_7(ptr %result_0) | |
ret void | |
end_if_0: | |
%1 = getelementptr %btree_t_7, ptr %tree_0, i32 0, i32 0 | |
%2 = load ptr, ptr %1 | |
store ptr %2, ptr %stack.ptr_0 | |
br label %loop_0 | |
loop_0: | |
%3 = load ptr, ptr %stack.ptr_0 | |
%4 = getelementptr %node_t_7, ptr %3, i32 0, i32 0, i32 2 | |
%5 = load i16, ptr %4 | |
%6 = getelementptr %node_t_7, ptr %3, i32 0, i32 1, i16 0 | |
%7 = getelementptr %node_t_7, ptr %3, i32 0, i32 1, i16 %5 | |
%8 = call ccc ptr @eclair_btree_linear_search_lower_bound_7(ptr %val_0, ptr %6, ptr %7) | |
%9 = ptrtoint ptr %8 to i64 | |
%10 = ptrtoint ptr %6 to i64 | |
%11 = sub i64 %9, %10 | |
%12 = trunc i64 %11 to i16 | |
%13 = udiv i16 %12, 8 | |
%14 = icmp ult ptr %8, %7 | |
%15 = call ccc i8 @eclair_btree_value_compare_values_7(ptr %8, ptr %val_0) | |
%16 = icmp eq i8 0, %15 | |
%17 = and i1 %14, %16 | |
br i1 %17, label %if_1, label %end_if_1 | |
if_1: | |
call ccc void @eclair_btree_iterator_init_7(ptr %result_0, ptr %3, i16 %13) | |
ret void | |
end_if_1: | |
%18 = getelementptr %node_t_7, ptr %3, i32 0, i32 0, i32 3 | |
%19 = load i1, ptr %18 | |
%20 = icmp eq i1 %19, 0 | |
br i1 %20, label %if_2, label %end_if_2 | |
if_2: | |
call ccc void @eclair_btree_iterator_end_init_7(ptr %result_0) | |
ret void | |
end_if_2: | |
%21 = getelementptr %inner_node_t_7, ptr %3, i32 0, i32 1, i16 %13 | |
%22 = load ptr, ptr %21 | |
store ptr %22, ptr %stack.ptr_0 | |
br label %loop_0 | |
} | |
define external ccc void @eclair_btree_lower_bound_7(ptr %tree_0, ptr %val_0, ptr %result_0) { | |
start: | |
%stack.ptr_0 = alloca %btree_iterator_t_7, i32 1 | |
%stack.ptr_1 = alloca ptr | |
%0 = call ccc i1 @eclair_btree_is_empty_7(ptr %tree_0) | |
br i1 %0, label %if_0, label %end_if_0 | |
if_0: | |
call ccc void @eclair_btree_iterator_end_init_7(ptr %result_0) | |
ret void | |
end_if_0: | |
call ccc void @eclair_btree_iterator_end_init_7(ptr %stack.ptr_0) | |
%1 = getelementptr %btree_t_7, ptr %tree_0, i32 0, i32 0 | |
%2 = load ptr, ptr %1 | |
store ptr %2, ptr %stack.ptr_1 | |
br label %loop_0 | |
loop_0: | |
%3 = load ptr, ptr %stack.ptr_1 | |
%4 = getelementptr %node_t_7, ptr %3, i32 0, i32 0, i32 2 | |
%5 = load i16, ptr %4 | |
%6 = getelementptr %node_t_7, ptr %3, i32 0, i32 1, i16 0 | |
%7 = getelementptr %node_t_7, ptr %3, i32 0, i32 1, i16 %5 | |
%8 = call ccc ptr @eclair_btree_linear_search_lower_bound_7(ptr %val_0, ptr %6, ptr %7) | |
%9 = ptrtoint ptr %8 to i64 | |
%10 = ptrtoint ptr %6 to i64 | |
%11 = sub i64 %9, %10 | |
%12 = trunc i64 %11 to i16 | |
%13 = udiv i16 %12, 8 | |
%14 = getelementptr %node_t_7, ptr %3, i32 0, i32 0, i32 3 | |
%15 = load i1, ptr %14 | |
%16 = icmp eq i1 %15, 0 | |
br i1 %16, label %if_1, label %end_if_1 | |
if_1: | |
%17 = icmp eq ptr %8, %7 | |
br i1 %17, label %handle_last_0, label %handle_not_last_0 | |
handle_last_0: | |
%18 = getelementptr %btree_iterator_t_7, ptr %stack.ptr_0, i32 0, i32 0 | |
%19 = load ptr, ptr %18 | |
%20 = getelementptr %btree_iterator_t_7, ptr %result_0, i32 0, i32 0 | |
store ptr %19, ptr %20 | |
%21 = getelementptr %btree_iterator_t_7, ptr %stack.ptr_0, i32 0, i32 1 | |
%22 = load i16, ptr %21 | |
%23 = getelementptr %btree_iterator_t_7, ptr %result_0, i32 0, i32 1 | |
store i16 %22, ptr %23 | |
ret void | |
handle_not_last_0: | |
call ccc void @eclair_btree_iterator_init_7(ptr %result_0, ptr %3, i16 %13) | |
ret void | |
end_if_1: | |
%24 = icmp ne ptr %8, %7 | |
%25 = call ccc i8 @eclair_btree_value_compare_values_7(ptr %8, ptr %val_0) | |
%26 = icmp eq i8 0, %25 | |
%27 = and i1 %24, %26 | |
br i1 %27, label %if_2, label %end_if_2 | |
if_2: | |
call ccc void @eclair_btree_iterator_init_7(ptr %result_0, ptr %3, i16 %13) | |
ret void | |
end_if_2: | |
br i1 %24, label %if_3, label %end_if_3 | |
if_3: | |
call ccc void @eclair_btree_iterator_init_7(ptr %stack.ptr_0, ptr %3, i16 %13) | |
br label %end_if_3 | |
end_if_3: | |
%28 = getelementptr %inner_node_t_7, ptr %3, i32 0, i32 1, i16 %13 | |
%29 = load ptr, ptr %28 | |
store ptr %29, ptr %stack.ptr_1 | |
br label %loop_0 | |
} | |
define external ccc void @eclair_btree_upper_bound_7(ptr %tree_0, ptr %val_0, ptr %result_0) { | |
start: | |
%stack.ptr_0 = alloca %btree_iterator_t_7, i32 1 | |
%stack.ptr_1 = alloca ptr | |
%0 = call ccc i1 @eclair_btree_is_empty_7(ptr %tree_0) | |
br i1 %0, label %if_0, label %end_if_0 | |
if_0: | |
call ccc void @eclair_btree_iterator_end_init_7(ptr %result_0) | |
ret void | |
end_if_0: | |
call ccc void @eclair_btree_iterator_end_init_7(ptr %stack.ptr_0) | |
%1 = getelementptr %btree_t_7, ptr %tree_0, i32 0, i32 0 | |
%2 = load ptr, ptr %1 | |
store ptr %2, ptr %stack.ptr_1 | |
br label %loop_0 | |
loop_0: | |
%3 = load ptr, ptr %stack.ptr_1 | |
%4 = getelementptr %node_t_7, ptr %3, i32 0, i32 0, i32 2 | |
%5 = load i16, ptr %4 | |
%6 = getelementptr %node_t_7, ptr %3, i32 0, i32 1, i16 0 | |
%7 = getelementptr %node_t_7, ptr %3, i32 0, i32 1, i16 %5 | |
%8 = call ccc ptr @eclair_btree_linear_search_upper_bound_7(ptr %val_0, ptr %6, ptr %7) | |
%9 = ptrtoint ptr %8 to i64 | |
%10 = ptrtoint ptr %6 to i64 | |
%11 = sub i64 %9, %10 | |
%12 = trunc i64 %11 to i16 | |
%13 = udiv i16 %12, 8 | |
%14 = getelementptr %node_t_7, ptr %3, i32 0, i32 0, i32 3 | |
%15 = load i1, ptr %14 | |
%16 = icmp eq i1 %15, 0 | |
br i1 %16, label %if_1, label %end_if_1 | |
if_1: | |
%17 = icmp eq ptr %8, %7 | |
br i1 %17, label %handle_last_0, label %handle_not_last_0 | |
handle_last_0: | |
%18 = getelementptr %btree_iterator_t_7, ptr %stack.ptr_0, i32 0, i32 0 | |
%19 = load ptr, ptr %18 | |
%20 = getelementptr %btree_iterator_t_7, ptr %result_0, i32 0, i32 0 | |
store ptr %19, ptr %20 | |
%21 = getelementptr %btree_iterator_t_7, ptr %stack.ptr_0, i32 0, i32 1 | |
%22 = load i16, ptr %21 | |
%23 = getelementptr %btree_iterator_t_7, ptr %result_0, i32 0, i32 1 | |
store i16 %22, ptr %23 | |
ret void | |
handle_not_last_0: | |
call ccc void @eclair_btree_iterator_init_7(ptr %result_0, ptr %3, i16 %13) | |
ret void | |
end_if_1: | |
%24 = icmp ne ptr %8, %7 | |
br i1 %24, label %if_2, label %end_if_2 | |
if_2: | |
call ccc void @eclair_btree_iterator_init_7(ptr %result_0, ptr %3, i16 %13) | |
br label %end_if_2 | |
end_if_2: | |
%25 = getelementptr %inner_node_t_7, ptr %3, i32 0, i32 1, i16 %13 | |
%26 = load ptr, ptr %25 | |
store ptr %26, ptr %stack.ptr_1 | |
br label %loop_0 | |
} | |
define external ccc void @eclair_btree_node_delete_7(ptr %node_0) { | |
start: | |
%0 = getelementptr %node_t_7, ptr %node_0, i32 0, i32 0, i32 3 | |
%1 = load i1, ptr %0 | |
%2 = icmp eq i1 %1, 1 | |
br i1 %2, label %if_0, label %end_if_1 | |
if_0: | |
%3 = getelementptr %node_t_7, ptr %node_0, i32 0, i32 0, i32 2 | |
%4 = load i16, ptr %3 | |
br label %for_begin_0 | |
for_begin_0: | |
%5 = phi i16 [0, %if_0], [%10, %end_if_0] | |
%6 = icmp ule i16 %5, %4 | |
br i1 %6, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%7 = getelementptr %inner_node_t_7, ptr %node_0, i32 0, i32 1, i16 %5 | |
%8 = load ptr, ptr %7 | |
%9 = icmp ne ptr %8, zeroinitializer | |
br i1 %9, label %if_1, label %end_if_0 | |
if_1: | |
call ccc void @eclair_btree_node_delete_7(ptr %8) | |
br label %end_if_0 | |
end_if_0: | |
%10 = add i16 1, %5 | |
br label %for_begin_0 | |
for_end_0: | |
br label %end_if_1 | |
end_if_1: | |
call ccc void @free(ptr %node_0) | |
ret void | |
} | |
define external ccc void @eclair_btree_clear_7(ptr %tree_0) { | |
start: | |
%0 = getelementptr %btree_t_7, ptr %tree_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = icmp ne ptr %1, zeroinitializer | |
br i1 %2, label %if_0, label %end_if_0 | |
if_0: | |
call ccc void @eclair_btree_node_delete_7(ptr %1) | |
%3 = getelementptr %btree_t_7, ptr %tree_0, i32 0, i32 0 | |
store ptr zeroinitializer, ptr %3 | |
%4 = getelementptr %btree_t_7, ptr %tree_0, i32 0, i32 1 | |
store ptr zeroinitializer, ptr %4 | |
br label %end_if_0 | |
end_if_0: | |
ret void | |
} | |
define external ccc void @eclair_btree_swap_7(ptr %lhs_0, ptr %rhs_0) { | |
start: | |
%0 = getelementptr %btree_t_7, ptr %lhs_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = getelementptr %btree_t_7, ptr %rhs_0, i32 0, i32 0 | |
%3 = load ptr, ptr %2 | |
%4 = getelementptr %btree_t_7, ptr %lhs_0, i32 0, i32 0 | |
store ptr %3, ptr %4 | |
%5 = getelementptr %btree_t_7, ptr %rhs_0, i32 0, i32 0 | |
store ptr %1, ptr %5 | |
%6 = getelementptr %btree_t_7, ptr %lhs_0, i32 0, i32 1 | |
%7 = load ptr, ptr %6 | |
%8 = getelementptr %btree_t_7, ptr %rhs_0, i32 0, i32 1 | |
%9 = load ptr, ptr %8 | |
%10 = getelementptr %btree_t_7, ptr %lhs_0, i32 0, i32 1 | |
store ptr %9, ptr %10 | |
%11 = getelementptr %btree_t_7, ptr %rhs_0, i32 0, i32 1 | |
store ptr %7, ptr %11 | |
ret void | |
} | |
%node_data_t_8 = type {ptr, i16, i16, i1} | |
%node_t_8 = type {%node_data_t_8, [20 x [3 x i32]]} | |
%inner_node_t_8 = type {%node_t_8, [21 x ptr]} | |
%btree_iterator_t_8 = type {ptr, i16} | |
%btree_t_8 = type {ptr, ptr} | |
define external ccc i8 @eclair_btree_value_compare_8(i32 %lhs_0, i32 %rhs_0) { | |
start: | |
%0 = icmp ult i32 %lhs_0, %rhs_0 | |
br i1 %0, label %if_0, label %end_if_0 | |
if_0: | |
ret i8 -1 | |
end_if_0: | |
%1 = icmp ugt i32 %lhs_0, %rhs_0 | |
%2 = select i1 %1, i8 1, i8 0 | |
ret i8 %2 | |
} | |
define external ccc i8 @eclair_btree_value_compare_values_8(ptr %lhs_0, ptr %rhs_0) { | |
start: | |
br label %comparison_0 | |
comparison_0: | |
%0 = getelementptr [3 x i32], ptr %lhs_0, i32 0, i32 2 | |
%1 = getelementptr [3 x i32], ptr %rhs_0, i32 0, i32 2 | |
%2 = load i32, ptr %0 | |
%3 = load i32, ptr %1 | |
%4 = call ccc i8 @eclair_btree_value_compare_8(i32 %2, i32 %3) | |
br label %end_0 | |
end_0: | |
%5 = phi i8 [%4, %comparison_0] | |
ret i8 %5 | |
} | |
define external ccc ptr @eclair_btree_node_new_8(i1 %type_0) { | |
start: | |
%0 = select i1 %type_0, i32 424, i32 256 | |
%1 = call ccc ptr @malloc(i32 %0) | |
%2 = getelementptr %node_t_8, ptr %1, i32 0, i32 0, i32 0 | |
store ptr zeroinitializer, ptr %2 | |
%3 = getelementptr %node_t_8, ptr %1, i32 0, i32 0, i32 1 | |
store i16 0, ptr %3 | |
%4 = getelementptr %node_t_8, ptr %1, i32 0, i32 0, i32 2 | |
store i16 0, ptr %4 | |
%5 = getelementptr %node_t_8, ptr %1, i32 0, i32 0, i32 3 | |
store i1 %type_0, ptr %5 | |
%6 = getelementptr %node_t_8, ptr %1, i32 0, i32 1 | |
call ccc void @llvm.memset.p0i8.i64(ptr %6, i8 0, i64 240, i1 0) | |
%7 = icmp eq i1 %type_0, 1 | |
br i1 %7, label %if_0, label %end_if_0 | |
if_0: | |
%8 = getelementptr %inner_node_t_8, ptr %1, i32 0, i32 1 | |
call ccc void @llvm.memset.p0i8.i64(ptr %8, i8 0, i64 168, i1 0) | |
br label %end_if_0 | |
end_if_0: | |
ret ptr %1 | |
} | |
define external ccc i64 @eclair_btree_node_count_entries_8(ptr %node_0) { | |
start: | |
%stack.ptr_0 = alloca i64 | |
%0 = getelementptr %node_t_8, ptr %node_0, i32 0, i32 0, i32 2 | |
%1 = load i16, ptr %0 | |
%2 = getelementptr %node_t_8, ptr %node_0, i32 0, i32 0, i32 3 | |
%3 = load i1, ptr %2 | |
%4 = icmp eq i1 %3, 0 | |
%5 = zext i16 %1 to i64 | |
br i1 %4, label %if_0, label %end_if_0 | |
if_0: | |
ret i64 %5 | |
end_if_0: | |
store i64 %5, ptr %stack.ptr_0 | |
%6 = getelementptr %node_t_8, ptr %node_0, i32 0, i32 0, i32 2 | |
%7 = load i16, ptr %6 | |
br label %for_begin_0 | |
for_begin_0: | |
%8 = phi i16 [0, %end_if_0], [%15, %for_body_0] | |
%9 = icmp ule i16 %8, %7 | |
br i1 %9, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%10 = load i64, ptr %stack.ptr_0 | |
%11 = getelementptr %inner_node_t_8, ptr %node_0, i32 0, i32 1, i16 %8 | |
%12 = load ptr, ptr %11 | |
%13 = call ccc i64 @eclair_btree_node_count_entries_8(ptr %12) | |
%14 = add i64 %10, %13 | |
store i64 %14, ptr %stack.ptr_0 | |
%15 = add i16 1, %8 | |
br label %for_begin_0 | |
for_end_0: | |
%16 = load i64, ptr %stack.ptr_0 | |
ret i64 %16 | |
} | |
define external ccc void @eclair_btree_iterator_init_8(ptr %iter_0, ptr %cur_0, i16 %pos_0) { | |
start: | |
%0 = getelementptr %btree_iterator_t_8, ptr %iter_0, i32 0, i32 0 | |
store ptr %cur_0, ptr %0 | |
%1 = getelementptr %btree_iterator_t_8, ptr %iter_0, i32 0, i32 1 | |
store i16 %pos_0, ptr %1 | |
ret void | |
} | |
define external ccc void @eclair_btree_iterator_end_init_8(ptr %iter_0) { | |
start: | |
call ccc void @eclair_btree_iterator_init_8(ptr %iter_0, ptr zeroinitializer, i16 0) | |
ret void | |
} | |
define external ccc i1 @eclair_btree_iterator_is_equal_8(ptr %lhs_0, ptr %rhs_0) { | |
start: | |
%0 = getelementptr %btree_iterator_t_8, ptr %lhs_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = getelementptr %btree_iterator_t_8, ptr %rhs_0, i32 0, i32 0 | |
%3 = load ptr, ptr %2 | |
%4 = icmp ne ptr %1, %3 | |
br i1 %4, label %if_0, label %end_if_0 | |
if_0: | |
ret i1 0 | |
end_if_0: | |
%5 = getelementptr %btree_iterator_t_8, ptr %lhs_0, i32 0, i32 1 | |
%6 = load i16, ptr %5 | |
%7 = getelementptr %btree_iterator_t_8, ptr %rhs_0, i32 0, i32 1 | |
%8 = load i16, ptr %7 | |
%9 = icmp eq i16 %6, %8 | |
ret i1 %9 | |
} | |
define external ccc ptr @eclair_btree_iterator_current_8(ptr %iter_0) { | |
start: | |
%0 = getelementptr %btree_iterator_t_8, ptr %iter_0, i32 0, i32 1 | |
%1 = load i16, ptr %0 | |
%2 = getelementptr %btree_iterator_t_8, ptr %iter_0, i32 0, i32 0 | |
%3 = load ptr, ptr %2 | |
%4 = getelementptr %node_t_8, ptr %3, i32 0, i32 1, i16 %1 | |
ret ptr %4 | |
} | |
define external ccc void @eclair_btree_iterator_next_8(ptr %iter_0) { | |
start: | |
%stack.ptr_0 = alloca ptr | |
%0 = getelementptr %btree_iterator_t_8, ptr %iter_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = getelementptr %node_t_8, ptr %1, i32 0, i32 0, i32 3 | |
%3 = load i1, ptr %2 | |
%4 = icmp eq i1 %3, 1 | |
br i1 %4, label %if_0, label %end_if_1 | |
if_0: | |
%5 = getelementptr %btree_iterator_t_8, ptr %iter_0, i32 0, i32 1 | |
%6 = load i16, ptr %5 | |
%7 = add i16 1, %6 | |
%8 = getelementptr %btree_iterator_t_8, ptr %iter_0, i32 0, i32 0 | |
%9 = load ptr, ptr %8 | |
%10 = getelementptr %inner_node_t_8, ptr %9, i32 0, i32 1, i16 %7 | |
%11 = load ptr, ptr %10 | |
store ptr %11, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_begin_0: | |
%12 = load ptr, ptr %stack.ptr_0 | |
%13 = getelementptr %node_t_8, ptr %12, i32 0, i32 0, i32 3 | |
%14 = load i1, ptr %13 | |
%15 = icmp eq i1 %14, 1 | |
br i1 %15, label %while_body_0, label %while_end_0 | |
while_body_0: | |
%16 = load ptr, ptr %stack.ptr_0 | |
%17 = getelementptr %inner_node_t_8, ptr %16, i32 0, i32 1, i16 0 | |
%18 = load ptr, ptr %17 | |
store ptr %18, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_end_0: | |
%19 = load ptr, ptr %stack.ptr_0 | |
%20 = getelementptr %btree_iterator_t_8, ptr %iter_0, i32 0, i32 0 | |
store ptr %19, ptr %20 | |
%21 = getelementptr %btree_iterator_t_8, ptr %iter_0, i32 0, i32 1 | |
store i16 0, ptr %21 | |
%22 = getelementptr %node_t_8, ptr %19, i32 0, i32 0, i32 2 | |
%23 = load i16, ptr %22 | |
%24 = icmp ne i16 %23, 0 | |
br i1 %24, label %if_1, label %end_if_0 | |
if_1: | |
ret void | |
end_if_0: | |
br label %leaf.next_0 | |
end_if_1: | |
br label %leaf.next_0 | |
leaf.next_0: | |
%25 = getelementptr %btree_iterator_t_8, ptr %iter_0, i32 0, i32 1 | |
%26 = load i16, ptr %25 | |
%27 = add i16 1, %26 | |
store i16 %27, ptr %25 | |
%28 = getelementptr %btree_iterator_t_8, ptr %iter_0, i32 0, i32 1 | |
%29 = load i16, ptr %28 | |
%30 = getelementptr %btree_iterator_t_8, ptr %iter_0, i32 0, i32 0 | |
%31 = load ptr, ptr %30 | |
%32 = getelementptr %node_t_8, ptr %31, i32 0, i32 0, i32 2 | |
%33 = load i16, ptr %32 | |
%34 = icmp ult i16 %29, %33 | |
br i1 %34, label %if_2, label %end_if_2 | |
if_2: | |
ret void | |
end_if_2: | |
br label %while_begin_1 | |
while_begin_1: | |
%35 = getelementptr %btree_iterator_t_8, ptr %iter_0, i32 0, i32 0 | |
%36 = load ptr, ptr %35 | |
%37 = icmp eq ptr %36, zeroinitializer | |
br i1 %37, label %leaf.no_parent_0, label %leaf.has_parent_0 | |
leaf.no_parent_0: | |
br label %loop.condition.end_0 | |
leaf.has_parent_0: | |
%38 = getelementptr %btree_iterator_t_8, ptr %iter_0, i32 0, i32 1 | |
%39 = load i16, ptr %38 | |
%40 = getelementptr %btree_iterator_t_8, ptr %iter_0, i32 0, i32 0 | |
%41 = load ptr, ptr %40 | |
%42 = getelementptr %node_t_8, ptr %41, i32 0, i32 0, i32 2 | |
%43 = load i16, ptr %42 | |
%44 = icmp eq i16 %39, %43 | |
br label %loop.condition.end_0 | |
loop.condition.end_0: | |
%45 = phi i1 [0, %leaf.no_parent_0], [%44, %leaf.has_parent_0] | |
br i1 %45, label %while_body_1, label %while_end_1 | |
while_body_1: | |
%46 = getelementptr %btree_iterator_t_8, ptr %iter_0, i32 0, i32 0 | |
%47 = load ptr, ptr %46 | |
%48 = getelementptr %node_t_8, ptr %47, i32 0, i32 0, i32 1 | |
%49 = load i16, ptr %48 | |
%50 = getelementptr %btree_iterator_t_8, ptr %iter_0, i32 0, i32 1 | |
store i16 %49, ptr %50 | |
%51 = getelementptr %node_t_8, ptr %47, i32 0, i32 0, i32 0 | |
%52 = load ptr, ptr %51 | |
%53 = getelementptr %btree_iterator_t_8, ptr %iter_0, i32 0, i32 0 | |
store ptr %52, ptr %53 | |
br label %while_begin_1 | |
while_end_1: | |
ret void | |
} | |
define external ccc ptr @eclair_btree_linear_search_lower_bound_8(ptr %val_0, ptr %current_0, ptr %end_0) { | |
start: | |
%stack.ptr_0 = alloca ptr | |
store ptr %current_0, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_begin_0: | |
%0 = load ptr, ptr %stack.ptr_0 | |
%1 = icmp ne ptr %0, %end_0 | |
br i1 %1, label %while_body_0, label %while_end_0 | |
while_body_0: | |
%2 = load ptr, ptr %stack.ptr_0 | |
%3 = call ccc i8 @eclair_btree_value_compare_values_8(ptr %2, ptr %val_0) | |
%4 = icmp ne i8 %3, -1 | |
br i1 %4, label %if_0, label %end_if_0 | |
if_0: | |
ret ptr %2 | |
end_if_0: | |
%5 = getelementptr [3 x i32], ptr %2, i32 1 | |
store ptr %5, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_end_0: | |
ret ptr %end_0 | |
} | |
define external ccc ptr @eclair_btree_linear_search_upper_bound_8(ptr %val_0, ptr %current_0, ptr %end_0) { | |
start: | |
%stack.ptr_0 = alloca ptr | |
store ptr %current_0, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_begin_0: | |
%0 = load ptr, ptr %stack.ptr_0 | |
%1 = icmp ne ptr %0, %end_0 | |
br i1 %1, label %while_body_0, label %while_end_0 | |
while_body_0: | |
%2 = load ptr, ptr %stack.ptr_0 | |
%3 = call ccc i8 @eclair_btree_value_compare_values_8(ptr %2, ptr %val_0) | |
%4 = icmp eq i8 %3, 1 | |
br i1 %4, label %if_0, label %end_if_0 | |
if_0: | |
ret ptr %2 | |
end_if_0: | |
%5 = getelementptr [3 x i32], ptr %2, i32 1 | |
store ptr %5, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_end_0: | |
ret ptr %end_0 | |
} | |
define external ccc void @eclair_btree_init_empty_8(ptr %tree_0) { | |
start: | |
%0 = getelementptr %btree_t_8, ptr %tree_0, i32 0, i32 0 | |
store ptr zeroinitializer, ptr %0 | |
%1 = getelementptr %btree_t_8, ptr %tree_0, i32 0, i32 1 | |
store ptr zeroinitializer, ptr %1 | |
ret void | |
} | |
define external ccc void @eclair_btree_init_8(ptr %tree_0, ptr %start_0, ptr %end_0) { | |
start: | |
call ccc void @eclair_btree_insert_range__8(ptr %tree_0, ptr %start_0, ptr %end_0) | |
ret void | |
} | |
define external ccc void @eclair_btree_destroy_8(ptr %tree_0) { | |
start: | |
call ccc void @eclair_btree_clear_8(ptr %tree_0) | |
ret void | |
} | |
define external ccc i1 @eclair_btree_is_empty_8(ptr %tree_0) { | |
start: | |
%0 = getelementptr %btree_t_8, ptr %tree_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = icmp eq ptr %1, zeroinitializer | |
ret i1 %2 | |
} | |
define external ccc i64 @eclair_btree_size_8(ptr %tree_0) { | |
start: | |
%0 = getelementptr %btree_t_8, ptr %tree_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = icmp eq ptr %1, zeroinitializer | |
br i1 %2, label %null_0, label %not_null_0 | |
null_0: | |
ret i64 0 | |
not_null_0: | |
%3 = call ccc i64 @eclair_btree_node_count_entries_8(ptr %1) | |
ret i64 %3 | |
} | |
define external ccc i16 @eclair_btree_node_split_point_8() { | |
start: | |
%0 = mul i16 3, 20 | |
%1 = udiv i16 %0, 4 | |
%2 = sub i16 20, 2 | |
%3 = icmp ult i16 %1, %2 | |
%4 = select i1 %3, i16 %1, i16 %2 | |
ret i16 %4 | |
} | |
define external ccc void @eclair_btree_node_split_8(ptr %node_0, ptr %root_0) { | |
start: | |
%stack.ptr_0 = alloca i16 | |
%0 = call ccc i16 @eclair_btree_node_split_point_8() | |
%1 = add i16 1, %0 | |
%2 = getelementptr %node_t_8, ptr %node_0, i32 0, i32 0, i32 3 | |
%3 = load i1, ptr %2 | |
%4 = call ccc ptr @eclair_btree_node_new_8(i1 %3) | |
store i16 0, ptr %stack.ptr_0 | |
br label %for_begin_0 | |
for_begin_0: | |
%5 = phi i16 [%1, %start], [%12, %for_body_0] | |
%6 = icmp ult i16 %5, 20 | |
br i1 %6, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%7 = load i16, ptr %stack.ptr_0 | |
%8 = getelementptr %node_t_8, ptr %node_0, i32 0, i32 1, i16 %5 | |
%9 = load [3 x i32], ptr %8 | |
%10 = getelementptr %node_t_8, ptr %4, i32 0, i32 1, i16 %7 | |
store [3 x i32] %9, ptr %10 | |
%11 = add i16 1, %7 | |
store i16 %11, ptr %stack.ptr_0 | |
%12 = add i16 1, %5 | |
br label %for_begin_0 | |
for_end_0: | |
%13 = icmp eq i1 %3, 1 | |
br i1 %13, label %if_0, label %end_if_0 | |
if_0: | |
store i16 0, ptr %stack.ptr_0 | |
br label %for_begin_1 | |
for_begin_1: | |
%14 = phi i16 [%1, %if_0], [%23, %for_body_1] | |
%15 = icmp ule i16 %14, 20 | |
br i1 %15, label %for_body_1, label %for_end_1 | |
for_body_1: | |
%16 = load i16, ptr %stack.ptr_0 | |
%17 = getelementptr %inner_node_t_8, ptr %node_0, i32 0, i32 1, i16 %14 | |
%18 = load ptr, ptr %17 | |
%19 = getelementptr %node_t_8, ptr %18, i32 0, i32 0, i32 0 | |
store ptr %4, ptr %19 | |
%20 = getelementptr %node_t_8, ptr %18, i32 0, i32 0, i32 1 | |
store i16 %16, ptr %20 | |
%21 = getelementptr %inner_node_t_8, ptr %4, i32 0, i32 1, i16 %16 | |
store ptr %18, ptr %21 | |
%22 = add i16 1, %16 | |
store i16 %22, ptr %stack.ptr_0 | |
%23 = add i16 1, %14 | |
br label %for_begin_1 | |
for_end_1: | |
br label %end_if_0 | |
end_if_0: | |
%24 = getelementptr %node_t_8, ptr %node_0, i32 0, i32 0, i32 2 | |
store i16 %0, ptr %24 | |
%25 = sub i16 20, %0 | |
%26 = sub i16 %25, 1 | |
%27 = getelementptr %node_t_8, ptr %4, i32 0, i32 0, i32 2 | |
store i16 %26, ptr %27 | |
call ccc void @eclair_btree_node_grow_parent_8(ptr %node_0, ptr %root_0, ptr %4) | |
ret void | |
} | |
define external ccc void @eclair_btree_node_grow_parent_8(ptr %node_0, ptr %root_0, ptr %sibling_0) { | |
start: | |
%0 = getelementptr %node_t_8, ptr %node_0, i32 0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = icmp eq ptr %1, zeroinitializer | |
%3 = getelementptr %node_t_8, ptr %node_0, i32 0, i32 0, i32 2 | |
%4 = load i16, ptr %3 | |
br i1 %2, label %create_new_root_0, label %insert_new_node_in_parent_0 | |
create_new_root_0: | |
%5 = call ccc ptr @eclair_btree_node_new_8(i1 1) | |
%6 = getelementptr %node_t_8, ptr %5, i32 0, i32 0, i32 2 | |
store i16 1, ptr %6 | |
%7 = getelementptr %node_t_8, ptr %node_0, i32 0, i32 1, i16 %4 | |
%8 = load [3 x i32], ptr %7 | |
%9 = getelementptr %node_t_8, ptr %5, i32 0, i32 1, i16 0 | |
store [3 x i32] %8, ptr %9 | |
%10 = getelementptr %inner_node_t_8, ptr %5, i32 0, i32 1, i16 0 | |
store ptr %node_0, ptr %10 | |
%11 = getelementptr %inner_node_t_8, ptr %5, i32 0, i32 1, i16 1 | |
store ptr %sibling_0, ptr %11 | |
%12 = getelementptr %node_t_8, ptr %node_0, i32 0, i32 0, i32 0 | |
store ptr %5, ptr %12 | |
%13 = getelementptr %node_t_8, ptr %sibling_0, i32 0, i32 0, i32 0 | |
store ptr %5, ptr %13 | |
%14 = getelementptr %node_t_8, ptr %sibling_0, i32 0, i32 0, i32 1 | |
store i16 1, ptr %14 | |
store ptr %5, ptr %root_0 | |
ret void | |
insert_new_node_in_parent_0: | |
%15 = getelementptr %node_t_8, ptr %node_0, i32 0, i32 0, i32 1 | |
%16 = load i16, ptr %15 | |
%17 = getelementptr %node_t_8, ptr %node_0, i32 0, i32 1, i16 %4 | |
call ccc void @eclair_btree_node_insert_inner_8(ptr %1, ptr %root_0, i16 %16, ptr %node_0, ptr %17, ptr %sibling_0) | |
ret void | |
} | |
define external ccc void @eclair_btree_node_insert_inner_8(ptr %node_0, ptr %root_0, i16 %pos_0, ptr %predecessor_0, ptr %key_0, ptr %new_node_0) { | |
start: | |
%stack.ptr_0 = alloca i16 | |
store i16 %pos_0, ptr %stack.ptr_0 | |
%0 = getelementptr %node_t_8, ptr %node_0, i32 0, i32 0, i32 2 | |
%1 = load i16, ptr %0 | |
%2 = icmp uge i16 %1, 20 | |
br i1 %2, label %if_0, label %end_if_1 | |
if_0: | |
%3 = load i16, ptr %stack.ptr_0 | |
%4 = call ccc i16 @eclair_btree_node_rebalance_or_split_8(ptr %node_0, ptr %root_0, i16 %pos_0) | |
%5 = sub i16 %3, %4 | |
store i16 %5, ptr %stack.ptr_0 | |
%6 = getelementptr %node_t_8, ptr %node_0, i32 0, i32 0, i32 2 | |
%7 = load i16, ptr %6 | |
%8 = icmp ugt i16 %5, %7 | |
br i1 %8, label %if_1, label %end_if_0 | |
if_1: | |
%9 = sub i16 %5, %7 | |
%10 = sub i16 %9, 1 | |
store i16 %10, ptr %stack.ptr_0 | |
%11 = getelementptr %node_t_8, ptr %node_0, i32 0, i32 0, i32 0 | |
%12 = load ptr, ptr %11 | |
%13 = getelementptr %node_t_8, ptr %node_0, i32 0, i32 0, i32 1 | |
%14 = load i16, ptr %13 | |
%15 = add i16 1, %14 | |
%16 = getelementptr %inner_node_t_8, ptr %12, i32 0, i32 1, i16 %15 | |
%17 = load ptr, ptr %16 | |
call ccc void @eclair_btree_node_insert_inner_8(ptr %17, ptr %root_0, i16 %10, ptr %predecessor_0, ptr %key_0, ptr %new_node_0) | |
ret void | |
end_if_0: | |
br label %end_if_1 | |
end_if_1: | |
%18 = getelementptr %node_t_8, ptr %node_0, i32 0, i32 0, i32 2 | |
%19 = load i16, ptr %18 | |
%20 = sub i16 %19, 1 | |
%21 = load i16, ptr %stack.ptr_0 | |
br label %for_begin_0 | |
for_begin_0: | |
%22 = phi i16 [%20, %end_if_1], [%37, %for_body_0] | |
%23 = icmp uge i16 %22, %21 | |
br i1 %23, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%24 = add i16 %22, 1 | |
%25 = add i16 %22, 2 | |
%26 = getelementptr %node_t_8, ptr %node_0, i32 0, i32 1, i16 %22 | |
%27 = load [3 x i32], ptr %26 | |
%28 = getelementptr %node_t_8, ptr %node_0, i32 0, i32 1, i16 %24 | |
store [3 x i32] %27, ptr %28 | |
%29 = getelementptr %inner_node_t_8, ptr %node_0, i32 0, i32 1, i16 %24 | |
%30 = load ptr, ptr %29 | |
%31 = getelementptr %inner_node_t_8, ptr %node_0, i32 0, i32 1, i16 %25 | |
store ptr %30, ptr %31 | |
%32 = getelementptr %inner_node_t_8, ptr %node_0, i32 0, i32 1, i16 %25 | |
%33 = load ptr, ptr %32 | |
%34 = getelementptr %node_t_8, ptr %33, i32 0, i32 0, i32 1 | |
%35 = load i16, ptr %34 | |
%36 = add i16 1, %35 | |
store i16 %36, ptr %34 | |
%37 = sub i16 %22, 1 | |
br label %for_begin_0 | |
for_end_0: | |
%38 = load [3 x i32], ptr %key_0 | |
%39 = getelementptr %node_t_8, ptr %node_0, i32 0, i32 1, i16 %21 | |
store [3 x i32] %38, ptr %39 | |
%40 = add i16 %21, 1 | |
%41 = getelementptr %inner_node_t_8, ptr %node_0, i32 0, i32 1, i16 %40 | |
store ptr %new_node_0, ptr %41 | |
%42 = getelementptr %node_t_8, ptr %new_node_0, i32 0, i32 0, i32 0 | |
store ptr %node_0, ptr %42 | |
%43 = getelementptr %node_t_8, ptr %new_node_0, i32 0, i32 0, i32 1 | |
store i16 %40, ptr %43 | |
%44 = getelementptr %node_t_8, ptr %node_0, i32 0, i32 0, i32 2 | |
%45 = load i16, ptr %44 | |
%46 = add i16 1, %45 | |
store i16 %46, ptr %44 | |
ret void | |
} | |
define external ccc i16 @eclair_btree_node_rebalance_or_split_8(ptr %node_0, ptr %root_0, i16 %idx_0) { | |
start: | |
%0 = getelementptr %node_t_8, ptr %node_0, i32 0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = getelementptr %node_t_8, ptr %node_0, i32 0, i32 0, i32 1 | |
%3 = load i16, ptr %2 | |
%4 = icmp ne ptr %1, zeroinitializer | |
%5 = icmp ugt i16 %3, 0 | |
%6 = and i1 %4, %5 | |
br i1 %6, label %rebalance_0, label %split_0 | |
rebalance_0: | |
%7 = sub i16 %3, 1 | |
%8 = getelementptr %inner_node_t_8, ptr %1, i32 0, i32 1, i16 %7 | |
%9 = load ptr, ptr %8 | |
%10 = getelementptr %node_t_8, ptr %9, i32 0, i32 0, i32 2 | |
%11 = load i16, ptr %10 | |
%12 = sub i16 20, %11 | |
%13 = icmp slt i16 %12, %idx_0 | |
%14 = select i1 %13, i16 %12, i16 %idx_0 | |
%15 = icmp ugt i16 %14, 0 | |
br i1 %15, label %if_0, label %end_if_1 | |
if_0: | |
%16 = getelementptr %node_t_8, ptr %node_0, i32 0, i32 0, i32 1 | |
%17 = load i16, ptr %16 | |
%18 = sub i16 %17, 1 | |
%19 = getelementptr %inner_node_t_8, ptr %1, i32 0, i32 0, i32 1, i16 %18 | |
%20 = load [3 x i32], ptr %19 | |
%21 = getelementptr %node_t_8, ptr %9, i32 0, i32 0, i32 2 | |
%22 = load i16, ptr %21 | |
%23 = getelementptr %node_t_8, ptr %9, i32 0, i32 1, i16 %22 | |
store [3 x i32] %20, ptr %23 | |
%24 = sub i16 %14, 1 | |
br label %for_begin_0 | |
for_begin_0: | |
%25 = phi i16 [0, %if_0], [%32, %for_body_0] | |
%26 = icmp ult i16 %25, %24 | |
br i1 %26, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%27 = add i16 %22, 1 | |
%28 = add i16 %25, %27 | |
%29 = getelementptr %node_t_8, ptr %node_0, i32 0, i32 1, i16 %25 | |
%30 = load [3 x i32], ptr %29 | |
%31 = getelementptr %node_t_8, ptr %9, i32 0, i32 1, i16 %28 | |
store [3 x i32] %30, ptr %31 | |
%32 = add i16 1, %25 | |
br label %for_begin_0 | |
for_end_0: | |
%33 = getelementptr %node_t_8, ptr %node_0, i32 0, i32 1, i16 %24 | |
%34 = load [3 x i32], ptr %33 | |
store [3 x i32] %34, ptr %19 | |
%35 = getelementptr %node_t_8, ptr %node_0, i32 0, i32 0, i32 2 | |
%36 = load i16, ptr %35 | |
%37 = sub i16 %36, %14 | |
br label %for_begin_1 | |
for_begin_1: | |
%38 = phi i16 [0, %for_end_0], [%44, %for_body_1] | |
%39 = icmp ult i16 %38, %37 | |
br i1 %39, label %for_body_1, label %for_end_1 | |
for_body_1: | |
%40 = add i16 %38, %14 | |
%41 = getelementptr %node_t_8, ptr %node_0, i32 0, i32 1, i16 %40 | |
%42 = load [3 x i32], ptr %41 | |
%43 = getelementptr %node_t_8, ptr %node_0, i32 0, i32 1, i16 %38 | |
store [3 x i32] %42, ptr %43 | |
%44 = add i16 1, %38 | |
br label %for_begin_1 | |
for_end_1: | |
%45 = getelementptr %node_t_8, ptr %node_0, i32 0, i32 0, i32 3 | |
%46 = load i1, ptr %45 | |
%47 = icmp eq i1 %46, 1 | |
br i1 %47, label %if_1, label %end_if_0 | |
if_1: | |
br label %for_begin_2 | |
for_begin_2: | |
%48 = phi i16 [0, %if_1], [%61, %for_body_2] | |
%49 = icmp ult i16 %48, %14 | |
br i1 %49, label %for_body_2, label %for_end_2 | |
for_body_2: | |
%50 = getelementptr %node_t_8, ptr %9, i32 0, i32 0, i32 2 | |
%51 = load i16, ptr %50 | |
%52 = add i16 %51, 1 | |
%53 = add i16 %48, %52 | |
%54 = getelementptr %inner_node_t_8, ptr %node_0, i32 0, i32 1, i16 %48 | |
%55 = load ptr, ptr %54 | |
%56 = getelementptr %inner_node_t_8, ptr %9, i32 0, i32 1, i16 %53 | |
store ptr %55, ptr %56 | |
%57 = getelementptr %inner_node_t_8, ptr %9, i32 0, i32 1, i16 %53 | |
%58 = load ptr, ptr %57 | |
%59 = getelementptr %node_t_8, ptr %58, i32 0, i32 0, i32 0 | |
store ptr %9, ptr %59 | |
%60 = getelementptr %node_t_8, ptr %58, i32 0, i32 0, i32 1 | |
store i16 %53, ptr %60 | |
%61 = add i16 1, %48 | |
br label %for_begin_2 | |
for_end_2: | |
%62 = sub i16 %36, %14 | |
%63 = add i16 1, %62 | |
br label %for_begin_3 | |
for_begin_3: | |
%64 = phi i16 [0, %for_end_2], [%73, %for_body_3] | |
%65 = icmp ult i16 %64, %63 | |
br i1 %65, label %for_body_3, label %for_end_3 | |
for_body_3: | |
%66 = add i16 %64, %14 | |
%67 = getelementptr %inner_node_t_8, ptr %node_0, i32 0, i32 1, i16 %66 | |
%68 = load ptr, ptr %67 | |
%69 = getelementptr %inner_node_t_8, ptr %node_0, i32 0, i32 1, i16 %64 | |
store ptr %68, ptr %69 | |
%70 = getelementptr %inner_node_t_8, ptr %node_0, i32 0, i32 1, i16 %64 | |
%71 = load ptr, ptr %70 | |
%72 = getelementptr %node_t_8, ptr %71, i32 0, i32 0, i32 1 | |
store i16 %64, ptr %72 | |
%73 = add i16 1, %64 | |
br label %for_begin_3 | |
for_end_3: | |
br label %end_if_0 | |
end_if_0: | |
%74 = getelementptr %node_t_8, ptr %9, i32 0, i32 0, i32 2 | |
%75 = load i16, ptr %74 | |
%76 = add i16 %75, %14 | |
store i16 %76, ptr %74 | |
%77 = getelementptr %node_t_8, ptr %node_0, i32 0, i32 0, i32 2 | |
%78 = load i16, ptr %77 | |
%79 = sub i16 %78, %14 | |
store i16 %79, ptr %77 | |
ret i16 %14 | |
end_if_1: | |
br label %split_0 | |
split_0: | |
call ccc void @eclair_btree_node_split_8(ptr %node_0, ptr %root_0) | |
ret i16 0 | |
} | |
define external ccc i1 @eclair_btree_insert_value_8(ptr %tree_0, ptr %val_0) { | |
start: | |
%stack.ptr_0 = alloca ptr | |
%stack.ptr_1 = alloca i16 | |
%0 = call ccc i1 @eclair_btree_is_empty_8(ptr %tree_0) | |
br i1 %0, label %empty_0, label %non_empty_0 | |
empty_0: | |
%1 = call ccc ptr @eclair_btree_node_new_8(i1 0) | |
%2 = getelementptr %node_t_8, ptr %1, i32 0, i32 0, i32 2 | |
store i16 1, ptr %2 | |
%3 = load [3 x i32], ptr %val_0 | |
%4 = getelementptr %node_t_8, ptr %1, i32 0, i32 1, i16 0 | |
store [3 x i32] %3, ptr %4 | |
%5 = getelementptr %btree_t_8, ptr %tree_0, i32 0, i32 0 | |
store ptr %1, ptr %5 | |
%6 = getelementptr %btree_t_8, ptr %tree_0, i32 0, i32 1 | |
store ptr %1, ptr %6 | |
br label %inserted_new_value_0 | |
non_empty_0: | |
%7 = getelementptr %btree_t_8, ptr %tree_0, i32 0, i32 0 | |
%8 = load ptr, ptr %7 | |
store ptr %8, ptr %stack.ptr_0 | |
br label %loop_0 | |
loop_0: | |
%9 = load ptr, ptr %stack.ptr_0 | |
%10 = getelementptr %node_t_8, ptr %9, i32 0, i32 0, i32 3 | |
%11 = load i1, ptr %10 | |
%12 = icmp eq i1 %11, 1 | |
br i1 %12, label %inner_0, label %leaf_0 | |
inner_0: | |
%13 = getelementptr %node_t_8, ptr %9, i32 0, i32 0, i32 2 | |
%14 = load i16, ptr %13 | |
%15 = getelementptr %node_t_8, ptr %9, i32 0, i32 1, i16 0 | |
%16 = getelementptr %node_t_8, ptr %9, i32 0, i32 1, i16 %14 | |
%17 = call ccc ptr @eclair_btree_linear_search_lower_bound_8(ptr %val_0, ptr %15, ptr %16) | |
%18 = ptrtoint ptr %17 to i64 | |
%19 = ptrtoint ptr %15 to i64 | |
%20 = sub i64 %18, %19 | |
%21 = trunc i64 %20 to i16 | |
%22 = udiv i16 %21, 12 | |
%23 = icmp ne ptr %17, %16 | |
%24 = call ccc i8 @eclair_btree_value_compare_values_8(ptr %17, ptr %val_0) | |
%25 = icmp eq i8 0, %24 | |
%26 = and i1 %23, %25 | |
br i1 %26, label %no_insert_0, label %inner_continue_insert_0 | |
inner_continue_insert_0: | |
%27 = getelementptr %inner_node_t_8, ptr %9, i32 0, i32 1, i16 %22 | |
%28 = load ptr, ptr %27 | |
store ptr %28, ptr %stack.ptr_0 | |
br label %loop_0 | |
leaf_0: | |
%29 = getelementptr %node_t_8, ptr %9, i32 0, i32 0, i32 2 | |
%30 = load i16, ptr %29 | |
%31 = getelementptr %node_t_8, ptr %9, i32 0, i32 1, i16 0 | |
%32 = getelementptr %node_t_8, ptr %9, i32 0, i32 1, i16 %30 | |
%33 = call ccc ptr @eclair_btree_linear_search_upper_bound_8(ptr %val_0, ptr %31, ptr %32) | |
%34 = ptrtoint ptr %33 to i64 | |
%35 = ptrtoint ptr %31 to i64 | |
%36 = sub i64 %34, %35 | |
%37 = trunc i64 %36 to i16 | |
%38 = udiv i16 %37, 12 | |
store i16 %38, ptr %stack.ptr_1 | |
%39 = icmp ne ptr %33, %31 | |
%40 = getelementptr [3 x i32], ptr %33, i32 -1 | |
%41 = call ccc i8 @eclair_btree_value_compare_values_8(ptr %40, ptr %val_0) | |
%42 = icmp eq i8 0, %41 | |
%43 = and i1 %39, %42 | |
br i1 %43, label %no_insert_0, label %leaf_continue_insert_0 | |
leaf_continue_insert_0: | |
%44 = icmp uge i16 %30, 20 | |
br i1 %44, label %split_0, label %no_split_0 | |
split_0: | |
%45 = getelementptr %btree_t_8, ptr %tree_0, i32 0, i32 0 | |
%46 = load i16, ptr %stack.ptr_1 | |
%47 = call ccc i16 @eclair_btree_node_rebalance_or_split_8(ptr %9, ptr %45, i16 %46) | |
%48 = sub i16 %46, %47 | |
store i16 %48, ptr %stack.ptr_1 | |
%49 = getelementptr %node_t_8, ptr %9, i32 0, i32 0, i32 2 | |
%50 = load i16, ptr %49 | |
%51 = icmp ugt i16 %48, %50 | |
br i1 %51, label %if_0, label %end_if_0 | |
if_0: | |
%52 = add i16 %50, 1 | |
%53 = sub i16 %48, %52 | |
store i16 %53, ptr %stack.ptr_1 | |
%54 = getelementptr %node_t_8, ptr %9, i32 0, i32 0, i32 0 | |
%55 = load ptr, ptr %54 | |
%56 = getelementptr %node_t_8, ptr %9, i32 0, i32 0, i32 1 | |
%57 = load i16, ptr %56 | |
%58 = add i16 1, %57 | |
%59 = getelementptr %inner_node_t_8, ptr %55, i32 0, i32 1, i16 %58 | |
%60 = load ptr, ptr %59 | |
store ptr %60, ptr %stack.ptr_0 | |
br label %end_if_0 | |
end_if_0: | |
br label %no_split_0 | |
no_split_0: | |
%61 = load ptr, ptr %stack.ptr_0 | |
%62 = load i16, ptr %stack.ptr_1 | |
%63 = getelementptr %node_t_8, ptr %61, i32 0, i32 0, i32 2 | |
%64 = load i16, ptr %63 | |
br label %for_begin_0 | |
for_begin_0: | |
%65 = phi i16 [%64, %no_split_0], [%71, %for_body_0] | |
%66 = icmp ugt i16 %65, %62 | |
br i1 %66, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%67 = sub i16 %65, 1 | |
%68 = getelementptr %node_t_8, ptr %61, i32 0, i32 1, i16 %67 | |
%69 = load [3 x i32], ptr %68 | |
%70 = getelementptr %node_t_8, ptr %61, i32 0, i32 1, i16 %65 | |
store [3 x i32] %69, ptr %70 | |
%71 = sub i16 %65, 1 | |
br label %for_begin_0 | |
for_end_0: | |
%72 = load [3 x i32], ptr %val_0 | |
%73 = getelementptr %node_t_8, ptr %61, i32 0, i32 1, i16 %62 | |
store [3 x i32] %72, ptr %73 | |
%74 = getelementptr %node_t_8, ptr %61, i32 0, i32 0, i32 2 | |
%75 = load i16, ptr %74 | |
%76 = add i16 1, %75 | |
store i16 %76, ptr %74 | |
br label %inserted_new_value_0 | |
no_insert_0: | |
ret i1 0 | |
inserted_new_value_0: | |
ret i1 1 | |
} | |
define external ccc void @eclair_btree_insert_range__8(ptr %tree_0, ptr %begin_0, ptr %end_0) { | |
start: | |
br label %while_begin_0 | |
while_begin_0: | |
%0 = call ccc i1 @eclair_btree_iterator_is_equal_8(ptr %begin_0, ptr %end_0) | |
%1 = select i1 %0, i1 0, i1 1 | |
br i1 %1, label %while_body_0, label %while_end_0 | |
while_body_0: | |
%2 = call ccc ptr @eclair_btree_iterator_current_8(ptr %begin_0) | |
%3 = call ccc i1 @eclair_btree_insert_value_8(ptr %tree_0, ptr %2) | |
call ccc void @eclair_btree_iterator_next_8(ptr %begin_0) | |
br label %while_begin_0 | |
while_end_0: | |
ret void | |
} | |
define external ccc void @eclair_btree_begin_8(ptr %tree_0, ptr %result_0) { | |
start: | |
%0 = getelementptr %btree_t_8, ptr %tree_0, i32 0, i32 1 | |
%1 = load ptr, ptr %0 | |
%2 = getelementptr %btree_iterator_t_8, ptr %result_0, i32 0, i32 0 | |
store ptr %1, ptr %2 | |
%3 = getelementptr %btree_iterator_t_8, ptr %result_0, i32 0, i32 1 | |
store i16 0, ptr %3 | |
ret void | |
} | |
define external ccc void @eclair_btree_end_8(ptr %tree_0, ptr %result_0) { | |
start: | |
call ccc void @eclair_btree_iterator_end_init_8(ptr %result_0) | |
ret void | |
} | |
define external ccc i1 @eclair_btree_contains_8(ptr %tree_0, ptr %val_0) { | |
start: | |
%stack.ptr_0 = alloca %btree_iterator_t_8, i32 1 | |
%stack.ptr_1 = alloca %btree_iterator_t_8, i32 1 | |
call ccc void @eclair_btree_find_8(ptr %tree_0, ptr %val_0, ptr %stack.ptr_0) | |
call ccc void @eclair_btree_end_8(ptr %tree_0, ptr %stack.ptr_1) | |
%0 = call ccc i1 @eclair_btree_iterator_is_equal_8(ptr %stack.ptr_0, ptr %stack.ptr_1) | |
%1 = select i1 %0, i1 0, i1 1 | |
ret i1 %1 | |
} | |
define external ccc void @eclair_btree_find_8(ptr %tree_0, ptr %val_0, ptr %result_0) { | |
start: | |
%stack.ptr_0 = alloca ptr | |
%0 = call ccc i1 @eclair_btree_is_empty_8(ptr %tree_0) | |
br i1 %0, label %if_0, label %end_if_0 | |
if_0: | |
call ccc void @eclair_btree_iterator_end_init_8(ptr %result_0) | |
ret void | |
end_if_0: | |
%1 = getelementptr %btree_t_8, ptr %tree_0, i32 0, i32 0 | |
%2 = load ptr, ptr %1 | |
store ptr %2, ptr %stack.ptr_0 | |
br label %loop_0 | |
loop_0: | |
%3 = load ptr, ptr %stack.ptr_0 | |
%4 = getelementptr %node_t_8, ptr %3, i32 0, i32 0, i32 2 | |
%5 = load i16, ptr %4 | |
%6 = getelementptr %node_t_8, ptr %3, i32 0, i32 1, i16 0 | |
%7 = getelementptr %node_t_8, ptr %3, i32 0, i32 1, i16 %5 | |
%8 = call ccc ptr @eclair_btree_linear_search_lower_bound_8(ptr %val_0, ptr %6, ptr %7) | |
%9 = ptrtoint ptr %8 to i64 | |
%10 = ptrtoint ptr %6 to i64 | |
%11 = sub i64 %9, %10 | |
%12 = trunc i64 %11 to i16 | |
%13 = udiv i16 %12, 12 | |
%14 = icmp ult ptr %8, %7 | |
%15 = call ccc i8 @eclair_btree_value_compare_values_8(ptr %8, ptr %val_0) | |
%16 = icmp eq i8 0, %15 | |
%17 = and i1 %14, %16 | |
br i1 %17, label %if_1, label %end_if_1 | |
if_1: | |
call ccc void @eclair_btree_iterator_init_8(ptr %result_0, ptr %3, i16 %13) | |
ret void | |
end_if_1: | |
%18 = getelementptr %node_t_8, ptr %3, i32 0, i32 0, i32 3 | |
%19 = load i1, ptr %18 | |
%20 = icmp eq i1 %19, 0 | |
br i1 %20, label %if_2, label %end_if_2 | |
if_2: | |
call ccc void @eclair_btree_iterator_end_init_8(ptr %result_0) | |
ret void | |
end_if_2: | |
%21 = getelementptr %inner_node_t_8, ptr %3, i32 0, i32 1, i16 %13 | |
%22 = load ptr, ptr %21 | |
store ptr %22, ptr %stack.ptr_0 | |
br label %loop_0 | |
} | |
define external ccc void @eclair_btree_lower_bound_8(ptr %tree_0, ptr %val_0, ptr %result_0) { | |
start: | |
%stack.ptr_0 = alloca %btree_iterator_t_8, i32 1 | |
%stack.ptr_1 = alloca ptr | |
%0 = call ccc i1 @eclair_btree_is_empty_8(ptr %tree_0) | |
br i1 %0, label %if_0, label %end_if_0 | |
if_0: | |
call ccc void @eclair_btree_iterator_end_init_8(ptr %result_0) | |
ret void | |
end_if_0: | |
call ccc void @eclair_btree_iterator_end_init_8(ptr %stack.ptr_0) | |
%1 = getelementptr %btree_t_8, ptr %tree_0, i32 0, i32 0 | |
%2 = load ptr, ptr %1 | |
store ptr %2, ptr %stack.ptr_1 | |
br label %loop_0 | |
loop_0: | |
%3 = load ptr, ptr %stack.ptr_1 | |
%4 = getelementptr %node_t_8, ptr %3, i32 0, i32 0, i32 2 | |
%5 = load i16, ptr %4 | |
%6 = getelementptr %node_t_8, ptr %3, i32 0, i32 1, i16 0 | |
%7 = getelementptr %node_t_8, ptr %3, i32 0, i32 1, i16 %5 | |
%8 = call ccc ptr @eclair_btree_linear_search_lower_bound_8(ptr %val_0, ptr %6, ptr %7) | |
%9 = ptrtoint ptr %8 to i64 | |
%10 = ptrtoint ptr %6 to i64 | |
%11 = sub i64 %9, %10 | |
%12 = trunc i64 %11 to i16 | |
%13 = udiv i16 %12, 12 | |
%14 = getelementptr %node_t_8, ptr %3, i32 0, i32 0, i32 3 | |
%15 = load i1, ptr %14 | |
%16 = icmp eq i1 %15, 0 | |
br i1 %16, label %if_1, label %end_if_1 | |
if_1: | |
%17 = icmp eq ptr %8, %7 | |
br i1 %17, label %handle_last_0, label %handle_not_last_0 | |
handle_last_0: | |
%18 = getelementptr %btree_iterator_t_8, ptr %stack.ptr_0, i32 0, i32 0 | |
%19 = load ptr, ptr %18 | |
%20 = getelementptr %btree_iterator_t_8, ptr %result_0, i32 0, i32 0 | |
store ptr %19, ptr %20 | |
%21 = getelementptr %btree_iterator_t_8, ptr %stack.ptr_0, i32 0, i32 1 | |
%22 = load i16, ptr %21 | |
%23 = getelementptr %btree_iterator_t_8, ptr %result_0, i32 0, i32 1 | |
store i16 %22, ptr %23 | |
ret void | |
handle_not_last_0: | |
call ccc void @eclair_btree_iterator_init_8(ptr %result_0, ptr %3, i16 %13) | |
ret void | |
end_if_1: | |
%24 = icmp ne ptr %8, %7 | |
%25 = call ccc i8 @eclair_btree_value_compare_values_8(ptr %8, ptr %val_0) | |
%26 = icmp eq i8 0, %25 | |
%27 = and i1 %24, %26 | |
br i1 %27, label %if_2, label %end_if_2 | |
if_2: | |
call ccc void @eclair_btree_iterator_init_8(ptr %result_0, ptr %3, i16 %13) | |
ret void | |
end_if_2: | |
br i1 %24, label %if_3, label %end_if_3 | |
if_3: | |
call ccc void @eclair_btree_iterator_init_8(ptr %stack.ptr_0, ptr %3, i16 %13) | |
br label %end_if_3 | |
end_if_3: | |
%28 = getelementptr %inner_node_t_8, ptr %3, i32 0, i32 1, i16 %13 | |
%29 = load ptr, ptr %28 | |
store ptr %29, ptr %stack.ptr_1 | |
br label %loop_0 | |
} | |
define external ccc void @eclair_btree_upper_bound_8(ptr %tree_0, ptr %val_0, ptr %result_0) { | |
start: | |
%stack.ptr_0 = alloca %btree_iterator_t_8, i32 1 | |
%stack.ptr_1 = alloca ptr | |
%0 = call ccc i1 @eclair_btree_is_empty_8(ptr %tree_0) | |
br i1 %0, label %if_0, label %end_if_0 | |
if_0: | |
call ccc void @eclair_btree_iterator_end_init_8(ptr %result_0) | |
ret void | |
end_if_0: | |
call ccc void @eclair_btree_iterator_end_init_8(ptr %stack.ptr_0) | |
%1 = getelementptr %btree_t_8, ptr %tree_0, i32 0, i32 0 | |
%2 = load ptr, ptr %1 | |
store ptr %2, ptr %stack.ptr_1 | |
br label %loop_0 | |
loop_0: | |
%3 = load ptr, ptr %stack.ptr_1 | |
%4 = getelementptr %node_t_8, ptr %3, i32 0, i32 0, i32 2 | |
%5 = load i16, ptr %4 | |
%6 = getelementptr %node_t_8, ptr %3, i32 0, i32 1, i16 0 | |
%7 = getelementptr %node_t_8, ptr %3, i32 0, i32 1, i16 %5 | |
%8 = call ccc ptr @eclair_btree_linear_search_upper_bound_8(ptr %val_0, ptr %6, ptr %7) | |
%9 = ptrtoint ptr %8 to i64 | |
%10 = ptrtoint ptr %6 to i64 | |
%11 = sub i64 %9, %10 | |
%12 = trunc i64 %11 to i16 | |
%13 = udiv i16 %12, 12 | |
%14 = getelementptr %node_t_8, ptr %3, i32 0, i32 0, i32 3 | |
%15 = load i1, ptr %14 | |
%16 = icmp eq i1 %15, 0 | |
br i1 %16, label %if_1, label %end_if_1 | |
if_1: | |
%17 = icmp eq ptr %8, %7 | |
br i1 %17, label %handle_last_0, label %handle_not_last_0 | |
handle_last_0: | |
%18 = getelementptr %btree_iterator_t_8, ptr %stack.ptr_0, i32 0, i32 0 | |
%19 = load ptr, ptr %18 | |
%20 = getelementptr %btree_iterator_t_8, ptr %result_0, i32 0, i32 0 | |
store ptr %19, ptr %20 | |
%21 = getelementptr %btree_iterator_t_8, ptr %stack.ptr_0, i32 0, i32 1 | |
%22 = load i16, ptr %21 | |
%23 = getelementptr %btree_iterator_t_8, ptr %result_0, i32 0, i32 1 | |
store i16 %22, ptr %23 | |
ret void | |
handle_not_last_0: | |
call ccc void @eclair_btree_iterator_init_8(ptr %result_0, ptr %3, i16 %13) | |
ret void | |
end_if_1: | |
%24 = icmp ne ptr %8, %7 | |
br i1 %24, label %if_2, label %end_if_2 | |
if_2: | |
call ccc void @eclair_btree_iterator_init_8(ptr %result_0, ptr %3, i16 %13) | |
br label %end_if_2 | |
end_if_2: | |
%25 = getelementptr %inner_node_t_8, ptr %3, i32 0, i32 1, i16 %13 | |
%26 = load ptr, ptr %25 | |
store ptr %26, ptr %stack.ptr_1 | |
br label %loop_0 | |
} | |
define external ccc void @eclair_btree_node_delete_8(ptr %node_0) { | |
start: | |
%0 = getelementptr %node_t_8, ptr %node_0, i32 0, i32 0, i32 3 | |
%1 = load i1, ptr %0 | |
%2 = icmp eq i1 %1, 1 | |
br i1 %2, label %if_0, label %end_if_1 | |
if_0: | |
%3 = getelementptr %node_t_8, ptr %node_0, i32 0, i32 0, i32 2 | |
%4 = load i16, ptr %3 | |
br label %for_begin_0 | |
for_begin_0: | |
%5 = phi i16 [0, %if_0], [%10, %end_if_0] | |
%6 = icmp ule i16 %5, %4 | |
br i1 %6, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%7 = getelementptr %inner_node_t_8, ptr %node_0, i32 0, i32 1, i16 %5 | |
%8 = load ptr, ptr %7 | |
%9 = icmp ne ptr %8, zeroinitializer | |
br i1 %9, label %if_1, label %end_if_0 | |
if_1: | |
call ccc void @eclair_btree_node_delete_8(ptr %8) | |
br label %end_if_0 | |
end_if_0: | |
%10 = add i16 1, %5 | |
br label %for_begin_0 | |
for_end_0: | |
br label %end_if_1 | |
end_if_1: | |
call ccc void @free(ptr %node_0) | |
ret void | |
} | |
define external ccc void @eclair_btree_clear_8(ptr %tree_0) { | |
start: | |
%0 = getelementptr %btree_t_8, ptr %tree_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = icmp ne ptr %1, zeroinitializer | |
br i1 %2, label %if_0, label %end_if_0 | |
if_0: | |
call ccc void @eclair_btree_node_delete_8(ptr %1) | |
%3 = getelementptr %btree_t_8, ptr %tree_0, i32 0, i32 0 | |
store ptr zeroinitializer, ptr %3 | |
%4 = getelementptr %btree_t_8, ptr %tree_0, i32 0, i32 1 | |
store ptr zeroinitializer, ptr %4 | |
br label %end_if_0 | |
end_if_0: | |
ret void | |
} | |
define external ccc void @eclair_btree_swap_8(ptr %lhs_0, ptr %rhs_0) { | |
start: | |
%0 = getelementptr %btree_t_8, ptr %lhs_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = getelementptr %btree_t_8, ptr %rhs_0, i32 0, i32 0 | |
%3 = load ptr, ptr %2 | |
%4 = getelementptr %btree_t_8, ptr %lhs_0, i32 0, i32 0 | |
store ptr %3, ptr %4 | |
%5 = getelementptr %btree_t_8, ptr %rhs_0, i32 0, i32 0 | |
store ptr %1, ptr %5 | |
%6 = getelementptr %btree_t_8, ptr %lhs_0, i32 0, i32 1 | |
%7 = load ptr, ptr %6 | |
%8 = getelementptr %btree_t_8, ptr %rhs_0, i32 0, i32 1 | |
%9 = load ptr, ptr %8 | |
%10 = getelementptr %btree_t_8, ptr %lhs_0, i32 0, i32 1 | |
store ptr %9, ptr %10 | |
%11 = getelementptr %btree_t_8, ptr %rhs_0, i32 0, i32 1 | |
store ptr %7, ptr %11 | |
ret void | |
} | |
@specialize_debug_info.btree__1__0__256__linear = global i32 6 | |
@specialize_debug_info.btree__2__0_1__256__linear = global i32 1 | |
@specialize_debug_info.btree__2__1__256__linear = global i32 2 | |
@specialize_debug_info.btree__2__1_0__256__linear = global i32 7 | |
@specialize_debug_info.btree__3__0_1_2__256__linear = global i32 0 | |
@specialize_debug_info.btree__3__2__256__linear = global i32 8 | |
@specialize_debug_info.btree__4__0_1_2_3__256__linear = global i32 4 | |
@specialize_debug_info.btree__4__1__256__linear = global i32 5 | |
@specialize_debug_info.btree__4__2_3_0_1__256__linear = global i32 3 | |
%symbol_t = type <{i32, ptr}> | |
define external ccc void @eclair_symbol_init(ptr %symbol_0, i32 %size_0, ptr %data_0) { | |
start: | |
%0 = getelementptr %symbol_t, ptr %symbol_0, i32 0, i32 0 | |
store i32 %size_0, ptr %0 | |
%1 = getelementptr %symbol_t, ptr %symbol_0, i32 0, i32 1 | |
store ptr %data_0, ptr %1 | |
ret void | |
} | |
define external ccc void @eclair_symbol_destroy(ptr %symbol_0) { | |
start: | |
%0 = getelementptr %symbol_t, ptr %symbol_0, i32 0, i32 1 | |
%1 = load ptr, ptr %0 | |
call ccc void @free(ptr %1) | |
ret void | |
} | |
define external ccc i1 @eclair_symbol_is_equal(ptr %symbol1_0, ptr %symbol2_0) { | |
start: | |
%0 = getelementptr %symbol_t, ptr %symbol1_0, i32 0, i32 0 | |
%1 = load i32, ptr %0 | |
%2 = getelementptr %symbol_t, ptr %symbol2_0, i32 0, i32 0 | |
%3 = load i32, ptr %2 | |
%4 = icmp ne i32 %1, %3 | |
br i1 %4, label %if_0, label %end_if_0 | |
if_0: | |
ret i1 0 | |
end_if_0: | |
%5 = getelementptr %symbol_t, ptr %symbol1_0, i32 0, i32 1 | |
%6 = load ptr, ptr %5 | |
%7 = getelementptr %symbol_t, ptr %symbol2_0, i32 0, i32 1 | |
%8 = load ptr, ptr %7 | |
%9 = zext i32 %1 to i64 | |
%10 = call ccc i32 @memcmp(ptr %6, ptr %8, i64 %9) | |
%11 = icmp eq i32 %10, 0 | |
ret i1 %11 | |
} | |
%vector_t_symbol = type {ptr, ptr, i32} | |
define external ccc void @eclair_vector_init_symbol(ptr %vec_0) { | |
start: | |
%0 = call ccc ptr @malloc(i32 192) | |
%1 = getelementptr %vector_t_symbol, ptr %vec_0, i32 0, i32 0 | |
store ptr %0, ptr %1 | |
%2 = getelementptr %vector_t_symbol, ptr %vec_0, i32 0, i32 1 | |
store ptr %0, ptr %2 | |
%3 = getelementptr %vector_t_symbol, ptr %vec_0, i32 0, i32 2 | |
store i32 16, ptr %3 | |
ret void | |
} | |
define external ccc void @eclair_vector_destroy_symbol(ptr %vec_0) { | |
start: | |
%stack.ptr_0 = alloca ptr | |
%0 = getelementptr %vector_t_symbol, ptr %vec_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
store ptr %1, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_begin_0: | |
%2 = load ptr, ptr %stack.ptr_0 | |
%3 = getelementptr %vector_t_symbol, ptr %vec_0, i32 0, i32 1 | |
%4 = load ptr, ptr %3 | |
%5 = icmp ne ptr %2, %4 | |
br i1 %5, label %while_body_0, label %while_end_0 | |
while_body_0: | |
%6 = load ptr, ptr %stack.ptr_0 | |
call ccc void @eclair_symbol_destroy(ptr %6) | |
%7 = getelementptr %symbol_t, ptr %6, i32 1 | |
store ptr %7, ptr %stack.ptr_0 | |
br label %while_begin_0 | |
while_end_0: | |
%8 = getelementptr %vector_t_symbol, ptr %vec_0, i32 0, i32 0 | |
%9 = load ptr, ptr %8 | |
call ccc void @free(ptr %9) | |
ret void | |
} | |
define external ccc i32 @eclair_vector_size_symbol(ptr %vec_0) { | |
start: | |
%0 = getelementptr %vector_t_symbol, ptr %vec_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = getelementptr %vector_t_symbol, ptr %vec_0, i32 0, i32 1 | |
%3 = load ptr, ptr %2 | |
%4 = ptrtoint ptr %3 to i64 | |
%5 = ptrtoint ptr %1 to i64 | |
%6 = sub i64 %4, %5 | |
%7 = trunc i64 %6 to i32 | |
%8 = udiv i32 %7, 12 | |
ret i32 %8 | |
} | |
define external ccc void @eclair_vector_grow_symbol(ptr %vec_0) { | |
start: | |
%0 = getelementptr %vector_t_symbol, ptr %vec_0, i32 0, i32 2 | |
%1 = load i32, ptr %0 | |
%2 = mul i32 %1, 12 | |
%3 = zext i32 %2 to i64 | |
%4 = mul i32 %1, 2 | |
%5 = mul i32 %4, 12 | |
%6 = call ccc ptr @malloc(i32 %5) | |
%7 = getelementptr %symbol_t, ptr %6, i32 %1 | |
%8 = getelementptr %vector_t_symbol, ptr %vec_0, i32 0, i32 0 | |
%9 = load ptr, ptr %8 | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %6, ptr %9, i64 %3, i1 0) | |
call ccc void @free(ptr %9) | |
%10 = getelementptr %vector_t_symbol, ptr %vec_0, i32 0, i32 0 | |
store ptr %6, ptr %10 | |
%11 = getelementptr %vector_t_symbol, ptr %vec_0, i32 0, i32 1 | |
store ptr %7, ptr %11 | |
%12 = getelementptr %vector_t_symbol, ptr %vec_0, i32 0, i32 2 | |
store i32 %4, ptr %12 | |
ret void | |
} | |
define external ccc i32 @eclair_vector_push_symbol(ptr %vec_0, ptr %elem_0) { | |
start: | |
%0 = call ccc i32 @eclair_vector_size_symbol(ptr %vec_0) | |
%1 = getelementptr %vector_t_symbol, ptr %vec_0, i32 0, i32 2 | |
%2 = load i32, ptr %1 | |
%3 = icmp eq i32 %0, %2 | |
br i1 %3, label %if_0, label %end_if_0 | |
if_0: | |
call ccc void @eclair_vector_grow_symbol(ptr %vec_0) | |
br label %end_if_0 | |
end_if_0: | |
%4 = getelementptr %vector_t_symbol, ptr %vec_0, i32 0, i32 1 | |
%5 = load ptr, ptr %4 | |
%6 = load %symbol_t, ptr %elem_0 | |
store %symbol_t %6, ptr %5 | |
%7 = getelementptr %vector_t_symbol, ptr %vec_0, i32 0, i32 1 | |
%8 = load ptr, ptr %7 | |
%9 = getelementptr %symbol_t, ptr %8, i32 1 | |
store ptr %9, ptr %7 | |
ret i32 %0 | |
} | |
define external ccc ptr @eclair_vector_get_value_symbol(ptr %vec_0, i32 %idx_0) { | |
start: | |
%0 = getelementptr %vector_t_symbol, ptr %vec_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = getelementptr %symbol_t, ptr %1, i32 %idx_0 | |
ret ptr %2 | |
} | |
%entry_t = type {%symbol_t, i32} | |
%vector_t_entry = type {ptr, ptr, i32} | |
define external ccc void @eclair_vector_init_entry(ptr %vec_0) { | |
start: | |
%0 = call ccc ptr @malloc(i32 256) | |
%1 = getelementptr %vector_t_entry, ptr %vec_0, i32 0, i32 0 | |
store ptr %0, ptr %1 | |
%2 = getelementptr %vector_t_entry, ptr %vec_0, i32 0, i32 1 | |
store ptr %0, ptr %2 | |
%3 = getelementptr %vector_t_entry, ptr %vec_0, i32 0, i32 2 | |
store i32 16, ptr %3 | |
ret void | |
} | |
define external ccc void @eclair_vector_destroy_entry(ptr %vec_0) { | |
start: | |
%0 = getelementptr %vector_t_entry, ptr %vec_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
call ccc void @free(ptr %1) | |
ret void | |
} | |
define external ccc i32 @eclair_vector_size_entry(ptr %vec_0) { | |
start: | |
%0 = getelementptr %vector_t_entry, ptr %vec_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = getelementptr %vector_t_entry, ptr %vec_0, i32 0, i32 1 | |
%3 = load ptr, ptr %2 | |
%4 = ptrtoint ptr %3 to i64 | |
%5 = ptrtoint ptr %1 to i64 | |
%6 = sub i64 %4, %5 | |
%7 = trunc i64 %6 to i32 | |
%8 = udiv i32 %7, 16 | |
ret i32 %8 | |
} | |
define external ccc void @eclair_vector_grow_entry(ptr %vec_0) { | |
start: | |
%0 = getelementptr %vector_t_entry, ptr %vec_0, i32 0, i32 2 | |
%1 = load i32, ptr %0 | |
%2 = mul i32 %1, 16 | |
%3 = zext i32 %2 to i64 | |
%4 = mul i32 %1, 2 | |
%5 = mul i32 %4, 16 | |
%6 = call ccc ptr @malloc(i32 %5) | |
%7 = getelementptr %entry_t, ptr %6, i32 %1 | |
%8 = getelementptr %vector_t_entry, ptr %vec_0, i32 0, i32 0 | |
%9 = load ptr, ptr %8 | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %6, ptr %9, i64 %3, i1 0) | |
call ccc void @free(ptr %9) | |
%10 = getelementptr %vector_t_entry, ptr %vec_0, i32 0, i32 0 | |
store ptr %6, ptr %10 | |
%11 = getelementptr %vector_t_entry, ptr %vec_0, i32 0, i32 1 | |
store ptr %7, ptr %11 | |
%12 = getelementptr %vector_t_entry, ptr %vec_0, i32 0, i32 2 | |
store i32 %4, ptr %12 | |
ret void | |
} | |
define external ccc i32 @eclair_vector_push_entry(ptr %vec_0, ptr %elem_0) { | |
start: | |
%0 = call ccc i32 @eclair_vector_size_entry(ptr %vec_0) | |
%1 = getelementptr %vector_t_entry, ptr %vec_0, i32 0, i32 2 | |
%2 = load i32, ptr %1 | |
%3 = icmp eq i32 %0, %2 | |
br i1 %3, label %if_0, label %end_if_0 | |
if_0: | |
call ccc void @eclair_vector_grow_entry(ptr %vec_0) | |
br label %end_if_0 | |
end_if_0: | |
%4 = getelementptr %vector_t_entry, ptr %vec_0, i32 0, i32 1 | |
%5 = load ptr, ptr %4 | |
%6 = load %entry_t, ptr %elem_0 | |
store %entry_t %6, ptr %5 | |
%7 = getelementptr %vector_t_entry, ptr %vec_0, i32 0, i32 1 | |
%8 = load ptr, ptr %7 | |
%9 = getelementptr %entry_t, ptr %8, i32 1 | |
store ptr %9, ptr %7 | |
ret i32 %0 | |
} | |
define external ccc ptr @eclair_vector_get_value_entry(ptr %vec_0, i32 %idx_0) { | |
start: | |
%0 = getelementptr %vector_t_entry, ptr %vec_0, i32 0, i32 0 | |
%1 = load ptr, ptr %0 | |
%2 = getelementptr %entry_t, ptr %1, i32 %idx_0 | |
ret ptr %2 | |
} | |
%hashmap_t = type {[64 x %vector_t_entry]} | |
define external ccc i32 @eclair_symbol_hash(ptr %symbol_0) { | |
start: | |
%stack.ptr_0 = alloca i32 | |
store i32 0, ptr %stack.ptr_0 | |
%0 = getelementptr %symbol_t, ptr %symbol_0, i32 0, i32 0 | |
%1 = load i32, ptr %0 | |
%2 = getelementptr %symbol_t, ptr %symbol_0, i32 0, i32 1 | |
%3 = load ptr, ptr %2 | |
br label %for_begin_0 | |
for_begin_0: | |
%4 = phi i32 [0, %start], [%12, %for_body_0] | |
%5 = icmp ult i32 %4, %1 | |
br i1 %5, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%6 = getelementptr i8, ptr %3, i32 %4 | |
%7 = load i8, ptr %6 | |
%8 = zext i8 %7 to i32 | |
%9 = load i32, ptr %stack.ptr_0 | |
%10 = mul i32 31, %9 | |
%11 = add i32 %8, %10 | |
store i32 %11, ptr %stack.ptr_0 | |
%12 = add i32 1, %4 | |
br label %for_begin_0 | |
for_end_0: | |
%13 = load i32, ptr %stack.ptr_0 | |
%14 = and i32 %13, 63 | |
ret i32 %14 | |
} | |
define external ccc void @eclair_hashmap_init(ptr %hashmap_0) { | |
start: | |
br label %for_begin_0 | |
for_begin_0: | |
%0 = phi i32 [0, %start], [%3, %for_body_0] | |
%1 = icmp ult i32 %0, 64 | |
br i1 %1, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%2 = getelementptr %hashmap_t, ptr %hashmap_0, i32 0, i32 0, i32 %0 | |
call ccc void @eclair_vector_init_entry(ptr %2) | |
%3 = add i32 1, %0 | |
br label %for_begin_0 | |
for_end_0: | |
ret void | |
} | |
define external ccc void @eclair_hashmap_destroy(ptr %hashmap_0) { | |
start: | |
br label %for_begin_0 | |
for_begin_0: | |
%0 = phi i32 [0, %start], [%3, %for_body_0] | |
%1 = icmp ult i32 %0, 64 | |
br i1 %1, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%2 = getelementptr %hashmap_t, ptr %hashmap_0, i32 0, i32 0, i32 %0 | |
call ccc void @eclair_vector_destroy_entry(ptr %2) | |
%3 = add i32 1, %0 | |
br label %for_begin_0 | |
for_end_0: | |
ret void | |
} | |
define external ccc i32 @eclair_hashmap_get_or_put_value(ptr %hashmap_0, ptr %symbol_0, i32 %value_0) { | |
start: | |
%stack.ptr_0 = alloca %entry_t | |
%0 = call ccc i32 @eclair_symbol_hash(ptr %symbol_0) | |
%1 = and i32 %0, 63 | |
%2 = getelementptr %hashmap_t, ptr %hashmap_0, i32 0, i32 0, i32 %1 | |
%3 = call ccc i32 @eclair_vector_size_entry(ptr %2) | |
br label %for_begin_0 | |
for_begin_0: | |
%4 = phi i32 [0, %start], [%11, %end_if_0] | |
%5 = icmp ult i32 %4, %3 | |
br i1 %5, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%6 = call ccc ptr @eclair_vector_get_value_entry(ptr %2, i32 %4) | |
%7 = getelementptr %entry_t, ptr %6, i32 0, i32 0 | |
%8 = call ccc i1 @eclair_symbol_is_equal(ptr %7, ptr %symbol_0) | |
br i1 %8, label %if_0, label %end_if_0 | |
if_0: | |
%9 = getelementptr %entry_t, ptr %6, i32 0, i32 1 | |
%10 = load i32, ptr %9 | |
ret i32 %10 | |
end_if_0: | |
%11 = add i32 1, %4 | |
br label %for_begin_0 | |
for_end_0: | |
%12 = load %symbol_t, ptr %symbol_0 | |
%13 = getelementptr %entry_t, ptr %stack.ptr_0, i32 0, i32 0 | |
store %symbol_t %12, ptr %13 | |
%14 = getelementptr %entry_t, ptr %stack.ptr_0, i32 0, i32 1 | |
store i32 %value_0, ptr %14 | |
%15 = call ccc i32 @eclair_vector_push_entry(ptr %2, ptr %stack.ptr_0) | |
ret i32 %value_0 | |
} | |
define external ccc i32 @eclair_hashmap_lookup(ptr %hashmap_0, ptr %symbol_0) { | |
start: | |
%0 = call ccc i32 @eclair_symbol_hash(ptr %symbol_0) | |
%1 = and i32 %0, 63 | |
%2 = getelementptr %hashmap_t, ptr %hashmap_0, i32 0, i32 0, i32 %1 | |
%3 = call ccc i32 @eclair_vector_size_entry(ptr %2) | |
br label %for_begin_0 | |
for_begin_0: | |
%4 = phi i32 [0, %start], [%11, %end_if_0] | |
%5 = icmp ult i32 %4, %3 | |
br i1 %5, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%6 = call ccc ptr @eclair_vector_get_value_entry(ptr %2, i32 %4) | |
%7 = getelementptr %entry_t, ptr %6, i32 0, i32 0 | |
%8 = call ccc i1 @eclair_symbol_is_equal(ptr %7, ptr %symbol_0) | |
br i1 %8, label %if_0, label %end_if_0 | |
if_0: | |
%9 = getelementptr %entry_t, ptr %6, i32 0, i32 1 | |
%10 = load i32, ptr %9 | |
ret i32 %10 | |
end_if_0: | |
%11 = add i32 1, %4 | |
br label %for_begin_0 | |
for_end_0: | |
ret i32 4294967295 | |
} | |
define external ccc i1 @eclair_hashmap_contains(ptr %hashmap_0, ptr %symbol_0) { | |
start: | |
%0 = call ccc i32 @eclair_symbol_hash(ptr %symbol_0) | |
%1 = and i32 %0, 63 | |
%2 = getelementptr %hashmap_t, ptr %hashmap_0, i32 0, i32 0, i32 %1 | |
%3 = call ccc i32 @eclair_vector_size_entry(ptr %2) | |
br label %for_begin_0 | |
for_begin_0: | |
%4 = phi i32 [0, %start], [%9, %end_if_0] | |
%5 = icmp ult i32 %4, %3 | |
br i1 %5, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%6 = call ccc ptr @eclair_vector_get_value_entry(ptr %2, i32 %4) | |
%7 = getelementptr %entry_t, ptr %6, i32 0, i32 0 | |
%8 = call ccc i1 @eclair_symbol_is_equal(ptr %7, ptr %symbol_0) | |
br i1 %8, label %if_0, label %end_if_0 | |
if_0: | |
ret i1 1 | |
end_if_0: | |
%9 = add i32 1, %4 | |
br label %for_begin_0 | |
for_end_0: | |
ret i1 0 | |
} | |
%symbol_table = type {%vector_t_symbol, %hashmap_t} | |
define external ccc void @eclair_symbol_table_init(ptr %table_0) { | |
start: | |
%0 = getelementptr %symbol_table, ptr %table_0, i32 0, i32 0 | |
%1 = getelementptr %symbol_table, ptr %table_0, i32 0, i32 1 | |
call ccc void @eclair_vector_init_symbol(ptr %0) | |
call ccc void @eclair_hashmap_init(ptr %1) | |
ret void | |
} | |
define external ccc void @eclair_symbol_table_destroy(ptr %table_0) { | |
start: | |
%0 = getelementptr %symbol_table, ptr %table_0, i32 0, i32 0 | |
%1 = getelementptr %symbol_table, ptr %table_0, i32 0, i32 1 | |
call ccc void @eclair_vector_destroy_symbol(ptr %0) | |
call ccc void @eclair_hashmap_destroy(ptr %1) | |
ret void | |
} | |
define external ccc i32 @eclair_symbol_table_find_or_insert(ptr %table_0, ptr %symbol_0) { | |
start: | |
%0 = getelementptr %symbol_table, ptr %table_0, i32 0, i32 0 | |
%1 = getelementptr %symbol_table, ptr %table_0, i32 0, i32 1 | |
%2 = call ccc i32 @eclair_vector_size_symbol(ptr %0) | |
%3 = call ccc i32 @eclair_hashmap_get_or_put_value(ptr %1, ptr %symbol_0, i32 %2) | |
%4 = icmp eq i32 %2, %3 | |
br i1 %4, label %if_0, label %end_if_0 | |
if_0: | |
%5 = call ccc i32 @eclair_vector_push_symbol(ptr %0, ptr %symbol_0) | |
br label %end_if_0 | |
end_if_0: | |
ret i32 %3 | |
} | |
define external ccc i1 @eclair_symbol_table_contains_index(ptr %table_0, i32 %index_0) { | |
start: | |
%0 = getelementptr %symbol_table, ptr %table_0, i32 0, i32 0 | |
%1 = call ccc i32 @eclair_vector_size_symbol(ptr %0) | |
%2 = icmp ult i32 %index_0, %1 | |
ret i1 %2 | |
} | |
define external ccc i1 @eclair_symbol_table_contains_symbol(ptr %table_0, ptr %symbol_0) { | |
start: | |
%0 = getelementptr %symbol_table, ptr %table_0, i32 0, i32 1 | |
%1 = call ccc i1 @eclair_hashmap_contains(ptr %0, ptr %symbol_0) | |
ret i1 %1 | |
} | |
define external ccc i32 @eclair_symbol_table_lookup_index(ptr %table_0, ptr %symbol_0) { | |
start: | |
%0 = getelementptr %symbol_table, ptr %table_0, i32 0, i32 1 | |
%1 = call ccc i32 @eclair_hashmap_lookup(ptr %0, ptr %symbol_0) | |
ret i32 %1 | |
} | |
define external ccc ptr @eclair_symbol_table_lookup_symbol(ptr %table_0, i32 %index_0) { | |
start: | |
%0 = getelementptr %symbol_table, ptr %table_0, i32 0, i32 0 | |
%1 = call ccc ptr @eclair_vector_get_value_symbol(ptr %0, i32 %index_0) | |
ret ptr %1 | |
} | |
%program = type {%symbol_table, %btree_t_0, %btree_t_0, %btree_t_1, %btree_t_2, %btree_t_0, %btree_t_3, %btree_t_0, %btree_t_0, %btree_t_4, %btree_t_5, %btree_t_6, %btree_t_6, %btree_t_1, %btree_t_1, %btree_t_2, %btree_t_6, %btree_t_1, %btree_t_6, %btree_t_0, %btree_t_1, %btree_t_6, %btree_t_1, %btree_t_1, %btree_t_7, %btree_t_0, %btree_t_0, %btree_t_1, %btree_t_1, %btree_t_6, %btree_t_6, %btree_t_6, %btree_t_6, %btree_t_6, %btree_t_1, %btree_t_1, %btree_t_1, %btree_t_6, %btree_t_6, %btree_t_1, %btree_t_1, %btree_t_6, %btree_t_1, %btree_t_6, %btree_t_0, %btree_t_1, %btree_t_6, %btree_t_6, %btree_t_0, %btree_t_1, %btree_t_1, %btree_t_2, %btree_t_0, %btree_t_0, %btree_t_8, %btree_t_0, %btree_t_1, %btree_t_2, %btree_t_6, %btree_t_1, %btree_t_2, %btree_t_6, %btree_t_1, %btree_t_0, %btree_t_0, %btree_t_0, %btree_t_1, %btree_t_2, %btree_t_6, %btree_t_1, %btree_t_1, %btree_t_0, %btree_t_0, %btree_t_0} | |
@string_literal_0 = global [11 x i8] [i8 108, i8 105, i8 116, i8 95, i8 110, i8 117, i8 109, i8 98, i8 101, i8 114, i8 0] | |
@string_literal_1 = global [11 x i8] [i8 108, i8 105, i8 116, i8 95, i8 115, i8 116, i8 114, i8 105, i8 110, i8 103, i8 0] | |
@string_literal_2 = global [9 x i8] [i8 118, i8 97, i8 114, i8 105, i8 97, i8 98, i8 108, i8 101, i8 0] | |
@string_literal_3 = global [11 x i8] [i8 99, i8 111, i8 110, i8 115, i8 116, i8 114, i8 97, i8 105, i8 110, i8 116, i8 0] | |
@string_literal_4 = global [6 x i8] [i8 98, i8 105, i8 110, i8 111, i8 112, i8 0] | |
@string_literal_5 = global [5 x i8] [i8 97, i8 116, i8 111, i8 109, i8 0] | |
@string_literal_6 = global [9 x i8] [i8 97, i8 116, i8 111, i8 109, i8 95, i8 97, i8 114, i8 103, i8 0] | |
@string_literal_7 = global [5 x i8] [i8 114, i8 117, i8 108, i8 101, i8 0] | |
@string_literal_8 = global [9 x i8] [i8 114, i8 117, i8 108, i8 101, i8 95, i8 97, i8 114, i8 103, i8 0] | |
@string_literal_9 = global [12 x i8] [i8 114, i8 117, i8 108, i8 101, i8 95, i8 99, i8 108, i8 97, i8 117, i8 115, i8 101, i8 0] | |
@string_literal_10 = global [9 x i8] [i8 110, i8 101, i8 103, i8 97, i8 116, i8 105, i8 111, i8 110, i8 0] | |
@string_literal_11 = global [15 x i8] [i8 105, i8 110, i8 112, i8 117, i8 116, i8 95, i8 114, i8 101, i8 108, i8 97, i8 116, i8 105, i8 111, i8 110, i8 0] | |
@string_literal_12 = global [16 x i8] [i8 111, i8 117, i8 116, i8 112, i8 117, i8 116, i8 95, i8 114, i8 101, i8 108, i8 97, i8 116, i8 105, i8 111, i8 110, i8 0] | |
@string_literal_13 = global [18 x i8] [i8 105, i8 110, i8 116, i8 101, i8 114, i8 110, i8 97, i8 108, i8 95, i8 114, i8 101, i8 108, i8 97, i8 116, i8 105, i8 111, i8 110, i8 0] | |
@string_literal_14 = global [18 x i8] [i8 101, i8 120, i8 116, i8 101, i8 114, i8 110, i8 95, i8 100, i8 101, i8 102, i8 105, i8 110, i8 105, i8 116, i8 105, i8 111, i8 110, i8 0] | |
@string_literal_15 = global [13 x i8] [i8 100, i8 101, i8 99, i8 108, i8 97, i8 114, i8 101, i8 95, i8 116, i8 121, i8 112, i8 101, i8 0] | |
@string_literal_16 = global [19 x i8] [i8 109, i8 111, i8 100, i8 117, i8 108, i8 101, i8 95, i8 100, i8 101, i8 99, i8 108, i8 97, i8 114, i8 97, i8 116, i8 105, i8 111, i8 110, i8 0] | |
@string_literal_17 = global [13 x i8] [i8 115, i8 99, i8 111, i8 112, i8 101, i8 100, i8 95, i8 118, i8 97, i8 108, i8 117, i8 101, i8 0] | |
@string_literal_18 = global [14 x i8] [i8 114, i8 101, i8 108, i8 97, i8 116, i8 105, i8 111, i8 110, i8 95, i8 97, i8 116, i8 111, i8 109, i8 0] | |
@string_literal_19 = global [12 x i8] [i8 101, i8 120, i8 116, i8 101, i8 114, i8 110, i8 95, i8 97, i8 116, i8 111, i8 109, i8 0] | |
@string_literal_20 = global [14 x i8] [i8 103, i8 114, i8 111, i8 117, i8 110, i8 100, i8 101, i8 100, i8 95, i8 110, i8 111, i8 100, i8 101, i8 0] | |
@string_literal_21 = global [7 x i8] [i8 97, i8 115, i8 115, i8 105, i8 103, i8 110, i8 0] | |
@string_literal_22 = global [14 x i8] [i8 105, i8 110, i8 101, i8 113, i8 117, i8 97, i8 108, i8 105, i8 116, i8 121, i8 95, i8 111, i8 112, i8 0] | |
@string_literal_23 = global [20 x i8] [i8 104, i8 97, i8 115, i8 95, i8 111, i8 117, i8 116, i8 112, i8 117, i8 116, i8 95, i8 114, i8 101, i8 108, i8 97, i8 116, i8 105, i8 111, i8 110, i8 0] | |
@string_literal_24 = global [22 x i8] [i8 108, i8 105, i8 116, i8 101, i8 114, i8 97, i8 108, i8 95, i8 99, i8 111, i8 110, i8 116, i8 114, i8 97, i8 100, i8 105, i8 99, i8 116, i8 105, i8 111, i8 110, i8 0] | |
@string_literal_25 = global [9 x i8] [i8 119, i8 105, i8 108, i8 100, i8 99, i8 97, i8 114, i8 100, i8 0] | |
@string_literal_26 = global [14 x i8] [i8 114, i8 117, i8 108, i8 101, i8 95, i8 104, i8 101, i8 97, i8 100, i8 95, i8 118, i8 97, i8 114, i8 0] | |
@string_literal_27 = global [6 x i8] [i8 97, i8 108, i8 105, i8 97, i8 115, i8 0] | |
@string_literal_28 = global [10 x i8] [i8 112, i8 111, i8 105, i8 110, i8 116, i8 115, i8 95, i8 116, i8 111, i8 0] | |
@string_literal_29 = global [11 x i8] [i8 100, i8 101, i8 112, i8 101, i8 110, i8 100, i8 115, i8 95, i8 111, i8 110, i8 0] | |
@string_literal_30 = global [22 x i8] [i8 116, i8 114, i8 97, i8 110, i8 115, i8 105, i8 116, i8 105, i8 118, i8 101, i8 95, i8 100, i8 101, i8 112, i8 101, i8 110, i8 100, i8 115, i8 95, i8 111, i8 110, i8 0] | |
@string_literal_31 = global [7 x i8] [i8 115, i8 111, i8 117, i8 114, i8 99, i8 101, i8 0] | |
@string_literal_32 = global [16 x i8] [i8 104, i8 97, i8 115, i8 95, i8 100, i8 101, i8 102, i8 105, i8 110, i8 105, i8 116, i8 105, i8 111, i8 110, i8 115, i8 0] | |
@string_literal_33 = global [10 x i8] [i8 108, i8 105, i8 118, i8 101, i8 95, i8 114, i8 117, i8 108, i8 101, i8 0] | |
@string_literal_34 = global [17 x i8] [i8 100, i8 101, i8 112, i8 101, i8 110, i8 100, i8 101, i8 110, i8 99, i8 121, i8 95, i8 99, i8 121, i8 99, i8 108, i8 101, i8 0] | |
@string_literal_35 = global [11 x i8] [i8 114, i8 117, i8 108, i8 101, i8 95, i8 115, i8 99, i8 111, i8 112, i8 101, i8 0] | |
@string_literal_36 = global [21 x i8] [i8 99, i8 111, i8 110, i8 115, i8 116, i8 114, i8 97, i8 105, i8 110, i8 101, i8 100, i8 95, i8 114, i8 117, i8 108, i8 101, i8 95, i8 118, i8 97, i8 114, i8 0] | |
@string_literal_37 = global [18 x i8] [i8 103, i8 114, i8 111, i8 117, i8 110, i8 100, i8 101, i8 100, i8 95, i8 118, i8 97, i8 114, i8 105, i8 97, i8 98, i8 108, i8 101, i8 0] | |
@string_literal_38 = global [20 x i8] [i8 117, i8 110, i8 103, i8 114, i8 111, i8 117, i8 110, i8 100, i8 101, i8 100, i8 95, i8 118, i8 97, i8 114, i8 105, i8 97, i8 98, i8 108, i8 101, i8 0] | |
@string_literal_39 = global [25 x i8] [i8 117, i8 110, i8 103, i8 114, i8 111, i8 117, i8 110, i8 100, i8 101, i8 100, i8 95, i8 101, i8 120, i8 116, i8 101, i8 114, i8 110, i8 97, i8 108, i8 95, i8 97, i8 116, i8 111, i8 109, i8 0] | |
@string_literal_40 = global [17 x i8] [i8 119, i8 105, i8 108, i8 100, i8 99, i8 97, i8 114, i8 100, i8 95, i8 105, i8 110, i8 95, i8 102, i8 97, i8 99, i8 116, i8 0] | |
@string_literal_41 = global [19 x i8] [i8 119, i8 105, i8 108, i8 100, i8 99, i8 97, i8 114, i8 100, i8 95, i8 105, i8 110, i8 95, i8 101, i8 120, i8 116, i8 101, i8 114, i8 110, i8 0] | |
@string_literal_42 = global [22 x i8] [i8 119, i8 105, i8 108, i8 100, i8 99, i8 97, i8 114, i8 100, i8 95, i8 105, i8 110, i8 95, i8 114, i8 117, i8 108, i8 101, i8 95, i8 104, i8 101, i8 97, i8 100, i8 0] | |
@string_literal_43 = global [23 x i8] [i8 119, i8 105, i8 108, i8 100, i8 99, i8 97, i8 114, i8 100, i8 95, i8 105, i8 110, i8 95, i8 99, i8 111, i8 110, i8 115, i8 116, i8 114, i8 97, i8 105, i8 110, i8 116, i8 0] | |
@string_literal_44 = global [18 x i8] [i8 119, i8 105, i8 108, i8 100, i8 99, i8 97, i8 114, i8 100, i8 95, i8 105, i8 110, i8 95, i8 98, i8 105, i8 110, i8 111, i8 112, i8 0] | |
@string_literal_45 = global [23 x i8] [i8 117, i8 110, i8 99, i8 111, i8 110, i8 115, i8 116, i8 114, i8 97, i8 105, i8 110, i8 101, i8 100, i8 95, i8 114, i8 117, i8 108, i8 101, i8 95, i8 118, i8 97, i8 114, i8 0] | |
@string_literal_46 = global [24 x i8] [i8 114, i8 117, i8 108, i8 101, i8 95, i8 119, i8 105, i8 116, i8 104, i8 95, i8 99, i8 111, i8 110, i8 116, i8 114, i8 97, i8 100, i8 105, i8 99, i8 116, i8 105, i8 111, i8 110, i8 0] | |
@string_literal_47 = global [10 x i8] [i8 100, i8 101, i8 97, i8 100, i8 95, i8 99, i8 111, i8 100, i8 101, i8 0] | |
@string_literal_48 = global [19 x i8] [i8 110, i8 111, i8 95, i8 111, i8 117, i8 116, i8 112, i8 117, i8 116, i8 95, i8 114, i8 101, i8 108, i8 97, i8 116, i8 105, i8 111, i8 110, i8 0] | |
@string_literal_49 = global [23 x i8] [i8 100, i8 101, i8 97, i8 100, i8 95, i8 105, i8 110, i8 116, i8 101, i8 114, i8 110, i8 97, i8 108, i8 95, i8 114, i8 101, i8 108, i8 97, i8 116, i8 105, i8 111, i8 110, i8 0] | |
@string_literal_50 = global [24 x i8] [i8 99, i8 111, i8 110, i8 102, i8 108, i8 105, i8 99, i8 116, i8 105, i8 110, i8 103, i8 95, i8 100, i8 101, i8 102, i8 105, i8 110, i8 105, i8 116, i8 105, i8 111, i8 110, i8 115, i8 0] | |
@string_literal_51 = global [20 x i8] [i8 101, i8 120, i8 116, i8 101, i8 114, i8 110, i8 95, i8 117, i8 115, i8 101, i8 100, i8 95, i8 97, i8 115, i8 95, i8 102, i8 97, i8 99, i8 116, i8 0] | |
@string_literal_52 = global [20 x i8] [i8 101, i8 120, i8 116, i8 101, i8 114, i8 110, i8 95, i8 117, i8 115, i8 101, i8 100, i8 95, i8 97, i8 115, i8 95, i8 114, i8 117, i8 108, i8 101, i8 0] | |
@string_literal_53 = global [16 x i8] [i8 99, i8 121, i8 99, i8 108, i8 105, i8 99, i8 95, i8 110, i8 101, i8 103, i8 97, i8 116, i8 105, i8 111, i8 110, i8 0] | |
@string_literal_54 = global [2 x i8] [i8 95, i8 0] | |
@string_literal_55 = global [3 x i8] [i8 33, i8 61, i8 0] | |
@string_literal_56 = global [2 x i8] [i8 60, i8 0] | |
@string_literal_57 = global [3 x i8] [i8 60, i8 61, i8 0] | |
@string_literal_58 = global [2 x i8] [i8 62, i8 0] | |
@string_literal_59 = global [3 x i8] [i8 62, i8 61, i8 0] | |
@string_literal_60 = global [2 x i8] [i8 61, i8 0] | |
define external ccc ptr @eclair_program_init() "wasm-export-name"="eclair_program_init" { | |
start: | |
%stack.ptr_0 = alloca %symbol_t, i32 1 | |
%stack.ptr_1 = alloca %symbol_t, i32 1 | |
%stack.ptr_2 = alloca %symbol_t, i32 1 | |
%stack.ptr_3 = alloca %symbol_t, i32 1 | |
%stack.ptr_4 = alloca %symbol_t, i32 1 | |
%stack.ptr_5 = alloca %symbol_t, i32 1 | |
%stack.ptr_6 = alloca %symbol_t, i32 1 | |
%stack.ptr_7 = alloca %symbol_t, i32 1 | |
%stack.ptr_8 = alloca %symbol_t, i32 1 | |
%stack.ptr_9 = alloca %symbol_t, i32 1 | |
%stack.ptr_10 = alloca %symbol_t, i32 1 | |
%stack.ptr_11 = alloca %symbol_t, i32 1 | |
%stack.ptr_12 = alloca %symbol_t, i32 1 | |
%stack.ptr_13 = alloca %symbol_t, i32 1 | |
%stack.ptr_14 = alloca %symbol_t, i32 1 | |
%stack.ptr_15 = alloca %symbol_t, i32 1 | |
%stack.ptr_16 = alloca %symbol_t, i32 1 | |
%stack.ptr_17 = alloca %symbol_t, i32 1 | |
%stack.ptr_18 = alloca %symbol_t, i32 1 | |
%stack.ptr_19 = alloca %symbol_t, i32 1 | |
%stack.ptr_20 = alloca %symbol_t, i32 1 | |
%stack.ptr_21 = alloca %symbol_t, i32 1 | |
%stack.ptr_22 = alloca %symbol_t, i32 1 | |
%stack.ptr_23 = alloca %symbol_t, i32 1 | |
%stack.ptr_24 = alloca %symbol_t, i32 1 | |
%stack.ptr_25 = alloca %symbol_t, i32 1 | |
%stack.ptr_26 = alloca %symbol_t, i32 1 | |
%stack.ptr_27 = alloca %symbol_t, i32 1 | |
%stack.ptr_28 = alloca %symbol_t, i32 1 | |
%stack.ptr_29 = alloca %symbol_t, i32 1 | |
%stack.ptr_30 = alloca %symbol_t, i32 1 | |
%stack.ptr_31 = alloca %symbol_t, i32 1 | |
%stack.ptr_32 = alloca %symbol_t, i32 1 | |
%stack.ptr_33 = alloca %symbol_t, i32 1 | |
%stack.ptr_34 = alloca %symbol_t, i32 1 | |
%stack.ptr_35 = alloca %symbol_t, i32 1 | |
%stack.ptr_36 = alloca %symbol_t, i32 1 | |
%stack.ptr_37 = alloca %symbol_t, i32 1 | |
%stack.ptr_38 = alloca %symbol_t, i32 1 | |
%stack.ptr_39 = alloca %symbol_t, i32 1 | |
%stack.ptr_40 = alloca %symbol_t, i32 1 | |
%stack.ptr_41 = alloca %symbol_t, i32 1 | |
%stack.ptr_42 = alloca %symbol_t, i32 1 | |
%stack.ptr_43 = alloca %symbol_t, i32 1 | |
%stack.ptr_44 = alloca %symbol_t, i32 1 | |
%stack.ptr_45 = alloca %symbol_t, i32 1 | |
%stack.ptr_46 = alloca %symbol_t, i32 1 | |
%stack.ptr_47 = alloca %symbol_t, i32 1 | |
%stack.ptr_48 = alloca %symbol_t, i32 1 | |
%stack.ptr_49 = alloca %symbol_t, i32 1 | |
%stack.ptr_50 = alloca %symbol_t, i32 1 | |
%stack.ptr_51 = alloca %symbol_t, i32 1 | |
%stack.ptr_52 = alloca %symbol_t, i32 1 | |
%stack.ptr_53 = alloca %symbol_t, i32 1 | |
%stack.ptr_54 = alloca %symbol_t, i32 1 | |
%stack.ptr_55 = alloca %symbol_t, i32 1 | |
%stack.ptr_56 = alloca %symbol_t, i32 1 | |
%stack.ptr_57 = alloca %symbol_t, i32 1 | |
%stack.ptr_58 = alloca %symbol_t, i32 1 | |
%stack.ptr_59 = alloca %symbol_t, i32 1 | |
%stack.ptr_60 = alloca %symbol_t, i32 1 | |
%0 = call ccc ptr @malloc(i32 2728) | |
%1 = getelementptr %program, ptr %0, i32 0, i32 0 | |
call ccc void @eclair_symbol_table_init(ptr %1) | |
%2 = getelementptr %program, ptr %0, i32 0, i32 1 | |
call ccc void @eclair_btree_init_empty_0(ptr %2) | |
%3 = getelementptr %program, ptr %0, i32 0, i32 2 | |
call ccc void @eclair_btree_init_empty_0(ptr %3) | |
%4 = getelementptr %program, ptr %0, i32 0, i32 3 | |
call ccc void @eclair_btree_init_empty_1(ptr %4) | |
%5 = getelementptr %program, ptr %0, i32 0, i32 4 | |
call ccc void @eclair_btree_init_empty_2(ptr %5) | |
%6 = getelementptr %program, ptr %0, i32 0, i32 5 | |
call ccc void @eclair_btree_init_empty_0(ptr %6) | |
%7 = getelementptr %program, ptr %0, i32 0, i32 6 | |
call ccc void @eclair_btree_init_empty_3(ptr %7) | |
%8 = getelementptr %program, ptr %0, i32 0, i32 7 | |
call ccc void @eclair_btree_init_empty_0(ptr %8) | |
%9 = getelementptr %program, ptr %0, i32 0, i32 8 | |
call ccc void @eclair_btree_init_empty_0(ptr %9) | |
%10 = getelementptr %program, ptr %0, i32 0, i32 9 | |
call ccc void @eclair_btree_init_empty_4(ptr %10) | |
%11 = getelementptr %program, ptr %0, i32 0, i32 10 | |
call ccc void @eclair_btree_init_empty_5(ptr %11) | |
%12 = getelementptr %program, ptr %0, i32 0, i32 11 | |
call ccc void @eclair_btree_init_empty_6(ptr %12) | |
%13 = getelementptr %program, ptr %0, i32 0, i32 12 | |
call ccc void @eclair_btree_init_empty_6(ptr %13) | |
%14 = getelementptr %program, ptr %0, i32 0, i32 13 | |
call ccc void @eclair_btree_init_empty_1(ptr %14) | |
%15 = getelementptr %program, ptr %0, i32 0, i32 14 | |
call ccc void @eclair_btree_init_empty_1(ptr %15) | |
%16 = getelementptr %program, ptr %0, i32 0, i32 15 | |
call ccc void @eclair_btree_init_empty_2(ptr %16) | |
%17 = getelementptr %program, ptr %0, i32 0, i32 16 | |
call ccc void @eclair_btree_init_empty_6(ptr %17) | |
%18 = getelementptr %program, ptr %0, i32 0, i32 17 | |
call ccc void @eclair_btree_init_empty_1(ptr %18) | |
%19 = getelementptr %program, ptr %0, i32 0, i32 18 | |
call ccc void @eclair_btree_init_empty_6(ptr %19) | |
%20 = getelementptr %program, ptr %0, i32 0, i32 19 | |
call ccc void @eclair_btree_init_empty_0(ptr %20) | |
%21 = getelementptr %program, ptr %0, i32 0, i32 20 | |
call ccc void @eclair_btree_init_empty_1(ptr %21) | |
%22 = getelementptr %program, ptr %0, i32 0, i32 21 | |
call ccc void @eclair_btree_init_empty_6(ptr %22) | |
%23 = getelementptr %program, ptr %0, i32 0, i32 22 | |
call ccc void @eclair_btree_init_empty_1(ptr %23) | |
%24 = getelementptr %program, ptr %0, i32 0, i32 23 | |
call ccc void @eclair_btree_init_empty_1(ptr %24) | |
%25 = getelementptr %program, ptr %0, i32 0, i32 24 | |
call ccc void @eclair_btree_init_empty_7(ptr %25) | |
%26 = getelementptr %program, ptr %0, i32 0, i32 25 | |
call ccc void @eclair_btree_init_empty_0(ptr %26) | |
%27 = getelementptr %program, ptr %0, i32 0, i32 26 | |
call ccc void @eclair_btree_init_empty_0(ptr %27) | |
%28 = getelementptr %program, ptr %0, i32 0, i32 27 | |
call ccc void @eclair_btree_init_empty_1(ptr %28) | |
%29 = getelementptr %program, ptr %0, i32 0, i32 28 | |
call ccc void @eclair_btree_init_empty_1(ptr %29) | |
%30 = getelementptr %program, ptr %0, i32 0, i32 29 | |
call ccc void @eclair_btree_init_empty_6(ptr %30) | |
%31 = getelementptr %program, ptr %0, i32 0, i32 30 | |
call ccc void @eclair_btree_init_empty_6(ptr %31) | |
%32 = getelementptr %program, ptr %0, i32 0, i32 31 | |
call ccc void @eclair_btree_init_empty_6(ptr %32) | |
%33 = getelementptr %program, ptr %0, i32 0, i32 32 | |
call ccc void @eclair_btree_init_empty_6(ptr %33) | |
%34 = getelementptr %program, ptr %0, i32 0, i32 33 | |
call ccc void @eclair_btree_init_empty_6(ptr %34) | |
%35 = getelementptr %program, ptr %0, i32 0, i32 34 | |
call ccc void @eclair_btree_init_empty_1(ptr %35) | |
%36 = getelementptr %program, ptr %0, i32 0, i32 35 | |
call ccc void @eclair_btree_init_empty_1(ptr %36) | |
%37 = getelementptr %program, ptr %0, i32 0, i32 36 | |
call ccc void @eclair_btree_init_empty_1(ptr %37) | |
%38 = getelementptr %program, ptr %0, i32 0, i32 37 | |
call ccc void @eclair_btree_init_empty_6(ptr %38) | |
%39 = getelementptr %program, ptr %0, i32 0, i32 38 | |
call ccc void @eclair_btree_init_empty_6(ptr %39) | |
%40 = getelementptr %program, ptr %0, i32 0, i32 39 | |
call ccc void @eclair_btree_init_empty_1(ptr %40) | |
%41 = getelementptr %program, ptr %0, i32 0, i32 40 | |
call ccc void @eclair_btree_init_empty_1(ptr %41) | |
%42 = getelementptr %program, ptr %0, i32 0, i32 41 | |
call ccc void @eclair_btree_init_empty_6(ptr %42) | |
%43 = getelementptr %program, ptr %0, i32 0, i32 42 | |
call ccc void @eclair_btree_init_empty_1(ptr %43) | |
%44 = getelementptr %program, ptr %0, i32 0, i32 43 | |
call ccc void @eclair_btree_init_empty_6(ptr %44) | |
%45 = getelementptr %program, ptr %0, i32 0, i32 44 | |
call ccc void @eclair_btree_init_empty_0(ptr %45) | |
%46 = getelementptr %program, ptr %0, i32 0, i32 45 | |
call ccc void @eclair_btree_init_empty_1(ptr %46) | |
%47 = getelementptr %program, ptr %0, i32 0, i32 46 | |
call ccc void @eclair_btree_init_empty_6(ptr %47) | |
%48 = getelementptr %program, ptr %0, i32 0, i32 47 | |
call ccc void @eclair_btree_init_empty_6(ptr %48) | |
%49 = getelementptr %program, ptr %0, i32 0, i32 48 | |
call ccc void @eclair_btree_init_empty_0(ptr %49) | |
%50 = getelementptr %program, ptr %0, i32 0, i32 49 | |
call ccc void @eclair_btree_init_empty_1(ptr %50) | |
%51 = getelementptr %program, ptr %0, i32 0, i32 50 | |
call ccc void @eclair_btree_init_empty_1(ptr %51) | |
%52 = getelementptr %program, ptr %0, i32 0, i32 51 | |
call ccc void @eclair_btree_init_empty_2(ptr %52) | |
%53 = getelementptr %program, ptr %0, i32 0, i32 52 | |
call ccc void @eclair_btree_init_empty_0(ptr %53) | |
%54 = getelementptr %program, ptr %0, i32 0, i32 53 | |
call ccc void @eclair_btree_init_empty_0(ptr %54) | |
%55 = getelementptr %program, ptr %0, i32 0, i32 54 | |
call ccc void @eclair_btree_init_empty_8(ptr %55) | |
%56 = getelementptr %program, ptr %0, i32 0, i32 55 | |
call ccc void @eclair_btree_init_empty_0(ptr %56) | |
%57 = getelementptr %program, ptr %0, i32 0, i32 56 | |
call ccc void @eclair_btree_init_empty_1(ptr %57) | |
%58 = getelementptr %program, ptr %0, i32 0, i32 57 | |
call ccc void @eclair_btree_init_empty_2(ptr %58) | |
%59 = getelementptr %program, ptr %0, i32 0, i32 58 | |
call ccc void @eclair_btree_init_empty_6(ptr %59) | |
%60 = getelementptr %program, ptr %0, i32 0, i32 59 | |
call ccc void @eclair_btree_init_empty_1(ptr %60) | |
%61 = getelementptr %program, ptr %0, i32 0, i32 60 | |
call ccc void @eclair_btree_init_empty_2(ptr %61) | |
%62 = getelementptr %program, ptr %0, i32 0, i32 61 | |
call ccc void @eclair_btree_init_empty_6(ptr %62) | |
%63 = getelementptr %program, ptr %0, i32 0, i32 62 | |
call ccc void @eclair_btree_init_empty_1(ptr %63) | |
%64 = getelementptr %program, ptr %0, i32 0, i32 63 | |
call ccc void @eclair_btree_init_empty_0(ptr %64) | |
%65 = getelementptr %program, ptr %0, i32 0, i32 64 | |
call ccc void @eclair_btree_init_empty_0(ptr %65) | |
%66 = getelementptr %program, ptr %0, i32 0, i32 65 | |
call ccc void @eclair_btree_init_empty_0(ptr %66) | |
%67 = getelementptr %program, ptr %0, i32 0, i32 66 | |
call ccc void @eclair_btree_init_empty_1(ptr %67) | |
%68 = getelementptr %program, ptr %0, i32 0, i32 67 | |
call ccc void @eclair_btree_init_empty_2(ptr %68) | |
%69 = getelementptr %program, ptr %0, i32 0, i32 68 | |
call ccc void @eclair_btree_init_empty_6(ptr %69) | |
%70 = getelementptr %program, ptr %0, i32 0, i32 69 | |
call ccc void @eclair_btree_init_empty_1(ptr %70) | |
%71 = getelementptr %program, ptr %0, i32 0, i32 70 | |
call ccc void @eclair_btree_init_empty_1(ptr %71) | |
%72 = getelementptr %program, ptr %0, i32 0, i32 71 | |
call ccc void @eclair_btree_init_empty_0(ptr %72) | |
%73 = getelementptr %program, ptr %0, i32 0, i32 72 | |
call ccc void @eclair_btree_init_empty_0(ptr %73) | |
%74 = getelementptr %program, ptr %0, i32 0, i32 73 | |
call ccc void @eclair_btree_init_empty_0(ptr %74) | |
%75 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%76 = getelementptr inbounds [11 x i8], ptr @string_literal_0, i32 0, i32 0 | |
%77 = zext i32 10 to i64 | |
%78 = call ccc ptr @malloc(i32 10) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %78, ptr %76, i64 %77, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_0, i32 10, ptr %78) | |
%79 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %75, ptr %stack.ptr_0) | |
%80 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%81 = getelementptr inbounds [11 x i8], ptr @string_literal_1, i32 0, i32 0 | |
%82 = zext i32 10 to i64 | |
%83 = call ccc ptr @malloc(i32 10) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %83, ptr %81, i64 %82, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_1, i32 10, ptr %83) | |
%84 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %80, ptr %stack.ptr_1) | |
%85 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%86 = getelementptr inbounds [9 x i8], ptr @string_literal_2, i32 0, i32 0 | |
%87 = zext i32 8 to i64 | |
%88 = call ccc ptr @malloc(i32 8) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %88, ptr %86, i64 %87, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_2, i32 8, ptr %88) | |
%89 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %85, ptr %stack.ptr_2) | |
%90 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%91 = getelementptr inbounds [11 x i8], ptr @string_literal_3, i32 0, i32 0 | |
%92 = zext i32 10 to i64 | |
%93 = call ccc ptr @malloc(i32 10) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %93, ptr %91, i64 %92, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_3, i32 10, ptr %93) | |
%94 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %90, ptr %stack.ptr_3) | |
%95 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%96 = getelementptr inbounds [6 x i8], ptr @string_literal_4, i32 0, i32 0 | |
%97 = zext i32 5 to i64 | |
%98 = call ccc ptr @malloc(i32 5) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %98, ptr %96, i64 %97, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_4, i32 5, ptr %98) | |
%99 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %95, ptr %stack.ptr_4) | |
%100 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%101 = getelementptr inbounds [5 x i8], ptr @string_literal_5, i32 0, i32 0 | |
%102 = zext i32 4 to i64 | |
%103 = call ccc ptr @malloc(i32 4) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %103, ptr %101, i64 %102, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_5, i32 4, ptr %103) | |
%104 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %100, ptr %stack.ptr_5) | |
%105 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%106 = getelementptr inbounds [9 x i8], ptr @string_literal_6, i32 0, i32 0 | |
%107 = zext i32 8 to i64 | |
%108 = call ccc ptr @malloc(i32 8) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %108, ptr %106, i64 %107, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_6, i32 8, ptr %108) | |
%109 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %105, ptr %stack.ptr_6) | |
%110 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%111 = getelementptr inbounds [5 x i8], ptr @string_literal_7, i32 0, i32 0 | |
%112 = zext i32 4 to i64 | |
%113 = call ccc ptr @malloc(i32 4) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %113, ptr %111, i64 %112, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_7, i32 4, ptr %113) | |
%114 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %110, ptr %stack.ptr_7) | |
%115 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%116 = getelementptr inbounds [9 x i8], ptr @string_literal_8, i32 0, i32 0 | |
%117 = zext i32 8 to i64 | |
%118 = call ccc ptr @malloc(i32 8) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %118, ptr %116, i64 %117, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_8, i32 8, ptr %118) | |
%119 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %115, ptr %stack.ptr_8) | |
%120 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%121 = getelementptr inbounds [12 x i8], ptr @string_literal_9, i32 0, i32 0 | |
%122 = zext i32 11 to i64 | |
%123 = call ccc ptr @malloc(i32 11) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %123, ptr %121, i64 %122, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_9, i32 11, ptr %123) | |
%124 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %120, ptr %stack.ptr_9) | |
%125 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%126 = getelementptr inbounds [9 x i8], ptr @string_literal_10, i32 0, i32 0 | |
%127 = zext i32 8 to i64 | |
%128 = call ccc ptr @malloc(i32 8) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %128, ptr %126, i64 %127, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_10, i32 8, ptr %128) | |
%129 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %125, ptr %stack.ptr_10) | |
%130 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%131 = getelementptr inbounds [15 x i8], ptr @string_literal_11, i32 0, i32 0 | |
%132 = zext i32 14 to i64 | |
%133 = call ccc ptr @malloc(i32 14) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %133, ptr %131, i64 %132, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_11, i32 14, ptr %133) | |
%134 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %130, ptr %stack.ptr_11) | |
%135 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%136 = getelementptr inbounds [16 x i8], ptr @string_literal_12, i32 0, i32 0 | |
%137 = zext i32 15 to i64 | |
%138 = call ccc ptr @malloc(i32 15) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %138, ptr %136, i64 %137, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_12, i32 15, ptr %138) | |
%139 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %135, ptr %stack.ptr_12) | |
%140 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%141 = getelementptr inbounds [18 x i8], ptr @string_literal_13, i32 0, i32 0 | |
%142 = zext i32 17 to i64 | |
%143 = call ccc ptr @malloc(i32 17) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %143, ptr %141, i64 %142, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_13, i32 17, ptr %143) | |
%144 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %140, ptr %stack.ptr_13) | |
%145 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%146 = getelementptr inbounds [18 x i8], ptr @string_literal_14, i32 0, i32 0 | |
%147 = zext i32 17 to i64 | |
%148 = call ccc ptr @malloc(i32 17) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %148, ptr %146, i64 %147, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_14, i32 17, ptr %148) | |
%149 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %145, ptr %stack.ptr_14) | |
%150 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%151 = getelementptr inbounds [13 x i8], ptr @string_literal_15, i32 0, i32 0 | |
%152 = zext i32 12 to i64 | |
%153 = call ccc ptr @malloc(i32 12) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %153, ptr %151, i64 %152, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_15, i32 12, ptr %153) | |
%154 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %150, ptr %stack.ptr_15) | |
%155 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%156 = getelementptr inbounds [19 x i8], ptr @string_literal_16, i32 0, i32 0 | |
%157 = zext i32 18 to i64 | |
%158 = call ccc ptr @malloc(i32 18) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %158, ptr %156, i64 %157, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_16, i32 18, ptr %158) | |
%159 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %155, ptr %stack.ptr_16) | |
%160 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%161 = getelementptr inbounds [13 x i8], ptr @string_literal_17, i32 0, i32 0 | |
%162 = zext i32 12 to i64 | |
%163 = call ccc ptr @malloc(i32 12) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %163, ptr %161, i64 %162, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_17, i32 12, ptr %163) | |
%164 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %160, ptr %stack.ptr_17) | |
%165 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%166 = getelementptr inbounds [14 x i8], ptr @string_literal_18, i32 0, i32 0 | |
%167 = zext i32 13 to i64 | |
%168 = call ccc ptr @malloc(i32 13) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %168, ptr %166, i64 %167, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_18, i32 13, ptr %168) | |
%169 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %165, ptr %stack.ptr_18) | |
%170 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%171 = getelementptr inbounds [12 x i8], ptr @string_literal_19, i32 0, i32 0 | |
%172 = zext i32 11 to i64 | |
%173 = call ccc ptr @malloc(i32 11) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %173, ptr %171, i64 %172, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_19, i32 11, ptr %173) | |
%174 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %170, ptr %stack.ptr_19) | |
%175 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%176 = getelementptr inbounds [14 x i8], ptr @string_literal_20, i32 0, i32 0 | |
%177 = zext i32 13 to i64 | |
%178 = call ccc ptr @malloc(i32 13) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %178, ptr %176, i64 %177, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_20, i32 13, ptr %178) | |
%179 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %175, ptr %stack.ptr_20) | |
%180 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%181 = getelementptr inbounds [7 x i8], ptr @string_literal_21, i32 0, i32 0 | |
%182 = zext i32 6 to i64 | |
%183 = call ccc ptr @malloc(i32 6) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %183, ptr %181, i64 %182, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_21, i32 6, ptr %183) | |
%184 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %180, ptr %stack.ptr_21) | |
%185 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%186 = getelementptr inbounds [14 x i8], ptr @string_literal_22, i32 0, i32 0 | |
%187 = zext i32 13 to i64 | |
%188 = call ccc ptr @malloc(i32 13) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %188, ptr %186, i64 %187, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_22, i32 13, ptr %188) | |
%189 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %185, ptr %stack.ptr_22) | |
%190 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%191 = getelementptr inbounds [20 x i8], ptr @string_literal_23, i32 0, i32 0 | |
%192 = zext i32 19 to i64 | |
%193 = call ccc ptr @malloc(i32 19) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %193, ptr %191, i64 %192, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_23, i32 19, ptr %193) | |
%194 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %190, ptr %stack.ptr_23) | |
%195 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%196 = getelementptr inbounds [22 x i8], ptr @string_literal_24, i32 0, i32 0 | |
%197 = zext i32 21 to i64 | |
%198 = call ccc ptr @malloc(i32 21) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %198, ptr %196, i64 %197, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_24, i32 21, ptr %198) | |
%199 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %195, ptr %stack.ptr_24) | |
%200 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%201 = getelementptr inbounds [9 x i8], ptr @string_literal_25, i32 0, i32 0 | |
%202 = zext i32 8 to i64 | |
%203 = call ccc ptr @malloc(i32 8) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %203, ptr %201, i64 %202, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_25, i32 8, ptr %203) | |
%204 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %200, ptr %stack.ptr_25) | |
%205 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%206 = getelementptr inbounds [14 x i8], ptr @string_literal_26, i32 0, i32 0 | |
%207 = zext i32 13 to i64 | |
%208 = call ccc ptr @malloc(i32 13) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %208, ptr %206, i64 %207, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_26, i32 13, ptr %208) | |
%209 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %205, ptr %stack.ptr_26) | |
%210 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%211 = getelementptr inbounds [6 x i8], ptr @string_literal_27, i32 0, i32 0 | |
%212 = zext i32 5 to i64 | |
%213 = call ccc ptr @malloc(i32 5) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %213, ptr %211, i64 %212, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_27, i32 5, ptr %213) | |
%214 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %210, ptr %stack.ptr_27) | |
%215 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%216 = getelementptr inbounds [10 x i8], ptr @string_literal_28, i32 0, i32 0 | |
%217 = zext i32 9 to i64 | |
%218 = call ccc ptr @malloc(i32 9) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %218, ptr %216, i64 %217, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_28, i32 9, ptr %218) | |
%219 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %215, ptr %stack.ptr_28) | |
%220 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%221 = getelementptr inbounds [11 x i8], ptr @string_literal_29, i32 0, i32 0 | |
%222 = zext i32 10 to i64 | |
%223 = call ccc ptr @malloc(i32 10) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %223, ptr %221, i64 %222, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_29, i32 10, ptr %223) | |
%224 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %220, ptr %stack.ptr_29) | |
%225 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%226 = getelementptr inbounds [22 x i8], ptr @string_literal_30, i32 0, i32 0 | |
%227 = zext i32 21 to i64 | |
%228 = call ccc ptr @malloc(i32 21) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %228, ptr %226, i64 %227, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_30, i32 21, ptr %228) | |
%229 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %225, ptr %stack.ptr_30) | |
%230 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%231 = getelementptr inbounds [7 x i8], ptr @string_literal_31, i32 0, i32 0 | |
%232 = zext i32 6 to i64 | |
%233 = call ccc ptr @malloc(i32 6) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %233, ptr %231, i64 %232, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_31, i32 6, ptr %233) | |
%234 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %230, ptr %stack.ptr_31) | |
%235 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%236 = getelementptr inbounds [16 x i8], ptr @string_literal_32, i32 0, i32 0 | |
%237 = zext i32 15 to i64 | |
%238 = call ccc ptr @malloc(i32 15) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %238, ptr %236, i64 %237, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_32, i32 15, ptr %238) | |
%239 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %235, ptr %stack.ptr_32) | |
%240 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%241 = getelementptr inbounds [10 x i8], ptr @string_literal_33, i32 0, i32 0 | |
%242 = zext i32 9 to i64 | |
%243 = call ccc ptr @malloc(i32 9) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %243, ptr %241, i64 %242, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_33, i32 9, ptr %243) | |
%244 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %240, ptr %stack.ptr_33) | |
%245 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%246 = getelementptr inbounds [17 x i8], ptr @string_literal_34, i32 0, i32 0 | |
%247 = zext i32 16 to i64 | |
%248 = call ccc ptr @malloc(i32 16) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %248, ptr %246, i64 %247, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_34, i32 16, ptr %248) | |
%249 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %245, ptr %stack.ptr_34) | |
%250 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%251 = getelementptr inbounds [11 x i8], ptr @string_literal_35, i32 0, i32 0 | |
%252 = zext i32 10 to i64 | |
%253 = call ccc ptr @malloc(i32 10) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %253, ptr %251, i64 %252, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_35, i32 10, ptr %253) | |
%254 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %250, ptr %stack.ptr_35) | |
%255 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%256 = getelementptr inbounds [21 x i8], ptr @string_literal_36, i32 0, i32 0 | |
%257 = zext i32 20 to i64 | |
%258 = call ccc ptr @malloc(i32 20) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %258, ptr %256, i64 %257, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_36, i32 20, ptr %258) | |
%259 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %255, ptr %stack.ptr_36) | |
%260 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%261 = getelementptr inbounds [18 x i8], ptr @string_literal_37, i32 0, i32 0 | |
%262 = zext i32 17 to i64 | |
%263 = call ccc ptr @malloc(i32 17) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %263, ptr %261, i64 %262, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_37, i32 17, ptr %263) | |
%264 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %260, ptr %stack.ptr_37) | |
%265 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%266 = getelementptr inbounds [20 x i8], ptr @string_literal_38, i32 0, i32 0 | |
%267 = zext i32 19 to i64 | |
%268 = call ccc ptr @malloc(i32 19) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %268, ptr %266, i64 %267, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_38, i32 19, ptr %268) | |
%269 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %265, ptr %stack.ptr_38) | |
%270 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%271 = getelementptr inbounds [25 x i8], ptr @string_literal_39, i32 0, i32 0 | |
%272 = zext i32 24 to i64 | |
%273 = call ccc ptr @malloc(i32 24) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %273, ptr %271, i64 %272, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_39, i32 24, ptr %273) | |
%274 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %270, ptr %stack.ptr_39) | |
%275 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%276 = getelementptr inbounds [17 x i8], ptr @string_literal_40, i32 0, i32 0 | |
%277 = zext i32 16 to i64 | |
%278 = call ccc ptr @malloc(i32 16) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %278, ptr %276, i64 %277, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_40, i32 16, ptr %278) | |
%279 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %275, ptr %stack.ptr_40) | |
%280 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%281 = getelementptr inbounds [19 x i8], ptr @string_literal_41, i32 0, i32 0 | |
%282 = zext i32 18 to i64 | |
%283 = call ccc ptr @malloc(i32 18) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %283, ptr %281, i64 %282, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_41, i32 18, ptr %283) | |
%284 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %280, ptr %stack.ptr_41) | |
%285 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%286 = getelementptr inbounds [22 x i8], ptr @string_literal_42, i32 0, i32 0 | |
%287 = zext i32 21 to i64 | |
%288 = call ccc ptr @malloc(i32 21) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %288, ptr %286, i64 %287, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_42, i32 21, ptr %288) | |
%289 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %285, ptr %stack.ptr_42) | |
%290 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%291 = getelementptr inbounds [23 x i8], ptr @string_literal_43, i32 0, i32 0 | |
%292 = zext i32 22 to i64 | |
%293 = call ccc ptr @malloc(i32 22) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %293, ptr %291, i64 %292, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_43, i32 22, ptr %293) | |
%294 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %290, ptr %stack.ptr_43) | |
%295 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%296 = getelementptr inbounds [18 x i8], ptr @string_literal_44, i32 0, i32 0 | |
%297 = zext i32 17 to i64 | |
%298 = call ccc ptr @malloc(i32 17) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %298, ptr %296, i64 %297, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_44, i32 17, ptr %298) | |
%299 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %295, ptr %stack.ptr_44) | |
%300 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%301 = getelementptr inbounds [23 x i8], ptr @string_literal_45, i32 0, i32 0 | |
%302 = zext i32 22 to i64 | |
%303 = call ccc ptr @malloc(i32 22) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %303, ptr %301, i64 %302, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_45, i32 22, ptr %303) | |
%304 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %300, ptr %stack.ptr_45) | |
%305 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%306 = getelementptr inbounds [24 x i8], ptr @string_literal_46, i32 0, i32 0 | |
%307 = zext i32 23 to i64 | |
%308 = call ccc ptr @malloc(i32 23) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %308, ptr %306, i64 %307, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_46, i32 23, ptr %308) | |
%309 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %305, ptr %stack.ptr_46) | |
%310 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%311 = getelementptr inbounds [10 x i8], ptr @string_literal_47, i32 0, i32 0 | |
%312 = zext i32 9 to i64 | |
%313 = call ccc ptr @malloc(i32 9) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %313, ptr %311, i64 %312, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_47, i32 9, ptr %313) | |
%314 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %310, ptr %stack.ptr_47) | |
%315 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%316 = getelementptr inbounds [19 x i8], ptr @string_literal_48, i32 0, i32 0 | |
%317 = zext i32 18 to i64 | |
%318 = call ccc ptr @malloc(i32 18) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %318, ptr %316, i64 %317, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_48, i32 18, ptr %318) | |
%319 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %315, ptr %stack.ptr_48) | |
%320 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%321 = getelementptr inbounds [23 x i8], ptr @string_literal_49, i32 0, i32 0 | |
%322 = zext i32 22 to i64 | |
%323 = call ccc ptr @malloc(i32 22) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %323, ptr %321, i64 %322, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_49, i32 22, ptr %323) | |
%324 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %320, ptr %stack.ptr_49) | |
%325 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%326 = getelementptr inbounds [24 x i8], ptr @string_literal_50, i32 0, i32 0 | |
%327 = zext i32 23 to i64 | |
%328 = call ccc ptr @malloc(i32 23) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %328, ptr %326, i64 %327, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_50, i32 23, ptr %328) | |
%329 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %325, ptr %stack.ptr_50) | |
%330 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%331 = getelementptr inbounds [20 x i8], ptr @string_literal_51, i32 0, i32 0 | |
%332 = zext i32 19 to i64 | |
%333 = call ccc ptr @malloc(i32 19) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %333, ptr %331, i64 %332, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_51, i32 19, ptr %333) | |
%334 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %330, ptr %stack.ptr_51) | |
%335 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%336 = getelementptr inbounds [20 x i8], ptr @string_literal_52, i32 0, i32 0 | |
%337 = zext i32 19 to i64 | |
%338 = call ccc ptr @malloc(i32 19) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %338, ptr %336, i64 %337, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_52, i32 19, ptr %338) | |
%339 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %335, ptr %stack.ptr_52) | |
%340 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%341 = getelementptr inbounds [16 x i8], ptr @string_literal_53, i32 0, i32 0 | |
%342 = zext i32 15 to i64 | |
%343 = call ccc ptr @malloc(i32 15) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %343, ptr %341, i64 %342, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_53, i32 15, ptr %343) | |
%344 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %340, ptr %stack.ptr_53) | |
%345 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%346 = getelementptr inbounds [2 x i8], ptr @string_literal_54, i32 0, i32 0 | |
%347 = zext i32 1 to i64 | |
%348 = call ccc ptr @malloc(i32 1) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %348, ptr %346, i64 %347, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_54, i32 1, ptr %348) | |
%349 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %345, ptr %stack.ptr_54) | |
%350 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%351 = getelementptr inbounds [3 x i8], ptr @string_literal_55, i32 0, i32 0 | |
%352 = zext i32 2 to i64 | |
%353 = call ccc ptr @malloc(i32 2) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %353, ptr %351, i64 %352, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_55, i32 2, ptr %353) | |
%354 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %350, ptr %stack.ptr_55) | |
%355 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%356 = getelementptr inbounds [2 x i8], ptr @string_literal_56, i32 0, i32 0 | |
%357 = zext i32 1 to i64 | |
%358 = call ccc ptr @malloc(i32 1) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %358, ptr %356, i64 %357, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_56, i32 1, ptr %358) | |
%359 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %355, ptr %stack.ptr_56) | |
%360 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%361 = getelementptr inbounds [3 x i8], ptr @string_literal_57, i32 0, i32 0 | |
%362 = zext i32 2 to i64 | |
%363 = call ccc ptr @malloc(i32 2) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %363, ptr %361, i64 %362, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_57, i32 2, ptr %363) | |
%364 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %360, ptr %stack.ptr_57) | |
%365 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%366 = getelementptr inbounds [2 x i8], ptr @string_literal_58, i32 0, i32 0 | |
%367 = zext i32 1 to i64 | |
%368 = call ccc ptr @malloc(i32 1) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %368, ptr %366, i64 %367, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_58, i32 1, ptr %368) | |
%369 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %365, ptr %stack.ptr_58) | |
%370 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%371 = getelementptr inbounds [3 x i8], ptr @string_literal_59, i32 0, i32 0 | |
%372 = zext i32 2 to i64 | |
%373 = call ccc ptr @malloc(i32 2) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %373, ptr %371, i64 %372, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_59, i32 2, ptr %373) | |
%374 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %370, ptr %stack.ptr_59) | |
%375 = getelementptr %program, ptr %0, i32 0, i32 0 | |
%376 = getelementptr inbounds [2 x i8], ptr @string_literal_60, i32 0, i32 0 | |
%377 = zext i32 1 to i64 | |
%378 = call ccc ptr @malloc(i32 1) | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %378, ptr %376, i64 %377, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_60, i32 1, ptr %378) | |
%379 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %375, ptr %stack.ptr_60) | |
ret ptr %0 | |
} | |
define external ccc void @eclair_program_destroy(ptr %arg_0) "wasm-export-name"="eclair_program_destroy" { | |
start: | |
%0 = getelementptr %program, ptr %arg_0, i32 0, i32 0 | |
call ccc void @eclair_symbol_table_destroy(ptr %0) | |
%1 = getelementptr %program, ptr %arg_0, i32 0, i32 1 | |
call ccc void @eclair_btree_destroy_0(ptr %1) | |
%2 = getelementptr %program, ptr %arg_0, i32 0, i32 2 | |
call ccc void @eclair_btree_destroy_0(ptr %2) | |
%3 = getelementptr %program, ptr %arg_0, i32 0, i32 3 | |
call ccc void @eclair_btree_destroy_1(ptr %3) | |
%4 = getelementptr %program, ptr %arg_0, i32 0, i32 4 | |
call ccc void @eclair_btree_destroy_2(ptr %4) | |
%5 = getelementptr %program, ptr %arg_0, i32 0, i32 5 | |
call ccc void @eclair_btree_destroy_0(ptr %5) | |
%6 = getelementptr %program, ptr %arg_0, i32 0, i32 6 | |
call ccc void @eclair_btree_destroy_3(ptr %6) | |
%7 = getelementptr %program, ptr %arg_0, i32 0, i32 7 | |
call ccc void @eclair_btree_destroy_0(ptr %7) | |
%8 = getelementptr %program, ptr %arg_0, i32 0, i32 8 | |
call ccc void @eclair_btree_destroy_0(ptr %8) | |
%9 = getelementptr %program, ptr %arg_0, i32 0, i32 9 | |
call ccc void @eclair_btree_destroy_4(ptr %9) | |
%10 = getelementptr %program, ptr %arg_0, i32 0, i32 10 | |
call ccc void @eclair_btree_destroy_5(ptr %10) | |
%11 = getelementptr %program, ptr %arg_0, i32 0, i32 11 | |
call ccc void @eclair_btree_destroy_6(ptr %11) | |
%12 = getelementptr %program, ptr %arg_0, i32 0, i32 12 | |
call ccc void @eclair_btree_destroy_6(ptr %12) | |
%13 = getelementptr %program, ptr %arg_0, i32 0, i32 13 | |
call ccc void @eclair_btree_destroy_1(ptr %13) | |
%14 = getelementptr %program, ptr %arg_0, i32 0, i32 14 | |
call ccc void @eclair_btree_destroy_1(ptr %14) | |
%15 = getelementptr %program, ptr %arg_0, i32 0, i32 15 | |
call ccc void @eclair_btree_destroy_2(ptr %15) | |
%16 = getelementptr %program, ptr %arg_0, i32 0, i32 16 | |
call ccc void @eclair_btree_destroy_6(ptr %16) | |
%17 = getelementptr %program, ptr %arg_0, i32 0, i32 17 | |
call ccc void @eclair_btree_destroy_1(ptr %17) | |
%18 = getelementptr %program, ptr %arg_0, i32 0, i32 18 | |
call ccc void @eclair_btree_destroy_6(ptr %18) | |
%19 = getelementptr %program, ptr %arg_0, i32 0, i32 19 | |
call ccc void @eclair_btree_destroy_0(ptr %19) | |
%20 = getelementptr %program, ptr %arg_0, i32 0, i32 20 | |
call ccc void @eclair_btree_destroy_1(ptr %20) | |
%21 = getelementptr %program, ptr %arg_0, i32 0, i32 21 | |
call ccc void @eclair_btree_destroy_6(ptr %21) | |
%22 = getelementptr %program, ptr %arg_0, i32 0, i32 22 | |
call ccc void @eclair_btree_destroy_1(ptr %22) | |
%23 = getelementptr %program, ptr %arg_0, i32 0, i32 23 | |
call ccc void @eclair_btree_destroy_1(ptr %23) | |
%24 = getelementptr %program, ptr %arg_0, i32 0, i32 24 | |
call ccc void @eclair_btree_destroy_7(ptr %24) | |
%25 = getelementptr %program, ptr %arg_0, i32 0, i32 25 | |
call ccc void @eclair_btree_destroy_0(ptr %25) | |
%26 = getelementptr %program, ptr %arg_0, i32 0, i32 26 | |
call ccc void @eclair_btree_destroy_0(ptr %26) | |
%27 = getelementptr %program, ptr %arg_0, i32 0, i32 27 | |
call ccc void @eclair_btree_destroy_1(ptr %27) | |
%28 = getelementptr %program, ptr %arg_0, i32 0, i32 28 | |
call ccc void @eclair_btree_destroy_1(ptr %28) | |
%29 = getelementptr %program, ptr %arg_0, i32 0, i32 29 | |
call ccc void @eclair_btree_destroy_6(ptr %29) | |
%30 = getelementptr %program, ptr %arg_0, i32 0, i32 30 | |
call ccc void @eclair_btree_destroy_6(ptr %30) | |
%31 = getelementptr %program, ptr %arg_0, i32 0, i32 31 | |
call ccc void @eclair_btree_destroy_6(ptr %31) | |
%32 = getelementptr %program, ptr %arg_0, i32 0, i32 32 | |
call ccc void @eclair_btree_destroy_6(ptr %32) | |
%33 = getelementptr %program, ptr %arg_0, i32 0, i32 33 | |
call ccc void @eclair_btree_destroy_6(ptr %33) | |
%34 = getelementptr %program, ptr %arg_0, i32 0, i32 34 | |
call ccc void @eclair_btree_destroy_1(ptr %34) | |
%35 = getelementptr %program, ptr %arg_0, i32 0, i32 35 | |
call ccc void @eclair_btree_destroy_1(ptr %35) | |
%36 = getelementptr %program, ptr %arg_0, i32 0, i32 36 | |
call ccc void @eclair_btree_destroy_1(ptr %36) | |
%37 = getelementptr %program, ptr %arg_0, i32 0, i32 37 | |
call ccc void @eclair_btree_destroy_6(ptr %37) | |
%38 = getelementptr %program, ptr %arg_0, i32 0, i32 38 | |
call ccc void @eclair_btree_destroy_6(ptr %38) | |
%39 = getelementptr %program, ptr %arg_0, i32 0, i32 39 | |
call ccc void @eclair_btree_destroy_1(ptr %39) | |
%40 = getelementptr %program, ptr %arg_0, i32 0, i32 40 | |
call ccc void @eclair_btree_destroy_1(ptr %40) | |
%41 = getelementptr %program, ptr %arg_0, i32 0, i32 41 | |
call ccc void @eclair_btree_destroy_6(ptr %41) | |
%42 = getelementptr %program, ptr %arg_0, i32 0, i32 42 | |
call ccc void @eclair_btree_destroy_1(ptr %42) | |
%43 = getelementptr %program, ptr %arg_0, i32 0, i32 43 | |
call ccc void @eclair_btree_destroy_6(ptr %43) | |
%44 = getelementptr %program, ptr %arg_0, i32 0, i32 44 | |
call ccc void @eclair_btree_destroy_0(ptr %44) | |
%45 = getelementptr %program, ptr %arg_0, i32 0, i32 45 | |
call ccc void @eclair_btree_destroy_1(ptr %45) | |
%46 = getelementptr %program, ptr %arg_0, i32 0, i32 46 | |
call ccc void @eclair_btree_destroy_6(ptr %46) | |
%47 = getelementptr %program, ptr %arg_0, i32 0, i32 47 | |
call ccc void @eclair_btree_destroy_6(ptr %47) | |
%48 = getelementptr %program, ptr %arg_0, i32 0, i32 48 | |
call ccc void @eclair_btree_destroy_0(ptr %48) | |
%49 = getelementptr %program, ptr %arg_0, i32 0, i32 49 | |
call ccc void @eclair_btree_destroy_1(ptr %49) | |
%50 = getelementptr %program, ptr %arg_0, i32 0, i32 50 | |
call ccc void @eclair_btree_destroy_1(ptr %50) | |
%51 = getelementptr %program, ptr %arg_0, i32 0, i32 51 | |
call ccc void @eclair_btree_destroy_2(ptr %51) | |
%52 = getelementptr %program, ptr %arg_0, i32 0, i32 52 | |
call ccc void @eclair_btree_destroy_0(ptr %52) | |
%53 = getelementptr %program, ptr %arg_0, i32 0, i32 53 | |
call ccc void @eclair_btree_destroy_0(ptr %53) | |
%54 = getelementptr %program, ptr %arg_0, i32 0, i32 54 | |
call ccc void @eclair_btree_destroy_8(ptr %54) | |
%55 = getelementptr %program, ptr %arg_0, i32 0, i32 55 | |
call ccc void @eclair_btree_destroy_0(ptr %55) | |
%56 = getelementptr %program, ptr %arg_0, i32 0, i32 56 | |
call ccc void @eclair_btree_destroy_1(ptr %56) | |
%57 = getelementptr %program, ptr %arg_0, i32 0, i32 57 | |
call ccc void @eclair_btree_destroy_2(ptr %57) | |
%58 = getelementptr %program, ptr %arg_0, i32 0, i32 58 | |
call ccc void @eclair_btree_destroy_6(ptr %58) | |
%59 = getelementptr %program, ptr %arg_0, i32 0, i32 59 | |
call ccc void @eclair_btree_destroy_1(ptr %59) | |
%60 = getelementptr %program, ptr %arg_0, i32 0, i32 60 | |
call ccc void @eclair_btree_destroy_2(ptr %60) | |
%61 = getelementptr %program, ptr %arg_0, i32 0, i32 61 | |
call ccc void @eclair_btree_destroy_6(ptr %61) | |
%62 = getelementptr %program, ptr %arg_0, i32 0, i32 62 | |
call ccc void @eclair_btree_destroy_1(ptr %62) | |
%63 = getelementptr %program, ptr %arg_0, i32 0, i32 63 | |
call ccc void @eclair_btree_destroy_0(ptr %63) | |
%64 = getelementptr %program, ptr %arg_0, i32 0, i32 64 | |
call ccc void @eclair_btree_destroy_0(ptr %64) | |
%65 = getelementptr %program, ptr %arg_0, i32 0, i32 65 | |
call ccc void @eclair_btree_destroy_0(ptr %65) | |
%66 = getelementptr %program, ptr %arg_0, i32 0, i32 66 | |
call ccc void @eclair_btree_destroy_1(ptr %66) | |
%67 = getelementptr %program, ptr %arg_0, i32 0, i32 67 | |
call ccc void @eclair_btree_destroy_2(ptr %67) | |
%68 = getelementptr %program, ptr %arg_0, i32 0, i32 68 | |
call ccc void @eclair_btree_destroy_6(ptr %68) | |
%69 = getelementptr %program, ptr %arg_0, i32 0, i32 69 | |
call ccc void @eclair_btree_destroy_1(ptr %69) | |
%70 = getelementptr %program, ptr %arg_0, i32 0, i32 70 | |
call ccc void @eclair_btree_destroy_1(ptr %70) | |
%71 = getelementptr %program, ptr %arg_0, i32 0, i32 71 | |
call ccc void @eclair_btree_destroy_0(ptr %71) | |
%72 = getelementptr %program, ptr %arg_0, i32 0, i32 72 | |
call ccc void @eclair_btree_destroy_0(ptr %72) | |
%73 = getelementptr %program, ptr %arg_0, i32 0, i32 73 | |
call ccc void @eclair_btree_destroy_0(ptr %73) | |
call ccc void @free(ptr %arg_0) | |
ret void | |
} | |
define external ccc void @eclair_btree_insert_range_delta_points_to_points_to(ptr %tree_0, ptr %begin_0, ptr %end_0) { | |
start: | |
br label %while_begin_0 | |
while_begin_0: | |
%0 = call ccc i1 @eclair_btree_iterator_is_equal_0(ptr %begin_0, ptr %end_0) | |
%1 = select i1 %0, i1 0, i1 1 | |
br i1 %1, label %while_body_0, label %while_end_0 | |
while_body_0: | |
%2 = call ccc ptr @eclair_btree_iterator_current_0(ptr %begin_0) | |
%3 = call ccc i1 @eclair_btree_insert_value_0(ptr %tree_0, ptr %2) | |
call ccc void @eclair_btree_iterator_next_0(ptr %begin_0) | |
br label %while_begin_0 | |
while_end_0: | |
ret void | |
} | |
define external ccc void @eclair_btree_insert_range_points_to_new_points_to(ptr %tree_0, ptr %begin_0, ptr %end_0) { | |
start: | |
br label %while_begin_0 | |
while_begin_0: | |
%0 = call ccc i1 @eclair_btree_iterator_is_equal_0(ptr %begin_0, ptr %end_0) | |
%1 = select i1 %0, i1 0, i1 1 | |
br i1 %1, label %while_body_0, label %while_end_0 | |
while_body_0: | |
%2 = call ccc ptr @eclair_btree_iterator_current_0(ptr %begin_0) | |
%3 = call ccc i1 @eclair_btree_insert_value_0(ptr %tree_0, ptr %2) | |
call ccc void @eclair_btree_iterator_next_0(ptr %begin_0) | |
br label %while_begin_0 | |
while_end_0: | |
ret void | |
} | |
define external ccc void @eclair_btree_insert_range_delta_transitive_depends_on_transitive_depends_on(ptr %tree_0, ptr %begin_0, ptr %end_0) { | |
start: | |
br label %while_begin_0 | |
while_begin_0: | |
%0 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %begin_0, ptr %end_0) | |
%1 = select i1 %0, i1 0, i1 1 | |
br i1 %1, label %while_body_0, label %while_end_0 | |
while_body_0: | |
%2 = call ccc ptr @eclair_btree_iterator_current_1(ptr %begin_0) | |
%3 = call ccc i1 @eclair_btree_insert_value_1(ptr %tree_0, ptr %2) | |
call ccc void @eclair_btree_iterator_next_1(ptr %begin_0) | |
br label %while_begin_0 | |
while_end_0: | |
ret void | |
} | |
define external ccc void @eclair_btree_insert_range_transitive_depends_on_new_transitive_depends_on(ptr %tree_0, ptr %begin_0, ptr %end_0) { | |
start: | |
br label %while_begin_0 | |
while_begin_0: | |
%0 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %begin_0, ptr %end_0) | |
%1 = select i1 %0, i1 0, i1 1 | |
br i1 %1, label %while_body_0, label %while_end_0 | |
while_body_0: | |
%2 = call ccc ptr @eclair_btree_iterator_current_1(ptr %begin_0) | |
%3 = call ccc i1 @eclair_btree_insert_value_1(ptr %tree_0, ptr %2) | |
call ccc void @eclair_btree_iterator_next_1(ptr %begin_0) | |
br label %while_begin_0 | |
while_end_0: | |
ret void | |
} | |
define external ccc void @eclair_btree_insert_range_delta_live_rule_live_rule(ptr %tree_0, ptr %begin_0, ptr %end_0) { | |
start: | |
br label %while_begin_0 | |
while_begin_0: | |
%0 = call ccc i1 @eclair_btree_iterator_is_equal_6(ptr %begin_0, ptr %end_0) | |
%1 = select i1 %0, i1 0, i1 1 | |
br i1 %1, label %while_body_0, label %while_end_0 | |
while_body_0: | |
%2 = call ccc ptr @eclair_btree_iterator_current_6(ptr %begin_0) | |
%3 = call ccc i1 @eclair_btree_insert_value_6(ptr %tree_0, ptr %2) | |
call ccc void @eclair_btree_iterator_next_6(ptr %begin_0) | |
br label %while_begin_0 | |
while_end_0: | |
ret void | |
} | |
define external ccc void @eclair_btree_insert_range_live_rule_new_live_rule(ptr %tree_0, ptr %begin_0, ptr %end_0) { | |
start: | |
br label %while_begin_0 | |
while_begin_0: | |
%0 = call ccc i1 @eclair_btree_iterator_is_equal_6(ptr %begin_0, ptr %end_0) | |
%1 = select i1 %0, i1 0, i1 1 | |
br i1 %1, label %while_body_0, label %while_end_0 | |
while_body_0: | |
%2 = call ccc ptr @eclair_btree_iterator_current_6(ptr %begin_0) | |
%3 = call ccc i1 @eclair_btree_insert_value_6(ptr %tree_0, ptr %2) | |
call ccc void @eclair_btree_iterator_next_6(ptr %begin_0) | |
br label %while_begin_0 | |
while_end_0: | |
ret void | |
} | |
define external ccc void @eclair_btree_insert_range_delta_dead_code_dead_code(ptr %tree_0, ptr %begin_0, ptr %end_0) { | |
start: | |
br label %while_begin_0 | |
while_begin_0: | |
%0 = call ccc i1 @eclair_btree_iterator_is_equal_6(ptr %begin_0, ptr %end_0) | |
%1 = select i1 %0, i1 0, i1 1 | |
br i1 %1, label %while_body_0, label %while_end_0 | |
while_body_0: | |
%2 = call ccc ptr @eclair_btree_iterator_current_6(ptr %begin_0) | |
%3 = call ccc i1 @eclair_btree_insert_value_6(ptr %tree_0, ptr %2) | |
call ccc void @eclair_btree_iterator_next_6(ptr %begin_0) | |
br label %while_begin_0 | |
while_end_0: | |
ret void | |
} | |
define external ccc void @eclair_btree_insert_range_dead_code_new_dead_code(ptr %tree_0, ptr %begin_0, ptr %end_0) { | |
start: | |
br label %while_begin_0 | |
while_begin_0: | |
%0 = call ccc i1 @eclair_btree_iterator_is_equal_6(ptr %begin_0, ptr %end_0) | |
%1 = select i1 %0, i1 0, i1 1 | |
br i1 %1, label %while_body_0, label %while_end_0 | |
while_body_0: | |
%2 = call ccc ptr @eclair_btree_iterator_current_6(ptr %begin_0) | |
%3 = call ccc i1 @eclair_btree_insert_value_6(ptr %tree_0, ptr %2) | |
call ccc void @eclair_btree_iterator_next_6(ptr %begin_0) | |
br label %while_begin_0 | |
while_end_0: | |
ret void | |
} | |
define external ccc void @eclair_btree_insert_range_delta_grounded_node_grounded_node(ptr %tree_0, ptr %begin_0, ptr %end_0) { | |
start: | |
br label %while_begin_0 | |
while_begin_0: | |
%0 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %begin_0, ptr %end_0) | |
%1 = select i1 %0, i1 0, i1 1 | |
br i1 %1, label %while_body_0, label %while_end_0 | |
while_body_0: | |
%2 = call ccc ptr @eclair_btree_iterator_current_1(ptr %begin_0) | |
%3 = call ccc i1 @eclair_btree_insert_value_1(ptr %tree_0, ptr %2) | |
call ccc void @eclair_btree_iterator_next_1(ptr %begin_0) | |
br label %while_begin_0 | |
while_end_0: | |
ret void | |
} | |
define external ccc void @eclair_btree_insert_range_grounded_node_new_grounded_node(ptr %tree_0, ptr %begin_0, ptr %end_0) { | |
start: | |
br label %while_begin_0 | |
while_begin_0: | |
%0 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %begin_0, ptr %end_0) | |
%1 = select i1 %0, i1 0, i1 1 | |
br i1 %1, label %while_body_0, label %while_end_0 | |
while_body_0: | |
%2 = call ccc ptr @eclair_btree_iterator_current_1(ptr %begin_0) | |
%3 = call ccc i1 @eclair_btree_insert_value_1(ptr %tree_0, ptr %2) | |
call ccc void @eclair_btree_iterator_next_1(ptr %begin_0) | |
br label %while_begin_0 | |
while_end_0: | |
ret void | |
} | |
define external ccc void @eclair_program_run(ptr %arg_0) "wasm-export-name"="eclair_program_run" { | |
start: | |
%stack.ptr_0 = alloca [2 x i32], i32 1 | |
%stack.ptr_1 = alloca [2 x i32], i32 1 | |
%stack.ptr_2 = alloca %btree_iterator_t_7, i32 1 | |
%stack.ptr_3 = alloca %btree_iterator_t_7, i32 1 | |
%stack.ptr_4 = alloca [2 x i32], i32 1 | |
%stack.ptr_5 = alloca [2 x i32], i32 1 | |
%stack.ptr_6 = alloca %btree_iterator_t_2, i32 1 | |
%stack.ptr_7 = alloca %btree_iterator_t_2, i32 1 | |
%stack.ptr_8 = alloca [3 x i32], i32 1 | |
%stack.ptr_9 = alloca [2 x i32], i32 1 | |
%stack.ptr_10 = alloca [2 x i32], i32 1 | |
%stack.ptr_11 = alloca %btree_iterator_t_7, i32 1 | |
%stack.ptr_12 = alloca %btree_iterator_t_7, i32 1 | |
%stack.ptr_13 = alloca [2 x i32], i32 1 | |
%stack.ptr_14 = alloca [2 x i32], i32 1 | |
%stack.ptr_15 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_16 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_17 = alloca [2 x i32], i32 1 | |
%stack.ptr_18 = alloca [2 x i32], i32 1 | |
%stack.ptr_19 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_20 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_21 = alloca [3 x i32], i32 1 | |
%stack.ptr_22 = alloca [2 x i32], i32 1 | |
%stack.ptr_23 = alloca [2 x i32], i32 1 | |
%stack.ptr_24 = alloca %btree_iterator_t_7, i32 1 | |
%stack.ptr_25 = alloca %btree_iterator_t_7, i32 1 | |
%stack.ptr_26 = alloca [2 x i32], i32 1 | |
%stack.ptr_27 = alloca [2 x i32], i32 1 | |
%stack.ptr_28 = alloca %btree_iterator_t_2, i32 1 | |
%stack.ptr_29 = alloca %btree_iterator_t_2, i32 1 | |
%stack.ptr_30 = alloca [3 x i32], i32 1 | |
%stack.ptr_31 = alloca [2 x i32], i32 1 | |
%stack.ptr_32 = alloca [2 x i32], i32 1 | |
%stack.ptr_33 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_34 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_35 = alloca [2 x i32], i32 1 | |
%stack.ptr_36 = alloca [2 x i32], i32 1 | |
%stack.ptr_37 = alloca %btree_iterator_t_7, i32 1 | |
%stack.ptr_38 = alloca %btree_iterator_t_7, i32 1 | |
%stack.ptr_39 = alloca [3 x i32], i32 1 | |
%stack.ptr_40 = alloca [2 x i32], i32 1 | |
%stack.ptr_41 = alloca [2 x i32], i32 1 | |
%stack.ptr_42 = alloca %btree_iterator_t_7, i32 1 | |
%stack.ptr_43 = alloca %btree_iterator_t_7, i32 1 | |
%stack.ptr_44 = alloca [2 x i32], i32 1 | |
%stack.ptr_45 = alloca [2 x i32], i32 1 | |
%stack.ptr_46 = alloca %btree_iterator_t_7, i32 1 | |
%stack.ptr_47 = alloca %btree_iterator_t_7, i32 1 | |
%stack.ptr_48 = alloca [3 x i32], i32 1 | |
%stack.ptr_49 = alloca [2 x i32], i32 1 | |
%stack.ptr_50 = alloca [2 x i32], i32 1 | |
%stack.ptr_51 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_52 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_53 = alloca [2 x i32], i32 1 | |
%stack.ptr_54 = alloca [2 x i32], i32 1 | |
%stack.ptr_55 = alloca %btree_iterator_t_2, i32 1 | |
%stack.ptr_56 = alloca %btree_iterator_t_2, i32 1 | |
%stack.ptr_57 = alloca [3 x i32], i32 1 | |
%stack.ptr_58 = alloca [2 x i32], i32 1 | |
%stack.ptr_59 = alloca [2 x i32], i32 1 | |
%stack.ptr_60 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_61 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_62 = alloca [2 x i32], i32 1 | |
%stack.ptr_63 = alloca [2 x i32], i32 1 | |
%stack.ptr_64 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_65 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_66 = alloca [2 x i32], i32 1 | |
%stack.ptr_67 = alloca [2 x i32], i32 1 | |
%stack.ptr_68 = alloca [2 x i32], i32 1 | |
%stack.ptr_69 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_70 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_71 = alloca [2 x i32], i32 1 | |
%stack.ptr_72 = alloca [2 x i32], i32 1 | |
%stack.ptr_73 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_74 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_75 = alloca [2 x i32], i32 1 | |
%stack.ptr_76 = alloca [3 x i32], i32 1 | |
%stack.ptr_77 = alloca [3 x i32], i32 1 | |
%stack.ptr_78 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_79 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_80 = alloca [2 x i32], i32 1 | |
%stack.ptr_81 = alloca [2 x i32], i32 1 | |
%stack.ptr_82 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_83 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_84 = alloca [3 x i32], i32 1 | |
%stack.ptr_85 = alloca [2 x i32], i32 1 | |
%stack.ptr_86 = alloca [2 x i32], i32 1 | |
%stack.ptr_87 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_88 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_89 = alloca [2 x i32], i32 1 | |
%stack.ptr_90 = alloca [2 x i32], i32 1 | |
%stack.ptr_91 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_92 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_93 = alloca [2 x i32], i32 1 | |
%stack.ptr_94 = alloca [2 x i32], i32 1 | |
%stack.ptr_95 = alloca [2 x i32], i32 1 | |
%stack.ptr_96 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_97 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_98 = alloca [2 x i32], i32 1 | |
%stack.ptr_99 = alloca [2 x i32], i32 1 | |
%stack.ptr_100 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_101 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_102 = alloca [2 x i32], i32 1 | |
%stack.ptr_103 = alloca [2 x i32], i32 1 | |
%stack.ptr_104 = alloca [2 x i32], i32 1 | |
%stack.ptr_105 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_106 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_107 = alloca [2 x i32], i32 1 | |
%stack.ptr_108 = alloca [2 x i32], i32 1 | |
%stack.ptr_109 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_110 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_111 = alloca [2 x i32], i32 1 | |
%stack.ptr_112 = alloca [2 x i32], i32 1 | |
%stack.ptr_113 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_114 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_115 = alloca [2 x i32], i32 1 | |
%stack.ptr_116 = alloca [2 x i32], i32 1 | |
%stack.ptr_117 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_118 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_119 = alloca [3 x i32], i32 1 | |
%stack.ptr_120 = alloca [4 x i32], i32 1 | |
%stack.ptr_121 = alloca [4 x i32], i32 1 | |
%stack.ptr_122 = alloca %btree_iterator_t_5, i32 1 | |
%stack.ptr_123 = alloca %btree_iterator_t_5, i32 1 | |
%stack.ptr_124 = alloca [3 x i32], i32 1 | |
%stack.ptr_125 = alloca [3 x i32], i32 1 | |
%stack.ptr_126 = alloca [3 x i32], i32 1 | |
%stack.ptr_127 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_128 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_129 = alloca [3 x i32], i32 1 | |
%stack.ptr_130 = alloca [3 x i32], i32 1 | |
%stack.ptr_131 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_132 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_133 = alloca [3 x i32], i32 1 | |
%stack.ptr_134 = alloca [3 x i32], i32 1 | |
%stack.ptr_135 = alloca [3 x i32], i32 1 | |
%stack.ptr_136 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_137 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_138 = alloca [3 x i32], i32 1 | |
%stack.ptr_139 = alloca [3 x i32], i32 1 | |
%stack.ptr_140 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_141 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_142 = alloca [3 x i32], i32 1 | |
%stack.ptr_143 = alloca [3 x i32], i32 1 | |
%stack.ptr_144 = alloca [3 x i32], i32 1 | |
%stack.ptr_145 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_146 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_147 = alloca [2 x i32], i32 1 | |
%stack.ptr_148 = alloca [2 x i32], i32 1 | |
%stack.ptr_149 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_150 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_151 = alloca [3 x i32], i32 1 | |
%stack.ptr_152 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_153 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_154 = alloca [3 x i32], i32 1 | |
%stack.ptr_155 = alloca [3 x i32], i32 1 | |
%stack.ptr_156 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_157 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_158 = alloca [2 x i32], i32 1 | |
%stack.ptr_159 = alloca [2 x i32], i32 1 | |
%stack.ptr_160 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_161 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_162 = alloca [2 x i32], i32 1 | |
%stack.ptr_163 = alloca [2 x i32], i32 1 | |
%stack.ptr_164 = alloca %btree_iterator_t_2, i32 1 | |
%stack.ptr_165 = alloca %btree_iterator_t_2, i32 1 | |
%stack.ptr_166 = alloca [3 x i32], i32 1 | |
%stack.ptr_167 = alloca [3 x i32], i32 1 | |
%stack.ptr_168 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_169 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_170 = alloca [3 x i32], i32 1 | |
%stack.ptr_171 = alloca [3 x i32], i32 1 | |
%stack.ptr_172 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_173 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_174 = alloca [3 x i32], i32 1 | |
%stack.ptr_175 = alloca [3 x i32], i32 1 | |
%stack.ptr_176 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_177 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_178 = alloca [3 x i32], i32 1 | |
%stack.ptr_179 = alloca [3 x i32], i32 1 | |
%stack.ptr_180 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_181 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_182 = alloca [2 x i32], i32 1 | |
%stack.ptr_183 = alloca [2 x i32], i32 1 | |
%stack.ptr_184 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_185 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_186 = alloca [1 x i32], i32 1 | |
%stack.ptr_187 = alloca [3 x i32], i32 1 | |
%stack.ptr_188 = alloca [3 x i32], i32 1 | |
%stack.ptr_189 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_190 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_191 = alloca [3 x i32], i32 1 | |
%stack.ptr_192 = alloca [3 x i32], i32 1 | |
%stack.ptr_193 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_194 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_195 = alloca [2 x i32], i32 1 | |
%stack.ptr_196 = alloca [2 x i32], i32 1 | |
%stack.ptr_197 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_198 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_199 = alloca [1 x i32], i32 1 | |
%stack.ptr_200 = alloca [2 x i32], i32 1 | |
%stack.ptr_201 = alloca [2 x i32], i32 1 | |
%stack.ptr_202 = alloca %btree_iterator_t_2, i32 1 | |
%stack.ptr_203 = alloca %btree_iterator_t_2, i32 1 | |
%stack.ptr_204 = alloca [1 x i32], i32 1 | |
%stack.ptr_205 = alloca [3 x i32], i32 1 | |
%stack.ptr_206 = alloca [3 x i32], i32 1 | |
%stack.ptr_207 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_208 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_209 = alloca [1 x i32], i32 1 | |
%stack.ptr_210 = alloca [1 x i32], i32 1 | |
%stack.ptr_211 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_212 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_213 = alloca [3 x i32], i32 1 | |
%stack.ptr_214 = alloca [2 x i32], i32 1 | |
%stack.ptr_215 = alloca [2 x i32], i32 1 | |
%stack.ptr_216 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_217 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_218 = alloca [3 x i32], i32 1 | |
%stack.ptr_219 = alloca [3 x i32], i32 1 | |
%stack.ptr_220 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_221 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_222 = alloca [1 x i32], i32 1 | |
%stack.ptr_223 = alloca [1 x i32], i32 1 | |
%stack.ptr_224 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_225 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_226 = alloca [3 x i32], i32 1 | |
%stack.ptr_227 = alloca [4 x i32], i32 1 | |
%stack.ptr_228 = alloca [4 x i32], i32 1 | |
%stack.ptr_229 = alloca %btree_iterator_t_4, i32 1 | |
%stack.ptr_230 = alloca %btree_iterator_t_4, i32 1 | |
%stack.ptr_231 = alloca [1 x i32], i32 1 | |
%stack.ptr_232 = alloca [1 x i32], i32 1 | |
%stack.ptr_233 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_234 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_235 = alloca [2 x i32], i32 1 | |
%stack.ptr_236 = alloca [4 x i32], i32 1 | |
%stack.ptr_237 = alloca [4 x i32], i32 1 | |
%stack.ptr_238 = alloca %btree_iterator_t_4, i32 1 | |
%stack.ptr_239 = alloca %btree_iterator_t_4, i32 1 | |
%stack.ptr_240 = alloca [1 x i32], i32 1 | |
%stack.ptr_241 = alloca [1 x i32], i32 1 | |
%stack.ptr_242 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_243 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_244 = alloca [2 x i32], i32 1 | |
%stack.ptr_245 = alloca [4 x i32], i32 1 | |
%stack.ptr_246 = alloca [4 x i32], i32 1 | |
%stack.ptr_247 = alloca %btree_iterator_t_3, i32 1 | |
%stack.ptr_248 = alloca %btree_iterator_t_3, i32 1 | |
%stack.ptr_249 = alloca [1 x i32], i32 1 | |
%stack.ptr_250 = alloca [1 x i32], i32 1 | |
%stack.ptr_251 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_252 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_253 = alloca [2 x i32], i32 1 | |
%stack.ptr_254 = alloca [4 x i32], i32 1 | |
%stack.ptr_255 = alloca [4 x i32], i32 1 | |
%stack.ptr_256 = alloca %btree_iterator_t_3, i32 1 | |
%stack.ptr_257 = alloca %btree_iterator_t_3, i32 1 | |
%stack.ptr_258 = alloca [1 x i32], i32 1 | |
%stack.ptr_259 = alloca [1 x i32], i32 1 | |
%stack.ptr_260 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_261 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_262 = alloca [2 x i32], i32 1 | |
%stack.ptr_263 = alloca [1 x i32], i32 1 | |
%stack.ptr_264 = alloca [1 x i32], i32 1 | |
%stack.ptr_265 = alloca [1 x i32], i32 1 | |
%stack.ptr_266 = alloca [1 x i32], i32 1 | |
%stack.ptr_267 = alloca [1 x i32], i32 1 | |
%stack.ptr_268 = alloca [3 x i32], i32 1 | |
%stack.ptr_269 = alloca [3 x i32], i32 1 | |
%stack.ptr_270 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_271 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_272 = alloca [2 x i32], i32 1 | |
%stack.ptr_273 = alloca [2 x i32], i32 1 | |
%stack.ptr_274 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_275 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_276 = alloca [2 x i32], i32 1 | |
%stack.ptr_277 = alloca [2 x i32], i32 1 | |
%stack.ptr_278 = alloca [2 x i32], i32 1 | |
%stack.ptr_279 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_280 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_281 = alloca [2 x i32], i32 1 | |
%stack.ptr_282 = alloca [2 x i32], i32 1 | |
%stack.ptr_283 = alloca [2 x i32], i32 1 | |
%stack.ptr_284 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_285 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_286 = alloca [2 x i32], i32 1 | |
%stack.ptr_287 = alloca [2 x i32], i32 1 | |
%stack.ptr_288 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_289 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_290 = alloca [2 x i32], i32 1 | |
%stack.ptr_291 = alloca [2 x i32], i32 1 | |
%stack.ptr_292 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_293 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_294 = alloca [2 x i32], i32 1 | |
%stack.ptr_295 = alloca [2 x i32], i32 1 | |
%stack.ptr_296 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_297 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_298 = alloca [2 x i32], i32 1 | |
%stack.ptr_299 = alloca [2 x i32], i32 1 | |
%stack.ptr_300 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_301 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_302 = alloca [2 x i32], i32 1 | |
%stack.ptr_303 = alloca [2 x i32], i32 1 | |
%stack.ptr_304 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_305 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_306 = alloca [3 x i32], i32 1 | |
%stack.ptr_307 = alloca [2 x i32], i32 1 | |
%stack.ptr_308 = alloca [2 x i32], i32 1 | |
%stack.ptr_309 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_310 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_311 = alloca [2 x i32], i32 1 | |
%stack.ptr_312 = alloca [2 x i32], i32 1 | |
%stack.ptr_313 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_314 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_315 = alloca [2 x i32], i32 1 | |
%stack.ptr_316 = alloca [2 x i32], i32 1 | |
%stack.ptr_317 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_318 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_319 = alloca [3 x i32], i32 1 | |
%stack.ptr_320 = alloca [3 x i32], i32 1 | |
%stack.ptr_321 = alloca [2 x i32], i32 1 | |
%stack.ptr_322 = alloca [2 x i32], i32 1 | |
%stack.ptr_323 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_324 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_325 = alloca [2 x i32], i32 1 | |
%stack.ptr_326 = alloca [2 x i32], i32 1 | |
%stack.ptr_327 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_328 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_329 = alloca [2 x i32], i32 1 | |
%stack.ptr_330 = alloca [2 x i32], i32 1 | |
%stack.ptr_331 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_332 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_333 = alloca [2 x i32], i32 1 | |
%stack.ptr_334 = alloca [2 x i32], i32 1 | |
%stack.ptr_335 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_336 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_337 = alloca [3 x i32], i32 1 | |
%stack.ptr_338 = alloca [2 x i32], i32 1 | |
%stack.ptr_339 = alloca [2 x i32], i32 1 | |
%stack.ptr_340 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_341 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_342 = alloca [2 x i32], i32 1 | |
%stack.ptr_343 = alloca [2 x i32], i32 1 | |
%stack.ptr_344 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_345 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_346 = alloca [1 x i32], i32 1 | |
%stack.ptr_347 = alloca [1 x i32], i32 1 | |
%stack.ptr_348 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_349 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_350 = alloca [1 x i32], i32 1 | |
%stack.ptr_351 = alloca [2 x i32], i32 1 | |
%stack.ptr_352 = alloca [2 x i32], i32 1 | |
%stack.ptr_353 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_354 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_355 = alloca [1 x i32], i32 1 | |
%stack.ptr_356 = alloca [1 x i32], i32 1 | |
%stack.ptr_357 = alloca [2 x i32], i32 1 | |
%stack.ptr_358 = alloca [2 x i32], i32 1 | |
%stack.ptr_359 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_360 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_361 = alloca [2 x i32], i32 1 | |
%stack.ptr_362 = alloca [2 x i32], i32 1 | |
%stack.ptr_363 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_364 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_365 = alloca [1 x i32], i32 1 | |
%stack.ptr_366 = alloca [2 x i32], i32 1 | |
%stack.ptr_367 = alloca [2 x i32], i32 1 | |
%stack.ptr_368 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_369 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_370 = alloca [2 x i32], i32 1 | |
%stack.ptr_371 = alloca [2 x i32], i32 1 | |
%stack.ptr_372 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_373 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_374 = alloca [1 x i32], i32 1 | |
%stack.ptr_375 = alloca [1 x i32], i32 1 | |
%stack.ptr_376 = alloca [1 x i32], i32 1 | |
%stack.ptr_377 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_378 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_379 = alloca [1 x i32], i32 1 | |
%stack.ptr_380 = alloca [2 x i32], i32 1 | |
%stack.ptr_381 = alloca [2 x i32], i32 1 | |
%stack.ptr_382 = alloca %btree_iterator_t_2, i32 1 | |
%stack.ptr_383 = alloca %btree_iterator_t_2, i32 1 | |
%stack.ptr_384 = alloca [2 x i32], i32 1 | |
%stack.ptr_385 = alloca [1 x i32], i32 1 | |
%stack.ptr_386 = alloca [1 x i32], i32 1 | |
%stack.ptr_387 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_388 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_389 = alloca [1 x i32], i32 1 | |
%stack.ptr_390 = alloca [2 x i32], i32 1 | |
%stack.ptr_391 = alloca [2 x i32], i32 1 | |
%stack.ptr_392 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_393 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_394 = alloca [2 x i32], i32 1 | |
%stack.ptr_395 = alloca [2 x i32], i32 1 | |
%stack.ptr_396 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_397 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_398 = alloca [1 x i32], i32 1 | |
%stack.ptr_399 = alloca [1 x i32], i32 1 | |
%stack.ptr_400 = alloca [1 x i32], i32 1 | |
%stack.ptr_401 = alloca [1 x i32], i32 1 | |
%stack.ptr_402 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_403 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_404 = alloca [1 x i32], i32 1 | |
%stack.ptr_405 = alloca [1 x i32], i32 1 | |
%stack.ptr_406 = alloca [1 x i32], i32 1 | |
%stack.ptr_407 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_408 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_409 = alloca [1 x i32], i32 1 | |
%stack.ptr_410 = alloca [1 x i32], i32 1 | |
%stack.ptr_411 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_412 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_413 = alloca [1 x i32], i32 1 | |
%stack.ptr_414 = alloca [2 x i32], i32 1 | |
%stack.ptr_415 = alloca [2 x i32], i32 1 | |
%stack.ptr_416 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_417 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_418 = alloca [3 x i32], i32 1 | |
%stack.ptr_419 = alloca [3 x i32], i32 1 | |
%stack.ptr_420 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_421 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_422 = alloca [2 x i32], i32 1 | |
%stack.ptr_423 = alloca [2 x i32], i32 1 | |
%stack.ptr_424 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_425 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_426 = alloca [2 x i32], i32 1 | |
%stack.ptr_427 = alloca [2 x i32], i32 1 | |
%stack.ptr_428 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_429 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_430 = alloca [2 x i32], i32 1 | |
%stack.ptr_431 = alloca [2 x i32], i32 1 | |
%stack.ptr_432 = alloca [2 x i32], i32 1 | |
%stack.ptr_433 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_434 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_435 = alloca [3 x i32], i32 1 | |
%stack.ptr_436 = alloca [3 x i32], i32 1 | |
%stack.ptr_437 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_438 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_439 = alloca [2 x i32], i32 1 | |
%stack.ptr_440 = alloca [2 x i32], i32 1 | |
%stack.ptr_441 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_442 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_443 = alloca [2 x i32], i32 1 | |
%stack.ptr_444 = alloca [2 x i32], i32 1 | |
%stack.ptr_445 = alloca [2 x i32], i32 1 | |
%stack.ptr_446 = alloca %btree_iterator_t_7, i32 1 | |
%stack.ptr_447 = alloca %btree_iterator_t_7, i32 1 | |
%stack.ptr_448 = alloca [2 x i32], i32 1 | |
%stack.ptr_449 = alloca [2 x i32], i32 1 | |
%stack.ptr_450 = alloca %btree_iterator_t_2, i32 1 | |
%stack.ptr_451 = alloca %btree_iterator_t_2, i32 1 | |
%stack.ptr_452 = alloca [2 x i32], i32 1 | |
%stack.ptr_453 = alloca [2 x i32], i32 1 | |
%stack.ptr_454 = alloca [2 x i32], i32 1 | |
%stack.ptr_455 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_456 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_457 = alloca [3 x i32], i32 1 | |
%stack.ptr_458 = alloca [3 x i32], i32 1 | |
%stack.ptr_459 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_460 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_461 = alloca [3 x i32], i32 1 | |
%stack.ptr_462 = alloca [3 x i32], i32 1 | |
%stack.ptr_463 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_464 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_465 = alloca [2 x i32], i32 1 | |
%stack.ptr_466 = alloca [2 x i32], i32 1 | |
%stack.ptr_467 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_468 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_469 = alloca [2 x i32], i32 1 | |
%stack.ptr_470 = alloca [2 x i32], i32 1 | |
%stack.ptr_471 = alloca [2 x i32], i32 1 | |
%stack.ptr_472 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_473 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_474 = alloca [3 x i32], i32 1 | |
%stack.ptr_475 = alloca [3 x i32], i32 1 | |
%stack.ptr_476 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_477 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_478 = alloca [3 x i32], i32 1 | |
%stack.ptr_479 = alloca [3 x i32], i32 1 | |
%stack.ptr_480 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_481 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_482 = alloca [2 x i32], i32 1 | |
%stack.ptr_483 = alloca [2 x i32], i32 1 | |
%stack.ptr_484 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_485 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_486 = alloca [2 x i32], i32 1 | |
%stack.ptr_487 = alloca [2 x i32], i32 1 | |
%stack.ptr_488 = alloca [2 x i32], i32 1 | |
%stack.ptr_489 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_490 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_491 = alloca [2 x i32], i32 1 | |
%stack.ptr_492 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_493 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_494 = alloca [2 x i32], i32 1 | |
%stack.ptr_495 = alloca [2 x i32], i32 1 | |
%stack.ptr_496 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_497 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_498 = alloca [2 x i32], i32 1 | |
%stack.ptr_499 = alloca [2 x i32], i32 1 | |
%stack.ptr_500 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_501 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_502 = alloca [2 x i32], i32 1 | |
%stack.ptr_503 = alloca [2 x i32], i32 1 | |
%stack.ptr_504 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_505 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_506 = alloca [2 x i32], i32 1 | |
%stack.ptr_507 = alloca [2 x i32], i32 1 | |
%stack.ptr_508 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_509 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_510 = alloca [1 x i32], i32 1 | |
%stack.ptr_511 = alloca [1 x i32], i32 1 | |
%stack.ptr_512 = alloca [1 x i32], i32 1 | |
%stack.ptr_513 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_514 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_515 = alloca [2 x i32], i32 1 | |
%stack.ptr_516 = alloca [2 x i32], i32 1 | |
%stack.ptr_517 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_518 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_519 = alloca [2 x i32], i32 1 | |
%stack.ptr_520 = alloca [2 x i32], i32 1 | |
%stack.ptr_521 = alloca %btree_iterator_t_2, i32 1 | |
%stack.ptr_522 = alloca %btree_iterator_t_2, i32 1 | |
%stack.ptr_523 = alloca [3 x i32], i32 1 | |
%stack.ptr_524 = alloca [3 x i32], i32 1 | |
%stack.ptr_525 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_526 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_527 = alloca [2 x i32], i32 1 | |
%stack.ptr_528 = alloca [2 x i32], i32 1 | |
%stack.ptr_529 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_530 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_531 = alloca [2 x i32], i32 1 | |
%stack.ptr_532 = alloca [2 x i32], i32 1 | |
%stack.ptr_533 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_534 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_535 = alloca [2 x i32], i32 1 | |
%stack.ptr_536 = alloca [2 x i32], i32 1 | |
%stack.ptr_537 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_538 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_539 = alloca [1 x i32], i32 1 | |
%stack.ptr_540 = alloca [1 x i32], i32 1 | |
%stack.ptr_541 = alloca [1 x i32], i32 1 | |
%stack.ptr_542 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_543 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_544 = alloca [2 x i32], i32 1 | |
%stack.ptr_545 = alloca [2 x i32], i32 1 | |
%stack.ptr_546 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_547 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_548 = alloca [1 x i32], i32 1 | |
%stack.ptr_549 = alloca [1 x i32], i32 1 | |
%stack.ptr_550 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_551 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_552 = alloca [1 x i32], i32 1 | |
%stack.ptr_553 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_554 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_555 = alloca [2 x i32], i32 1 | |
%stack.ptr_556 = alloca [2 x i32], i32 1 | |
%stack.ptr_557 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_558 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_559 = alloca [1 x i32], i32 1 | |
%stack.ptr_560 = alloca [1 x i32], i32 1 | |
%stack.ptr_561 = alloca [1 x i32], i32 1 | |
%stack.ptr_562 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_563 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_564 = alloca [1 x i32], i32 1 | |
%stack.ptr_565 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_566 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_567 = alloca [2 x i32], i32 1 | |
%stack.ptr_568 = alloca [2 x i32], i32 1 | |
%stack.ptr_569 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_570 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_571 = alloca [1 x i32], i32 1 | |
%stack.ptr_572 = alloca [1 x i32], i32 1 | |
%stack.ptr_573 = alloca [2 x i32], i32 1 | |
%stack.ptr_574 = alloca [2 x i32], i32 1 | |
%stack.ptr_575 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_576 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_577 = alloca [1 x i32], i32 1 | |
%stack.ptr_578 = alloca [1 x i32], i32 1 | |
%stack.ptr_579 = alloca [2 x i32], i32 1 | |
%stack.ptr_580 = alloca [2 x i32], i32 1 | |
%stack.ptr_581 = alloca %btree_iterator_t_7, i32 1 | |
%stack.ptr_582 = alloca %btree_iterator_t_7, i32 1 | |
%stack.ptr_583 = alloca [1 x i32], i32 1 | |
%stack.ptr_584 = alloca [1 x i32], i32 1 | |
%stack.ptr_585 = alloca [2 x i32], i32 1 | |
%stack.ptr_586 = alloca [2 x i32], i32 1 | |
%stack.ptr_587 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_588 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_589 = alloca [1 x i32], i32 1 | |
%stack.ptr_590 = alloca [1 x i32], i32 1 | |
%stack.ptr_591 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_592 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_593 = alloca [3 x i32], i32 1 | |
%stack.ptr_594 = alloca [3 x i32], i32 1 | |
%stack.ptr_595 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_596 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_597 = alloca [1 x i32], i32 1 | |
%stack.ptr_598 = alloca [1 x i32], i32 1 | |
%stack.ptr_599 = alloca [1 x i32], i32 1 | |
%stack.ptr_600 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_601 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_602 = alloca [1 x i32], i32 1 | |
%stack.ptr_603 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_604 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_605 = alloca [2 x i32], i32 1 | |
%stack.ptr_606 = alloca [2 x i32], i32 1 | |
%stack.ptr_607 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_608 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_609 = alloca [2 x i32], i32 1 | |
%stack.ptr_610 = alloca [2 x i32], i32 1 | |
%stack.ptr_611 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_612 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_613 = alloca [2 x i32], i32 1 | |
%stack.ptr_614 = alloca [2 x i32], i32 1 | |
%stack.ptr_615 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_616 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_617 = alloca [3 x i32], i32 1 | |
%stack.ptr_618 = alloca [3 x i32], i32 1 | |
%stack.ptr_619 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_620 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_621 = alloca [1 x i32], i32 1 | |
%stack.ptr_622 = alloca [1 x i32], i32 1 | |
%stack.ptr_623 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_624 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_625 = alloca [3 x i32], i32 1 | |
%stack.ptr_626 = alloca [2 x i32], i32 1 | |
%stack.ptr_627 = alloca [2 x i32], i32 1 | |
%stack.ptr_628 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_629 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_630 = alloca [2 x i32], i32 1 | |
%stack.ptr_631 = alloca [2 x i32], i32 1 | |
%stack.ptr_632 = alloca %btree_iterator_t_2, i32 1 | |
%stack.ptr_633 = alloca %btree_iterator_t_2, i32 1 | |
%stack.ptr_634 = alloca [2 x i32], i32 1 | |
%stack.ptr_635 = alloca [3 x i32], i32 1 | |
%stack.ptr_636 = alloca [3 x i32], i32 1 | |
%stack.ptr_637 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_638 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_639 = alloca [2 x i32], i32 1 | |
%stack.ptr_640 = alloca [2 x i32], i32 1 | |
%stack.ptr_641 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_642 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_643 = alloca [3 x i32], i32 1 | |
%stack.ptr_644 = alloca [3 x i32], i32 1 | |
%stack.ptr_645 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_646 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_647 = alloca [2 x i32], i32 1 | |
%stack.ptr_648 = alloca [2 x i32], i32 1 | |
%stack.ptr_649 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_650 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_651 = alloca [2 x i32], i32 1 | |
%stack.ptr_652 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_653 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_654 = alloca [3 x i32], i32 1 | |
%stack.ptr_655 = alloca [3 x i32], i32 1 | |
%stack.ptr_656 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_657 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_658 = alloca [3 x i32], i32 1 | |
%stack.ptr_659 = alloca [3 x i32], i32 1 | |
%stack.ptr_660 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_661 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_662 = alloca [2 x i32], i32 1 | |
%stack.ptr_663 = alloca [2 x i32], i32 1 | |
%stack.ptr_664 = alloca [2 x i32], i32 1 | |
%stack.ptr_665 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_666 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_667 = alloca [2 x i32], i32 1 | |
%stack.ptr_668 = alloca [2 x i32], i32 1 | |
%stack.ptr_669 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_670 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_671 = alloca [2 x i32], i32 1 | |
%stack.ptr_672 = alloca [3 x i32], i32 1 | |
%stack.ptr_673 = alloca [3 x i32], i32 1 | |
%stack.ptr_674 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_675 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_676 = alloca [3 x i32], i32 1 | |
%stack.ptr_677 = alloca [3 x i32], i32 1 | |
%stack.ptr_678 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_679 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_680 = alloca [2 x i32], i32 1 | |
%stack.ptr_681 = alloca [2 x i32], i32 1 | |
%stack.ptr_682 = alloca [2 x i32], i32 1 | |
%stack.ptr_683 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_684 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_685 = alloca [2 x i32], i32 1 | |
%stack.ptr_686 = alloca [2 x i32], i32 1 | |
%stack.ptr_687 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_688 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_689 = alloca [2 x i32], i32 1 | |
%stack.ptr_690 = alloca [2 x i32], i32 1 | |
%stack.ptr_691 = alloca [2 x i32], i32 1 | |
%stack.ptr_692 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_693 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_694 = alloca [2 x i32], i32 1 | |
%stack.ptr_695 = alloca [2 x i32], i32 1 | |
%stack.ptr_696 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_697 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_698 = alloca [4 x i32], i32 1 | |
%stack.ptr_699 = alloca [4 x i32], i32 1 | |
%stack.ptr_700 = alloca %btree_iterator_t_3, i32 1 | |
%stack.ptr_701 = alloca %btree_iterator_t_3, i32 1 | |
%stack.ptr_702 = alloca [2 x i32], i32 1 | |
%stack.ptr_703 = alloca [2 x i32], i32 1 | |
%stack.ptr_704 = alloca [2 x i32], i32 1 | |
%stack.ptr_705 = alloca [2 x i32], i32 1 | |
%stack.ptr_706 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_707 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_708 = alloca [3 x i32], i32 1 | |
%stack.ptr_709 = alloca [3 x i32], i32 1 | |
%stack.ptr_710 = alloca %btree_iterator_t_8, i32 1 | |
%stack.ptr_711 = alloca %btree_iterator_t_8, i32 1 | |
%stack.ptr_712 = alloca [2 x i32], i32 1 | |
%stack.ptr_713 = alloca [2 x i32], i32 1 | |
%stack.ptr_714 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_715 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_716 = alloca [2 x i32], i32 1 | |
%stack.ptr_717 = alloca [2 x i32], i32 1 | |
%stack.ptr_718 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_719 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_720 = alloca [2 x i32], i32 1 | |
%stack.ptr_721 = alloca [2 x i32], i32 1 | |
%stack.ptr_722 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_723 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_724 = alloca [2 x i32], i32 1 | |
%stack.ptr_725 = alloca [2 x i32], i32 1 | |
%stack.ptr_726 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_727 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_728 = alloca [2 x i32], i32 1 | |
%stack.ptr_729 = alloca [2 x i32], i32 1 | |
%stack.ptr_730 = alloca [2 x i32], i32 1 | |
%stack.ptr_731 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_732 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_733 = alloca [2 x i32], i32 1 | |
%stack.ptr_734 = alloca [2 x i32], i32 1 | |
%stack.ptr_735 = alloca [2 x i32], i32 1 | |
%stack.ptr_736 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_737 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_738 = alloca [2 x i32], i32 1 | |
%stack.ptr_739 = alloca [2 x i32], i32 1 | |
%stack.ptr_740 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_741 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_742 = alloca [2 x i32], i32 1 | |
%stack.ptr_743 = alloca [2 x i32], i32 1 | |
%stack.ptr_744 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_745 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_746 = alloca [2 x i32], i32 1 | |
%stack.ptr_747 = alloca [2 x i32], i32 1 | |
%stack.ptr_748 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_749 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_750 = alloca [2 x i32], i32 1 | |
%stack.ptr_751 = alloca [2 x i32], i32 1 | |
%stack.ptr_752 = alloca [2 x i32], i32 1 | |
%stack.ptr_753 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_754 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_755 = alloca [2 x i32], i32 1 | |
%stack.ptr_756 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_757 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_758 = alloca [2 x i32], i32 1 | |
%stack.ptr_759 = alloca [2 x i32], i32 1 | |
%stack.ptr_760 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_761 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_762 = alloca [3 x i32], i32 1 | |
%stack.ptr_763 = alloca [3 x i32], i32 1 | |
%stack.ptr_764 = alloca %btree_iterator_t_8, i32 1 | |
%stack.ptr_765 = alloca %btree_iterator_t_8, i32 1 | |
%stack.ptr_766 = alloca [2 x i32], i32 1 | |
%stack.ptr_767 = alloca [2 x i32], i32 1 | |
%stack.ptr_768 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_769 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_770 = alloca [2 x i32], i32 1 | |
%stack.ptr_771 = alloca [2 x i32], i32 1 | |
%stack.ptr_772 = alloca [2 x i32], i32 1 | |
%stack.ptr_773 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_774 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_775 = alloca [3 x i32], i32 1 | |
%stack.ptr_776 = alloca [2 x i32], i32 1 | |
%stack.ptr_777 = alloca [2 x i32], i32 1 | |
%stack.ptr_778 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_779 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_780 = alloca [3 x i32], i32 1 | |
%stack.ptr_781 = alloca [3 x i32], i32 1 | |
%stack.ptr_782 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_783 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_784 = alloca [2 x i32], i32 1 | |
%stack.ptr_785 = alloca [2 x i32], i32 1 | |
%stack.ptr_786 = alloca [2 x i32], i32 1 | |
%stack.ptr_787 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_788 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_789 = alloca [3 x i32], i32 1 | |
%stack.ptr_790 = alloca [3 x i32], i32 1 | |
%stack.ptr_791 = alloca [3 x i32], i32 1 | |
%stack.ptr_792 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_793 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_794 = alloca [2 x i32], i32 1 | |
%stack.ptr_795 = alloca [2 x i32], i32 1 | |
%stack.ptr_796 = alloca [2 x i32], i32 1 | |
%stack.ptr_797 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_798 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_799 = alloca [2 x i32], i32 1 | |
%stack.ptr_800 = alloca [2 x i32], i32 1 | |
%stack.ptr_801 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_802 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_803 = alloca [3 x i32], i32 1 | |
%stack.ptr_804 = alloca [3 x i32], i32 1 | |
%stack.ptr_805 = alloca [3 x i32], i32 1 | |
%stack.ptr_806 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_807 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_808 = alloca [4 x i32], i32 1 | |
%stack.ptr_809 = alloca [4 x i32], i32 1 | |
%stack.ptr_810 = alloca %btree_iterator_t_4, i32 1 | |
%stack.ptr_811 = alloca %btree_iterator_t_4, i32 1 | |
%stack.ptr_812 = alloca [2 x i32], i32 1 | |
%stack.ptr_813 = alloca [1 x i32], i32 1 | |
%stack.ptr_814 = alloca [1 x i32], i32 1 | |
%stack.ptr_815 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_816 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_817 = alloca [2 x i32], i32 1 | |
%stack.ptr_818 = alloca [2 x i32], i32 1 | |
%stack.ptr_819 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_820 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_821 = alloca [2 x i32], i32 1 | |
%stack.ptr_822 = alloca [2 x i32], i32 1 | |
%stack.ptr_823 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_824 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_825 = alloca [3 x i32], i32 1 | |
%stack.ptr_826 = alloca [3 x i32], i32 1 | |
%stack.ptr_827 = alloca [3 x i32], i32 1 | |
%stack.ptr_828 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_829 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_830 = alloca [4 x i32], i32 1 | |
%stack.ptr_831 = alloca [4 x i32], i32 1 | |
%stack.ptr_832 = alloca %btree_iterator_t_4, i32 1 | |
%stack.ptr_833 = alloca %btree_iterator_t_4, i32 1 | |
%stack.ptr_834 = alloca [2 x i32], i32 1 | |
%stack.ptr_835 = alloca [1 x i32], i32 1 | |
%stack.ptr_836 = alloca [1 x i32], i32 1 | |
%stack.ptr_837 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_838 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_839 = alloca [2 x i32], i32 1 | |
%stack.ptr_840 = alloca [2 x i32], i32 1 | |
%stack.ptr_841 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_842 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_843 = alloca [2 x i32], i32 1 | |
%stack.ptr_844 = alloca [2 x i32], i32 1 | |
%stack.ptr_845 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_846 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_847 = alloca [3 x i32], i32 1 | |
%stack.ptr_848 = alloca [4 x i32], i32 1 | |
%stack.ptr_849 = alloca [4 x i32], i32 1 | |
%stack.ptr_850 = alloca %btree_iterator_t_3, i32 1 | |
%stack.ptr_851 = alloca %btree_iterator_t_3, i32 1 | |
%stack.ptr_852 = alloca [2 x i32], i32 1 | |
%stack.ptr_853 = alloca [2 x i32], i32 1 | |
%stack.ptr_854 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_855 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_856 = alloca [2 x i32], i32 1 | |
%stack.ptr_857 = alloca [2 x i32], i32 1 | |
%stack.ptr_858 = alloca %btree_iterator_t_2, i32 1 | |
%stack.ptr_859 = alloca %btree_iterator_t_2, i32 1 | |
%stack.ptr_860 = alloca [2 x i32], i32 1 | |
%stack.ptr_861 = alloca [3 x i32], i32 1 | |
%stack.ptr_862 = alloca [4 x i32], i32 1 | |
%stack.ptr_863 = alloca [4 x i32], i32 1 | |
%stack.ptr_864 = alloca %btree_iterator_t_3, i32 1 | |
%stack.ptr_865 = alloca %btree_iterator_t_3, i32 1 | |
%stack.ptr_866 = alloca [2 x i32], i32 1 | |
%stack.ptr_867 = alloca [2 x i32], i32 1 | |
%stack.ptr_868 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_869 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_870 = alloca [2 x i32], i32 1 | |
%stack.ptr_871 = alloca [2 x i32], i32 1 | |
%stack.ptr_872 = alloca %btree_iterator_t_2, i32 1 | |
%stack.ptr_873 = alloca %btree_iterator_t_2, i32 1 | |
%stack.ptr_874 = alloca [2 x i32], i32 1 | |
%stack.ptr_875 = alloca [3 x i32], i32 1 | |
%stack.ptr_876 = alloca [2 x i32], i32 1 | |
%stack.ptr_877 = alloca [2 x i32], i32 1 | |
%stack.ptr_878 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_879 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_880 = alloca [2 x i32], i32 1 | |
%stack.ptr_881 = alloca [2 x i32], i32 1 | |
%stack.ptr_882 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_883 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_884 = alloca [2 x i32], i32 1 | |
%stack.ptr_885 = alloca [3 x i32], i32 1 | |
%stack.ptr_886 = alloca [3 x i32], i32 1 | |
%stack.ptr_887 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_888 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_889 = alloca [2 x i32], i32 1 | |
%stack.ptr_890 = alloca [3 x i32], i32 1 | |
%stack.ptr_891 = alloca [3 x i32], i32 1 | |
%stack.ptr_892 = alloca [3 x i32], i32 1 | |
%stack.ptr_893 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_894 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_895 = alloca [4 x i32], i32 1 | |
%stack.ptr_896 = alloca [4 x i32], i32 1 | |
%stack.ptr_897 = alloca %btree_iterator_t_4, i32 1 | |
%stack.ptr_898 = alloca %btree_iterator_t_4, i32 1 | |
%stack.ptr_899 = alloca [2 x i32], i32 1 | |
%stack.ptr_900 = alloca [2 x i32], i32 1 | |
%stack.ptr_901 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_902 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_903 = alloca [2 x i32], i32 1 | |
%stack.ptr_904 = alloca [3 x i32], i32 1 | |
%stack.ptr_905 = alloca [3 x i32], i32 1 | |
%stack.ptr_906 = alloca [3 x i32], i32 1 | |
%stack.ptr_907 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_908 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_909 = alloca [4 x i32], i32 1 | |
%stack.ptr_910 = alloca [4 x i32], i32 1 | |
%stack.ptr_911 = alloca %btree_iterator_t_4, i32 1 | |
%stack.ptr_912 = alloca %btree_iterator_t_4, i32 1 | |
%stack.ptr_913 = alloca [2 x i32], i32 1 | |
%stack.ptr_914 = alloca [2 x i32], i32 1 | |
%stack.ptr_915 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_916 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_917 = alloca [2 x i32], i32 1 | |
%stack.ptr_918 = alloca [3 x i32], i32 1 | |
%stack.ptr_919 = alloca [4 x i32], i32 1 | |
%stack.ptr_920 = alloca [4 x i32], i32 1 | |
%stack.ptr_921 = alloca %btree_iterator_t_3, i32 1 | |
%stack.ptr_922 = alloca %btree_iterator_t_3, i32 1 | |
%stack.ptr_923 = alloca [2 x i32], i32 1 | |
%stack.ptr_924 = alloca [2 x i32], i32 1 | |
%stack.ptr_925 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_926 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_927 = alloca [2 x i32], i32 1 | |
%stack.ptr_928 = alloca [2 x i32], i32 1 | |
%stack.ptr_929 = alloca %btree_iterator_t_2, i32 1 | |
%stack.ptr_930 = alloca %btree_iterator_t_2, i32 1 | |
%stack.ptr_931 = alloca [2 x i32], i32 1 | |
%stack.ptr_932 = alloca [2 x i32], i32 1 | |
%stack.ptr_933 = alloca %btree_iterator_t_2, i32 1 | |
%stack.ptr_934 = alloca %btree_iterator_t_2, i32 1 | |
%stack.ptr_935 = alloca [2 x i32], i32 1 | |
%stack.ptr_936 = alloca [3 x i32], i32 1 | |
%stack.ptr_937 = alloca [4 x i32], i32 1 | |
%stack.ptr_938 = alloca [4 x i32], i32 1 | |
%stack.ptr_939 = alloca %btree_iterator_t_3, i32 1 | |
%stack.ptr_940 = alloca %btree_iterator_t_3, i32 1 | |
%stack.ptr_941 = alloca [2 x i32], i32 1 | |
%stack.ptr_942 = alloca [2 x i32], i32 1 | |
%stack.ptr_943 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_944 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_945 = alloca [2 x i32], i32 1 | |
%stack.ptr_946 = alloca [2 x i32], i32 1 | |
%stack.ptr_947 = alloca %btree_iterator_t_2, i32 1 | |
%stack.ptr_948 = alloca %btree_iterator_t_2, i32 1 | |
%stack.ptr_949 = alloca [2 x i32], i32 1 | |
%stack.ptr_950 = alloca [2 x i32], i32 1 | |
%stack.ptr_951 = alloca %btree_iterator_t_2, i32 1 | |
%stack.ptr_952 = alloca %btree_iterator_t_2, i32 1 | |
%stack.ptr_953 = alloca [2 x i32], i32 1 | |
%stack.ptr_954 = alloca [3 x i32], i32 1 | |
%0 = getelementptr [2 x i32], ptr %stack.ptr_0, i32 0, i32 0 | |
store i32 0, ptr %0 | |
%1 = getelementptr [2 x i32], ptr %stack.ptr_0, i32 0, i32 1 | |
store i32 0, ptr %1 | |
%2 = getelementptr [2 x i32], ptr %stack.ptr_1, i32 0, i32 0 | |
store i32 4294967295, ptr %2 | |
%3 = getelementptr [2 x i32], ptr %stack.ptr_1, i32 0, i32 1 | |
store i32 4294967295, ptr %3 | |
%4 = getelementptr %program, ptr %arg_0, i32 0, i32 24 | |
call ccc void @eclair_btree_lower_bound_7(ptr %4, ptr %stack.ptr_0, ptr %stack.ptr_2) | |
%5 = getelementptr %program, ptr %arg_0, i32 0, i32 24 | |
call ccc void @eclair_btree_upper_bound_7(ptr %5, ptr %stack.ptr_1, ptr %stack.ptr_3) | |
br label %loop_0 | |
loop_0: | |
%6 = call ccc i1 @eclair_btree_iterator_is_equal_7(ptr %stack.ptr_2, ptr %stack.ptr_3) | |
br i1 %6, label %if_0, label %end_if_0 | |
if_0: | |
br label %range_query.end | |
end_if_0: | |
%7 = call ccc ptr @eclair_btree_iterator_current_7(ptr %stack.ptr_2) | |
%8 = getelementptr [2 x i32], ptr %stack.ptr_4, i32 0, i32 0 | |
store i32 0, ptr %8 | |
%9 = getelementptr [2 x i32], ptr %stack.ptr_4, i32 0, i32 1 | |
%10 = getelementptr [2 x i32], ptr %7, i32 0, i32 1 | |
%11 = load i32, ptr %10 | |
store i32 %11, ptr %9 | |
%12 = getelementptr [2 x i32], ptr %stack.ptr_5, i32 0, i32 0 | |
store i32 4294967295, ptr %12 | |
%13 = getelementptr [2 x i32], ptr %stack.ptr_5, i32 0, i32 1 | |
%14 = getelementptr [2 x i32], ptr %7, i32 0, i32 1 | |
%15 = load i32, ptr %14 | |
store i32 %15, ptr %13 | |
%16 = getelementptr %program, ptr %arg_0, i32 0, i32 51 | |
call ccc void @eclair_btree_lower_bound_2(ptr %16, ptr %stack.ptr_4, ptr %stack.ptr_6) | |
%17 = getelementptr %program, ptr %arg_0, i32 0, i32 51 | |
call ccc void @eclair_btree_upper_bound_2(ptr %17, ptr %stack.ptr_5, ptr %stack.ptr_7) | |
br label %loop_1 | |
loop_1: | |
%18 = call ccc i1 @eclair_btree_iterator_is_equal_2(ptr %stack.ptr_6, ptr %stack.ptr_7) | |
br i1 %18, label %if_1, label %end_if_1 | |
if_1: | |
br label %range_query.end_1 | |
end_if_1: | |
%19 = call ccc ptr @eclair_btree_iterator_current_2(ptr %stack.ptr_6) | |
%20 = getelementptr [3 x i32], ptr %stack.ptr_8, i32 0, i32 0 | |
%21 = getelementptr [2 x i32], ptr %19, i32 0, i32 0 | |
%22 = load i32, ptr %21 | |
store i32 %22, ptr %20 | |
%23 = getelementptr [3 x i32], ptr %stack.ptr_8, i32 0, i32 1 | |
%24 = getelementptr [2 x i32], ptr %7, i32 0, i32 0 | |
%25 = load i32, ptr %24 | |
store i32 %25, ptr %23 | |
%26 = getelementptr [3 x i32], ptr %stack.ptr_8, i32 0, i32 2 | |
%27 = getelementptr [2 x i32], ptr %7, i32 0, i32 1 | |
%28 = load i32, ptr %27 | |
store i32 %28, ptr %26 | |
%29 = getelementptr %program, ptr %arg_0, i32 0, i32 26 | |
%30 = call ccc i1 @eclair_btree_insert_value_0(ptr %29, ptr %stack.ptr_8) | |
call ccc void @eclair_btree_iterator_next_2(ptr %stack.ptr_6) | |
br label %loop_1 | |
range_query.end_1: | |
call ccc void @eclair_btree_iterator_next_7(ptr %stack.ptr_2) | |
br label %loop_0 | |
range_query.end: | |
%31 = getelementptr [2 x i32], ptr %stack.ptr_9, i32 0, i32 0 | |
store i32 0, ptr %31 | |
%32 = getelementptr [2 x i32], ptr %stack.ptr_9, i32 0, i32 1 | |
store i32 0, ptr %32 | |
%33 = getelementptr [2 x i32], ptr %stack.ptr_10, i32 0, i32 0 | |
store i32 4294967295, ptr %33 | |
%34 = getelementptr [2 x i32], ptr %stack.ptr_10, i32 0, i32 1 | |
store i32 4294967295, ptr %34 | |
%35 = getelementptr %program, ptr %arg_0, i32 0, i32 24 | |
call ccc void @eclair_btree_lower_bound_7(ptr %35, ptr %stack.ptr_9, ptr %stack.ptr_11) | |
%36 = getelementptr %program, ptr %arg_0, i32 0, i32 24 | |
call ccc void @eclair_btree_upper_bound_7(ptr %36, ptr %stack.ptr_10, ptr %stack.ptr_12) | |
br label %loop_2 | |
loop_2: | |
%37 = call ccc i1 @eclair_btree_iterator_is_equal_7(ptr %stack.ptr_11, ptr %stack.ptr_12) | |
br i1 %37, label %if_2, label %end_if_2 | |
if_2: | |
br label %range_query.end_2 | |
end_if_2: | |
%38 = call ccc ptr @eclair_btree_iterator_current_7(ptr %stack.ptr_11) | |
%39 = getelementptr [2 x i32], ptr %stack.ptr_13, i32 0, i32 0 | |
store i32 0, ptr %39 | |
%40 = getelementptr [2 x i32], ptr %stack.ptr_13, i32 0, i32 1 | |
store i32 0, ptr %40 | |
%41 = getelementptr [2 x i32], ptr %stack.ptr_14, i32 0, i32 0 | |
store i32 4294967295, ptr %41 | |
%42 = getelementptr [2 x i32], ptr %stack.ptr_14, i32 0, i32 1 | |
store i32 4294967295, ptr %42 | |
%43 = getelementptr %program, ptr %arg_0, i32 0, i32 39 | |
call ccc void @eclair_btree_lower_bound_1(ptr %43, ptr %stack.ptr_13, ptr %stack.ptr_15) | |
%44 = getelementptr %program, ptr %arg_0, i32 0, i32 39 | |
call ccc void @eclair_btree_upper_bound_1(ptr %44, ptr %stack.ptr_14, ptr %stack.ptr_16) | |
br label %loop_3 | |
loop_3: | |
%45 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_15, ptr %stack.ptr_16) | |
br i1 %45, label %if_3, label %end_if_3 | |
if_3: | |
br label %range_query.end_3 | |
end_if_3: | |
%46 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_15) | |
%47 = getelementptr [2 x i32], ptr %stack.ptr_17, i32 0, i32 0 | |
%48 = getelementptr [2 x i32], ptr %46, i32 0, i32 1 | |
%49 = load i32, ptr %48 | |
store i32 %49, ptr %47 | |
%50 = getelementptr [2 x i32], ptr %stack.ptr_17, i32 0, i32 1 | |
%51 = getelementptr [2 x i32], ptr %38, i32 0, i32 1 | |
%52 = load i32, ptr %51 | |
store i32 %52, ptr %50 | |
%53 = getelementptr [2 x i32], ptr %stack.ptr_18, i32 0, i32 0 | |
%54 = getelementptr [2 x i32], ptr %46, i32 0, i32 1 | |
%55 = load i32, ptr %54 | |
store i32 %55, ptr %53 | |
%56 = getelementptr [2 x i32], ptr %stack.ptr_18, i32 0, i32 1 | |
%57 = getelementptr [2 x i32], ptr %38, i32 0, i32 1 | |
%58 = load i32, ptr %57 | |
store i32 %58, ptr %56 | |
%59 = getelementptr %program, ptr %arg_0, i32 0, i32 3 | |
call ccc void @eclair_btree_lower_bound_1(ptr %59, ptr %stack.ptr_17, ptr %stack.ptr_19) | |
%60 = getelementptr %program, ptr %arg_0, i32 0, i32 3 | |
call ccc void @eclair_btree_upper_bound_1(ptr %60, ptr %stack.ptr_18, ptr %stack.ptr_20) | |
br label %loop_4 | |
loop_4: | |
%61 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_19, ptr %stack.ptr_20) | |
br i1 %61, label %if_4, label %end_if_4 | |
if_4: | |
br label %range_query.end_4 | |
end_if_4: | |
%62 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_19) | |
%63 = getelementptr [3 x i32], ptr %stack.ptr_21, i32 0, i32 0 | |
%64 = getelementptr [2 x i32], ptr %46, i32 0, i32 1 | |
%65 = load i32, ptr %64 | |
store i32 %65, ptr %63 | |
%66 = getelementptr [3 x i32], ptr %stack.ptr_21, i32 0, i32 1 | |
%67 = getelementptr [2 x i32], ptr %38, i32 0, i32 0 | |
%68 = load i32, ptr %67 | |
store i32 %68, ptr %66 | |
%69 = getelementptr [3 x i32], ptr %stack.ptr_21, i32 0, i32 2 | |
%70 = getelementptr [2 x i32], ptr %38, i32 0, i32 1 | |
%71 = load i32, ptr %70 | |
store i32 %71, ptr %69 | |
%72 = getelementptr %program, ptr %arg_0, i32 0, i32 25 | |
%73 = call ccc i1 @eclair_btree_insert_value_0(ptr %72, ptr %stack.ptr_21) | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_19) | |
br label %loop_4 | |
range_query.end_4: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_15) | |
br label %loop_3 | |
range_query.end_3: | |
call ccc void @eclair_btree_iterator_next_7(ptr %stack.ptr_11) | |
br label %loop_2 | |
range_query.end_2: | |
%74 = getelementptr [2 x i32], ptr %stack.ptr_22, i32 0, i32 0 | |
store i32 0, ptr %74 | |
%75 = getelementptr [2 x i32], ptr %stack.ptr_22, i32 0, i32 1 | |
store i32 0, ptr %75 | |
%76 = getelementptr [2 x i32], ptr %stack.ptr_23, i32 0, i32 0 | |
store i32 4294967295, ptr %76 | |
%77 = getelementptr [2 x i32], ptr %stack.ptr_23, i32 0, i32 1 | |
store i32 4294967295, ptr %77 | |
%78 = getelementptr %program, ptr %arg_0, i32 0, i32 24 | |
call ccc void @eclair_btree_lower_bound_7(ptr %78, ptr %stack.ptr_22, ptr %stack.ptr_24) | |
%79 = getelementptr %program, ptr %arg_0, i32 0, i32 24 | |
call ccc void @eclair_btree_upper_bound_7(ptr %79, ptr %stack.ptr_23, ptr %stack.ptr_25) | |
br label %loop_5 | |
loop_5: | |
%80 = call ccc i1 @eclair_btree_iterator_is_equal_7(ptr %stack.ptr_24, ptr %stack.ptr_25) | |
br i1 %80, label %if_5, label %end_if_5 | |
if_5: | |
br label %range_query.end_5 | |
end_if_5: | |
%81 = call ccc ptr @eclair_btree_iterator_current_7(ptr %stack.ptr_24) | |
%82 = getelementptr [2 x i32], ptr %stack.ptr_26, i32 0, i32 0 | |
store i32 0, ptr %82 | |
%83 = getelementptr [2 x i32], ptr %stack.ptr_26, i32 0, i32 1 | |
%84 = getelementptr [2 x i32], ptr %81, i32 0, i32 1 | |
%85 = load i32, ptr %84 | |
store i32 %85, ptr %83 | |
%86 = getelementptr [2 x i32], ptr %stack.ptr_27, i32 0, i32 0 | |
store i32 4294967295, ptr %86 | |
%87 = getelementptr [2 x i32], ptr %stack.ptr_27, i32 0, i32 1 | |
%88 = getelementptr [2 x i32], ptr %81, i32 0, i32 1 | |
%89 = load i32, ptr %88 | |
store i32 %89, ptr %87 | |
%90 = getelementptr %program, ptr %arg_0, i32 0, i32 15 | |
call ccc void @eclair_btree_lower_bound_2(ptr %90, ptr %stack.ptr_26, ptr %stack.ptr_28) | |
%91 = getelementptr %program, ptr %arg_0, i32 0, i32 15 | |
call ccc void @eclair_btree_upper_bound_2(ptr %91, ptr %stack.ptr_27, ptr %stack.ptr_29) | |
br label %loop_6 | |
loop_6: | |
%92 = call ccc i1 @eclair_btree_iterator_is_equal_2(ptr %stack.ptr_28, ptr %stack.ptr_29) | |
br i1 %92, label %if_6, label %end_if_6 | |
if_6: | |
br label %range_query.end_6 | |
end_if_6: | |
%93 = call ccc ptr @eclair_btree_iterator_current_2(ptr %stack.ptr_28) | |
%94 = getelementptr [2 x i32], ptr %81, i32 0, i32 0 | |
%95 = load i32, ptr %94 | |
%96 = getelementptr [2 x i32], ptr %93, i32 0, i32 0 | |
%97 = load i32, ptr %96 | |
%98 = icmp ult i32 %95, %97 | |
br i1 %98, label %if_7, label %end_if_7 | |
if_7: | |
%99 = getelementptr [3 x i32], ptr %stack.ptr_30, i32 0, i32 0 | |
%100 = getelementptr [2 x i32], ptr %81, i32 0, i32 0 | |
%101 = load i32, ptr %100 | |
store i32 %101, ptr %99 | |
%102 = getelementptr [3 x i32], ptr %stack.ptr_30, i32 0, i32 1 | |
%103 = getelementptr [2 x i32], ptr %93, i32 0, i32 0 | |
%104 = load i32, ptr %103 | |
store i32 %104, ptr %102 | |
%105 = getelementptr [3 x i32], ptr %stack.ptr_30, i32 0, i32 2 | |
%106 = getelementptr [2 x i32], ptr %81, i32 0, i32 1 | |
%107 = load i32, ptr %106 | |
store i32 %107, ptr %105 | |
%108 = getelementptr %program, ptr %arg_0, i32 0, i32 7 | |
%109 = call ccc i1 @eclair_btree_insert_value_0(ptr %108, ptr %stack.ptr_30) | |
br label %end_if_7 | |
end_if_7: | |
call ccc void @eclair_btree_iterator_next_2(ptr %stack.ptr_28) | |
br label %loop_6 | |
range_query.end_6: | |
call ccc void @eclair_btree_iterator_next_7(ptr %stack.ptr_24) | |
br label %loop_5 | |
range_query.end_5: | |
%110 = getelementptr [2 x i32], ptr %stack.ptr_31, i32 0, i32 0 | |
store i32 0, ptr %110 | |
%111 = getelementptr [2 x i32], ptr %stack.ptr_31, i32 0, i32 1 | |
store i32 0, ptr %111 | |
%112 = getelementptr [2 x i32], ptr %stack.ptr_32, i32 0, i32 0 | |
store i32 4294967295, ptr %112 | |
%113 = getelementptr [2 x i32], ptr %stack.ptr_32, i32 0, i32 1 | |
store i32 4294967295, ptr %113 | |
%114 = getelementptr %program, ptr %arg_0, i32 0, i32 14 | |
call ccc void @eclair_btree_lower_bound_1(ptr %114, ptr %stack.ptr_31, ptr %stack.ptr_33) | |
%115 = getelementptr %program, ptr %arg_0, i32 0, i32 14 | |
call ccc void @eclair_btree_upper_bound_1(ptr %115, ptr %stack.ptr_32, ptr %stack.ptr_34) | |
br label %loop_7 | |
loop_7: | |
%116 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_33, ptr %stack.ptr_34) | |
br i1 %116, label %if_8, label %end_if_8 | |
if_8: | |
br label %range_query.end_7 | |
end_if_8: | |
%117 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_33) | |
%118 = getelementptr [2 x i32], ptr %stack.ptr_35, i32 0, i32 0 | |
store i32 0, ptr %118 | |
%119 = getelementptr [2 x i32], ptr %stack.ptr_35, i32 0, i32 1 | |
%120 = getelementptr [2 x i32], ptr %117, i32 0, i32 1 | |
%121 = load i32, ptr %120 | |
store i32 %121, ptr %119 | |
%122 = getelementptr [2 x i32], ptr %stack.ptr_36, i32 0, i32 0 | |
store i32 4294967295, ptr %122 | |
%123 = getelementptr [2 x i32], ptr %stack.ptr_36, i32 0, i32 1 | |
%124 = getelementptr [2 x i32], ptr %117, i32 0, i32 1 | |
%125 = load i32, ptr %124 | |
store i32 %125, ptr %123 | |
%126 = getelementptr %program, ptr %arg_0, i32 0, i32 24 | |
call ccc void @eclair_btree_lower_bound_7(ptr %126, ptr %stack.ptr_35, ptr %stack.ptr_37) | |
%127 = getelementptr %program, ptr %arg_0, i32 0, i32 24 | |
call ccc void @eclair_btree_upper_bound_7(ptr %127, ptr %stack.ptr_36, ptr %stack.ptr_38) | |
br label %loop_8 | |
loop_8: | |
%128 = call ccc i1 @eclair_btree_iterator_is_equal_7(ptr %stack.ptr_37, ptr %stack.ptr_38) | |
br i1 %128, label %if_9, label %end_if_9 | |
if_9: | |
br label %range_query.end_8 | |
end_if_9: | |
%129 = call ccc ptr @eclair_btree_iterator_current_7(ptr %stack.ptr_37) | |
%130 = getelementptr [2 x i32], ptr %117, i32 0, i32 0 | |
%131 = load i32, ptr %130 | |
%132 = getelementptr [2 x i32], ptr %129, i32 0, i32 0 | |
%133 = load i32, ptr %132 | |
%134 = icmp ult i32 %131, %133 | |
br i1 %134, label %if_10, label %end_if_10 | |
if_10: | |
%135 = getelementptr [3 x i32], ptr %stack.ptr_39, i32 0, i32 0 | |
%136 = getelementptr [2 x i32], ptr %117, i32 0, i32 0 | |
%137 = load i32, ptr %136 | |
store i32 %137, ptr %135 | |
%138 = getelementptr [3 x i32], ptr %stack.ptr_39, i32 0, i32 1 | |
%139 = getelementptr [2 x i32], ptr %129, i32 0, i32 0 | |
%140 = load i32, ptr %139 | |
store i32 %140, ptr %138 | |
%141 = getelementptr [3 x i32], ptr %stack.ptr_39, i32 0, i32 2 | |
%142 = getelementptr [2 x i32], ptr %117, i32 0, i32 1 | |
%143 = load i32, ptr %142 | |
store i32 %143, ptr %141 | |
%144 = getelementptr %program, ptr %arg_0, i32 0, i32 7 | |
%145 = call ccc i1 @eclair_btree_insert_value_0(ptr %144, ptr %stack.ptr_39) | |
br label %end_if_10 | |
end_if_10: | |
call ccc void @eclair_btree_iterator_next_7(ptr %stack.ptr_37) | |
br label %loop_8 | |
range_query.end_8: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_33) | |
br label %loop_7 | |
range_query.end_7: | |
%146 = getelementptr [2 x i32], ptr %stack.ptr_40, i32 0, i32 0 | |
store i32 0, ptr %146 | |
%147 = getelementptr [2 x i32], ptr %stack.ptr_40, i32 0, i32 1 | |
store i32 0, ptr %147 | |
%148 = getelementptr [2 x i32], ptr %stack.ptr_41, i32 0, i32 0 | |
store i32 4294967295, ptr %148 | |
%149 = getelementptr [2 x i32], ptr %stack.ptr_41, i32 0, i32 1 | |
store i32 4294967295, ptr %149 | |
%150 = getelementptr %program, ptr %arg_0, i32 0, i32 24 | |
call ccc void @eclair_btree_lower_bound_7(ptr %150, ptr %stack.ptr_40, ptr %stack.ptr_42) | |
%151 = getelementptr %program, ptr %arg_0, i32 0, i32 24 | |
call ccc void @eclair_btree_upper_bound_7(ptr %151, ptr %stack.ptr_41, ptr %stack.ptr_43) | |
br label %loop_9 | |
loop_9: | |
%152 = call ccc i1 @eclair_btree_iterator_is_equal_7(ptr %stack.ptr_42, ptr %stack.ptr_43) | |
br i1 %152, label %if_11, label %end_if_11 | |
if_11: | |
br label %range_query.end_9 | |
end_if_11: | |
%153 = call ccc ptr @eclair_btree_iterator_current_7(ptr %stack.ptr_42) | |
%154 = getelementptr [2 x i32], ptr %stack.ptr_44, i32 0, i32 0 | |
store i32 0, ptr %154 | |
%155 = getelementptr [2 x i32], ptr %stack.ptr_44, i32 0, i32 1 | |
%156 = getelementptr [2 x i32], ptr %153, i32 0, i32 1 | |
%157 = load i32, ptr %156 | |
store i32 %157, ptr %155 | |
%158 = getelementptr [2 x i32], ptr %stack.ptr_45, i32 0, i32 0 | |
store i32 4294967295, ptr %158 | |
%159 = getelementptr [2 x i32], ptr %stack.ptr_45, i32 0, i32 1 | |
%160 = getelementptr [2 x i32], ptr %153, i32 0, i32 1 | |
%161 = load i32, ptr %160 | |
store i32 %161, ptr %159 | |
%162 = getelementptr %program, ptr %arg_0, i32 0, i32 24 | |
call ccc void @eclair_btree_lower_bound_7(ptr %162, ptr %stack.ptr_44, ptr %stack.ptr_46) | |
%163 = getelementptr %program, ptr %arg_0, i32 0, i32 24 | |
call ccc void @eclair_btree_upper_bound_7(ptr %163, ptr %stack.ptr_45, ptr %stack.ptr_47) | |
br label %loop_10 | |
loop_10: | |
%164 = call ccc i1 @eclair_btree_iterator_is_equal_7(ptr %stack.ptr_46, ptr %stack.ptr_47) | |
br i1 %164, label %if_12, label %end_if_12 | |
if_12: | |
br label %range_query.end_10 | |
end_if_12: | |
%165 = call ccc ptr @eclair_btree_iterator_current_7(ptr %stack.ptr_46) | |
%166 = getelementptr [2 x i32], ptr %153, i32 0, i32 0 | |
%167 = load i32, ptr %166 | |
%168 = getelementptr [2 x i32], ptr %165, i32 0, i32 0 | |
%169 = load i32, ptr %168 | |
%170 = icmp ult i32 %167, %169 | |
br i1 %170, label %if_13, label %end_if_13 | |
if_13: | |
%171 = getelementptr [3 x i32], ptr %stack.ptr_48, i32 0, i32 0 | |
%172 = getelementptr [2 x i32], ptr %153, i32 0, i32 0 | |
%173 = load i32, ptr %172 | |
store i32 %173, ptr %171 | |
%174 = getelementptr [3 x i32], ptr %stack.ptr_48, i32 0, i32 1 | |
%175 = getelementptr [2 x i32], ptr %165, i32 0, i32 0 | |
%176 = load i32, ptr %175 | |
store i32 %176, ptr %174 | |
%177 = getelementptr [3 x i32], ptr %stack.ptr_48, i32 0, i32 2 | |
%178 = getelementptr [2 x i32], ptr %153, i32 0, i32 1 | |
%179 = load i32, ptr %178 | |
store i32 %179, ptr %177 | |
%180 = getelementptr %program, ptr %arg_0, i32 0, i32 7 | |
%181 = call ccc i1 @eclair_btree_insert_value_0(ptr %180, ptr %stack.ptr_48) | |
br label %end_if_13 | |
end_if_13: | |
call ccc void @eclair_btree_iterator_next_7(ptr %stack.ptr_46) | |
br label %loop_10 | |
range_query.end_10: | |
call ccc void @eclair_btree_iterator_next_7(ptr %stack.ptr_42) | |
br label %loop_9 | |
range_query.end_9: | |
%182 = getelementptr [2 x i32], ptr %stack.ptr_49, i32 0, i32 0 | |
store i32 0, ptr %182 | |
%183 = getelementptr [2 x i32], ptr %stack.ptr_49, i32 0, i32 1 | |
store i32 0, ptr %183 | |
%184 = getelementptr [2 x i32], ptr %stack.ptr_50, i32 0, i32 0 | |
store i32 4294967295, ptr %184 | |
%185 = getelementptr [2 x i32], ptr %stack.ptr_50, i32 0, i32 1 | |
store i32 4294967295, ptr %185 | |
%186 = getelementptr %program, ptr %arg_0, i32 0, i32 14 | |
call ccc void @eclair_btree_lower_bound_1(ptr %186, ptr %stack.ptr_49, ptr %stack.ptr_51) | |
%187 = getelementptr %program, ptr %arg_0, i32 0, i32 14 | |
call ccc void @eclair_btree_upper_bound_1(ptr %187, ptr %stack.ptr_50, ptr %stack.ptr_52) | |
br label %loop_11 | |
loop_11: | |
%188 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_51, ptr %stack.ptr_52) | |
br i1 %188, label %if_14, label %end_if_14 | |
if_14: | |
br label %range_query.end_11 | |
end_if_14: | |
%189 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_51) | |
%190 = getelementptr [2 x i32], ptr %stack.ptr_53, i32 0, i32 0 | |
store i32 0, ptr %190 | |
%191 = getelementptr [2 x i32], ptr %stack.ptr_53, i32 0, i32 1 | |
%192 = getelementptr [2 x i32], ptr %189, i32 0, i32 1 | |
%193 = load i32, ptr %192 | |
store i32 %193, ptr %191 | |
%194 = getelementptr [2 x i32], ptr %stack.ptr_54, i32 0, i32 0 | |
store i32 4294967295, ptr %194 | |
%195 = getelementptr [2 x i32], ptr %stack.ptr_54, i32 0, i32 1 | |
%196 = getelementptr [2 x i32], ptr %189, i32 0, i32 1 | |
%197 = load i32, ptr %196 | |
store i32 %197, ptr %195 | |
%198 = getelementptr %program, ptr %arg_0, i32 0, i32 15 | |
call ccc void @eclair_btree_lower_bound_2(ptr %198, ptr %stack.ptr_53, ptr %stack.ptr_55) | |
%199 = getelementptr %program, ptr %arg_0, i32 0, i32 15 | |
call ccc void @eclair_btree_upper_bound_2(ptr %199, ptr %stack.ptr_54, ptr %stack.ptr_56) | |
br label %loop_12 | |
loop_12: | |
%200 = call ccc i1 @eclair_btree_iterator_is_equal_2(ptr %stack.ptr_55, ptr %stack.ptr_56) | |
br i1 %200, label %if_15, label %end_if_15 | |
if_15: | |
br label %range_query.end_12 | |
end_if_15: | |
%201 = call ccc ptr @eclair_btree_iterator_current_2(ptr %stack.ptr_55) | |
%202 = getelementptr [2 x i32], ptr %189, i32 0, i32 0 | |
%203 = load i32, ptr %202 | |
%204 = getelementptr [2 x i32], ptr %201, i32 0, i32 0 | |
%205 = load i32, ptr %204 | |
%206 = icmp ult i32 %203, %205 | |
br i1 %206, label %if_16, label %end_if_16 | |
if_16: | |
%207 = getelementptr [3 x i32], ptr %stack.ptr_57, i32 0, i32 0 | |
%208 = getelementptr [2 x i32], ptr %189, i32 0, i32 0 | |
%209 = load i32, ptr %208 | |
store i32 %209, ptr %207 | |
%210 = getelementptr [3 x i32], ptr %stack.ptr_57, i32 0, i32 1 | |
%211 = getelementptr [2 x i32], ptr %201, i32 0, i32 0 | |
%212 = load i32, ptr %211 | |
store i32 %212, ptr %210 | |
%213 = getelementptr [3 x i32], ptr %stack.ptr_57, i32 0, i32 2 | |
%214 = getelementptr [2 x i32], ptr %189, i32 0, i32 1 | |
%215 = load i32, ptr %214 | |
store i32 %215, ptr %213 | |
%216 = getelementptr %program, ptr %arg_0, i32 0, i32 7 | |
%217 = call ccc i1 @eclair_btree_insert_value_0(ptr %216, ptr %stack.ptr_57) | |
br label %end_if_16 | |
end_if_16: | |
call ccc void @eclair_btree_iterator_next_2(ptr %stack.ptr_55) | |
br label %loop_12 | |
range_query.end_12: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_51) | |
br label %loop_11 | |
range_query.end_11: | |
%218 = getelementptr [2 x i32], ptr %stack.ptr_58, i32 0, i32 0 | |
store i32 0, ptr %218 | |
%219 = getelementptr [2 x i32], ptr %stack.ptr_58, i32 0, i32 1 | |
store i32 0, ptr %219 | |
%220 = getelementptr [2 x i32], ptr %stack.ptr_59, i32 0, i32 0 | |
store i32 4294967295, ptr %220 | |
%221 = getelementptr [2 x i32], ptr %stack.ptr_59, i32 0, i32 1 | |
store i32 4294967295, ptr %221 | |
%222 = getelementptr %program, ptr %arg_0, i32 0, i32 59 | |
call ccc void @eclair_btree_lower_bound_1(ptr %222, ptr %stack.ptr_58, ptr %stack.ptr_60) | |
%223 = getelementptr %program, ptr %arg_0, i32 0, i32 59 | |
call ccc void @eclair_btree_upper_bound_1(ptr %223, ptr %stack.ptr_59, ptr %stack.ptr_61) | |
br label %loop_13 | |
loop_13: | |
%224 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_60, ptr %stack.ptr_61) | |
br i1 %224, label %if_17, label %end_if_17 | |
if_17: | |
br label %range_query.end_13 | |
end_if_17: | |
%225 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_60) | |
%226 = getelementptr [2 x i32], ptr %stack.ptr_62, i32 0, i32 0 | |
%227 = getelementptr [2 x i32], ptr %225, i32 0, i32 1 | |
%228 = load i32, ptr %227 | |
store i32 %228, ptr %226 | |
%229 = getelementptr [2 x i32], ptr %stack.ptr_62, i32 0, i32 1 | |
store i32 0, ptr %229 | |
%230 = getelementptr [2 x i32], ptr %stack.ptr_63, i32 0, i32 0 | |
%231 = getelementptr [2 x i32], ptr %225, i32 0, i32 1 | |
%232 = load i32, ptr %231 | |
store i32 %232, ptr %230 | |
%233 = getelementptr [2 x i32], ptr %stack.ptr_63, i32 0, i32 1 | |
store i32 4294967295, ptr %233 | |
%234 = getelementptr %program, ptr %arg_0, i32 0, i32 35 | |
call ccc void @eclair_btree_lower_bound_1(ptr %234, ptr %stack.ptr_62, ptr %stack.ptr_64) | |
%235 = getelementptr %program, ptr %arg_0, i32 0, i32 35 | |
call ccc void @eclair_btree_upper_bound_1(ptr %235, ptr %stack.ptr_63, ptr %stack.ptr_65) | |
br label %loop_14 | |
loop_14: | |
%236 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_64, ptr %stack.ptr_65) | |
br i1 %236, label %if_18, label %end_if_18 | |
if_18: | |
br label %range_query.end_14 | |
end_if_18: | |
%237 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_64) | |
%238 = getelementptr [2 x i32], ptr %stack.ptr_66, i32 0, i32 0 | |
%239 = getelementptr [2 x i32], ptr %225, i32 0, i32 0 | |
%240 = load i32, ptr %239 | |
store i32 %240, ptr %238 | |
%241 = getelementptr [2 x i32], ptr %stack.ptr_66, i32 0, i32 1 | |
%242 = getelementptr [2 x i32], ptr %225, i32 0, i32 1 | |
%243 = load i32, ptr %242 | |
store i32 %243, ptr %241 | |
%244 = getelementptr %program, ptr %arg_0, i32 0, i32 27 | |
%245 = call ccc i1 @eclair_btree_insert_value_1(ptr %244, ptr %stack.ptr_66) | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_64) | |
br label %loop_14 | |
range_query.end_14: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_60) | |
br label %loop_13 | |
range_query.end_13: | |
%246 = getelementptr [2 x i32], ptr %stack.ptr_67, i32 0, i32 0 | |
store i32 0, ptr %246 | |
%247 = getelementptr [2 x i32], ptr %stack.ptr_67, i32 0, i32 1 | |
store i32 0, ptr %247 | |
%248 = getelementptr [2 x i32], ptr %stack.ptr_68, i32 0, i32 0 | |
store i32 4294967295, ptr %248 | |
%249 = getelementptr [2 x i32], ptr %stack.ptr_68, i32 0, i32 1 | |
store i32 4294967295, ptr %249 | |
%250 = getelementptr %program, ptr %arg_0, i32 0, i32 59 | |
call ccc void @eclair_btree_lower_bound_1(ptr %250, ptr %stack.ptr_67, ptr %stack.ptr_69) | |
%251 = getelementptr %program, ptr %arg_0, i32 0, i32 59 | |
call ccc void @eclair_btree_upper_bound_1(ptr %251, ptr %stack.ptr_68, ptr %stack.ptr_70) | |
br label %loop_15 | |
loop_15: | |
%252 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_69, ptr %stack.ptr_70) | |
br i1 %252, label %if_19, label %end_if_19 | |
if_19: | |
br label %range_query.end_15 | |
end_if_19: | |
%253 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_69) | |
%254 = getelementptr [2 x i32], ptr %stack.ptr_71, i32 0, i32 0 | |
%255 = getelementptr [2 x i32], ptr %253, i32 0, i32 1 | |
%256 = load i32, ptr %255 | |
store i32 %256, ptr %254 | |
%257 = getelementptr [2 x i32], ptr %stack.ptr_71, i32 0, i32 1 | |
store i32 0, ptr %257 | |
%258 = getelementptr [2 x i32], ptr %stack.ptr_72, i32 0, i32 0 | |
%259 = getelementptr [2 x i32], ptr %253, i32 0, i32 1 | |
%260 = load i32, ptr %259 | |
store i32 %260, ptr %258 | |
%261 = getelementptr [2 x i32], ptr %stack.ptr_72, i32 0, i32 1 | |
store i32 4294967295, ptr %261 | |
%262 = getelementptr %program, ptr %arg_0, i32 0, i32 34 | |
call ccc void @eclair_btree_lower_bound_1(ptr %262, ptr %stack.ptr_71, ptr %stack.ptr_73) | |
%263 = getelementptr %program, ptr %arg_0, i32 0, i32 34 | |
call ccc void @eclair_btree_upper_bound_1(ptr %263, ptr %stack.ptr_72, ptr %stack.ptr_74) | |
br label %loop_16 | |
loop_16: | |
%264 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_73, ptr %stack.ptr_74) | |
br i1 %264, label %if_20, label %end_if_20 | |
if_20: | |
br label %range_query.end_16 | |
end_if_20: | |
%265 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_73) | |
%266 = getelementptr [2 x i32], ptr %stack.ptr_75, i32 0, i32 0 | |
%267 = getelementptr [2 x i32], ptr %253, i32 0, i32 0 | |
%268 = load i32, ptr %267 | |
store i32 %268, ptr %266 | |
%269 = getelementptr [2 x i32], ptr %stack.ptr_75, i32 0, i32 1 | |
%270 = getelementptr [2 x i32], ptr %253, i32 0, i32 1 | |
%271 = load i32, ptr %270 | |
store i32 %271, ptr %269 | |
%272 = getelementptr %program, ptr %arg_0, i32 0, i32 27 | |
%273 = call ccc i1 @eclair_btree_insert_value_1(ptr %272, ptr %stack.ptr_75) | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_73) | |
br label %loop_16 | |
range_query.end_16: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_69) | |
br label %loop_15 | |
range_query.end_15: | |
%274 = getelementptr [3 x i32], ptr %stack.ptr_76, i32 0, i32 0 | |
store i32 0, ptr %274 | |
%275 = getelementptr [3 x i32], ptr %stack.ptr_76, i32 0, i32 1 | |
store i32 0, ptr %275 | |
%276 = getelementptr [3 x i32], ptr %stack.ptr_76, i32 0, i32 2 | |
store i32 0, ptr %276 | |
%277 = getelementptr [3 x i32], ptr %stack.ptr_77, i32 0, i32 0 | |
store i32 4294967295, ptr %277 | |
%278 = getelementptr [3 x i32], ptr %stack.ptr_77, i32 0, i32 1 | |
store i32 4294967295, ptr %278 | |
%279 = getelementptr [3 x i32], ptr %stack.ptr_77, i32 0, i32 2 | |
store i32 4294967295, ptr %279 | |
%280 = getelementptr %program, ptr %arg_0, i32 0, i32 52 | |
call ccc void @eclair_btree_lower_bound_0(ptr %280, ptr %stack.ptr_76, ptr %stack.ptr_78) | |
%281 = getelementptr %program, ptr %arg_0, i32 0, i32 52 | |
call ccc void @eclair_btree_upper_bound_0(ptr %281, ptr %stack.ptr_77, ptr %stack.ptr_79) | |
br label %loop_17 | |
loop_17: | |
%282 = call ccc i1 @eclair_btree_iterator_is_equal_0(ptr %stack.ptr_78, ptr %stack.ptr_79) | |
br i1 %282, label %if_21, label %end_if_21 | |
if_21: | |
br label %range_query.end_17 | |
end_if_21: | |
%283 = call ccc ptr @eclair_btree_iterator_current_0(ptr %stack.ptr_78) | |
%284 = getelementptr [2 x i32], ptr %stack.ptr_80, i32 0, i32 0 | |
%285 = getelementptr [3 x i32], ptr %283, i32 0, i32 2 | |
%286 = load i32, ptr %285 | |
store i32 %286, ptr %284 | |
%287 = getelementptr [2 x i32], ptr %stack.ptr_80, i32 0, i32 1 | |
store i32 0, ptr %287 | |
%288 = getelementptr [2 x i32], ptr %stack.ptr_81, i32 0, i32 0 | |
%289 = getelementptr [3 x i32], ptr %283, i32 0, i32 2 | |
%290 = load i32, ptr %289 | |
store i32 %290, ptr %288 | |
%291 = getelementptr [2 x i32], ptr %stack.ptr_81, i32 0, i32 1 | |
store i32 4294967295, ptr %291 | |
%292 = getelementptr %program, ptr %arg_0, i32 0, i32 66 | |
call ccc void @eclair_btree_lower_bound_1(ptr %292, ptr %stack.ptr_80, ptr %stack.ptr_82) | |
%293 = getelementptr %program, ptr %arg_0, i32 0, i32 66 | |
call ccc void @eclair_btree_upper_bound_1(ptr %293, ptr %stack.ptr_81, ptr %stack.ptr_83) | |
br label %loop_18 | |
loop_18: | |
%294 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_82, ptr %stack.ptr_83) | |
br i1 %294, label %if_22, label %end_if_22 | |
if_22: | |
br label %range_query.end_18 | |
end_if_22: | |
%295 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_82) | |
%296 = getelementptr [3 x i32], ptr %stack.ptr_84, i32 0, i32 0 | |
%297 = getelementptr [3 x i32], ptr %283, i32 0, i32 0 | |
%298 = load i32, ptr %297 | |
store i32 %298, ptr %296 | |
%299 = getelementptr [3 x i32], ptr %stack.ptr_84, i32 0, i32 1 | |
%300 = getelementptr [3 x i32], ptr %283, i32 0, i32 2 | |
%301 = load i32, ptr %300 | |
store i32 %301, ptr %299 | |
%302 = getelementptr [3 x i32], ptr %stack.ptr_84, i32 0, i32 2 | |
%303 = getelementptr [2 x i32], ptr %295, i32 0, i32 1 | |
%304 = load i32, ptr %303 | |
store i32 %304, ptr %302 | |
%305 = getelementptr %program, ptr %arg_0, i32 0, i32 55 | |
%306 = call ccc i1 @eclair_btree_insert_value_0(ptr %305, ptr %stack.ptr_84) | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_82) | |
br label %loop_18 | |
range_query.end_18: | |
call ccc void @eclair_btree_iterator_next_0(ptr %stack.ptr_78) | |
br label %loop_17 | |
range_query.end_17: | |
%307 = getelementptr [2 x i32], ptr %stack.ptr_85, i32 0, i32 0 | |
store i32 0, ptr %307 | |
%308 = getelementptr [2 x i32], ptr %stack.ptr_85, i32 0, i32 1 | |
store i32 0, ptr %308 | |
%309 = getelementptr [2 x i32], ptr %stack.ptr_86, i32 0, i32 0 | |
store i32 4294967295, ptr %309 | |
%310 = getelementptr [2 x i32], ptr %stack.ptr_86, i32 0, i32 1 | |
store i32 4294967295, ptr %310 | |
%311 = getelementptr %program, ptr %arg_0, i32 0, i32 35 | |
call ccc void @eclair_btree_lower_bound_1(ptr %311, ptr %stack.ptr_85, ptr %stack.ptr_87) | |
%312 = getelementptr %program, ptr %arg_0, i32 0, i32 35 | |
call ccc void @eclair_btree_upper_bound_1(ptr %312, ptr %stack.ptr_86, ptr %stack.ptr_88) | |
br label %loop_19 | |
loop_19: | |
%313 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_87, ptr %stack.ptr_88) | |
br i1 %313, label %if_23, label %end_if_23 | |
if_23: | |
br label %range_query.end_19 | |
end_if_23: | |
%314 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_87) | |
%315 = getelementptr [2 x i32], ptr %stack.ptr_89, i32 0, i32 0 | |
store i32 0, ptr %315 | |
%316 = getelementptr [2 x i32], ptr %stack.ptr_89, i32 0, i32 1 | |
store i32 0, ptr %316 | |
%317 = getelementptr [2 x i32], ptr %stack.ptr_90, i32 0, i32 0 | |
store i32 4294967295, ptr %317 | |
%318 = getelementptr [2 x i32], ptr %stack.ptr_90, i32 0, i32 1 | |
store i32 4294967295, ptr %318 | |
%319 = getelementptr %program, ptr %arg_0, i32 0, i32 35 | |
call ccc void @eclair_btree_lower_bound_1(ptr %319, ptr %stack.ptr_89, ptr %stack.ptr_91) | |
%320 = getelementptr %program, ptr %arg_0, i32 0, i32 35 | |
call ccc void @eclair_btree_upper_bound_1(ptr %320, ptr %stack.ptr_90, ptr %stack.ptr_92) | |
br label %loop_20 | |
loop_20: | |
%321 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_91, ptr %stack.ptr_92) | |
br i1 %321, label %if_24, label %end_if_24 | |
if_24: | |
br label %range_query.end_20 | |
end_if_24: | |
%322 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_91) | |
%323 = getelementptr [2 x i32], ptr %314, i32 0, i32 1 | |
%324 = load i32, ptr %323 | |
%325 = getelementptr [2 x i32], ptr %322, i32 0, i32 1 | |
%326 = load i32, ptr %325 | |
%327 = icmp ne i32 %324, %326 | |
br i1 %327, label %if_25, label %end_if_25 | |
if_25: | |
%328 = getelementptr [2 x i32], ptr %stack.ptr_93, i32 0, i32 0 | |
%329 = getelementptr [2 x i32], ptr %314, i32 0, i32 0 | |
%330 = load i32, ptr %329 | |
store i32 %330, ptr %328 | |
%331 = getelementptr [2 x i32], ptr %stack.ptr_93, i32 0, i32 1 | |
%332 = getelementptr [2 x i32], ptr %322, i32 0, i32 0 | |
%333 = load i32, ptr %332 | |
store i32 %333, ptr %331 | |
%334 = getelementptr %program, ptr %arg_0, i32 0, i32 36 | |
%335 = call ccc i1 @eclair_btree_insert_value_1(ptr %334, ptr %stack.ptr_93) | |
br label %end_if_25 | |
end_if_25: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_91) | |
br label %loop_20 | |
range_query.end_20: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_87) | |
br label %loop_19 | |
range_query.end_19: | |
%336 = getelementptr [2 x i32], ptr %stack.ptr_94, i32 0, i32 0 | |
store i32 0, ptr %336 | |
%337 = getelementptr [2 x i32], ptr %stack.ptr_94, i32 0, i32 1 | |
store i32 0, ptr %337 | |
%338 = getelementptr [2 x i32], ptr %stack.ptr_95, i32 0, i32 0 | |
store i32 4294967295, ptr %338 | |
%339 = getelementptr [2 x i32], ptr %stack.ptr_95, i32 0, i32 1 | |
store i32 4294967295, ptr %339 | |
%340 = getelementptr %program, ptr %arg_0, i32 0, i32 34 | |
call ccc void @eclair_btree_lower_bound_1(ptr %340, ptr %stack.ptr_94, ptr %stack.ptr_96) | |
%341 = getelementptr %program, ptr %arg_0, i32 0, i32 34 | |
call ccc void @eclair_btree_upper_bound_1(ptr %341, ptr %stack.ptr_95, ptr %stack.ptr_97) | |
br label %loop_21 | |
loop_21: | |
%342 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_96, ptr %stack.ptr_97) | |
br i1 %342, label %if_26, label %end_if_26 | |
if_26: | |
br label %range_query.end_21 | |
end_if_26: | |
%343 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_96) | |
%344 = getelementptr [2 x i32], ptr %stack.ptr_98, i32 0, i32 0 | |
store i32 0, ptr %344 | |
%345 = getelementptr [2 x i32], ptr %stack.ptr_98, i32 0, i32 1 | |
store i32 0, ptr %345 | |
%346 = getelementptr [2 x i32], ptr %stack.ptr_99, i32 0, i32 0 | |
store i32 4294967295, ptr %346 | |
%347 = getelementptr [2 x i32], ptr %stack.ptr_99, i32 0, i32 1 | |
store i32 4294967295, ptr %347 | |
%348 = getelementptr %program, ptr %arg_0, i32 0, i32 34 | |
call ccc void @eclair_btree_lower_bound_1(ptr %348, ptr %stack.ptr_98, ptr %stack.ptr_100) | |
%349 = getelementptr %program, ptr %arg_0, i32 0, i32 34 | |
call ccc void @eclair_btree_upper_bound_1(ptr %349, ptr %stack.ptr_99, ptr %stack.ptr_101) | |
br label %loop_22 | |
loop_22: | |
%350 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_100, ptr %stack.ptr_101) | |
br i1 %350, label %if_27, label %end_if_27 | |
if_27: | |
br label %range_query.end_22 | |
end_if_27: | |
%351 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_100) | |
%352 = getelementptr [2 x i32], ptr %343, i32 0, i32 1 | |
%353 = load i32, ptr %352 | |
%354 = getelementptr [2 x i32], ptr %351, i32 0, i32 1 | |
%355 = load i32, ptr %354 | |
%356 = icmp ne i32 %353, %355 | |
br i1 %356, label %if_28, label %end_if_28 | |
if_28: | |
%357 = getelementptr [2 x i32], ptr %stack.ptr_102, i32 0, i32 0 | |
%358 = getelementptr [2 x i32], ptr %343, i32 0, i32 0 | |
%359 = load i32, ptr %358 | |
store i32 %359, ptr %357 | |
%360 = getelementptr [2 x i32], ptr %stack.ptr_102, i32 0, i32 1 | |
%361 = getelementptr [2 x i32], ptr %351, i32 0, i32 0 | |
%362 = load i32, ptr %361 | |
store i32 %362, ptr %360 | |
%363 = getelementptr %program, ptr %arg_0, i32 0, i32 36 | |
%364 = call ccc i1 @eclair_btree_insert_value_1(ptr %363, ptr %stack.ptr_102) | |
br label %end_if_28 | |
end_if_28: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_100) | |
br label %loop_22 | |
range_query.end_22: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_96) | |
br label %loop_21 | |
range_query.end_21: | |
%365 = getelementptr [2 x i32], ptr %stack.ptr_103, i32 0, i32 0 | |
store i32 0, ptr %365 | |
%366 = getelementptr [2 x i32], ptr %stack.ptr_103, i32 0, i32 1 | |
store i32 0, ptr %366 | |
%367 = getelementptr [2 x i32], ptr %stack.ptr_104, i32 0, i32 0 | |
store i32 4294967295, ptr %367 | |
%368 = getelementptr [2 x i32], ptr %stack.ptr_104, i32 0, i32 1 | |
store i32 4294967295, ptr %368 | |
%369 = getelementptr %program, ptr %arg_0, i32 0, i32 59 | |
call ccc void @eclair_btree_lower_bound_1(ptr %369, ptr %stack.ptr_103, ptr %stack.ptr_105) | |
%370 = getelementptr %program, ptr %arg_0, i32 0, i32 59 | |
call ccc void @eclair_btree_upper_bound_1(ptr %370, ptr %stack.ptr_104, ptr %stack.ptr_106) | |
br label %loop_23 | |
loop_23: | |
%371 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_105, ptr %stack.ptr_106) | |
br i1 %371, label %if_29, label %end_if_29 | |
if_29: | |
br label %range_query.end_23 | |
end_if_29: | |
%372 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_105) | |
%373 = getelementptr [2 x i32], ptr %stack.ptr_107, i32 0, i32 0 | |
%374 = getelementptr [2 x i32], ptr %372, i32 0, i32 1 | |
%375 = load i32, ptr %374 | |
store i32 %375, ptr %373 | |
%376 = getelementptr [2 x i32], ptr %stack.ptr_107, i32 0, i32 1 | |
store i32 0, ptr %376 | |
%377 = getelementptr [2 x i32], ptr %stack.ptr_108, i32 0, i32 0 | |
%378 = getelementptr [2 x i32], ptr %372, i32 0, i32 1 | |
%379 = load i32, ptr %378 | |
store i32 %379, ptr %377 | |
%380 = getelementptr [2 x i32], ptr %stack.ptr_108, i32 0, i32 1 | |
store i32 4294967295, ptr %380 | |
%381 = getelementptr %program, ptr %arg_0, i32 0, i32 66 | |
call ccc void @eclair_btree_lower_bound_1(ptr %381, ptr %stack.ptr_107, ptr %stack.ptr_109) | |
%382 = getelementptr %program, ptr %arg_0, i32 0, i32 66 | |
call ccc void @eclair_btree_upper_bound_1(ptr %382, ptr %stack.ptr_108, ptr %stack.ptr_110) | |
br label %loop_24 | |
loop_24: | |
%383 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_109, ptr %stack.ptr_110) | |
br i1 %383, label %if_30, label %end_if_30 | |
if_30: | |
br label %range_query.end_24 | |
end_if_30: | |
%384 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_109) | |
%385 = getelementptr [2 x i32], ptr %stack.ptr_111, i32 0, i32 0 | |
%386 = getelementptr [2 x i32], ptr %372, i32 0, i32 0 | |
%387 = load i32, ptr %386 | |
store i32 %387, ptr %385 | |
%388 = getelementptr [2 x i32], ptr %stack.ptr_111, i32 0, i32 1 | |
store i32 0, ptr %388 | |
%389 = getelementptr [2 x i32], ptr %stack.ptr_112, i32 0, i32 0 | |
%390 = getelementptr [2 x i32], ptr %372, i32 0, i32 0 | |
%391 = load i32, ptr %390 | |
store i32 %391, ptr %389 | |
%392 = getelementptr [2 x i32], ptr %stack.ptr_112, i32 0, i32 1 | |
store i32 4294967295, ptr %392 | |
%393 = getelementptr %program, ptr %arg_0, i32 0, i32 59 | |
call ccc void @eclair_btree_lower_bound_1(ptr %393, ptr %stack.ptr_111, ptr %stack.ptr_113) | |
%394 = getelementptr %program, ptr %arg_0, i32 0, i32 59 | |
call ccc void @eclair_btree_upper_bound_1(ptr %394, ptr %stack.ptr_112, ptr %stack.ptr_114) | |
br label %loop_25 | |
loop_25: | |
%395 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_113, ptr %stack.ptr_114) | |
br i1 %395, label %if_31, label %end_if_31 | |
if_31: | |
br label %range_query.end_25 | |
end_if_31: | |
%396 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_113) | |
%397 = getelementptr [2 x i32], ptr %372, i32 0, i32 1 | |
%398 = load i32, ptr %397 | |
%399 = getelementptr [2 x i32], ptr %396, i32 0, i32 1 | |
%400 = load i32, ptr %399 | |
%401 = icmp ne i32 %398, %400 | |
br i1 %401, label %if_32, label %end_if_33 | |
if_32: | |
%402 = getelementptr [2 x i32], ptr %stack.ptr_115, i32 0, i32 0 | |
%403 = getelementptr [2 x i32], ptr %396, i32 0, i32 1 | |
%404 = load i32, ptr %403 | |
store i32 %404, ptr %402 | |
%405 = getelementptr [2 x i32], ptr %stack.ptr_115, i32 0, i32 1 | |
%406 = getelementptr [2 x i32], ptr %384, i32 0, i32 1 | |
%407 = load i32, ptr %406 | |
store i32 %407, ptr %405 | |
%408 = getelementptr [2 x i32], ptr %stack.ptr_116, i32 0, i32 0 | |
%409 = getelementptr [2 x i32], ptr %396, i32 0, i32 1 | |
%410 = load i32, ptr %409 | |
store i32 %410, ptr %408 | |
%411 = getelementptr [2 x i32], ptr %stack.ptr_116, i32 0, i32 1 | |
%412 = getelementptr [2 x i32], ptr %384, i32 0, i32 1 | |
%413 = load i32, ptr %412 | |
store i32 %413, ptr %411 | |
%414 = getelementptr %program, ptr %arg_0, i32 0, i32 66 | |
call ccc void @eclair_btree_lower_bound_1(ptr %414, ptr %stack.ptr_115, ptr %stack.ptr_117) | |
%415 = getelementptr %program, ptr %arg_0, i32 0, i32 66 | |
call ccc void @eclair_btree_upper_bound_1(ptr %415, ptr %stack.ptr_116, ptr %stack.ptr_118) | |
br label %loop_26 | |
loop_26: | |
%416 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_117, ptr %stack.ptr_118) | |
br i1 %416, label %if_33, label %end_if_32 | |
if_33: | |
br label %range_query.end_26 | |
end_if_32: | |
%417 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_117) | |
%418 = getelementptr [3 x i32], ptr %stack.ptr_119, i32 0, i32 0 | |
%419 = getelementptr [2 x i32], ptr %372, i32 0, i32 0 | |
%420 = load i32, ptr %419 | |
store i32 %420, ptr %418 | |
%421 = getelementptr [3 x i32], ptr %stack.ptr_119, i32 0, i32 1 | |
%422 = getelementptr [2 x i32], ptr %372, i32 0, i32 1 | |
%423 = load i32, ptr %422 | |
store i32 %423, ptr %421 | |
%424 = getelementptr [3 x i32], ptr %stack.ptr_119, i32 0, i32 2 | |
%425 = getelementptr [2 x i32], ptr %396, i32 0, i32 1 | |
%426 = load i32, ptr %425 | |
store i32 %426, ptr %424 | |
%427 = getelementptr %program, ptr %arg_0, i32 0, i32 1 | |
%428 = call ccc i1 @eclair_btree_insert_value_0(ptr %427, ptr %stack.ptr_119) | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_117) | |
br label %loop_26 | |
range_query.end_26: | |
br label %end_if_33 | |
end_if_33: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_113) | |
br label %loop_25 | |
range_query.end_25: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_109) | |
br label %loop_24 | |
range_query.end_24: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_105) | |
br label %loop_23 | |
range_query.end_23: | |
%429 = getelementptr [4 x i32], ptr %stack.ptr_120, i32 0, i32 0 | |
store i32 0, ptr %429 | |
%430 = getelementptr [4 x i32], ptr %stack.ptr_120, i32 0, i32 1 | |
store i32 60, ptr %430 | |
%431 = getelementptr [4 x i32], ptr %stack.ptr_120, i32 0, i32 2 | |
store i32 0, ptr %431 | |
%432 = getelementptr [4 x i32], ptr %stack.ptr_120, i32 0, i32 3 | |
store i32 0, ptr %432 | |
%433 = getelementptr [4 x i32], ptr %stack.ptr_121, i32 0, i32 0 | |
store i32 4294967295, ptr %433 | |
%434 = getelementptr [4 x i32], ptr %stack.ptr_121, i32 0, i32 1 | |
store i32 60, ptr %434 | |
%435 = getelementptr [4 x i32], ptr %stack.ptr_121, i32 0, i32 2 | |
store i32 4294967295, ptr %435 | |
%436 = getelementptr [4 x i32], ptr %stack.ptr_121, i32 0, i32 3 | |
store i32 4294967295, ptr %436 | |
%437 = getelementptr %program, ptr %arg_0, i32 0, i32 10 | |
call ccc void @eclair_btree_lower_bound_5(ptr %437, ptr %stack.ptr_120, ptr %stack.ptr_122) | |
%438 = getelementptr %program, ptr %arg_0, i32 0, i32 10 | |
call ccc void @eclair_btree_upper_bound_5(ptr %438, ptr %stack.ptr_121, ptr %stack.ptr_123) | |
br label %loop_27 | |
loop_27: | |
%439 = call ccc i1 @eclair_btree_iterator_is_equal_5(ptr %stack.ptr_122, ptr %stack.ptr_123) | |
br i1 %439, label %if_34, label %end_if_34 | |
if_34: | |
br label %range_query.end_27 | |
end_if_34: | |
%440 = call ccc ptr @eclair_btree_iterator_current_5(ptr %stack.ptr_122) | |
%441 = getelementptr [3 x i32], ptr %stack.ptr_124, i32 0, i32 0 | |
%442 = getelementptr [4 x i32], ptr %440, i32 0, i32 0 | |
%443 = load i32, ptr %442 | |
store i32 %443, ptr %441 | |
%444 = getelementptr [3 x i32], ptr %stack.ptr_124, i32 0, i32 1 | |
%445 = getelementptr [4 x i32], ptr %440, i32 0, i32 2 | |
%446 = load i32, ptr %445 | |
store i32 %446, ptr %444 | |
%447 = getelementptr [3 x i32], ptr %stack.ptr_124, i32 0, i32 2 | |
%448 = getelementptr [4 x i32], ptr %440, i32 0, i32 3 | |
%449 = load i32, ptr %448 | |
store i32 %449, ptr %447 | |
%450 = getelementptr %program, ptr %arg_0, i32 0, i32 2 | |
%451 = call ccc i1 @eclair_btree_insert_value_0(ptr %450, ptr %stack.ptr_124) | |
call ccc void @eclair_btree_iterator_next_5(ptr %stack.ptr_122) | |
br label %loop_27 | |
range_query.end_27: | |
%452 = getelementptr [3 x i32], ptr %stack.ptr_125, i32 0, i32 0 | |
store i32 0, ptr %452 | |
%453 = getelementptr [3 x i32], ptr %stack.ptr_125, i32 0, i32 1 | |
store i32 0, ptr %453 | |
%454 = getelementptr [3 x i32], ptr %stack.ptr_125, i32 0, i32 2 | |
store i32 0, ptr %454 | |
%455 = getelementptr [3 x i32], ptr %stack.ptr_126, i32 0, i32 0 | |
store i32 4294967295, ptr %455 | |
%456 = getelementptr [3 x i32], ptr %stack.ptr_126, i32 0, i32 1 | |
store i32 4294967295, ptr %456 | |
%457 = getelementptr [3 x i32], ptr %stack.ptr_126, i32 0, i32 2 | |
store i32 4294967295, ptr %457 | |
%458 = getelementptr %program, ptr %arg_0, i32 0, i32 53 | |
call ccc void @eclair_btree_lower_bound_0(ptr %458, ptr %stack.ptr_125, ptr %stack.ptr_127) | |
%459 = getelementptr %program, ptr %arg_0, i32 0, i32 53 | |
call ccc void @eclair_btree_upper_bound_0(ptr %459, ptr %stack.ptr_126, ptr %stack.ptr_128) | |
br label %loop_28 | |
loop_28: | |
%460 = call ccc i1 @eclair_btree_iterator_is_equal_0(ptr %stack.ptr_127, ptr %stack.ptr_128) | |
br i1 %460, label %if_35, label %end_if_35 | |
if_35: | |
br label %range_query.end_28 | |
end_if_35: | |
%461 = call ccc ptr @eclair_btree_iterator_current_0(ptr %stack.ptr_127) | |
%462 = getelementptr [3 x i32], ptr %stack.ptr_129, i32 0, i32 0 | |
%463 = getelementptr [3 x i32], ptr %461, i32 0, i32 2 | |
%464 = load i32, ptr %463 | |
store i32 %464, ptr %462 | |
%465 = getelementptr [3 x i32], ptr %stack.ptr_129, i32 0, i32 1 | |
store i32 0, ptr %465 | |
%466 = getelementptr [3 x i32], ptr %stack.ptr_129, i32 0, i32 2 | |
store i32 0, ptr %466 | |
%467 = getelementptr [3 x i32], ptr %stack.ptr_130, i32 0, i32 0 | |
%468 = getelementptr [3 x i32], ptr %461, i32 0, i32 2 | |
%469 = load i32, ptr %468 | |
store i32 %469, ptr %467 | |
%470 = getelementptr [3 x i32], ptr %stack.ptr_130, i32 0, i32 1 | |
store i32 4294967295, ptr %470 | |
%471 = getelementptr [3 x i32], ptr %stack.ptr_130, i32 0, i32 2 | |
store i32 4294967295, ptr %471 | |
%472 = getelementptr %program, ptr %arg_0, i32 0, i32 2 | |
call ccc void @eclair_btree_lower_bound_0(ptr %472, ptr %stack.ptr_129, ptr %stack.ptr_131) | |
%473 = getelementptr %program, ptr %arg_0, i32 0, i32 2 | |
call ccc void @eclair_btree_upper_bound_0(ptr %473, ptr %stack.ptr_130, ptr %stack.ptr_132) | |
br label %loop_29 | |
loop_29: | |
%474 = call ccc i1 @eclair_btree_iterator_is_equal_0(ptr %stack.ptr_131, ptr %stack.ptr_132) | |
br i1 %474, label %if_36, label %end_if_36 | |
if_36: | |
br label %range_query.end_29 | |
end_if_36: | |
%475 = call ccc ptr @eclair_btree_iterator_current_0(ptr %stack.ptr_131) | |
%476 = getelementptr [3 x i32], ptr %stack.ptr_133, i32 0, i32 0 | |
%477 = getelementptr [3 x i32], ptr %461, i32 0, i32 0 | |
%478 = load i32, ptr %477 | |
store i32 %478, ptr %476 | |
%479 = getelementptr [3 x i32], ptr %stack.ptr_133, i32 0, i32 1 | |
%480 = getelementptr [3 x i32], ptr %475, i32 0, i32 1 | |
%481 = load i32, ptr %480 | |
store i32 %481, ptr %479 | |
%482 = getelementptr [3 x i32], ptr %stack.ptr_133, i32 0, i32 2 | |
%483 = getelementptr [3 x i32], ptr %475, i32 0, i32 2 | |
%484 = load i32, ptr %483 | |
store i32 %484, ptr %482 | |
%485 = getelementptr %program, ptr %arg_0, i32 0, i32 1 | |
%486 = call ccc i1 @eclair_btree_insert_value_0(ptr %485, ptr %stack.ptr_133) | |
call ccc void @eclair_btree_iterator_next_0(ptr %stack.ptr_131) | |
br label %loop_29 | |
range_query.end_29: | |
call ccc void @eclair_btree_iterator_next_0(ptr %stack.ptr_127) | |
br label %loop_28 | |
range_query.end_28: | |
%487 = getelementptr [3 x i32], ptr %stack.ptr_134, i32 0, i32 0 | |
store i32 0, ptr %487 | |
%488 = getelementptr [3 x i32], ptr %stack.ptr_134, i32 0, i32 1 | |
store i32 0, ptr %488 | |
%489 = getelementptr [3 x i32], ptr %stack.ptr_134, i32 0, i32 2 | |
store i32 0, ptr %489 | |
%490 = getelementptr [3 x i32], ptr %stack.ptr_135, i32 0, i32 0 | |
store i32 4294967295, ptr %490 | |
%491 = getelementptr [3 x i32], ptr %stack.ptr_135, i32 0, i32 1 | |
store i32 4294967295, ptr %491 | |
%492 = getelementptr [3 x i32], ptr %stack.ptr_135, i32 0, i32 2 | |
store i32 4294967295, ptr %492 | |
%493 = getelementptr %program, ptr %arg_0, i32 0, i32 53 | |
call ccc void @eclair_btree_lower_bound_0(ptr %493, ptr %stack.ptr_134, ptr %stack.ptr_136) | |
%494 = getelementptr %program, ptr %arg_0, i32 0, i32 53 | |
call ccc void @eclair_btree_upper_bound_0(ptr %494, ptr %stack.ptr_135, ptr %stack.ptr_137) | |
br label %loop_30 | |
loop_30: | |
%495 = call ccc i1 @eclair_btree_iterator_is_equal_0(ptr %stack.ptr_136, ptr %stack.ptr_137) | |
br i1 %495, label %if_37, label %end_if_37 | |
if_37: | |
br label %range_query.end_30 | |
end_if_37: | |
%496 = call ccc ptr @eclair_btree_iterator_current_0(ptr %stack.ptr_136) | |
%497 = getelementptr [3 x i32], ptr %stack.ptr_138, i32 0, i32 0 | |
%498 = getelementptr [3 x i32], ptr %496, i32 0, i32 2 | |
%499 = load i32, ptr %498 | |
store i32 %499, ptr %497 | |
%500 = getelementptr [3 x i32], ptr %stack.ptr_138, i32 0, i32 1 | |
store i32 0, ptr %500 | |
%501 = getelementptr [3 x i32], ptr %stack.ptr_138, i32 0, i32 2 | |
store i32 0, ptr %501 | |
%502 = getelementptr [3 x i32], ptr %stack.ptr_139, i32 0, i32 0 | |
%503 = getelementptr [3 x i32], ptr %496, i32 0, i32 2 | |
%504 = load i32, ptr %503 | |
store i32 %504, ptr %502 | |
%505 = getelementptr [3 x i32], ptr %stack.ptr_139, i32 0, i32 1 | |
store i32 4294967295, ptr %505 | |
%506 = getelementptr [3 x i32], ptr %stack.ptr_139, i32 0, i32 2 | |
store i32 4294967295, ptr %506 | |
%507 = getelementptr %program, ptr %arg_0, i32 0, i32 2 | |
call ccc void @eclair_btree_lower_bound_0(ptr %507, ptr %stack.ptr_138, ptr %stack.ptr_140) | |
%508 = getelementptr %program, ptr %arg_0, i32 0, i32 2 | |
call ccc void @eclair_btree_upper_bound_0(ptr %508, ptr %stack.ptr_139, ptr %stack.ptr_141) | |
br label %loop_31 | |
loop_31: | |
%509 = call ccc i1 @eclair_btree_iterator_is_equal_0(ptr %stack.ptr_140, ptr %stack.ptr_141) | |
br i1 %509, label %if_38, label %end_if_38 | |
if_38: | |
br label %range_query.end_31 | |
end_if_38: | |
%510 = call ccc ptr @eclair_btree_iterator_current_0(ptr %stack.ptr_140) | |
%511 = getelementptr [3 x i32], ptr %stack.ptr_142, i32 0, i32 0 | |
%512 = getelementptr [3 x i32], ptr %496, i32 0, i32 0 | |
%513 = load i32, ptr %512 | |
store i32 %513, ptr %511 | |
%514 = getelementptr [3 x i32], ptr %stack.ptr_142, i32 0, i32 1 | |
%515 = getelementptr [3 x i32], ptr %510, i32 0, i32 2 | |
%516 = load i32, ptr %515 | |
store i32 %516, ptr %514 | |
%517 = getelementptr [3 x i32], ptr %stack.ptr_142, i32 0, i32 2 | |
%518 = getelementptr [3 x i32], ptr %510, i32 0, i32 1 | |
%519 = load i32, ptr %518 | |
store i32 %519, ptr %517 | |
%520 = getelementptr %program, ptr %arg_0, i32 0, i32 1 | |
%521 = call ccc i1 @eclair_btree_insert_value_0(ptr %520, ptr %stack.ptr_142) | |
call ccc void @eclair_btree_iterator_next_0(ptr %stack.ptr_140) | |
br label %loop_31 | |
range_query.end_31: | |
call ccc void @eclair_btree_iterator_next_0(ptr %stack.ptr_136) | |
br label %loop_30 | |
range_query.end_30: | |
%522 = getelementptr [3 x i32], ptr %stack.ptr_143, i32 0, i32 0 | |
store i32 0, ptr %522 | |
%523 = getelementptr [3 x i32], ptr %stack.ptr_143, i32 0, i32 1 | |
store i32 0, ptr %523 | |
%524 = getelementptr [3 x i32], ptr %stack.ptr_143, i32 0, i32 2 | |
store i32 0, ptr %524 | |
%525 = getelementptr [3 x i32], ptr %stack.ptr_144, i32 0, i32 0 | |
store i32 4294967295, ptr %525 | |
%526 = getelementptr [3 x i32], ptr %stack.ptr_144, i32 0, i32 1 | |
store i32 4294967295, ptr %526 | |
%527 = getelementptr [3 x i32], ptr %stack.ptr_144, i32 0, i32 2 | |
store i32 4294967295, ptr %527 | |
%528 = getelementptr %program, ptr %arg_0, i32 0, i32 1 | |
call ccc void @eclair_btree_lower_bound_0(ptr %528, ptr %stack.ptr_143, ptr %stack.ptr_145) | |
%529 = getelementptr %program, ptr %arg_0, i32 0, i32 1 | |
call ccc void @eclair_btree_upper_bound_0(ptr %529, ptr %stack.ptr_144, ptr %stack.ptr_146) | |
br label %loop_32 | |
loop_32: | |
%530 = call ccc i1 @eclair_btree_iterator_is_equal_0(ptr %stack.ptr_145, ptr %stack.ptr_146) | |
br i1 %530, label %if_39, label %end_if_39 | |
if_39: | |
br label %range_query.end_32 | |
end_if_39: | |
%531 = call ccc ptr @eclair_btree_iterator_current_0(ptr %stack.ptr_145) | |
%532 = getelementptr [2 x i32], ptr %stack.ptr_147, i32 0, i32 0 | |
%533 = getelementptr [3 x i32], ptr %531, i32 0, i32 1 | |
%534 = load i32, ptr %533 | |
store i32 %534, ptr %532 | |
%535 = getelementptr [2 x i32], ptr %stack.ptr_147, i32 0, i32 1 | |
store i32 0, ptr %535 | |
%536 = getelementptr [2 x i32], ptr %stack.ptr_148, i32 0, i32 0 | |
%537 = getelementptr [3 x i32], ptr %531, i32 0, i32 1 | |
%538 = load i32, ptr %537 | |
store i32 %538, ptr %536 | |
%539 = getelementptr [2 x i32], ptr %stack.ptr_148, i32 0, i32 1 | |
store i32 4294967295, ptr %539 | |
%540 = getelementptr %program, ptr %arg_0, i32 0, i32 66 | |
call ccc void @eclair_btree_lower_bound_1(ptr %540, ptr %stack.ptr_147, ptr %stack.ptr_149) | |
%541 = getelementptr %program, ptr %arg_0, i32 0, i32 66 | |
call ccc void @eclair_btree_upper_bound_1(ptr %541, ptr %stack.ptr_148, ptr %stack.ptr_150) | |
br label %loop_33 | |
loop_33: | |
%542 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_149, ptr %stack.ptr_150) | |
br i1 %542, label %if_40, label %end_if_40 | |
if_40: | |
br label %range_query.end_33 | |
end_if_40: | |
%543 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_149) | |
%544 = getelementptr [3 x i32], ptr %stack.ptr_151, i32 0, i32 0 | |
%545 = getelementptr [3 x i32], ptr %531, i32 0, i32 0 | |
%546 = load i32, ptr %545 | |
store i32 %546, ptr %544 | |
%547 = getelementptr [3 x i32], ptr %stack.ptr_151, i32 0, i32 1 | |
%548 = getelementptr [3 x i32], ptr %531, i32 0, i32 1 | |
%549 = load i32, ptr %548 | |
store i32 %549, ptr %547 | |
%550 = getelementptr [3 x i32], ptr %stack.ptr_151, i32 0, i32 2 | |
%551 = getelementptr [3 x i32], ptr %531, i32 0, i32 2 | |
%552 = load i32, ptr %551 | |
store i32 %552, ptr %550 | |
%553 = getelementptr %program, ptr %arg_0, i32 0, i32 48 | |
%554 = call ccc i1 @eclair_btree_insert_value_0(ptr %553, ptr %stack.ptr_151) | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_149) | |
br label %loop_33 | |
range_query.end_33: | |
call ccc void @eclair_btree_iterator_next_0(ptr %stack.ptr_145) | |
br label %loop_32 | |
range_query.end_32: | |
%555 = getelementptr %program, ptr %arg_0, i32 0, i32 48 | |
call ccc void @eclair_btree_begin_0(ptr %555, ptr %stack.ptr_152) | |
%556 = getelementptr %program, ptr %arg_0, i32 0, i32 48 | |
call ccc void @eclair_btree_end_0(ptr %556, ptr %stack.ptr_153) | |
%557 = getelementptr %program, ptr %arg_0, i32 0, i32 19 | |
call ccc void @eclair_btree_insert_range_delta_points_to_points_to(ptr %557, ptr %stack.ptr_152, ptr %stack.ptr_153) | |
br label %loop_34 | |
loop_34: | |
%558 = getelementptr %program, ptr %arg_0, i32 0, i32 44 | |
call ccc void @eclair_btree_clear_0(ptr %558) | |
%559 = getelementptr [3 x i32], ptr %stack.ptr_154, i32 0, i32 0 | |
store i32 0, ptr %559 | |
%560 = getelementptr [3 x i32], ptr %stack.ptr_154, i32 0, i32 1 | |
store i32 0, ptr %560 | |
%561 = getelementptr [3 x i32], ptr %stack.ptr_154, i32 0, i32 2 | |
store i32 0, ptr %561 | |
%562 = getelementptr [3 x i32], ptr %stack.ptr_155, i32 0, i32 0 | |
store i32 4294967295, ptr %562 | |
%563 = getelementptr [3 x i32], ptr %stack.ptr_155, i32 0, i32 1 | |
store i32 4294967295, ptr %563 | |
%564 = getelementptr [3 x i32], ptr %stack.ptr_155, i32 0, i32 2 | |
store i32 4294967295, ptr %564 | |
%565 = getelementptr %program, ptr %arg_0, i32 0, i32 19 | |
call ccc void @eclair_btree_lower_bound_0(ptr %565, ptr %stack.ptr_154, ptr %stack.ptr_156) | |
%566 = getelementptr %program, ptr %arg_0, i32 0, i32 19 | |
call ccc void @eclair_btree_upper_bound_0(ptr %566, ptr %stack.ptr_155, ptr %stack.ptr_157) | |
br label %loop_35 | |
loop_35: | |
%567 = call ccc i1 @eclair_btree_iterator_is_equal_0(ptr %stack.ptr_156, ptr %stack.ptr_157) | |
br i1 %567, label %if_41, label %end_if_41 | |
if_41: | |
br label %range_query.end_34 | |
end_if_41: | |
%568 = call ccc ptr @eclair_btree_iterator_current_0(ptr %stack.ptr_156) | |
%569 = getelementptr [2 x i32], ptr %stack.ptr_158, i32 0, i32 0 | |
%570 = getelementptr [3 x i32], ptr %568, i32 0, i32 2 | |
%571 = load i32, ptr %570 | |
store i32 %571, ptr %569 | |
%572 = getelementptr [2 x i32], ptr %stack.ptr_158, i32 0, i32 1 | |
store i32 0, ptr %572 | |
%573 = getelementptr [2 x i32], ptr %stack.ptr_159, i32 0, i32 0 | |
%574 = getelementptr [3 x i32], ptr %568, i32 0, i32 2 | |
%575 = load i32, ptr %574 | |
store i32 %575, ptr %573 | |
%576 = getelementptr [2 x i32], ptr %stack.ptr_159, i32 0, i32 1 | |
store i32 4294967295, ptr %576 | |
%577 = getelementptr %program, ptr %arg_0, i32 0, i32 66 | |
call ccc void @eclair_btree_lower_bound_1(ptr %577, ptr %stack.ptr_158, ptr %stack.ptr_160) | |
%578 = getelementptr %program, ptr %arg_0, i32 0, i32 66 | |
call ccc void @eclair_btree_upper_bound_1(ptr %578, ptr %stack.ptr_159, ptr %stack.ptr_161) | |
br label %loop_36 | |
loop_36: | |
%579 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_160, ptr %stack.ptr_161) | |
br i1 %579, label %if_42, label %end_if_42 | |
if_42: | |
br label %range_query.end_35 | |
end_if_42: | |
%580 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_160) | |
%581 = getelementptr [2 x i32], ptr %stack.ptr_162, i32 0, i32 0 | |
store i32 0, ptr %581 | |
%582 = getelementptr [2 x i32], ptr %stack.ptr_162, i32 0, i32 1 | |
%583 = getelementptr [2 x i32], ptr %580, i32 0, i32 1 | |
%584 = load i32, ptr %583 | |
store i32 %584, ptr %582 | |
%585 = getelementptr [2 x i32], ptr %stack.ptr_163, i32 0, i32 0 | |
store i32 4294967295, ptr %585 | |
%586 = getelementptr [2 x i32], ptr %stack.ptr_163, i32 0, i32 1 | |
%587 = getelementptr [2 x i32], ptr %580, i32 0, i32 1 | |
%588 = load i32, ptr %587 | |
store i32 %588, ptr %586 | |
%589 = getelementptr %program, ptr %arg_0, i32 0, i32 67 | |
call ccc void @eclair_btree_lower_bound_2(ptr %589, ptr %stack.ptr_162, ptr %stack.ptr_164) | |
%590 = getelementptr %program, ptr %arg_0, i32 0, i32 67 | |
call ccc void @eclair_btree_upper_bound_2(ptr %590, ptr %stack.ptr_163, ptr %stack.ptr_165) | |
br label %loop_37 | |
loop_37: | |
%591 = call ccc i1 @eclair_btree_iterator_is_equal_2(ptr %stack.ptr_164, ptr %stack.ptr_165) | |
br i1 %591, label %if_43, label %end_if_43 | |
if_43: | |
br label %range_query.end_36 | |
end_if_43: | |
%592 = call ccc ptr @eclair_btree_iterator_current_2(ptr %stack.ptr_164) | |
%593 = getelementptr [3 x i32], ptr %stack.ptr_166, i32 0, i32 0 | |
%594 = getelementptr [3 x i32], ptr %568, i32 0, i32 0 | |
%595 = load i32, ptr %594 | |
store i32 %595, ptr %593 | |
%596 = getelementptr [3 x i32], ptr %stack.ptr_166, i32 0, i32 1 | |
%597 = getelementptr [2 x i32], ptr %592, i32 0, i32 0 | |
%598 = load i32, ptr %597 | |
store i32 %598, ptr %596 | |
%599 = getelementptr [3 x i32], ptr %stack.ptr_166, i32 0, i32 2 | |
store i32 0, ptr %599 | |
%600 = getelementptr [3 x i32], ptr %stack.ptr_167, i32 0, i32 0 | |
%601 = getelementptr [3 x i32], ptr %568, i32 0, i32 0 | |
%602 = load i32, ptr %601 | |
store i32 %602, ptr %600 | |
%603 = getelementptr [3 x i32], ptr %stack.ptr_167, i32 0, i32 1 | |
%604 = getelementptr [2 x i32], ptr %592, i32 0, i32 0 | |
%605 = load i32, ptr %604 | |
store i32 %605, ptr %603 | |
%606 = getelementptr [3 x i32], ptr %stack.ptr_167, i32 0, i32 2 | |
store i32 4294967295, ptr %606 | |
%607 = getelementptr %program, ptr %arg_0, i32 0, i32 1 | |
call ccc void @eclair_btree_lower_bound_0(ptr %607, ptr %stack.ptr_166, ptr %stack.ptr_168) | |
%608 = getelementptr %program, ptr %arg_0, i32 0, i32 1 | |
call ccc void @eclair_btree_upper_bound_0(ptr %608, ptr %stack.ptr_167, ptr %stack.ptr_169) | |
br label %loop_38 | |
loop_38: | |
%609 = call ccc i1 @eclair_btree_iterator_is_equal_0(ptr %stack.ptr_168, ptr %stack.ptr_169) | |
br i1 %609, label %if_44, label %end_if_44 | |
if_44: | |
br label %range_query.end_37 | |
end_if_44: | |
%610 = call ccc ptr @eclair_btree_iterator_current_0(ptr %stack.ptr_168) | |
%611 = getelementptr [3 x i32], ptr %stack.ptr_170, i32 0, i32 0 | |
%612 = getelementptr [3 x i32], ptr %568, i32 0, i32 0 | |
%613 = load i32, ptr %612 | |
store i32 %613, ptr %611 | |
%614 = getelementptr [3 x i32], ptr %stack.ptr_170, i32 0, i32 1 | |
%615 = getelementptr [3 x i32], ptr %568, i32 0, i32 1 | |
%616 = load i32, ptr %615 | |
store i32 %616, ptr %614 | |
%617 = getelementptr [3 x i32], ptr %stack.ptr_170, i32 0, i32 2 | |
%618 = getelementptr [3 x i32], ptr %610, i32 0, i32 2 | |
%619 = load i32, ptr %618 | |
store i32 %619, ptr %617 | |
%620 = getelementptr %program, ptr %arg_0, i32 0, i32 48 | |
%621 = call ccc i1 @eclair_btree_contains_0(ptr %620, ptr %stack.ptr_170) | |
%622 = select i1 %621, i1 0, i1 1 | |
br i1 %622, label %if_45, label %end_if_45 | |
if_45: | |
%623 = getelementptr [3 x i32], ptr %stack.ptr_171, i32 0, i32 0 | |
%624 = getelementptr [3 x i32], ptr %568, i32 0, i32 0 | |
%625 = load i32, ptr %624 | |
store i32 %625, ptr %623 | |
%626 = getelementptr [3 x i32], ptr %stack.ptr_171, i32 0, i32 1 | |
%627 = getelementptr [3 x i32], ptr %568, i32 0, i32 1 | |
%628 = load i32, ptr %627 | |
store i32 %628, ptr %626 | |
%629 = getelementptr [3 x i32], ptr %stack.ptr_171, i32 0, i32 2 | |
%630 = getelementptr [3 x i32], ptr %610, i32 0, i32 2 | |
%631 = load i32, ptr %630 | |
store i32 %631, ptr %629 | |
%632 = getelementptr %program, ptr %arg_0, i32 0, i32 44 | |
%633 = call ccc i1 @eclair_btree_insert_value_0(ptr %632, ptr %stack.ptr_171) | |
br label %end_if_45 | |
end_if_45: | |
call ccc void @eclair_btree_iterator_next_0(ptr %stack.ptr_168) | |
br label %loop_38 | |
range_query.end_37: | |
call ccc void @eclair_btree_iterator_next_2(ptr %stack.ptr_164) | |
br label %loop_37 | |
range_query.end_36: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_160) | |
br label %loop_36 | |
range_query.end_35: | |
call ccc void @eclair_btree_iterator_next_0(ptr %stack.ptr_156) | |
br label %loop_35 | |
range_query.end_34: | |
%634 = getelementptr %program, ptr %arg_0, i32 0, i32 44 | |
%635 = call ccc i1 @eclair_btree_is_empty_0(ptr %634) | |
br i1 %635, label %if_46, label %end_if_46 | |
if_46: | |
br label %loop.end | |
end_if_46: | |
%636 = getelementptr %program, ptr %arg_0, i32 0, i32 44 | |
call ccc void @eclair_btree_begin_0(ptr %636, ptr %stack.ptr_172) | |
%637 = getelementptr %program, ptr %arg_0, i32 0, i32 44 | |
call ccc void @eclair_btree_end_0(ptr %637, ptr %stack.ptr_173) | |
%638 = getelementptr %program, ptr %arg_0, i32 0, i32 48 | |
call ccc void @eclair_btree_insert_range_points_to_new_points_to(ptr %638, ptr %stack.ptr_172, ptr %stack.ptr_173) | |
%639 = getelementptr %program, ptr %arg_0, i32 0, i32 44 | |
%640 = getelementptr %program, ptr %arg_0, i32 0, i32 19 | |
call ccc void @eclair_btree_swap_0(ptr %639, ptr %640) | |
br label %loop_34 | |
loop.end: | |
%641 = getelementptr [3 x i32], ptr %stack.ptr_174, i32 0, i32 0 | |
store i32 0, ptr %641 | |
%642 = getelementptr [3 x i32], ptr %stack.ptr_174, i32 0, i32 1 | |
store i32 0, ptr %642 | |
%643 = getelementptr [3 x i32], ptr %stack.ptr_174, i32 0, i32 2 | |
store i32 0, ptr %643 | |
%644 = getelementptr [3 x i32], ptr %stack.ptr_175, i32 0, i32 0 | |
store i32 4294967295, ptr %644 | |
%645 = getelementptr [3 x i32], ptr %stack.ptr_175, i32 0, i32 1 | |
store i32 4294967295, ptr %645 | |
%646 = getelementptr [3 x i32], ptr %stack.ptr_175, i32 0, i32 2 | |
store i32 4294967295, ptr %646 | |
%647 = getelementptr %program, ptr %arg_0, i32 0, i32 48 | |
call ccc void @eclair_btree_lower_bound_0(ptr %647, ptr %stack.ptr_174, ptr %stack.ptr_176) | |
%648 = getelementptr %program, ptr %arg_0, i32 0, i32 48 | |
call ccc void @eclair_btree_upper_bound_0(ptr %648, ptr %stack.ptr_175, ptr %stack.ptr_177) | |
br label %loop_39 | |
loop_39: | |
%649 = call ccc i1 @eclair_btree_iterator_is_equal_0(ptr %stack.ptr_176, ptr %stack.ptr_177) | |
br i1 %649, label %if_47, label %end_if_47 | |
if_47: | |
br label %range_query.end_38 | |
end_if_47: | |
%650 = call ccc ptr @eclair_btree_iterator_current_0(ptr %stack.ptr_176) | |
%651 = getelementptr [3 x i32], ptr %stack.ptr_178, i32 0, i32 0 | |
%652 = getelementptr [3 x i32], ptr %650, i32 0, i32 0 | |
%653 = load i32, ptr %652 | |
store i32 %653, ptr %651 | |
%654 = getelementptr [3 x i32], ptr %stack.ptr_178, i32 0, i32 1 | |
%655 = getelementptr [3 x i32], ptr %650, i32 0, i32 1 | |
%656 = load i32, ptr %655 | |
store i32 %656, ptr %654 | |
%657 = getelementptr [3 x i32], ptr %stack.ptr_178, i32 0, i32 2 | |
store i32 0, ptr %657 | |
%658 = getelementptr [3 x i32], ptr %stack.ptr_179, i32 0, i32 0 | |
%659 = getelementptr [3 x i32], ptr %650, i32 0, i32 0 | |
%660 = load i32, ptr %659 | |
store i32 %660, ptr %658 | |
%661 = getelementptr [3 x i32], ptr %stack.ptr_179, i32 0, i32 1 | |
%662 = getelementptr [3 x i32], ptr %650, i32 0, i32 1 | |
%663 = load i32, ptr %662 | |
store i32 %663, ptr %661 | |
%664 = getelementptr [3 x i32], ptr %stack.ptr_179, i32 0, i32 2 | |
store i32 4294967295, ptr %664 | |
%665 = getelementptr %program, ptr %arg_0, i32 0, i32 48 | |
call ccc void @eclair_btree_lower_bound_0(ptr %665, ptr %stack.ptr_178, ptr %stack.ptr_180) | |
%666 = getelementptr %program, ptr %arg_0, i32 0, i32 48 | |
call ccc void @eclair_btree_upper_bound_0(ptr %666, ptr %stack.ptr_179, ptr %stack.ptr_181) | |
br label %loop_40 | |
loop_40: | |
%667 = call ccc i1 @eclair_btree_iterator_is_equal_0(ptr %stack.ptr_180, ptr %stack.ptr_181) | |
br i1 %667, label %if_48, label %end_if_48 | |
if_48: | |
br label %range_query.end_39 | |
end_if_48: | |
%668 = call ccc ptr @eclair_btree_iterator_current_0(ptr %stack.ptr_180) | |
%669 = getelementptr [2 x i32], ptr %stack.ptr_182, i32 0, i32 0 | |
%670 = getelementptr [3 x i32], ptr %650, i32 0, i32 2 | |
%671 = load i32, ptr %670 | |
store i32 %671, ptr %669 | |
%672 = getelementptr [2 x i32], ptr %stack.ptr_182, i32 0, i32 1 | |
%673 = getelementptr [3 x i32], ptr %668, i32 0, i32 2 | |
%674 = load i32, ptr %673 | |
store i32 %674, ptr %672 | |
%675 = getelementptr [2 x i32], ptr %stack.ptr_183, i32 0, i32 0 | |
%676 = getelementptr [3 x i32], ptr %650, i32 0, i32 2 | |
%677 = load i32, ptr %676 | |
store i32 %677, ptr %675 | |
%678 = getelementptr [2 x i32], ptr %stack.ptr_183, i32 0, i32 1 | |
%679 = getelementptr [3 x i32], ptr %668, i32 0, i32 2 | |
%680 = load i32, ptr %679 | |
store i32 %680, ptr %678 | |
%681 = getelementptr %program, ptr %arg_0, i32 0, i32 36 | |
call ccc void @eclair_btree_lower_bound_1(ptr %681, ptr %stack.ptr_182, ptr %stack.ptr_184) | |
%682 = getelementptr %program, ptr %arg_0, i32 0, i32 36 | |
call ccc void @eclair_btree_upper_bound_1(ptr %682, ptr %stack.ptr_183, ptr %stack.ptr_185) | |
br label %loop_41 | |
loop_41: | |
%683 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_184, ptr %stack.ptr_185) | |
br i1 %683, label %if_49, label %end_if_49 | |
if_49: | |
br label %range_query.end_40 | |
end_if_49: | |
%684 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_184) | |
%685 = getelementptr [1 x i32], ptr %stack.ptr_186, i32 0, i32 0 | |
%686 = getelementptr [3 x i32], ptr %650, i32 0, i32 0 | |
%687 = load i32, ptr %686 | |
store i32 %687, ptr %685 | |
%688 = getelementptr %program, ptr %arg_0, i32 0, i32 58 | |
%689 = call ccc i1 @eclair_btree_insert_value_6(ptr %688, ptr %stack.ptr_186) | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_184) | |
br label %loop_41 | |
range_query.end_40: | |
call ccc void @eclair_btree_iterator_next_0(ptr %stack.ptr_180) | |
br label %loop_40 | |
range_query.end_39: | |
call ccc void @eclair_btree_iterator_next_0(ptr %stack.ptr_176) | |
br label %loop_39 | |
range_query.end_38: | |
%690 = getelementptr [3 x i32], ptr %stack.ptr_187, i32 0, i32 0 | |
store i32 0, ptr %690 | |
%691 = getelementptr [3 x i32], ptr %stack.ptr_187, i32 0, i32 1 | |
store i32 0, ptr %691 | |
%692 = getelementptr [3 x i32], ptr %stack.ptr_187, i32 0, i32 2 | |
store i32 0, ptr %692 | |
%693 = getelementptr [3 x i32], ptr %stack.ptr_188, i32 0, i32 0 | |
store i32 4294967295, ptr %693 | |
%694 = getelementptr [3 x i32], ptr %stack.ptr_188, i32 0, i32 1 | |
store i32 4294967295, ptr %694 | |
%695 = getelementptr [3 x i32], ptr %stack.ptr_188, i32 0, i32 2 | |
store i32 4294967295, ptr %695 | |
%696 = getelementptr %program, ptr %arg_0, i32 0, i32 53 | |
call ccc void @eclair_btree_lower_bound_0(ptr %696, ptr %stack.ptr_187, ptr %stack.ptr_189) | |
%697 = getelementptr %program, ptr %arg_0, i32 0, i32 53 | |
call ccc void @eclair_btree_upper_bound_0(ptr %697, ptr %stack.ptr_188, ptr %stack.ptr_190) | |
br label %loop_42 | |
loop_42: | |
%698 = call ccc i1 @eclair_btree_iterator_is_equal_0(ptr %stack.ptr_189, ptr %stack.ptr_190) | |
br i1 %698, label %if_50, label %end_if_50 | |
if_50: | |
br label %range_query.end_41 | |
end_if_50: | |
%699 = call ccc ptr @eclair_btree_iterator_current_0(ptr %stack.ptr_189) | |
%700 = getelementptr [3 x i32], ptr %stack.ptr_191, i32 0, i32 0 | |
%701 = getelementptr [3 x i32], ptr %699, i32 0, i32 2 | |
%702 = load i32, ptr %701 | |
store i32 %702, ptr %700 | |
%703 = getelementptr [3 x i32], ptr %stack.ptr_191, i32 0, i32 1 | |
store i32 0, ptr %703 | |
%704 = getelementptr [3 x i32], ptr %stack.ptr_191, i32 0, i32 2 | |
store i32 0, ptr %704 | |
%705 = getelementptr [3 x i32], ptr %stack.ptr_192, i32 0, i32 0 | |
%706 = getelementptr [3 x i32], ptr %699, i32 0, i32 2 | |
%707 = load i32, ptr %706 | |
store i32 %707, ptr %705 | |
%708 = getelementptr [3 x i32], ptr %stack.ptr_192, i32 0, i32 1 | |
store i32 4294967295, ptr %708 | |
%709 = getelementptr [3 x i32], ptr %stack.ptr_192, i32 0, i32 2 | |
store i32 4294967295, ptr %709 | |
%710 = getelementptr %program, ptr %arg_0, i32 0, i32 2 | |
call ccc void @eclair_btree_lower_bound_0(ptr %710, ptr %stack.ptr_191, ptr %stack.ptr_193) | |
%711 = getelementptr %program, ptr %arg_0, i32 0, i32 2 | |
call ccc void @eclair_btree_upper_bound_0(ptr %711, ptr %stack.ptr_192, ptr %stack.ptr_194) | |
br label %loop_43 | |
loop_43: | |
%712 = call ccc i1 @eclair_btree_iterator_is_equal_0(ptr %stack.ptr_193, ptr %stack.ptr_194) | |
br i1 %712, label %if_51, label %end_if_51 | |
if_51: | |
br label %range_query.end_42 | |
end_if_51: | |
%713 = call ccc ptr @eclair_btree_iterator_current_0(ptr %stack.ptr_193) | |
%714 = getelementptr [2 x i32], ptr %stack.ptr_195, i32 0, i32 0 | |
%715 = getelementptr [3 x i32], ptr %713, i32 0, i32 1 | |
%716 = load i32, ptr %715 | |
store i32 %716, ptr %714 | |
%717 = getelementptr [2 x i32], ptr %stack.ptr_195, i32 0, i32 1 | |
%718 = getelementptr [3 x i32], ptr %713, i32 0, i32 2 | |
%719 = load i32, ptr %718 | |
store i32 %719, ptr %717 | |
%720 = getelementptr [2 x i32], ptr %stack.ptr_196, i32 0, i32 0 | |
%721 = getelementptr [3 x i32], ptr %713, i32 0, i32 1 | |
%722 = load i32, ptr %721 | |
store i32 %722, ptr %720 | |
%723 = getelementptr [2 x i32], ptr %stack.ptr_196, i32 0, i32 1 | |
%724 = getelementptr [3 x i32], ptr %713, i32 0, i32 2 | |
%725 = load i32, ptr %724 | |
store i32 %725, ptr %723 | |
%726 = getelementptr %program, ptr %arg_0, i32 0, i32 36 | |
call ccc void @eclair_btree_lower_bound_1(ptr %726, ptr %stack.ptr_195, ptr %stack.ptr_197) | |
%727 = getelementptr %program, ptr %arg_0, i32 0, i32 36 | |
call ccc void @eclair_btree_upper_bound_1(ptr %727, ptr %stack.ptr_196, ptr %stack.ptr_198) | |
br label %loop_44 | |
loop_44: | |
%728 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_197, ptr %stack.ptr_198) | |
br i1 %728, label %if_52, label %end_if_52 | |
if_52: | |
br label %range_query.end_43 | |
end_if_52: | |
%729 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_197) | |
%730 = getelementptr [1 x i32], ptr %stack.ptr_199, i32 0, i32 0 | |
%731 = getelementptr [3 x i32], ptr %699, i32 0, i32 0 | |
%732 = load i32, ptr %731 | |
store i32 %732, ptr %730 | |
%733 = getelementptr %program, ptr %arg_0, i32 0, i32 58 | |
%734 = call ccc i1 @eclair_btree_insert_value_6(ptr %733, ptr %stack.ptr_199) | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_197) | |
br label %loop_44 | |
range_query.end_43: | |
call ccc void @eclair_btree_iterator_next_0(ptr %stack.ptr_193) | |
br label %loop_43 | |
range_query.end_42: | |
call ccc void @eclair_btree_iterator_next_0(ptr %stack.ptr_189) | |
br label %loop_42 | |
range_query.end_41: | |
%735 = getelementptr [2 x i32], ptr %stack.ptr_200, i32 0, i32 0 | |
store i32 0, ptr %735 | |
%736 = getelementptr [2 x i32], ptr %stack.ptr_200, i32 0, i32 1 | |
store i32 54, ptr %736 | |
%737 = getelementptr [2 x i32], ptr %stack.ptr_201, i32 0, i32 0 | |
store i32 4294967295, ptr %737 | |
%738 = getelementptr [2 x i32], ptr %stack.ptr_201, i32 0, i32 1 | |
store i32 54, ptr %738 | |
%739 = getelementptr %program, ptr %arg_0, i32 0, i32 67 | |
call ccc void @eclair_btree_lower_bound_2(ptr %739, ptr %stack.ptr_200, ptr %stack.ptr_202) | |
%740 = getelementptr %program, ptr %arg_0, i32 0, i32 67 | |
call ccc void @eclair_btree_upper_bound_2(ptr %740, ptr %stack.ptr_201, ptr %stack.ptr_203) | |
br label %loop_45 | |
loop_45: | |
%741 = call ccc i1 @eclair_btree_iterator_is_equal_2(ptr %stack.ptr_202, ptr %stack.ptr_203) | |
br i1 %741, label %if_53, label %end_if_53 | |
if_53: | |
br label %range_query.end_44 | |
end_if_53: | |
%742 = call ccc ptr @eclair_btree_iterator_current_2(ptr %stack.ptr_202) | |
%743 = getelementptr [1 x i32], ptr %stack.ptr_204, i32 0, i32 0 | |
%744 = getelementptr [2 x i32], ptr %742, i32 0, i32 0 | |
%745 = load i32, ptr %744 | |
store i32 %745, ptr %743 | |
%746 = getelementptr %program, ptr %arg_0, i32 0, i32 68 | |
%747 = call ccc i1 @eclair_btree_insert_value_6(ptr %746, ptr %stack.ptr_204) | |
call ccc void @eclair_btree_iterator_next_2(ptr %stack.ptr_202) | |
br label %loop_45 | |
range_query.end_44: | |
%748 = getelementptr [3 x i32], ptr %stack.ptr_205, i32 0, i32 0 | |
store i32 0, ptr %748 | |
%749 = getelementptr [3 x i32], ptr %stack.ptr_205, i32 0, i32 1 | |
store i32 0, ptr %749 | |
%750 = getelementptr [3 x i32], ptr %stack.ptr_205, i32 0, i32 2 | |
store i32 0, ptr %750 | |
%751 = getelementptr [3 x i32], ptr %stack.ptr_206, i32 0, i32 0 | |
store i32 4294967295, ptr %751 | |
%752 = getelementptr [3 x i32], ptr %stack.ptr_206, i32 0, i32 1 | |
store i32 4294967295, ptr %752 | |
%753 = getelementptr [3 x i32], ptr %stack.ptr_206, i32 0, i32 2 | |
store i32 4294967295, ptr %753 | |
%754 = getelementptr %program, ptr %arg_0, i32 0, i32 52 | |
call ccc void @eclair_btree_lower_bound_0(ptr %754, ptr %stack.ptr_205, ptr %stack.ptr_207) | |
%755 = getelementptr %program, ptr %arg_0, i32 0, i32 52 | |
call ccc void @eclair_btree_upper_bound_0(ptr %755, ptr %stack.ptr_206, ptr %stack.ptr_208) | |
br label %loop_46 | |
loop_46: | |
%756 = call ccc i1 @eclair_btree_iterator_is_equal_0(ptr %stack.ptr_207, ptr %stack.ptr_208) | |
br i1 %756, label %if_54, label %end_if_54 | |
if_54: | |
br label %range_query.end_45 | |
end_if_54: | |
%757 = call ccc ptr @eclair_btree_iterator_current_0(ptr %stack.ptr_207) | |
%758 = getelementptr [1 x i32], ptr %stack.ptr_209, i32 0, i32 0 | |
%759 = getelementptr [3 x i32], ptr %757, i32 0, i32 2 | |
%760 = load i32, ptr %759 | |
store i32 %760, ptr %758 | |
%761 = getelementptr [1 x i32], ptr %stack.ptr_210, i32 0, i32 0 | |
%762 = getelementptr [3 x i32], ptr %757, i32 0, i32 2 | |
%763 = load i32, ptr %762 | |
store i32 %763, ptr %761 | |
%764 = getelementptr %program, ptr %arg_0, i32 0, i32 68 | |
call ccc void @eclair_btree_lower_bound_6(ptr %764, ptr %stack.ptr_209, ptr %stack.ptr_211) | |
%765 = getelementptr %program, ptr %arg_0, i32 0, i32 68 | |
call ccc void @eclair_btree_upper_bound_6(ptr %765, ptr %stack.ptr_210, ptr %stack.ptr_212) | |
br label %loop_47 | |
loop_47: | |
%766 = call ccc i1 @eclair_btree_iterator_is_equal_6(ptr %stack.ptr_211, ptr %stack.ptr_212) | |
br i1 %766, label %if_55, label %end_if_55 | |
if_55: | |
br label %range_query.end_46 | |
end_if_55: | |
%767 = call ccc ptr @eclair_btree_iterator_current_6(ptr %stack.ptr_211) | |
%768 = getelementptr [3 x i32], ptr %stack.ptr_213, i32 0, i32 0 | |
%769 = getelementptr [3 x i32], ptr %757, i32 0, i32 0 | |
%770 = load i32, ptr %769 | |
store i32 %770, ptr %768 | |
%771 = getelementptr [3 x i32], ptr %stack.ptr_213, i32 0, i32 1 | |
%772 = getelementptr [3 x i32], ptr %757, i32 0, i32 2 | |
%773 = load i32, ptr %772 | |
store i32 %773, ptr %771 | |
%774 = getelementptr [3 x i32], ptr %stack.ptr_213, i32 0, i32 2 | |
%775 = getelementptr [3 x i32], ptr %757, i32 0, i32 1 | |
%776 = load i32, ptr %775 | |
store i32 %776, ptr %774 | |
%777 = getelementptr %program, ptr %arg_0, i32 0, i32 73 | |
%778 = call ccc i1 @eclair_btree_insert_value_0(ptr %777, ptr %stack.ptr_213) | |
call ccc void @eclair_btree_iterator_next_6(ptr %stack.ptr_211) | |
br label %loop_47 | |
range_query.end_46: | |
call ccc void @eclair_btree_iterator_next_0(ptr %stack.ptr_207) | |
br label %loop_46 | |
range_query.end_45: | |
%779 = getelementptr [2 x i32], ptr %stack.ptr_214, i32 0, i32 0 | |
store i32 0, ptr %779 | |
%780 = getelementptr [2 x i32], ptr %stack.ptr_214, i32 0, i32 1 | |
store i32 0, ptr %780 | |
%781 = getelementptr [2 x i32], ptr %stack.ptr_215, i32 0, i32 0 | |
store i32 4294967295, ptr %781 | |
%782 = getelementptr [2 x i32], ptr %stack.ptr_215, i32 0, i32 1 | |
store i32 4294967295, ptr %782 | |
%783 = getelementptr %program, ptr %arg_0, i32 0, i32 39 | |
call ccc void @eclair_btree_lower_bound_1(ptr %783, ptr %stack.ptr_214, ptr %stack.ptr_216) | |
%784 = getelementptr %program, ptr %arg_0, i32 0, i32 39 | |
call ccc void @eclair_btree_upper_bound_1(ptr %784, ptr %stack.ptr_215, ptr %stack.ptr_217) | |
br label %loop_48 | |
loop_48: | |
%785 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_216, ptr %stack.ptr_217) | |
br i1 %785, label %if_56, label %end_if_56 | |
if_56: | |
br label %range_query.end_47 | |
end_if_56: | |
%786 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_216) | |
%787 = getelementptr [3 x i32], ptr %stack.ptr_218, i32 0, i32 0 | |
%788 = getelementptr [2 x i32], ptr %786, i32 0, i32 1 | |
%789 = load i32, ptr %788 | |
store i32 %789, ptr %787 | |
%790 = getelementptr [3 x i32], ptr %stack.ptr_218, i32 0, i32 1 | |
store i32 0, ptr %790 | |
%791 = getelementptr [3 x i32], ptr %stack.ptr_218, i32 0, i32 2 | |
store i32 0, ptr %791 | |
%792 = getelementptr [3 x i32], ptr %stack.ptr_219, i32 0, i32 0 | |
%793 = getelementptr [2 x i32], ptr %786, i32 0, i32 1 | |
%794 = load i32, ptr %793 | |
store i32 %794, ptr %792 | |
%795 = getelementptr [3 x i32], ptr %stack.ptr_219, i32 0, i32 1 | |
store i32 4294967295, ptr %795 | |
%796 = getelementptr [3 x i32], ptr %stack.ptr_219, i32 0, i32 2 | |
store i32 4294967295, ptr %796 | |
%797 = getelementptr %program, ptr %arg_0, i32 0, i32 5 | |
call ccc void @eclair_btree_lower_bound_0(ptr %797, ptr %stack.ptr_218, ptr %stack.ptr_220) | |
%798 = getelementptr %program, ptr %arg_0, i32 0, i32 5 | |
call ccc void @eclair_btree_upper_bound_0(ptr %798, ptr %stack.ptr_219, ptr %stack.ptr_221) | |
br label %loop_49 | |
loop_49: | |
%799 = call ccc i1 @eclair_btree_iterator_is_equal_0(ptr %stack.ptr_220, ptr %stack.ptr_221) | |
br i1 %799, label %if_57, label %end_if_57 | |
if_57: | |
br label %range_query.end_48 | |
end_if_57: | |
%800 = call ccc ptr @eclair_btree_iterator_current_0(ptr %stack.ptr_220) | |
%801 = getelementptr [1 x i32], ptr %stack.ptr_222, i32 0, i32 0 | |
%802 = getelementptr [3 x i32], ptr %800, i32 0, i32 2 | |
%803 = load i32, ptr %802 | |
store i32 %803, ptr %801 | |
%804 = getelementptr [1 x i32], ptr %stack.ptr_223, i32 0, i32 0 | |
%805 = getelementptr [3 x i32], ptr %800, i32 0, i32 2 | |
%806 = load i32, ptr %805 | |
store i32 %806, ptr %804 | |
%807 = getelementptr %program, ptr %arg_0, i32 0, i32 68 | |
call ccc void @eclair_btree_lower_bound_6(ptr %807, ptr %stack.ptr_222, ptr %stack.ptr_224) | |
%808 = getelementptr %program, ptr %arg_0, i32 0, i32 68 | |
call ccc void @eclair_btree_upper_bound_6(ptr %808, ptr %stack.ptr_223, ptr %stack.ptr_225) | |
br label %loop_50 | |
loop_50: | |
%809 = call ccc i1 @eclair_btree_iterator_is_equal_6(ptr %stack.ptr_224, ptr %stack.ptr_225) | |
br i1 %809, label %if_58, label %end_if_58 | |
if_58: | |
br label %range_query.end_49 | |
end_if_58: | |
%810 = call ccc ptr @eclair_btree_iterator_current_6(ptr %stack.ptr_224) | |
%811 = getelementptr [3 x i32], ptr %stack.ptr_226, i32 0, i32 0 | |
%812 = getelementptr [2 x i32], ptr %786, i32 0, i32 1 | |
%813 = load i32, ptr %812 | |
store i32 %813, ptr %811 | |
%814 = getelementptr [3 x i32], ptr %stack.ptr_226, i32 0, i32 1 | |
%815 = getelementptr [3 x i32], ptr %800, i32 0, i32 2 | |
%816 = load i32, ptr %815 | |
store i32 %816, ptr %814 | |
%817 = getelementptr [3 x i32], ptr %stack.ptr_226, i32 0, i32 2 | |
%818 = getelementptr [3 x i32], ptr %800, i32 0, i32 1 | |
%819 = load i32, ptr %818 | |
store i32 %819, ptr %817 | |
%820 = getelementptr %program, ptr %arg_0, i32 0, i32 72 | |
%821 = call ccc i1 @eclair_btree_insert_value_0(ptr %820, ptr %stack.ptr_226) | |
call ccc void @eclair_btree_iterator_next_6(ptr %stack.ptr_224) | |
br label %loop_50 | |
range_query.end_49: | |
call ccc void @eclair_btree_iterator_next_0(ptr %stack.ptr_220) | |
br label %loop_49 | |
range_query.end_48: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_216) | |
br label %loop_48 | |
range_query.end_47: | |
%822 = getelementptr [4 x i32], ptr %stack.ptr_227, i32 0, i32 0 | |
store i32 0, ptr %822 | |
%823 = getelementptr [4 x i32], ptr %stack.ptr_227, i32 0, i32 1 | |
store i32 0, ptr %823 | |
%824 = getelementptr [4 x i32], ptr %stack.ptr_227, i32 0, i32 2 | |
store i32 0, ptr %824 | |
%825 = getelementptr [4 x i32], ptr %stack.ptr_227, i32 0, i32 3 | |
store i32 0, ptr %825 | |
%826 = getelementptr [4 x i32], ptr %stack.ptr_228, i32 0, i32 0 | |
store i32 4294967295, ptr %826 | |
%827 = getelementptr [4 x i32], ptr %stack.ptr_228, i32 0, i32 1 | |
store i32 4294967295, ptr %827 | |
%828 = getelementptr [4 x i32], ptr %stack.ptr_228, i32 0, i32 2 | |
store i32 4294967295, ptr %828 | |
%829 = getelementptr [4 x i32], ptr %stack.ptr_228, i32 0, i32 3 | |
store i32 4294967295, ptr %829 | |
%830 = getelementptr %program, ptr %arg_0, i32 0, i32 9 | |
call ccc void @eclair_btree_lower_bound_4(ptr %830, ptr %stack.ptr_227, ptr %stack.ptr_229) | |
%831 = getelementptr %program, ptr %arg_0, i32 0, i32 9 | |
call ccc void @eclair_btree_upper_bound_4(ptr %831, ptr %stack.ptr_228, ptr %stack.ptr_230) | |
br label %loop_51 | |
loop_51: | |
%832 = call ccc i1 @eclair_btree_iterator_is_equal_4(ptr %stack.ptr_229, ptr %stack.ptr_230) | |
br i1 %832, label %if_59, label %end_if_59 | |
if_59: | |
br label %range_query.end_50 | |
end_if_59: | |
%833 = call ccc ptr @eclair_btree_iterator_current_4(ptr %stack.ptr_229) | |
%834 = getelementptr [1 x i32], ptr %stack.ptr_231, i32 0, i32 0 | |
%835 = getelementptr [4 x i32], ptr %833, i32 0, i32 2 | |
%836 = load i32, ptr %835 | |
store i32 %836, ptr %834 | |
%837 = getelementptr [1 x i32], ptr %stack.ptr_232, i32 0, i32 0 | |
%838 = getelementptr [4 x i32], ptr %833, i32 0, i32 2 | |
%839 = load i32, ptr %838 | |
store i32 %839, ptr %837 | |
%840 = getelementptr %program, ptr %arg_0, i32 0, i32 68 | |
call ccc void @eclair_btree_lower_bound_6(ptr %840, ptr %stack.ptr_231, ptr %stack.ptr_233) | |
%841 = getelementptr %program, ptr %arg_0, i32 0, i32 68 | |
call ccc void @eclair_btree_upper_bound_6(ptr %841, ptr %stack.ptr_232, ptr %stack.ptr_234) | |
br label %loop_52 | |
loop_52: | |
%842 = call ccc i1 @eclair_btree_iterator_is_equal_6(ptr %stack.ptr_233, ptr %stack.ptr_234) | |
br i1 %842, label %if_60, label %end_if_60 | |
if_60: | |
br label %range_query.end_51 | |
end_if_60: | |
%843 = call ccc ptr @eclair_btree_iterator_current_6(ptr %stack.ptr_233) | |
%844 = getelementptr [2 x i32], ptr %stack.ptr_235, i32 0, i32 0 | |
%845 = getelementptr [4 x i32], ptr %833, i32 0, i32 0 | |
%846 = load i32, ptr %845 | |
store i32 %846, ptr %844 | |
%847 = getelementptr [2 x i32], ptr %stack.ptr_235, i32 0, i32 1 | |
%848 = getelementptr [4 x i32], ptr %833, i32 0, i32 2 | |
%849 = load i32, ptr %848 | |
store i32 %849, ptr %847 | |
%850 = getelementptr %program, ptr %arg_0, i32 0, i32 70 | |
%851 = call ccc i1 @eclair_btree_insert_value_1(ptr %850, ptr %stack.ptr_235) | |
call ccc void @eclair_btree_iterator_next_6(ptr %stack.ptr_233) | |
br label %loop_52 | |
range_query.end_51: | |
call ccc void @eclair_btree_iterator_next_4(ptr %stack.ptr_229) | |
br label %loop_51 | |
range_query.end_50: | |
%852 = getelementptr [4 x i32], ptr %stack.ptr_236, i32 0, i32 0 | |
store i32 0, ptr %852 | |
%853 = getelementptr [4 x i32], ptr %stack.ptr_236, i32 0, i32 1 | |
store i32 0, ptr %853 | |
%854 = getelementptr [4 x i32], ptr %stack.ptr_236, i32 0, i32 2 | |
store i32 0, ptr %854 | |
%855 = getelementptr [4 x i32], ptr %stack.ptr_236, i32 0, i32 3 | |
store i32 0, ptr %855 | |
%856 = getelementptr [4 x i32], ptr %stack.ptr_237, i32 0, i32 0 | |
store i32 4294967295, ptr %856 | |
%857 = getelementptr [4 x i32], ptr %stack.ptr_237, i32 0, i32 1 | |
store i32 4294967295, ptr %857 | |
%858 = getelementptr [4 x i32], ptr %stack.ptr_237, i32 0, i32 2 | |
store i32 4294967295, ptr %858 | |
%859 = getelementptr [4 x i32], ptr %stack.ptr_237, i32 0, i32 3 | |
store i32 4294967295, ptr %859 | |
%860 = getelementptr %program, ptr %arg_0, i32 0, i32 9 | |
call ccc void @eclair_btree_lower_bound_4(ptr %860, ptr %stack.ptr_236, ptr %stack.ptr_238) | |
%861 = getelementptr %program, ptr %arg_0, i32 0, i32 9 | |
call ccc void @eclair_btree_upper_bound_4(ptr %861, ptr %stack.ptr_237, ptr %stack.ptr_239) | |
br label %loop_53 | |
loop_53: | |
%862 = call ccc i1 @eclair_btree_iterator_is_equal_4(ptr %stack.ptr_238, ptr %stack.ptr_239) | |
br i1 %862, label %if_61, label %end_if_61 | |
if_61: | |
br label %range_query.end_52 | |
end_if_61: | |
%863 = call ccc ptr @eclair_btree_iterator_current_4(ptr %stack.ptr_238) | |
%864 = getelementptr [1 x i32], ptr %stack.ptr_240, i32 0, i32 0 | |
%865 = getelementptr [4 x i32], ptr %863, i32 0, i32 3 | |
%866 = load i32, ptr %865 | |
store i32 %866, ptr %864 | |
%867 = getelementptr [1 x i32], ptr %stack.ptr_241, i32 0, i32 0 | |
%868 = getelementptr [4 x i32], ptr %863, i32 0, i32 3 | |
%869 = load i32, ptr %868 | |
store i32 %869, ptr %867 | |
%870 = getelementptr %program, ptr %arg_0, i32 0, i32 68 | |
call ccc void @eclair_btree_lower_bound_6(ptr %870, ptr %stack.ptr_240, ptr %stack.ptr_242) | |
%871 = getelementptr %program, ptr %arg_0, i32 0, i32 68 | |
call ccc void @eclair_btree_upper_bound_6(ptr %871, ptr %stack.ptr_241, ptr %stack.ptr_243) | |
br label %loop_54 | |
loop_54: | |
%872 = call ccc i1 @eclair_btree_iterator_is_equal_6(ptr %stack.ptr_242, ptr %stack.ptr_243) | |
br i1 %872, label %if_62, label %end_if_62 | |
if_62: | |
br label %range_query.end_53 | |
end_if_62: | |
%873 = call ccc ptr @eclair_btree_iterator_current_6(ptr %stack.ptr_242) | |
%874 = getelementptr [2 x i32], ptr %stack.ptr_244, i32 0, i32 0 | |
%875 = getelementptr [4 x i32], ptr %863, i32 0, i32 0 | |
%876 = load i32, ptr %875 | |
store i32 %876, ptr %874 | |
%877 = getelementptr [2 x i32], ptr %stack.ptr_244, i32 0, i32 1 | |
%878 = getelementptr [4 x i32], ptr %863, i32 0, i32 3 | |
%879 = load i32, ptr %878 | |
store i32 %879, ptr %877 | |
%880 = getelementptr %program, ptr %arg_0, i32 0, i32 70 | |
%881 = call ccc i1 @eclair_btree_insert_value_1(ptr %880, ptr %stack.ptr_244) | |
call ccc void @eclair_btree_iterator_next_6(ptr %stack.ptr_242) | |
br label %loop_54 | |
range_query.end_53: | |
call ccc void @eclair_btree_iterator_next_4(ptr %stack.ptr_238) | |
br label %loop_53 | |
range_query.end_52: | |
%882 = getelementptr [4 x i32], ptr %stack.ptr_245, i32 0, i32 0 | |
store i32 0, ptr %882 | |
%883 = getelementptr [4 x i32], ptr %stack.ptr_245, i32 0, i32 1 | |
store i32 0, ptr %883 | |
%884 = getelementptr [4 x i32], ptr %stack.ptr_245, i32 0, i32 2 | |
store i32 0, ptr %884 | |
%885 = getelementptr [4 x i32], ptr %stack.ptr_245, i32 0, i32 3 | |
store i32 0, ptr %885 | |
%886 = getelementptr [4 x i32], ptr %stack.ptr_246, i32 0, i32 0 | |
store i32 4294967295, ptr %886 | |
%887 = getelementptr [4 x i32], ptr %stack.ptr_246, i32 0, i32 1 | |
store i32 4294967295, ptr %887 | |
%888 = getelementptr [4 x i32], ptr %stack.ptr_246, i32 0, i32 2 | |
store i32 4294967295, ptr %888 | |
%889 = getelementptr [4 x i32], ptr %stack.ptr_246, i32 0, i32 3 | |
store i32 4294967295, ptr %889 | |
%890 = getelementptr %program, ptr %arg_0, i32 0, i32 6 | |
call ccc void @eclair_btree_lower_bound_3(ptr %890, ptr %stack.ptr_245, ptr %stack.ptr_247) | |
%891 = getelementptr %program, ptr %arg_0, i32 0, i32 6 | |
call ccc void @eclair_btree_upper_bound_3(ptr %891, ptr %stack.ptr_246, ptr %stack.ptr_248) | |
br label %loop_55 | |
loop_55: | |
%892 = call ccc i1 @eclair_btree_iterator_is_equal_3(ptr %stack.ptr_247, ptr %stack.ptr_248) | |
br i1 %892, label %if_63, label %end_if_63 | |
if_63: | |
br label %range_query.end_54 | |
end_if_63: | |
%893 = call ccc ptr @eclair_btree_iterator_current_3(ptr %stack.ptr_247) | |
%894 = getelementptr [1 x i32], ptr %stack.ptr_249, i32 0, i32 0 | |
%895 = getelementptr [4 x i32], ptr %893, i32 0, i32 2 | |
%896 = load i32, ptr %895 | |
store i32 %896, ptr %894 | |
%897 = getelementptr [1 x i32], ptr %stack.ptr_250, i32 0, i32 0 | |
%898 = getelementptr [4 x i32], ptr %893, i32 0, i32 2 | |
%899 = load i32, ptr %898 | |
store i32 %899, ptr %897 | |
%900 = getelementptr %program, ptr %arg_0, i32 0, i32 68 | |
call ccc void @eclair_btree_lower_bound_6(ptr %900, ptr %stack.ptr_249, ptr %stack.ptr_251) | |
%901 = getelementptr %program, ptr %arg_0, i32 0, i32 68 | |
call ccc void @eclair_btree_upper_bound_6(ptr %901, ptr %stack.ptr_250, ptr %stack.ptr_252) | |
br label %loop_56 | |
loop_56: | |
%902 = call ccc i1 @eclair_btree_iterator_is_equal_6(ptr %stack.ptr_251, ptr %stack.ptr_252) | |
br i1 %902, label %if_64, label %end_if_64 | |
if_64: | |
br label %range_query.end_55 | |
end_if_64: | |
%903 = call ccc ptr @eclair_btree_iterator_current_6(ptr %stack.ptr_251) | |
%904 = getelementptr [2 x i32], ptr %stack.ptr_253, i32 0, i32 0 | |
%905 = getelementptr [4 x i32], ptr %893, i32 0, i32 0 | |
%906 = load i32, ptr %905 | |
store i32 %906, ptr %904 | |
%907 = getelementptr [2 x i32], ptr %stack.ptr_253, i32 0, i32 1 | |
%908 = getelementptr [4 x i32], ptr %893, i32 0, i32 2 | |
%909 = load i32, ptr %908 | |
store i32 %909, ptr %907 | |
%910 = getelementptr %program, ptr %arg_0, i32 0, i32 69 | |
%911 = call ccc i1 @eclair_btree_insert_value_1(ptr %910, ptr %stack.ptr_253) | |
call ccc void @eclair_btree_iterator_next_6(ptr %stack.ptr_251) | |
br label %loop_56 | |
range_query.end_55: | |
call ccc void @eclair_btree_iterator_next_3(ptr %stack.ptr_247) | |
br label %loop_55 | |
range_query.end_54: | |
%912 = getelementptr [4 x i32], ptr %stack.ptr_254, i32 0, i32 0 | |
store i32 0, ptr %912 | |
%913 = getelementptr [4 x i32], ptr %stack.ptr_254, i32 0, i32 1 | |
store i32 0, ptr %913 | |
%914 = getelementptr [4 x i32], ptr %stack.ptr_254, i32 0, i32 2 | |
store i32 0, ptr %914 | |
%915 = getelementptr [4 x i32], ptr %stack.ptr_254, i32 0, i32 3 | |
store i32 0, ptr %915 | |
%916 = getelementptr [4 x i32], ptr %stack.ptr_255, i32 0, i32 0 | |
store i32 4294967295, ptr %916 | |
%917 = getelementptr [4 x i32], ptr %stack.ptr_255, i32 0, i32 1 | |
store i32 4294967295, ptr %917 | |
%918 = getelementptr [4 x i32], ptr %stack.ptr_255, i32 0, i32 2 | |
store i32 4294967295, ptr %918 | |
%919 = getelementptr [4 x i32], ptr %stack.ptr_255, i32 0, i32 3 | |
store i32 4294967295, ptr %919 | |
%920 = getelementptr %program, ptr %arg_0, i32 0, i32 6 | |
call ccc void @eclair_btree_lower_bound_3(ptr %920, ptr %stack.ptr_254, ptr %stack.ptr_256) | |
%921 = getelementptr %program, ptr %arg_0, i32 0, i32 6 | |
call ccc void @eclair_btree_upper_bound_3(ptr %921, ptr %stack.ptr_255, ptr %stack.ptr_257) | |
br label %loop_57 | |
loop_57: | |
%922 = call ccc i1 @eclair_btree_iterator_is_equal_3(ptr %stack.ptr_256, ptr %stack.ptr_257) | |
br i1 %922, label %if_65, label %end_if_65 | |
if_65: | |
br label %range_query.end_56 | |
end_if_65: | |
%923 = call ccc ptr @eclair_btree_iterator_current_3(ptr %stack.ptr_256) | |
%924 = getelementptr [1 x i32], ptr %stack.ptr_258, i32 0, i32 0 | |
%925 = getelementptr [4 x i32], ptr %923, i32 0, i32 3 | |
%926 = load i32, ptr %925 | |
store i32 %926, ptr %924 | |
%927 = getelementptr [1 x i32], ptr %stack.ptr_259, i32 0, i32 0 | |
%928 = getelementptr [4 x i32], ptr %923, i32 0, i32 3 | |
%929 = load i32, ptr %928 | |
store i32 %929, ptr %927 | |
%930 = getelementptr %program, ptr %arg_0, i32 0, i32 68 | |
call ccc void @eclair_btree_lower_bound_6(ptr %930, ptr %stack.ptr_258, ptr %stack.ptr_260) | |
%931 = getelementptr %program, ptr %arg_0, i32 0, i32 68 | |
call ccc void @eclair_btree_upper_bound_6(ptr %931, ptr %stack.ptr_259, ptr %stack.ptr_261) | |
br label %loop_58 | |
loop_58: | |
%932 = call ccc i1 @eclair_btree_iterator_is_equal_6(ptr %stack.ptr_260, ptr %stack.ptr_261) | |
br i1 %932, label %if_66, label %end_if_66 | |
if_66: | |
br label %range_query.end_57 | |
end_if_66: | |
%933 = call ccc ptr @eclair_btree_iterator_current_6(ptr %stack.ptr_260) | |
%934 = getelementptr [2 x i32], ptr %stack.ptr_262, i32 0, i32 0 | |
%935 = getelementptr [4 x i32], ptr %923, i32 0, i32 0 | |
%936 = load i32, ptr %935 | |
store i32 %936, ptr %934 | |
%937 = getelementptr [2 x i32], ptr %stack.ptr_262, i32 0, i32 1 | |
%938 = getelementptr [4 x i32], ptr %923, i32 0, i32 3 | |
%939 = load i32, ptr %938 | |
store i32 %939, ptr %937 | |
%940 = getelementptr %program, ptr %arg_0, i32 0, i32 69 | |
%941 = call ccc i1 @eclair_btree_insert_value_1(ptr %940, ptr %stack.ptr_262) | |
call ccc void @eclair_btree_iterator_next_6(ptr %stack.ptr_260) | |
br label %loop_58 | |
range_query.end_57: | |
call ccc void @eclair_btree_iterator_next_3(ptr %stack.ptr_256) | |
br label %loop_57 | |
range_query.end_56: | |
%942 = getelementptr [1 x i32], ptr %stack.ptr_263, i32 0, i32 0 | |
store i32 59, ptr %942 | |
%943 = getelementptr %program, ptr %arg_0, i32 0, i32 31 | |
%944 = call ccc i1 @eclair_btree_insert_value_6(ptr %943, ptr %stack.ptr_263) | |
%945 = getelementptr [1 x i32], ptr %stack.ptr_264, i32 0, i32 0 | |
store i32 58, ptr %945 | |
%946 = getelementptr %program, ptr %arg_0, i32 0, i32 31 | |
%947 = call ccc i1 @eclair_btree_insert_value_6(ptr %946, ptr %stack.ptr_264) | |
%948 = getelementptr [1 x i32], ptr %stack.ptr_265, i32 0, i32 0 | |
store i32 57, ptr %948 | |
%949 = getelementptr %program, ptr %arg_0, i32 0, i32 31 | |
%950 = call ccc i1 @eclair_btree_insert_value_6(ptr %949, ptr %stack.ptr_265) | |
%951 = getelementptr [1 x i32], ptr %stack.ptr_266, i32 0, i32 0 | |
store i32 56, ptr %951 | |
%952 = getelementptr %program, ptr %arg_0, i32 0, i32 31 | |
%953 = call ccc i1 @eclair_btree_insert_value_6(ptr %952, ptr %stack.ptr_266) | |
%954 = getelementptr [1 x i32], ptr %stack.ptr_267, i32 0, i32 0 | |
store i32 55, ptr %954 | |
%955 = getelementptr %program, ptr %arg_0, i32 0, i32 31 | |
%956 = call ccc i1 @eclair_btree_insert_value_6(ptr %955, ptr %stack.ptr_267) | |
%957 = getelementptr [3 x i32], ptr %stack.ptr_268, i32 0, i32 0 | |
store i32 0, ptr %957 | |
%958 = getelementptr [3 x i32], ptr %stack.ptr_268, i32 0, i32 1 | |
store i32 0, ptr %958 | |
%959 = getelementptr [3 x i32], ptr %stack.ptr_268, i32 0, i32 2 | |
store i32 0, ptr %959 | |
%960 = getelementptr [3 x i32], ptr %stack.ptr_269, i32 0, i32 0 | |
store i32 4294967295, ptr %960 | |
%961 = getelementptr [3 x i32], ptr %stack.ptr_269, i32 0, i32 1 | |
store i32 4294967295, ptr %961 | |
%962 = getelementptr [3 x i32], ptr %stack.ptr_269, i32 0, i32 2 | |
store i32 4294967295, ptr %962 | |
%963 = getelementptr %program, ptr %arg_0, i32 0, i32 53 | |
call ccc void @eclair_btree_lower_bound_0(ptr %963, ptr %stack.ptr_268, ptr %stack.ptr_270) | |
%964 = getelementptr %program, ptr %arg_0, i32 0, i32 53 | |
call ccc void @eclair_btree_upper_bound_0(ptr %964, ptr %stack.ptr_269, ptr %stack.ptr_271) | |
br label %loop_59 | |
loop_59: | |
%965 = call ccc i1 @eclair_btree_iterator_is_equal_0(ptr %stack.ptr_270, ptr %stack.ptr_271) | |
br i1 %965, label %if_67, label %end_if_67 | |
if_67: | |
br label %range_query.end_58 | |
end_if_67: | |
%966 = call ccc ptr @eclair_btree_iterator_current_0(ptr %stack.ptr_270) | |
%967 = getelementptr [2 x i32], ptr %stack.ptr_272, i32 0, i32 0 | |
%968 = getelementptr [3 x i32], ptr %966, i32 0, i32 2 | |
%969 = load i32, ptr %968 | |
store i32 %969, ptr %967 | |
%970 = getelementptr [2 x i32], ptr %stack.ptr_272, i32 0, i32 1 | |
store i32 0, ptr %970 | |
%971 = getelementptr [2 x i32], ptr %stack.ptr_273, i32 0, i32 0 | |
%972 = getelementptr [3 x i32], ptr %966, i32 0, i32 2 | |
%973 = load i32, ptr %972 | |
store i32 %973, ptr %971 | |
%974 = getelementptr [2 x i32], ptr %stack.ptr_273, i32 0, i32 1 | |
store i32 4294967295, ptr %974 | |
%975 = getelementptr %program, ptr %arg_0, i32 0, i32 40 | |
call ccc void @eclair_btree_lower_bound_1(ptr %975, ptr %stack.ptr_272, ptr %stack.ptr_274) | |
%976 = getelementptr %program, ptr %arg_0, i32 0, i32 40 | |
call ccc void @eclair_btree_upper_bound_1(ptr %976, ptr %stack.ptr_273, ptr %stack.ptr_275) | |
br label %loop_60 | |
loop_60: | |
%977 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_274, ptr %stack.ptr_275) | |
br i1 %977, label %if_68, label %end_if_68 | |
if_68: | |
br label %range_query.end_59 | |
end_if_68: | |
%978 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_274) | |
%979 = getelementptr [2 x i32], ptr %stack.ptr_276, i32 0, i32 0 | |
%980 = getelementptr [3 x i32], ptr %966, i32 0, i32 0 | |
%981 = load i32, ptr %980 | |
store i32 %981, ptr %979 | |
%982 = getelementptr [2 x i32], ptr %stack.ptr_276, i32 0, i32 1 | |
%983 = getelementptr [3 x i32], ptr %966, i32 0, i32 2 | |
%984 = load i32, ptr %983 | |
store i32 %984, ptr %982 | |
%985 = getelementptr %program, ptr %arg_0, i32 0, i32 56 | |
%986 = call ccc i1 @eclair_btree_insert_value_1(ptr %985, ptr %stack.ptr_276) | |
%987 = getelementptr %program, ptr %arg_0, i32 0, i32 57 | |
%988 = call ccc i1 @eclair_btree_insert_value_2(ptr %987, ptr %stack.ptr_276) | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_274) | |
br label %loop_60 | |
range_query.end_59: | |
call ccc void @eclair_btree_iterator_next_0(ptr %stack.ptr_270) | |
br label %loop_59 | |
range_query.end_58: | |
%989 = getelementptr [2 x i32], ptr %stack.ptr_277, i32 0, i32 0 | |
store i32 0, ptr %989 | |
%990 = getelementptr [2 x i32], ptr %stack.ptr_277, i32 0, i32 1 | |
store i32 0, ptr %990 | |
%991 = getelementptr [2 x i32], ptr %stack.ptr_278, i32 0, i32 0 | |
store i32 4294967295, ptr %991 | |
%992 = getelementptr [2 x i32], ptr %stack.ptr_278, i32 0, i32 1 | |
store i32 4294967295, ptr %992 | |
%993 = getelementptr %program, ptr %arg_0, i32 0, i32 50 | |
call ccc void @eclair_btree_lower_bound_1(ptr %993, ptr %stack.ptr_277, ptr %stack.ptr_279) | |
%994 = getelementptr %program, ptr %arg_0, i32 0, i32 50 | |
call ccc void @eclair_btree_upper_bound_1(ptr %994, ptr %stack.ptr_278, ptr %stack.ptr_280) | |
br label %loop_61 | |
loop_61: | |
%995 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_279, ptr %stack.ptr_280) | |
br i1 %995, label %if_69, label %end_if_69 | |
if_69: | |
br label %range_query.end_60 | |
end_if_69: | |
%996 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_279) | |
%997 = getelementptr [2 x i32], ptr %stack.ptr_281, i32 0, i32 0 | |
%998 = getelementptr [2 x i32], ptr %996, i32 0, i32 0 | |
%999 = load i32, ptr %998 | |
store i32 %999, ptr %997 | |
%1000 = getelementptr [2 x i32], ptr %stack.ptr_281, i32 0, i32 1 | |
%1001 = getelementptr [2 x i32], ptr %996, i32 0, i32 0 | |
%1002 = load i32, ptr %1001 | |
store i32 %1002, ptr %1000 | |
%1003 = getelementptr %program, ptr %arg_0, i32 0, i32 56 | |
%1004 = call ccc i1 @eclair_btree_insert_value_1(ptr %1003, ptr %stack.ptr_281) | |
%1005 = getelementptr %program, ptr %arg_0, i32 0, i32 57 | |
%1006 = call ccc i1 @eclair_btree_insert_value_2(ptr %1005, ptr %stack.ptr_281) | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_279) | |
br label %loop_61 | |
range_query.end_60: | |
%1007 = getelementptr [2 x i32], ptr %stack.ptr_282, i32 0, i32 0 | |
store i32 0, ptr %1007 | |
%1008 = getelementptr [2 x i32], ptr %stack.ptr_282, i32 0, i32 1 | |
store i32 0, ptr %1008 | |
%1009 = getelementptr [2 x i32], ptr %stack.ptr_283, i32 0, i32 0 | |
store i32 4294967295, ptr %1009 | |
%1010 = getelementptr [2 x i32], ptr %stack.ptr_283, i32 0, i32 1 | |
store i32 4294967295, ptr %1010 | |
%1011 = getelementptr %program, ptr %arg_0, i32 0, i32 56 | |
call ccc void @eclair_btree_lower_bound_1(ptr %1011, ptr %stack.ptr_282, ptr %stack.ptr_284) | |
%1012 = getelementptr %program, ptr %arg_0, i32 0, i32 56 | |
call ccc void @eclair_btree_upper_bound_1(ptr %1012, ptr %stack.ptr_283, ptr %stack.ptr_285) | |
br label %loop_62 | |
loop_62: | |
%1013 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_284, ptr %stack.ptr_285) | |
br i1 %1013, label %if_70, label %end_if_70 | |
if_70: | |
br label %range_query.end_61 | |
end_if_70: | |
%1014 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_284) | |
%1015 = getelementptr [2 x i32], ptr %stack.ptr_286, i32 0, i32 0 | |
%1016 = getelementptr [2 x i32], ptr %1014, i32 0, i32 0 | |
%1017 = load i32, ptr %1016 | |
store i32 %1017, ptr %1015 | |
%1018 = getelementptr [2 x i32], ptr %stack.ptr_286, i32 0, i32 1 | |
store i32 0, ptr %1018 | |
%1019 = getelementptr [2 x i32], ptr %stack.ptr_287, i32 0, i32 0 | |
%1020 = getelementptr [2 x i32], ptr %1014, i32 0, i32 0 | |
%1021 = load i32, ptr %1020 | |
store i32 %1021, ptr %1019 | |
%1022 = getelementptr [2 x i32], ptr %stack.ptr_287, i32 0, i32 1 | |
store i32 4294967295, ptr %1022 | |
%1023 = getelementptr %program, ptr %arg_0, i32 0, i32 56 | |
call ccc void @eclair_btree_lower_bound_1(ptr %1023, ptr %stack.ptr_286, ptr %stack.ptr_288) | |
%1024 = getelementptr %program, ptr %arg_0, i32 0, i32 56 | |
call ccc void @eclair_btree_upper_bound_1(ptr %1024, ptr %stack.ptr_287, ptr %stack.ptr_289) | |
br label %loop_63 | |
loop_63: | |
%1025 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_288, ptr %stack.ptr_289) | |
br i1 %1025, label %if_71, label %end_if_71 | |
if_71: | |
br label %range_query.end_62 | |
end_if_71: | |
%1026 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_288) | |
%1027 = getelementptr [2 x i32], ptr %stack.ptr_290, i32 0, i32 0 | |
%1028 = getelementptr [2 x i32], ptr %1014, i32 0, i32 1 | |
%1029 = load i32, ptr %1028 | |
store i32 %1029, ptr %1027 | |
%1030 = getelementptr [2 x i32], ptr %stack.ptr_290, i32 0, i32 1 | |
store i32 0, ptr %1030 | |
%1031 = getelementptr [2 x i32], ptr %stack.ptr_291, i32 0, i32 0 | |
%1032 = getelementptr [2 x i32], ptr %1014, i32 0, i32 1 | |
%1033 = load i32, ptr %1032 | |
store i32 %1033, ptr %1031 | |
%1034 = getelementptr [2 x i32], ptr %stack.ptr_291, i32 0, i32 1 | |
store i32 4294967295, ptr %1034 | |
%1035 = getelementptr %program, ptr %arg_0, i32 0, i32 59 | |
call ccc void @eclair_btree_lower_bound_1(ptr %1035, ptr %stack.ptr_290, ptr %stack.ptr_292) | |
%1036 = getelementptr %program, ptr %arg_0, i32 0, i32 59 | |
call ccc void @eclair_btree_upper_bound_1(ptr %1036, ptr %stack.ptr_291, ptr %stack.ptr_293) | |
br label %loop_64 | |
loop_64: | |
%1037 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_292, ptr %stack.ptr_293) | |
br i1 %1037, label %if_72, label %end_if_72 | |
if_72: | |
br label %range_query.end_63 | |
end_if_72: | |
%1038 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_292) | |
%1039 = getelementptr [2 x i32], ptr %stack.ptr_294, i32 0, i32 0 | |
%1040 = getelementptr [2 x i32], ptr %1026, i32 0, i32 1 | |
%1041 = load i32, ptr %1040 | |
store i32 %1041, ptr %1039 | |
%1042 = getelementptr [2 x i32], ptr %stack.ptr_294, i32 0, i32 1 | |
store i32 0, ptr %1042 | |
%1043 = getelementptr [2 x i32], ptr %stack.ptr_295, i32 0, i32 0 | |
%1044 = getelementptr [2 x i32], ptr %1026, i32 0, i32 1 | |
%1045 = load i32, ptr %1044 | |
store i32 %1045, ptr %1043 | |
%1046 = getelementptr [2 x i32], ptr %stack.ptr_295, i32 0, i32 1 | |
store i32 4294967295, ptr %1046 | |
%1047 = getelementptr %program, ptr %arg_0, i32 0, i32 59 | |
call ccc void @eclair_btree_lower_bound_1(ptr %1047, ptr %stack.ptr_294, ptr %stack.ptr_296) | |
%1048 = getelementptr %program, ptr %arg_0, i32 0, i32 59 | |
call ccc void @eclair_btree_upper_bound_1(ptr %1048, ptr %stack.ptr_295, ptr %stack.ptr_297) | |
br label %loop_65 | |
loop_65: | |
%1049 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_296, ptr %stack.ptr_297) | |
br i1 %1049, label %if_73, label %end_if_73 | |
if_73: | |
br label %range_query.end_64 | |
end_if_73: | |
%1050 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_296) | |
%1051 = getelementptr [2 x i32], ptr %1038, i32 0, i32 1 | |
%1052 = load i32, ptr %1051 | |
%1053 = getelementptr [2 x i32], ptr %1050, i32 0, i32 1 | |
%1054 = load i32, ptr %1053 | |
%1055 = icmp ne i32 %1052, %1054 | |
br i1 %1055, label %if_74, label %end_if_76 | |
if_74: | |
%1056 = getelementptr [2 x i32], ptr %stack.ptr_298, i32 0, i32 0 | |
%1057 = getelementptr [2 x i32], ptr %1038, i32 0, i32 1 | |
%1058 = load i32, ptr %1057 | |
store i32 %1058, ptr %1056 | |
%1059 = getelementptr [2 x i32], ptr %stack.ptr_298, i32 0, i32 1 | |
store i32 0, ptr %1059 | |
%1060 = getelementptr [2 x i32], ptr %stack.ptr_299, i32 0, i32 0 | |
%1061 = getelementptr [2 x i32], ptr %1038, i32 0, i32 1 | |
%1062 = load i32, ptr %1061 | |
store i32 %1062, ptr %1060 | |
%1063 = getelementptr [2 x i32], ptr %stack.ptr_299, i32 0, i32 1 | |
store i32 4294967295, ptr %1063 | |
%1064 = getelementptr %program, ptr %arg_0, i32 0, i32 66 | |
call ccc void @eclair_btree_lower_bound_1(ptr %1064, ptr %stack.ptr_298, ptr %stack.ptr_300) | |
%1065 = getelementptr %program, ptr %arg_0, i32 0, i32 66 | |
call ccc void @eclair_btree_upper_bound_1(ptr %1065, ptr %stack.ptr_299, ptr %stack.ptr_301) | |
br label %loop_66 | |
loop_66: | |
%1066 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_300, ptr %stack.ptr_301) | |
br i1 %1066, label %if_75, label %end_if_74 | |
if_75: | |
br label %range_query.end_65 | |
end_if_74: | |
%1067 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_300) | |
%1068 = getelementptr [2 x i32], ptr %stack.ptr_302, i32 0, i32 0 | |
%1069 = getelementptr [2 x i32], ptr %1050, i32 0, i32 1 | |
%1070 = load i32, ptr %1069 | |
store i32 %1070, ptr %1068 | |
%1071 = getelementptr [2 x i32], ptr %stack.ptr_302, i32 0, i32 1 | |
%1072 = getelementptr [2 x i32], ptr %1067, i32 0, i32 1 | |
%1073 = load i32, ptr %1072 | |
store i32 %1073, ptr %1071 | |
%1074 = getelementptr [2 x i32], ptr %stack.ptr_303, i32 0, i32 0 | |
%1075 = getelementptr [2 x i32], ptr %1050, i32 0, i32 1 | |
%1076 = load i32, ptr %1075 | |
store i32 %1076, ptr %1074 | |
%1077 = getelementptr [2 x i32], ptr %stack.ptr_303, i32 0, i32 1 | |
%1078 = getelementptr [2 x i32], ptr %1067, i32 0, i32 1 | |
%1079 = load i32, ptr %1078 | |
store i32 %1079, ptr %1077 | |
%1080 = getelementptr %program, ptr %arg_0, i32 0, i32 66 | |
call ccc void @eclair_btree_lower_bound_1(ptr %1080, ptr %stack.ptr_302, ptr %stack.ptr_304) | |
%1081 = getelementptr %program, ptr %arg_0, i32 0, i32 66 | |
call ccc void @eclair_btree_upper_bound_1(ptr %1081, ptr %stack.ptr_303, ptr %stack.ptr_305) | |
br label %loop_67 | |
loop_67: | |
%1082 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_304, ptr %stack.ptr_305) | |
br i1 %1082, label %if_76, label %end_if_75 | |
if_76: | |
br label %range_query.end_66 | |
end_if_75: | |
%1083 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_304) | |
%1084 = getelementptr [3 x i32], ptr %stack.ptr_306, i32 0, i32 0 | |
%1085 = getelementptr [2 x i32], ptr %1014, i32 0, i32 0 | |
%1086 = load i32, ptr %1085 | |
store i32 %1086, ptr %1084 | |
%1087 = getelementptr [3 x i32], ptr %stack.ptr_306, i32 0, i32 1 | |
%1088 = getelementptr [2 x i32], ptr %1038, i32 0, i32 1 | |
%1089 = load i32, ptr %1088 | |
store i32 %1089, ptr %1087 | |
%1090 = getelementptr [3 x i32], ptr %stack.ptr_306, i32 0, i32 2 | |
%1091 = getelementptr [2 x i32], ptr %1067, i32 0, i32 1 | |
%1092 = load i32, ptr %1091 | |
store i32 %1092, ptr %1090 | |
%1093 = getelementptr %program, ptr %arg_0, i32 0, i32 8 | |
%1094 = call ccc i1 @eclair_btree_insert_value_0(ptr %1093, ptr %stack.ptr_306) | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_304) | |
br label %loop_67 | |
range_query.end_66: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_300) | |
br label %loop_66 | |
range_query.end_65: | |
br label %end_if_76 | |
end_if_76: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_296) | |
br label %loop_65 | |
range_query.end_64: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_292) | |
br label %loop_64 | |
range_query.end_63: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_288) | |
br label %loop_63 | |
range_query.end_62: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_284) | |
br label %loop_62 | |
range_query.end_61: | |
%1095 = getelementptr [2 x i32], ptr %stack.ptr_307, i32 0, i32 0 | |
store i32 0, ptr %1095 | |
%1096 = getelementptr [2 x i32], ptr %stack.ptr_307, i32 0, i32 1 | |
store i32 0, ptr %1096 | |
%1097 = getelementptr [2 x i32], ptr %stack.ptr_308, i32 0, i32 0 | |
store i32 4294967295, ptr %1097 | |
%1098 = getelementptr [2 x i32], ptr %stack.ptr_308, i32 0, i32 1 | |
store i32 4294967295, ptr %1098 | |
%1099 = getelementptr %program, ptr %arg_0, i32 0, i32 56 | |
call ccc void @eclair_btree_lower_bound_1(ptr %1099, ptr %stack.ptr_307, ptr %stack.ptr_309) | |
%1100 = getelementptr %program, ptr %arg_0, i32 0, i32 56 | |
call ccc void @eclair_btree_upper_bound_1(ptr %1100, ptr %stack.ptr_308, ptr %stack.ptr_310) | |
br label %loop_68 | |
loop_68: | |
%1101 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_309, ptr %stack.ptr_310) | |
br i1 %1101, label %if_77, label %end_if_77 | |
if_77: | |
br label %range_query.end_67 | |
end_if_77: | |
%1102 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_309) | |
%1103 = getelementptr [2 x i32], ptr %stack.ptr_311, i32 0, i32 0 | |
%1104 = getelementptr [2 x i32], ptr %1102, i32 0, i32 1 | |
%1105 = load i32, ptr %1104 | |
store i32 %1105, ptr %1103 | |
%1106 = getelementptr [2 x i32], ptr %stack.ptr_311, i32 0, i32 1 | |
store i32 0, ptr %1106 | |
%1107 = getelementptr [2 x i32], ptr %stack.ptr_312, i32 0, i32 0 | |
%1108 = getelementptr [2 x i32], ptr %1102, i32 0, i32 1 | |
%1109 = load i32, ptr %1108 | |
store i32 %1109, ptr %1107 | |
%1110 = getelementptr [2 x i32], ptr %stack.ptr_312, i32 0, i32 1 | |
store i32 4294967295, ptr %1110 | |
%1111 = getelementptr %program, ptr %arg_0, i32 0, i32 59 | |
call ccc void @eclair_btree_lower_bound_1(ptr %1111, ptr %stack.ptr_311, ptr %stack.ptr_313) | |
%1112 = getelementptr %program, ptr %arg_0, i32 0, i32 59 | |
call ccc void @eclair_btree_upper_bound_1(ptr %1112, ptr %stack.ptr_312, ptr %stack.ptr_314) | |
br label %loop_69 | |
loop_69: | |
%1113 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_313, ptr %stack.ptr_314) | |
br i1 %1113, label %if_78, label %end_if_78 | |
if_78: | |
br label %range_query.end_68 | |
end_if_78: | |
%1114 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_313) | |
%1115 = getelementptr [2 x i32], ptr %stack.ptr_315, i32 0, i32 0 | |
%1116 = getelementptr [2 x i32], ptr %1114, i32 0, i32 1 | |
%1117 = load i32, ptr %1116 | |
store i32 %1117, ptr %1115 | |
%1118 = getelementptr [2 x i32], ptr %stack.ptr_315, i32 0, i32 1 | |
store i32 0, ptr %1118 | |
%1119 = getelementptr [2 x i32], ptr %stack.ptr_316, i32 0, i32 0 | |
%1120 = getelementptr [2 x i32], ptr %1114, i32 0, i32 1 | |
%1121 = load i32, ptr %1120 | |
store i32 %1121, ptr %1119 | |
%1122 = getelementptr [2 x i32], ptr %stack.ptr_316, i32 0, i32 1 | |
store i32 4294967295, ptr %1122 | |
%1123 = getelementptr %program, ptr %arg_0, i32 0, i32 66 | |
call ccc void @eclair_btree_lower_bound_1(ptr %1123, ptr %stack.ptr_315, ptr %stack.ptr_317) | |
%1124 = getelementptr %program, ptr %arg_0, i32 0, i32 66 | |
call ccc void @eclair_btree_upper_bound_1(ptr %1124, ptr %stack.ptr_316, ptr %stack.ptr_318) | |
br label %loop_70 | |
loop_70: | |
%1125 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_317, ptr %stack.ptr_318) | |
br i1 %1125, label %if_79, label %end_if_79 | |
if_79: | |
br label %range_query.end_69 | |
end_if_79: | |
%1126 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_317) | |
%1127 = getelementptr [3 x i32], ptr %stack.ptr_319, i32 0, i32 0 | |
%1128 = getelementptr [2 x i32], ptr %1102, i32 0, i32 0 | |
%1129 = load i32, ptr %1128 | |
store i32 %1129, ptr %1127 | |
%1130 = getelementptr [3 x i32], ptr %stack.ptr_319, i32 0, i32 1 | |
%1131 = getelementptr [2 x i32], ptr %1114, i32 0, i32 1 | |
%1132 = load i32, ptr %1131 | |
store i32 %1132, ptr %1130 | |
%1133 = getelementptr [3 x i32], ptr %stack.ptr_319, i32 0, i32 2 | |
%1134 = getelementptr [2 x i32], ptr %1126, i32 0, i32 1 | |
%1135 = load i32, ptr %1134 | |
store i32 %1135, ptr %1133 | |
%1136 = getelementptr %program, ptr %arg_0, i32 0, i32 8 | |
%1137 = call ccc i1 @eclair_btree_contains_0(ptr %1136, ptr %stack.ptr_319) | |
%1138 = select i1 %1137, i1 0, i1 1 | |
br i1 %1138, label %if_80, label %end_if_80 | |
if_80: | |
%1139 = getelementptr [3 x i32], ptr %stack.ptr_320, i32 0, i32 0 | |
%1140 = getelementptr [2 x i32], ptr %1102, i32 0, i32 0 | |
%1141 = load i32, ptr %1140 | |
store i32 %1141, ptr %1139 | |
%1142 = getelementptr [3 x i32], ptr %stack.ptr_320, i32 0, i32 1 | |
%1143 = getelementptr [2 x i32], ptr %1114, i32 0, i32 1 | |
%1144 = load i32, ptr %1143 | |
store i32 %1144, ptr %1142 | |
%1145 = getelementptr [3 x i32], ptr %stack.ptr_320, i32 0, i32 2 | |
%1146 = getelementptr [2 x i32], ptr %1126, i32 0, i32 1 | |
%1147 = load i32, ptr %1146 | |
store i32 %1147, ptr %1145 | |
%1148 = getelementptr %program, ptr %arg_0, i32 0, i32 63 | |
%1149 = call ccc i1 @eclair_btree_insert_value_0(ptr %1148, ptr %stack.ptr_320) | |
br label %end_if_80 | |
end_if_80: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_317) | |
br label %loop_70 | |
range_query.end_69: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_313) | |
br label %loop_69 | |
range_query.end_68: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_309) | |
br label %loop_68 | |
range_query.end_67: | |
%1150 = getelementptr [2 x i32], ptr %stack.ptr_321, i32 0, i32 0 | |
store i32 0, ptr %1150 | |
%1151 = getelementptr [2 x i32], ptr %stack.ptr_321, i32 0, i32 1 | |
store i32 0, ptr %1151 | |
%1152 = getelementptr [2 x i32], ptr %stack.ptr_322, i32 0, i32 0 | |
store i32 4294967295, ptr %1152 | |
%1153 = getelementptr [2 x i32], ptr %stack.ptr_322, i32 0, i32 1 | |
store i32 4294967295, ptr %1153 | |
%1154 = getelementptr %program, ptr %arg_0, i32 0, i32 39 | |
call ccc void @eclair_btree_lower_bound_1(ptr %1154, ptr %stack.ptr_321, ptr %stack.ptr_323) | |
%1155 = getelementptr %program, ptr %arg_0, i32 0, i32 39 | |
call ccc void @eclair_btree_upper_bound_1(ptr %1155, ptr %stack.ptr_322, ptr %stack.ptr_324) | |
br label %loop_71 | |
loop_71: | |
%1156 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_323, ptr %stack.ptr_324) | |
br i1 %1156, label %if_81, label %end_if_81 | |
if_81: | |
br label %range_query.end_70 | |
end_if_81: | |
%1157 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_323) | |
%1158 = getelementptr [2 x i32], ptr %stack.ptr_325, i32 0, i32 0 | |
%1159 = getelementptr [2 x i32], ptr %1157, i32 0, i32 1 | |
%1160 = load i32, ptr %1159 | |
store i32 %1160, ptr %1158 | |
%1161 = getelementptr [2 x i32], ptr %stack.ptr_325, i32 0, i32 1 | |
store i32 0, ptr %1161 | |
%1162 = getelementptr [2 x i32], ptr %stack.ptr_326, i32 0, i32 0 | |
%1163 = getelementptr [2 x i32], ptr %1157, i32 0, i32 1 | |
%1164 = load i32, ptr %1163 | |
store i32 %1164, ptr %1162 | |
%1165 = getelementptr [2 x i32], ptr %stack.ptr_326, i32 0, i32 1 | |
store i32 4294967295, ptr %1165 | |
%1166 = getelementptr %program, ptr %arg_0, i32 0, i32 3 | |
call ccc void @eclair_btree_lower_bound_1(ptr %1166, ptr %stack.ptr_325, ptr %stack.ptr_327) | |
%1167 = getelementptr %program, ptr %arg_0, i32 0, i32 3 | |
call ccc void @eclair_btree_upper_bound_1(ptr %1167, ptr %stack.ptr_326, ptr %stack.ptr_328) | |
br label %loop_72 | |
loop_72: | |
%1168 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_327, ptr %stack.ptr_328) | |
br i1 %1168, label %if_82, label %end_if_82 | |
if_82: | |
br label %range_query.end_71 | |
end_if_82: | |
%1169 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_327) | |
%1170 = getelementptr [2 x i32], ptr %stack.ptr_329, i32 0, i32 0 | |
%1171 = getelementptr [2 x i32], ptr %1157, i32 0, i32 1 | |
%1172 = load i32, ptr %1171 | |
store i32 %1172, ptr %1170 | |
%1173 = getelementptr [2 x i32], ptr %stack.ptr_329, i32 0, i32 1 | |
store i32 0, ptr %1173 | |
%1174 = getelementptr [2 x i32], ptr %stack.ptr_330, i32 0, i32 0 | |
%1175 = getelementptr [2 x i32], ptr %1157, i32 0, i32 1 | |
%1176 = load i32, ptr %1175 | |
store i32 %1176, ptr %1174 | |
%1177 = getelementptr [2 x i32], ptr %stack.ptr_330, i32 0, i32 1 | |
store i32 4294967295, ptr %1177 | |
%1178 = getelementptr %program, ptr %arg_0, i32 0, i32 59 | |
call ccc void @eclair_btree_lower_bound_1(ptr %1178, ptr %stack.ptr_329, ptr %stack.ptr_331) | |
%1179 = getelementptr %program, ptr %arg_0, i32 0, i32 59 | |
call ccc void @eclair_btree_upper_bound_1(ptr %1179, ptr %stack.ptr_330, ptr %stack.ptr_332) | |
br label %loop_73 | |
loop_73: | |
%1180 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_331, ptr %stack.ptr_332) | |
br i1 %1180, label %if_83, label %end_if_83 | |
if_83: | |
br label %range_query.end_72 | |
end_if_83: | |
%1181 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_331) | |
%1182 = getelementptr [2 x i32], ptr %stack.ptr_333, i32 0, i32 0 | |
%1183 = getelementptr [2 x i32], ptr %1181, i32 0, i32 1 | |
%1184 = load i32, ptr %1183 | |
store i32 %1184, ptr %1182 | |
%1185 = getelementptr [2 x i32], ptr %stack.ptr_333, i32 0, i32 1 | |
store i32 0, ptr %1185 | |
%1186 = getelementptr [2 x i32], ptr %stack.ptr_334, i32 0, i32 0 | |
%1187 = getelementptr [2 x i32], ptr %1181, i32 0, i32 1 | |
%1188 = load i32, ptr %1187 | |
store i32 %1188, ptr %1186 | |
%1189 = getelementptr [2 x i32], ptr %stack.ptr_334, i32 0, i32 1 | |
store i32 4294967295, ptr %1189 | |
%1190 = getelementptr %program, ptr %arg_0, i32 0, i32 66 | |
call ccc void @eclair_btree_lower_bound_1(ptr %1190, ptr %stack.ptr_333, ptr %stack.ptr_335) | |
%1191 = getelementptr %program, ptr %arg_0, i32 0, i32 66 | |
call ccc void @eclair_btree_upper_bound_1(ptr %1191, ptr %stack.ptr_334, ptr %stack.ptr_336) | |
br label %loop_74 | |
loop_74: | |
%1192 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_335, ptr %stack.ptr_336) | |
br i1 %1192, label %if_84, label %end_if_84 | |
if_84: | |
br label %range_query.end_73 | |
end_if_84: | |
%1193 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_335) | |
%1194 = getelementptr [2 x i32], ptr %1193, i32 0, i32 1 | |
%1195 = load i32, ptr %1194 | |
%1196 = icmp ne i32 %1195, 54 | |
br i1 %1196, label %if_85, label %end_if_85 | |
if_85: | |
%1197 = getelementptr [3 x i32], ptr %stack.ptr_337, i32 0, i32 0 | |
%1198 = getelementptr [2 x i32], ptr %1157, i32 0, i32 1 | |
%1199 = load i32, ptr %1198 | |
store i32 %1199, ptr %1197 | |
%1200 = getelementptr [3 x i32], ptr %stack.ptr_337, i32 0, i32 1 | |
%1201 = getelementptr [2 x i32], ptr %1181, i32 0, i32 1 | |
%1202 = load i32, ptr %1201 | |
store i32 %1202, ptr %1200 | |
%1203 = getelementptr [3 x i32], ptr %stack.ptr_337, i32 0, i32 2 | |
%1204 = getelementptr [2 x i32], ptr %1193, i32 0, i32 1 | |
%1205 = load i32, ptr %1204 | |
store i32 %1205, ptr %1203 | |
%1206 = getelementptr %program, ptr %arg_0, i32 0, i32 65 | |
%1207 = call ccc i1 @eclair_btree_insert_value_0(ptr %1206, ptr %stack.ptr_337) | |
br label %end_if_85 | |
end_if_85: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_335) | |
br label %loop_74 | |
range_query.end_73: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_331) | |
br label %loop_73 | |
range_query.end_72: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_327) | |
br label %loop_72 | |
range_query.end_71: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_323) | |
br label %loop_71 | |
range_query.end_70: | |
%1208 = getelementptr [2 x i32], ptr %stack.ptr_338, i32 0, i32 0 | |
store i32 0, ptr %1208 | |
%1209 = getelementptr [2 x i32], ptr %stack.ptr_338, i32 0, i32 1 | |
store i32 0, ptr %1209 | |
%1210 = getelementptr [2 x i32], ptr %stack.ptr_339, i32 0, i32 0 | |
store i32 4294967295, ptr %1210 | |
%1211 = getelementptr [2 x i32], ptr %stack.ptr_339, i32 0, i32 1 | |
store i32 4294967295, ptr %1211 | |
%1212 = getelementptr %program, ptr %arg_0, i32 0, i32 39 | |
call ccc void @eclair_btree_lower_bound_1(ptr %1212, ptr %stack.ptr_338, ptr %stack.ptr_340) | |
%1213 = getelementptr %program, ptr %arg_0, i32 0, i32 39 | |
call ccc void @eclair_btree_upper_bound_1(ptr %1213, ptr %stack.ptr_339, ptr %stack.ptr_341) | |
br label %loop_75 | |
loop_75: | |
%1214 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_340, ptr %stack.ptr_341) | |
br i1 %1214, label %if_86, label %end_if_86 | |
if_86: | |
br label %range_query.end_74 | |
end_if_86: | |
%1215 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_340) | |
%1216 = getelementptr [2 x i32], ptr %stack.ptr_342, i32 0, i32 0 | |
%1217 = getelementptr [2 x i32], ptr %1215, i32 0, i32 1 | |
%1218 = load i32, ptr %1217 | |
store i32 %1218, ptr %1216 | |
%1219 = getelementptr [2 x i32], ptr %stack.ptr_342, i32 0, i32 1 | |
store i32 0, ptr %1219 | |
%1220 = getelementptr [2 x i32], ptr %stack.ptr_343, i32 0, i32 0 | |
%1221 = getelementptr [2 x i32], ptr %1215, i32 0, i32 1 | |
%1222 = load i32, ptr %1221 | |
store i32 %1222, ptr %1220 | |
%1223 = getelementptr [2 x i32], ptr %stack.ptr_343, i32 0, i32 1 | |
store i32 4294967295, ptr %1223 | |
%1224 = getelementptr %program, ptr %arg_0, i32 0, i32 14 | |
call ccc void @eclair_btree_lower_bound_1(ptr %1224, ptr %stack.ptr_342, ptr %stack.ptr_344) | |
%1225 = getelementptr %program, ptr %arg_0, i32 0, i32 14 | |
call ccc void @eclair_btree_upper_bound_1(ptr %1225, ptr %stack.ptr_343, ptr %stack.ptr_345) | |
br label %loop_76 | |
loop_76: | |
%1226 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_344, ptr %stack.ptr_345) | |
br i1 %1226, label %if_87, label %end_if_87 | |
if_87: | |
br label %range_query.end_75 | |
end_if_87: | |
%1227 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_344) | |
%1228 = getelementptr [1 x i32], ptr %stack.ptr_346, i32 0, i32 0 | |
%1229 = getelementptr [2 x i32], ptr %1227, i32 0, i32 1 | |
%1230 = load i32, ptr %1229 | |
store i32 %1230, ptr %1228 | |
%1231 = getelementptr [1 x i32], ptr %stack.ptr_347, i32 0, i32 0 | |
%1232 = getelementptr [2 x i32], ptr %1227, i32 0, i32 1 | |
%1233 = load i32, ptr %1232 | |
store i32 %1233, ptr %1231 | |
%1234 = getelementptr %program, ptr %arg_0, i32 0, i32 47 | |
call ccc void @eclair_btree_lower_bound_6(ptr %1234, ptr %stack.ptr_346, ptr %stack.ptr_348) | |
%1235 = getelementptr %program, ptr %arg_0, i32 0, i32 47 | |
call ccc void @eclair_btree_upper_bound_6(ptr %1235, ptr %stack.ptr_347, ptr %stack.ptr_349) | |
br label %loop_77 | |
loop_77: | |
%1236 = call ccc i1 @eclair_btree_iterator_is_equal_6(ptr %stack.ptr_348, ptr %stack.ptr_349) | |
br i1 %1236, label %if_88, label %end_if_88 | |
if_88: | |
br label %range_query.end_76 | |
end_if_88: | |
%1237 = call ccc ptr @eclair_btree_iterator_current_6(ptr %stack.ptr_348) | |
%1238 = getelementptr [1 x i32], ptr %stack.ptr_350, i32 0, i32 0 | |
%1239 = getelementptr [2 x i32], ptr %1215, i32 0, i32 0 | |
%1240 = load i32, ptr %1239 | |
store i32 %1240, ptr %1238 | |
%1241 = getelementptr %program, ptr %arg_0, i32 0, i32 30 | |
%1242 = call ccc i1 @eclair_btree_insert_value_6(ptr %1241, ptr %stack.ptr_350) | |
call ccc void @eclair_btree_iterator_next_6(ptr %stack.ptr_348) | |
br label %loop_77 | |
range_query.end_76: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_344) | |
br label %loop_76 | |
range_query.end_75: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_340) | |
br label %loop_75 | |
range_query.end_74: | |
%1243 = getelementptr [2 x i32], ptr %stack.ptr_351, i32 0, i32 0 | |
store i32 0, ptr %1243 | |
%1244 = getelementptr [2 x i32], ptr %stack.ptr_351, i32 0, i32 1 | |
store i32 0, ptr %1244 | |
%1245 = getelementptr [2 x i32], ptr %stack.ptr_352, i32 0, i32 0 | |
store i32 4294967295, ptr %1245 | |
%1246 = getelementptr [2 x i32], ptr %stack.ptr_352, i32 0, i32 1 | |
store i32 4294967295, ptr %1246 | |
%1247 = getelementptr %program, ptr %arg_0, i32 0, i32 39 | |
call ccc void @eclair_btree_lower_bound_1(ptr %1247, ptr %stack.ptr_351, ptr %stack.ptr_353) | |
%1248 = getelementptr %program, ptr %arg_0, i32 0, i32 39 | |
call ccc void @eclair_btree_upper_bound_1(ptr %1248, ptr %stack.ptr_352, ptr %stack.ptr_354) | |
br label %loop_78 | |
loop_78: | |
%1249 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_353, ptr %stack.ptr_354) | |
br i1 %1249, label %if_89, label %end_if_89 | |
if_89: | |
br label %range_query.end_77 | |
end_if_89: | |
%1250 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_353) | |
%1251 = getelementptr [1 x i32], ptr %stack.ptr_355, i32 0, i32 0 | |
%1252 = getelementptr [2 x i32], ptr %1250, i32 0, i32 0 | |
%1253 = load i32, ptr %1252 | |
store i32 %1253, ptr %1251 | |
%1254 = getelementptr %program, ptr %arg_0, i32 0, i32 30 | |
%1255 = call ccc i1 @eclair_btree_contains_6(ptr %1254, ptr %stack.ptr_355) | |
%1256 = select i1 %1255, i1 0, i1 1 | |
br i1 %1256, label %if_90, label %end_if_90 | |
if_90: | |
%1257 = getelementptr [1 x i32], ptr %stack.ptr_356, i32 0, i32 0 | |
%1258 = getelementptr [2 x i32], ptr %1250, i32 0, i32 0 | |
%1259 = load i32, ptr %1258 | |
store i32 %1259, ptr %1257 | |
%1260 = getelementptr %program, ptr %arg_0, i32 0, i32 46 | |
%1261 = call ccc i1 @eclair_btree_insert_value_6(ptr %1260, ptr %stack.ptr_356) | |
br label %end_if_90 | |
end_if_90: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_353) | |
br label %loop_78 | |
range_query.end_77: | |
%1262 = getelementptr [2 x i32], ptr %stack.ptr_357, i32 0, i32 0 | |
store i32 0, ptr %1262 | |
%1263 = getelementptr [2 x i32], ptr %stack.ptr_357, i32 0, i32 1 | |
store i32 0, ptr %1263 | |
%1264 = getelementptr [2 x i32], ptr %stack.ptr_358, i32 0, i32 0 | |
store i32 4294967295, ptr %1264 | |
%1265 = getelementptr [2 x i32], ptr %stack.ptr_358, i32 0, i32 1 | |
store i32 4294967295, ptr %1265 | |
%1266 = getelementptr %program, ptr %arg_0, i32 0, i32 39 | |
call ccc void @eclair_btree_lower_bound_1(ptr %1266, ptr %stack.ptr_357, ptr %stack.ptr_359) | |
%1267 = getelementptr %program, ptr %arg_0, i32 0, i32 39 | |
call ccc void @eclair_btree_upper_bound_1(ptr %1267, ptr %stack.ptr_358, ptr %stack.ptr_360) | |
br label %loop_79 | |
loop_79: | |
%1268 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_359, ptr %stack.ptr_360) | |
br i1 %1268, label %if_91, label %end_if_91 | |
if_91: | |
br label %range_query.end_78 | |
end_if_91: | |
%1269 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_359) | |
%1270 = getelementptr [2 x i32], ptr %stack.ptr_361, i32 0, i32 0 | |
%1271 = getelementptr [2 x i32], ptr %1269, i32 0, i32 1 | |
%1272 = load i32, ptr %1271 | |
store i32 %1272, ptr %1270 | |
%1273 = getelementptr [2 x i32], ptr %stack.ptr_361, i32 0, i32 1 | |
store i32 0, ptr %1273 | |
%1274 = getelementptr [2 x i32], ptr %stack.ptr_362, i32 0, i32 0 | |
%1275 = getelementptr [2 x i32], ptr %1269, i32 0, i32 1 | |
%1276 = load i32, ptr %1275 | |
store i32 %1276, ptr %1274 | |
%1277 = getelementptr [2 x i32], ptr %stack.ptr_362, i32 0, i32 1 | |
store i32 4294967295, ptr %1277 | |
%1278 = getelementptr %program, ptr %arg_0, i32 0, i32 50 | |
call ccc void @eclair_btree_lower_bound_1(ptr %1278, ptr %stack.ptr_361, ptr %stack.ptr_363) | |
%1279 = getelementptr %program, ptr %arg_0, i32 0, i32 50 | |
call ccc void @eclair_btree_upper_bound_1(ptr %1279, ptr %stack.ptr_362, ptr %stack.ptr_364) | |
br label %loop_80 | |
loop_80: | |
%1280 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_363, ptr %stack.ptr_364) | |
br i1 %1280, label %if_92, label %end_if_92 | |
if_92: | |
br label %range_query.end_79 | |
end_if_92: | |
%1281 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_363) | |
%1282 = getelementptr [1 x i32], ptr %stack.ptr_365, i32 0, i32 0 | |
%1283 = getelementptr [2 x i32], ptr %1281, i32 0, i32 1 | |
%1284 = load i32, ptr %1283 | |
store i32 %1284, ptr %1282 | |
%1285 = getelementptr %program, ptr %arg_0, i32 0, i32 29 | |
%1286 = call ccc i1 @eclair_btree_insert_value_6(ptr %1285, ptr %stack.ptr_365) | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_363) | |
br label %loop_80 | |
range_query.end_79: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_359) | |
br label %loop_79 | |
range_query.end_78: | |
%1287 = getelementptr [2 x i32], ptr %stack.ptr_366, i32 0, i32 0 | |
store i32 0, ptr %1287 | |
%1288 = getelementptr [2 x i32], ptr %stack.ptr_366, i32 0, i32 1 | |
store i32 0, ptr %1288 | |
%1289 = getelementptr [2 x i32], ptr %stack.ptr_367, i32 0, i32 0 | |
store i32 4294967295, ptr %1289 | |
%1290 = getelementptr [2 x i32], ptr %stack.ptr_367, i32 0, i32 1 | |
store i32 4294967295, ptr %1290 | |
%1291 = getelementptr %program, ptr %arg_0, i32 0, i32 39 | |
call ccc void @eclair_btree_lower_bound_1(ptr %1291, ptr %stack.ptr_366, ptr %stack.ptr_368) | |
%1292 = getelementptr %program, ptr %arg_0, i32 0, i32 39 | |
call ccc void @eclair_btree_upper_bound_1(ptr %1292, ptr %stack.ptr_367, ptr %stack.ptr_369) | |
br label %loop_81 | |
loop_81: | |
%1293 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_368, ptr %stack.ptr_369) | |
br i1 %1293, label %if_93, label %end_if_93 | |
if_93: | |
br label %range_query.end_80 | |
end_if_93: | |
%1294 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_368) | |
%1295 = getelementptr [2 x i32], ptr %stack.ptr_370, i32 0, i32 0 | |
%1296 = getelementptr [2 x i32], ptr %1294, i32 0, i32 1 | |
%1297 = load i32, ptr %1296 | |
store i32 %1297, ptr %1295 | |
%1298 = getelementptr [2 x i32], ptr %stack.ptr_370, i32 0, i32 1 | |
store i32 0, ptr %1298 | |
%1299 = getelementptr [2 x i32], ptr %stack.ptr_371, i32 0, i32 0 | |
%1300 = getelementptr [2 x i32], ptr %1294, i32 0, i32 1 | |
%1301 = load i32, ptr %1300 | |
store i32 %1301, ptr %1299 | |
%1302 = getelementptr [2 x i32], ptr %stack.ptr_371, i32 0, i32 1 | |
store i32 4294967295, ptr %1302 | |
%1303 = getelementptr %program, ptr %arg_0, i32 0, i32 3 | |
call ccc void @eclair_btree_lower_bound_1(ptr %1303, ptr %stack.ptr_370, ptr %stack.ptr_372) | |
%1304 = getelementptr %program, ptr %arg_0, i32 0, i32 3 | |
call ccc void @eclair_btree_upper_bound_1(ptr %1304, ptr %stack.ptr_371, ptr %stack.ptr_373) | |
br label %loop_82 | |
loop_82: | |
%1305 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_372, ptr %stack.ptr_373) | |
br i1 %1305, label %if_94, label %end_if_94 | |
if_94: | |
br label %range_query.end_81 | |
end_if_94: | |
%1306 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_372) | |
%1307 = getelementptr [1 x i32], ptr %stack.ptr_374, i32 0, i32 0 | |
%1308 = getelementptr [2 x i32], ptr %1306, i32 0, i32 1 | |
%1309 = load i32, ptr %1308 | |
store i32 %1309, ptr %1307 | |
%1310 = getelementptr %program, ptr %arg_0, i32 0, i32 29 | |
%1311 = call ccc i1 @eclair_btree_insert_value_6(ptr %1310, ptr %stack.ptr_374) | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_372) | |
br label %loop_82 | |
range_query.end_81: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_368) | |
br label %loop_81 | |
range_query.end_80: | |
%1312 = getelementptr [1 x i32], ptr %stack.ptr_375, i32 0, i32 0 | |
store i32 0, ptr %1312 | |
%1313 = getelementptr [1 x i32], ptr %stack.ptr_376, i32 0, i32 0 | |
store i32 4294967295, ptr %1313 | |
%1314 = getelementptr %program, ptr %arg_0, i32 0, i32 33 | |
call ccc void @eclair_btree_lower_bound_6(ptr %1314, ptr %stack.ptr_375, ptr %stack.ptr_377) | |
%1315 = getelementptr %program, ptr %arg_0, i32 0, i32 33 | |
call ccc void @eclair_btree_upper_bound_6(ptr %1315, ptr %stack.ptr_376, ptr %stack.ptr_378) | |
br label %loop_83 | |
loop_83: | |
%1316 = call ccc i1 @eclair_btree_iterator_is_equal_6(ptr %stack.ptr_377, ptr %stack.ptr_378) | |
br i1 %1316, label %if_95, label %end_if_95 | |
if_95: | |
br label %range_query.end_82 | |
end_if_95: | |
%1317 = call ccc ptr @eclair_btree_iterator_current_6(ptr %stack.ptr_377) | |
%1318 = getelementptr [1 x i32], ptr %stack.ptr_379, i32 0, i32 0 | |
%1319 = getelementptr [1 x i32], ptr %1317, i32 0, i32 0 | |
%1320 = load i32, ptr %1319 | |
store i32 %1320, ptr %1318 | |
%1321 = getelementptr %program, ptr %arg_0, i32 0, i32 29 | |
%1322 = call ccc i1 @eclair_btree_contains_6(ptr %1321, ptr %stack.ptr_379) | |
%1323 = select i1 %1322, i1 0, i1 1 | |
br i1 %1323, label %if_96, label %end_if_97 | |
if_96: | |
%1324 = getelementptr [2 x i32], ptr %stack.ptr_380, i32 0, i32 0 | |
store i32 0, ptr %1324 | |
%1325 = getelementptr [2 x i32], ptr %stack.ptr_380, i32 0, i32 1 | |
%1326 = getelementptr [1 x i32], ptr %1317, i32 0, i32 0 | |
%1327 = load i32, ptr %1326 | |
store i32 %1327, ptr %1325 | |
%1328 = getelementptr [2 x i32], ptr %stack.ptr_381, i32 0, i32 0 | |
store i32 4294967295, ptr %1328 | |
%1329 = getelementptr [2 x i32], ptr %stack.ptr_381, i32 0, i32 1 | |
%1330 = getelementptr [1 x i32], ptr %1317, i32 0, i32 0 | |
%1331 = load i32, ptr %1330 | |
store i32 %1331, ptr %1329 | |
%1332 = getelementptr %program, ptr %arg_0, i32 0, i32 15 | |
call ccc void @eclair_btree_lower_bound_2(ptr %1332, ptr %stack.ptr_380, ptr %stack.ptr_382) | |
%1333 = getelementptr %program, ptr %arg_0, i32 0, i32 15 | |
call ccc void @eclair_btree_upper_bound_2(ptr %1333, ptr %stack.ptr_381, ptr %stack.ptr_383) | |
br label %loop_84 | |
loop_84: | |
%1334 = call ccc i1 @eclair_btree_iterator_is_equal_2(ptr %stack.ptr_382, ptr %stack.ptr_383) | |
br i1 %1334, label %if_97, label %end_if_96 | |
if_97: | |
br label %range_query.end_83 | |
end_if_96: | |
%1335 = call ccc ptr @eclair_btree_iterator_current_2(ptr %stack.ptr_382) | |
%1336 = getelementptr [2 x i32], ptr %stack.ptr_384, i32 0, i32 0 | |
%1337 = getelementptr [2 x i32], ptr %1335, i32 0, i32 0 | |
%1338 = load i32, ptr %1337 | |
store i32 %1338, ptr %1336 | |
%1339 = getelementptr [2 x i32], ptr %stack.ptr_384, i32 0, i32 1 | |
%1340 = getelementptr [1 x i32], ptr %1317, i32 0, i32 0 | |
%1341 = load i32, ptr %1340 | |
store i32 %1341, ptr %1339 | |
%1342 = getelementptr %program, ptr %arg_0, i32 0, i32 13 | |
%1343 = call ccc i1 @eclair_btree_insert_value_1(ptr %1342, ptr %stack.ptr_384) | |
call ccc void @eclair_btree_iterator_next_2(ptr %stack.ptr_382) | |
br label %loop_84 | |
range_query.end_83: | |
br label %end_if_97 | |
end_if_97: | |
call ccc void @eclair_btree_iterator_next_6(ptr %stack.ptr_377) | |
br label %loop_83 | |
range_query.end_82: | |
%1344 = getelementptr [1 x i32], ptr %stack.ptr_385, i32 0, i32 0 | |
store i32 0, ptr %1344 | |
%1345 = getelementptr [1 x i32], ptr %stack.ptr_386, i32 0, i32 0 | |
store i32 4294967295, ptr %1345 | |
%1346 = getelementptr %program, ptr %arg_0, i32 0, i32 58 | |
call ccc void @eclair_btree_lower_bound_6(ptr %1346, ptr %stack.ptr_385, ptr %stack.ptr_387) | |
%1347 = getelementptr %program, ptr %arg_0, i32 0, i32 58 | |
call ccc void @eclair_btree_upper_bound_6(ptr %1347, ptr %stack.ptr_386, ptr %stack.ptr_388) | |
br label %loop_85 | |
loop_85: | |
%1348 = call ccc i1 @eclair_btree_iterator_is_equal_6(ptr %stack.ptr_387, ptr %stack.ptr_388) | |
br i1 %1348, label %if_98, label %end_if_98 | |
if_98: | |
br label %range_query.end_84 | |
end_if_98: | |
%1349 = call ccc ptr @eclair_btree_iterator_current_6(ptr %stack.ptr_387) | |
%1350 = getelementptr [1 x i32], ptr %stack.ptr_389, i32 0, i32 0 | |
%1351 = getelementptr [1 x i32], ptr %1349, i32 0, i32 0 | |
%1352 = load i32, ptr %1351 | |
store i32 %1352, ptr %1350 | |
%1353 = getelementptr %program, ptr %arg_0, i32 0, i32 12 | |
%1354 = call ccc i1 @eclair_btree_insert_value_6(ptr %1353, ptr %stack.ptr_389) | |
call ccc void @eclair_btree_iterator_next_6(ptr %stack.ptr_387) | |
br label %loop_85 | |
range_query.end_84: | |
%1355 = getelementptr [2 x i32], ptr %stack.ptr_390, i32 0, i32 0 | |
store i32 0, ptr %1355 | |
%1356 = getelementptr [2 x i32], ptr %stack.ptr_390, i32 0, i32 1 | |
store i32 0, ptr %1356 | |
%1357 = getelementptr [2 x i32], ptr %stack.ptr_391, i32 0, i32 0 | |
store i32 4294967295, ptr %1357 | |
%1358 = getelementptr [2 x i32], ptr %stack.ptr_391, i32 0, i32 1 | |
store i32 4294967295, ptr %1358 | |
%1359 = getelementptr %program, ptr %arg_0, i32 0, i32 39 | |
call ccc void @eclair_btree_lower_bound_1(ptr %1359, ptr %stack.ptr_390, ptr %stack.ptr_392) | |
%1360 = getelementptr %program, ptr %arg_0, i32 0, i32 39 | |
call ccc void @eclair_btree_upper_bound_1(ptr %1360, ptr %stack.ptr_391, ptr %stack.ptr_393) | |
br label %loop_86 | |
loop_86: | |
%1361 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_392, ptr %stack.ptr_393) | |
br i1 %1361, label %if_99, label %end_if_99 | |
if_99: | |
br label %range_query.end_85 | |
end_if_99: | |
%1362 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_392) | |
%1363 = getelementptr [2 x i32], ptr %stack.ptr_394, i32 0, i32 0 | |
%1364 = getelementptr [2 x i32], ptr %1362, i32 0, i32 1 | |
%1365 = load i32, ptr %1364 | |
store i32 %1365, ptr %1363 | |
%1366 = getelementptr [2 x i32], ptr %stack.ptr_394, i32 0, i32 1 | |
store i32 0, ptr %1366 | |
%1367 = getelementptr [2 x i32], ptr %stack.ptr_395, i32 0, i32 0 | |
%1368 = getelementptr [2 x i32], ptr %1362, i32 0, i32 1 | |
%1369 = load i32, ptr %1368 | |
store i32 %1369, ptr %1367 | |
%1370 = getelementptr [2 x i32], ptr %stack.ptr_395, i32 0, i32 1 | |
store i32 4294967295, ptr %1370 | |
%1371 = getelementptr %program, ptr %arg_0, i32 0, i32 3 | |
call ccc void @eclair_btree_lower_bound_1(ptr %1371, ptr %stack.ptr_394, ptr %stack.ptr_396) | |
%1372 = getelementptr %program, ptr %arg_0, i32 0, i32 3 | |
call ccc void @eclair_btree_upper_bound_1(ptr %1372, ptr %stack.ptr_395, ptr %stack.ptr_397) | |
br label %loop_87 | |
loop_87: | |
%1373 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_396, ptr %stack.ptr_397) | |
br i1 %1373, label %if_100, label %end_if_100 | |
if_100: | |
br label %range_query.end_86 | |
end_if_100: | |
%1374 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_396) | |
%1375 = getelementptr [1 x i32], ptr %stack.ptr_398, i32 0, i32 0 | |
%1376 = getelementptr [2 x i32], ptr %1374, i32 0, i32 1 | |
%1377 = load i32, ptr %1376 | |
store i32 %1377, ptr %1375 | |
%1378 = getelementptr %program, ptr %arg_0, i32 0, i32 32 | |
%1379 = call ccc i1 @eclair_btree_contains_6(ptr %1378, ptr %stack.ptr_398) | |
%1380 = select i1 %1379, i1 0, i1 1 | |
br i1 %1380, label %if_101, label %end_if_101 | |
if_101: | |
%1381 = getelementptr [1 x i32], ptr %stack.ptr_399, i32 0, i32 0 | |
%1382 = getelementptr [2 x i32], ptr %1374, i32 0, i32 1 | |
%1383 = load i32, ptr %1382 | |
store i32 %1383, ptr %1381 | |
%1384 = getelementptr %program, ptr %arg_0, i32 0, i32 61 | |
%1385 = call ccc i1 @eclair_btree_insert_value_6(ptr %1384, ptr %stack.ptr_399) | |
br label %end_if_101 | |
end_if_101: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_396) | |
br label %loop_87 | |
range_query.end_86: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_392) | |
br label %loop_86 | |
range_query.end_85: | |
%1386 = getelementptr [1 x i32], ptr %stack.ptr_400, i32 0, i32 0 | |
store i32 0, ptr %1386 | |
%1387 = getelementptr [1 x i32], ptr %stack.ptr_401, i32 0, i32 0 | |
store i32 4294967295, ptr %1387 | |
%1388 = getelementptr %program, ptr %arg_0, i32 0, i32 32 | |
call ccc void @eclair_btree_lower_bound_6(ptr %1388, ptr %stack.ptr_400, ptr %stack.ptr_402) | |
%1389 = getelementptr %program, ptr %arg_0, i32 0, i32 32 | |
call ccc void @eclair_btree_upper_bound_6(ptr %1389, ptr %stack.ptr_401, ptr %stack.ptr_403) | |
br label %loop_88 | |
loop_88: | |
%1390 = call ccc i1 @eclair_btree_iterator_is_equal_6(ptr %stack.ptr_402, ptr %stack.ptr_403) | |
br i1 %1390, label %if_102, label %end_if_102 | |
if_102: | |
br label %range_query.end_87 | |
end_if_102: | |
%1391 = call ccc ptr @eclair_btree_iterator_current_6(ptr %stack.ptr_402) | |
%1392 = getelementptr [1 x i32], ptr %stack.ptr_404, i32 0, i32 0 | |
%1393 = getelementptr [1 x i32], ptr %1391, i32 0, i32 0 | |
%1394 = load i32, ptr %1393 | |
store i32 %1394, ptr %1392 | |
%1395 = getelementptr %program, ptr %arg_0, i32 0, i32 61 | |
%1396 = call ccc i1 @eclair_btree_insert_value_6(ptr %1395, ptr %stack.ptr_404) | |
call ccc void @eclair_btree_iterator_next_6(ptr %stack.ptr_402) | |
br label %loop_88 | |
range_query.end_87: | |
%1397 = getelementptr [1 x i32], ptr %stack.ptr_405, i32 0, i32 0 | |
store i32 0, ptr %1397 | |
%1398 = getelementptr [1 x i32], ptr %stack.ptr_406, i32 0, i32 0 | |
store i32 4294967295, ptr %1398 | |
%1399 = getelementptr %program, ptr %arg_0, i32 0, i32 47 | |
call ccc void @eclair_btree_lower_bound_6(ptr %1399, ptr %stack.ptr_405, ptr %stack.ptr_407) | |
%1400 = getelementptr %program, ptr %arg_0, i32 0, i32 47 | |
call ccc void @eclair_btree_upper_bound_6(ptr %1400, ptr %stack.ptr_406, ptr %stack.ptr_408) | |
br label %loop_89 | |
loop_89: | |
%1401 = call ccc i1 @eclair_btree_iterator_is_equal_6(ptr %stack.ptr_407, ptr %stack.ptr_408) | |
br i1 %1401, label %if_103, label %end_if_103 | |
if_103: | |
br label %range_query.end_88 | |
end_if_103: | |
%1402 = call ccc ptr @eclair_btree_iterator_current_6(ptr %stack.ptr_407) | |
%1403 = getelementptr [1 x i32], ptr %stack.ptr_409, i32 0, i32 0 | |
%1404 = getelementptr [1 x i32], ptr %1402, i32 0, i32 0 | |
%1405 = load i32, ptr %1404 | |
store i32 %1405, ptr %1403 | |
%1406 = getelementptr [1 x i32], ptr %stack.ptr_410, i32 0, i32 0 | |
%1407 = getelementptr [1 x i32], ptr %1402, i32 0, i32 0 | |
%1408 = load i32, ptr %1407 | |
store i32 %1408, ptr %1406 | |
%1409 = getelementptr %program, ptr %arg_0, i32 0, i32 61 | |
call ccc void @eclair_btree_lower_bound_6(ptr %1409, ptr %stack.ptr_409, ptr %stack.ptr_411) | |
%1410 = getelementptr %program, ptr %arg_0, i32 0, i32 61 | |
call ccc void @eclair_btree_upper_bound_6(ptr %1410, ptr %stack.ptr_410, ptr %stack.ptr_412) | |
br label %loop_90 | |
loop_90: | |
%1411 = call ccc i1 @eclair_btree_iterator_is_equal_6(ptr %stack.ptr_411, ptr %stack.ptr_412) | |
br i1 %1411, label %if_104, label %end_if_104 | |
if_104: | |
br label %range_query.end_89 | |
end_if_104: | |
%1412 = call ccc ptr @eclair_btree_iterator_current_6(ptr %stack.ptr_411) | |
%1413 = getelementptr [1 x i32], ptr %stack.ptr_413, i32 0, i32 0 | |
%1414 = getelementptr [1 x i32], ptr %1402, i32 0, i32 0 | |
%1415 = load i32, ptr %1414 | |
store i32 %1415, ptr %1413 | |
%1416 = getelementptr %program, ptr %arg_0, i32 0, i32 37 | |
%1417 = call ccc i1 @eclair_btree_insert_value_6(ptr %1416, ptr %stack.ptr_413) | |
call ccc void @eclair_btree_iterator_next_6(ptr %stack.ptr_411) | |
br label %loop_90 | |
range_query.end_89: | |
call ccc void @eclair_btree_iterator_next_6(ptr %stack.ptr_407) | |
br label %loop_89 | |
range_query.end_88: | |
%1418 = getelementptr [2 x i32], ptr %stack.ptr_414, i32 0, i32 0 | |
store i32 0, ptr %1418 | |
%1419 = getelementptr [2 x i32], ptr %stack.ptr_414, i32 0, i32 1 | |
store i32 0, ptr %1419 | |
%1420 = getelementptr [2 x i32], ptr %stack.ptr_415, i32 0, i32 0 | |
store i32 4294967295, ptr %1420 | |
%1421 = getelementptr [2 x i32], ptr %stack.ptr_415, i32 0, i32 1 | |
store i32 4294967295, ptr %1421 | |
%1422 = getelementptr %program, ptr %arg_0, i32 0, i32 50 | |
call ccc void @eclair_btree_lower_bound_1(ptr %1422, ptr %stack.ptr_414, ptr %stack.ptr_416) | |
%1423 = getelementptr %program, ptr %arg_0, i32 0, i32 50 | |
call ccc void @eclair_btree_upper_bound_1(ptr %1423, ptr %stack.ptr_415, ptr %stack.ptr_417) | |
br label %loop_91 | |
loop_91: | |
%1424 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_416, ptr %stack.ptr_417) | |
br i1 %1424, label %if_105, label %end_if_105 | |
if_105: | |
br label %range_query.end_90 | |
end_if_105: | |
%1425 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_416) | |
%1426 = getelementptr [3 x i32], ptr %stack.ptr_418, i32 0, i32 0 | |
%1427 = getelementptr [2 x i32], ptr %1425, i32 0, i32 0 | |
%1428 = load i32, ptr %1427 | |
store i32 %1428, ptr %1426 | |
%1429 = getelementptr [3 x i32], ptr %stack.ptr_418, i32 0, i32 1 | |
store i32 0, ptr %1429 | |
%1430 = getelementptr [3 x i32], ptr %stack.ptr_418, i32 0, i32 2 | |
store i32 0, ptr %1430 | |
%1431 = getelementptr [3 x i32], ptr %stack.ptr_419, i32 0, i32 0 | |
%1432 = getelementptr [2 x i32], ptr %1425, i32 0, i32 0 | |
%1433 = load i32, ptr %1432 | |
store i32 %1433, ptr %1431 | |
%1434 = getelementptr [3 x i32], ptr %stack.ptr_419, i32 0, i32 1 | |
store i32 4294967295, ptr %1434 | |
%1435 = getelementptr [3 x i32], ptr %stack.ptr_419, i32 0, i32 2 | |
store i32 4294967295, ptr %1435 | |
%1436 = getelementptr %program, ptr %arg_0, i32 0, i32 53 | |
call ccc void @eclair_btree_lower_bound_0(ptr %1436, ptr %stack.ptr_418, ptr %stack.ptr_420) | |
%1437 = getelementptr %program, ptr %arg_0, i32 0, i32 53 | |
call ccc void @eclair_btree_upper_bound_0(ptr %1437, ptr %stack.ptr_419, ptr %stack.ptr_421) | |
br label %loop_92 | |
loop_92: | |
%1438 = call ccc i1 @eclair_btree_iterator_is_equal_0(ptr %stack.ptr_420, ptr %stack.ptr_421) | |
br i1 %1438, label %if_106, label %end_if_106 | |
if_106: | |
br label %range_query.end_91 | |
end_if_106: | |
%1439 = call ccc ptr @eclair_btree_iterator_current_0(ptr %stack.ptr_420) | |
%1440 = getelementptr [2 x i32], ptr %stack.ptr_422, i32 0, i32 0 | |
%1441 = getelementptr [3 x i32], ptr %1439, i32 0, i32 2 | |
%1442 = load i32, ptr %1441 | |
store i32 %1442, ptr %1440 | |
%1443 = getelementptr [2 x i32], ptr %stack.ptr_422, i32 0, i32 1 | |
store i32 0, ptr %1443 | |
%1444 = getelementptr [2 x i32], ptr %stack.ptr_423, i32 0, i32 0 | |
%1445 = getelementptr [3 x i32], ptr %1439, i32 0, i32 2 | |
%1446 = load i32, ptr %1445 | |
store i32 %1446, ptr %1444 | |
%1447 = getelementptr [2 x i32], ptr %stack.ptr_423, i32 0, i32 1 | |
store i32 4294967295, ptr %1447 | |
%1448 = getelementptr %program, ptr %arg_0, i32 0, i32 40 | |
call ccc void @eclair_btree_lower_bound_1(ptr %1448, ptr %stack.ptr_422, ptr %stack.ptr_424) | |
%1449 = getelementptr %program, ptr %arg_0, i32 0, i32 40 | |
call ccc void @eclair_btree_upper_bound_1(ptr %1449, ptr %stack.ptr_423, ptr %stack.ptr_425) | |
br label %loop_93 | |
loop_93: | |
%1450 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_424, ptr %stack.ptr_425) | |
br i1 %1450, label %if_107, label %end_if_107 | |
if_107: | |
br label %range_query.end_92 | |
end_if_107: | |
%1451 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_424) | |
%1452 = getelementptr [2 x i32], ptr %stack.ptr_426, i32 0, i32 0 | |
%1453 = getelementptr [2 x i32], ptr %1451, i32 0, i32 1 | |
%1454 = load i32, ptr %1453 | |
store i32 %1454, ptr %1452 | |
%1455 = getelementptr [2 x i32], ptr %stack.ptr_426, i32 0, i32 1 | |
store i32 0, ptr %1455 | |
%1456 = getelementptr [2 x i32], ptr %stack.ptr_427, i32 0, i32 0 | |
%1457 = getelementptr [2 x i32], ptr %1451, i32 0, i32 1 | |
%1458 = load i32, ptr %1457 | |
store i32 %1458, ptr %1456 | |
%1459 = getelementptr [2 x i32], ptr %stack.ptr_427, i32 0, i32 1 | |
store i32 4294967295, ptr %1459 | |
%1460 = getelementptr %program, ptr %arg_0, i32 0, i32 3 | |
call ccc void @eclair_btree_lower_bound_1(ptr %1460, ptr %stack.ptr_426, ptr %stack.ptr_428) | |
%1461 = getelementptr %program, ptr %arg_0, i32 0, i32 3 | |
call ccc void @eclair_btree_upper_bound_1(ptr %1461, ptr %stack.ptr_427, ptr %stack.ptr_429) | |
br label %loop_94 | |
loop_94: | |
%1462 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_428, ptr %stack.ptr_429) | |
br i1 %1462, label %if_108, label %end_if_108 | |
if_108: | |
br label %range_query.end_93 | |
end_if_108: | |
%1463 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_428) | |
%1464 = getelementptr [2 x i32], ptr %stack.ptr_430, i32 0, i32 0 | |
%1465 = getelementptr [2 x i32], ptr %1425, i32 0, i32 1 | |
%1466 = load i32, ptr %1465 | |
store i32 %1466, ptr %1464 | |
%1467 = getelementptr [2 x i32], ptr %stack.ptr_430, i32 0, i32 1 | |
%1468 = getelementptr [2 x i32], ptr %1463, i32 0, i32 1 | |
%1469 = load i32, ptr %1468 | |
store i32 %1469, ptr %1467 | |
%1470 = getelementptr %program, ptr %arg_0, i32 0, i32 22 | |
%1471 = call ccc i1 @eclair_btree_insert_value_1(ptr %1470, ptr %stack.ptr_430) | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_428) | |
br label %loop_94 | |
range_query.end_93: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_424) | |
br label %loop_93 | |
range_query.end_92: | |
call ccc void @eclair_btree_iterator_next_0(ptr %stack.ptr_420) | |
br label %loop_92 | |
range_query.end_91: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_416) | |
br label %loop_91 | |
range_query.end_90: | |
%1472 = getelementptr [2 x i32], ptr %stack.ptr_431, i32 0, i32 0 | |
store i32 0, ptr %1472 | |
%1473 = getelementptr [2 x i32], ptr %stack.ptr_431, i32 0, i32 1 | |
store i32 0, ptr %1473 | |
%1474 = getelementptr [2 x i32], ptr %stack.ptr_432, i32 0, i32 0 | |
store i32 4294967295, ptr %1474 | |
%1475 = getelementptr [2 x i32], ptr %stack.ptr_432, i32 0, i32 1 | |
store i32 4294967295, ptr %1475 | |
%1476 = getelementptr %program, ptr %arg_0, i32 0, i32 50 | |
call ccc void @eclair_btree_lower_bound_1(ptr %1476, ptr %stack.ptr_431, ptr %stack.ptr_433) | |
%1477 = getelementptr %program, ptr %arg_0, i32 0, i32 50 | |
call ccc void @eclair_btree_upper_bound_1(ptr %1477, ptr %stack.ptr_432, ptr %stack.ptr_434) | |
br label %loop_95 | |
loop_95: | |
%1478 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_433, ptr %stack.ptr_434) | |
br i1 %1478, label %if_109, label %end_if_109 | |
if_109: | |
br label %range_query.end_94 | |
end_if_109: | |
%1479 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_433) | |
%1480 = getelementptr [3 x i32], ptr %stack.ptr_435, i32 0, i32 0 | |
%1481 = getelementptr [2 x i32], ptr %1479, i32 0, i32 0 | |
%1482 = load i32, ptr %1481 | |
store i32 %1482, ptr %1480 | |
%1483 = getelementptr [3 x i32], ptr %stack.ptr_435, i32 0, i32 1 | |
store i32 0, ptr %1483 | |
%1484 = getelementptr [3 x i32], ptr %stack.ptr_435, i32 0, i32 2 | |
store i32 0, ptr %1484 | |
%1485 = getelementptr [3 x i32], ptr %stack.ptr_436, i32 0, i32 0 | |
%1486 = getelementptr [2 x i32], ptr %1479, i32 0, i32 0 | |
%1487 = load i32, ptr %1486 | |
store i32 %1487, ptr %1485 | |
%1488 = getelementptr [3 x i32], ptr %stack.ptr_436, i32 0, i32 1 | |
store i32 4294967295, ptr %1488 | |
%1489 = getelementptr [3 x i32], ptr %stack.ptr_436, i32 0, i32 2 | |
store i32 4294967295, ptr %1489 | |
%1490 = getelementptr %program, ptr %arg_0, i32 0, i32 53 | |
call ccc void @eclair_btree_lower_bound_0(ptr %1490, ptr %stack.ptr_435, ptr %stack.ptr_437) | |
%1491 = getelementptr %program, ptr %arg_0, i32 0, i32 53 | |
call ccc void @eclair_btree_upper_bound_0(ptr %1491, ptr %stack.ptr_436, ptr %stack.ptr_438) | |
br label %loop_96 | |
loop_96: | |
%1492 = call ccc i1 @eclair_btree_iterator_is_equal_0(ptr %stack.ptr_437, ptr %stack.ptr_438) | |
br i1 %1492, label %if_110, label %end_if_110 | |
if_110: | |
br label %range_query.end_95 | |
end_if_110: | |
%1493 = call ccc ptr @eclair_btree_iterator_current_0(ptr %stack.ptr_437) | |
%1494 = getelementptr [2 x i32], ptr %stack.ptr_439, i32 0, i32 0 | |
%1495 = getelementptr [3 x i32], ptr %1493, i32 0, i32 2 | |
%1496 = load i32, ptr %1495 | |
store i32 %1496, ptr %1494 | |
%1497 = getelementptr [2 x i32], ptr %stack.ptr_439, i32 0, i32 1 | |
store i32 0, ptr %1497 | |
%1498 = getelementptr [2 x i32], ptr %stack.ptr_440, i32 0, i32 0 | |
%1499 = getelementptr [3 x i32], ptr %1493, i32 0, i32 2 | |
%1500 = load i32, ptr %1499 | |
store i32 %1500, ptr %1498 | |
%1501 = getelementptr [2 x i32], ptr %stack.ptr_440, i32 0, i32 1 | |
store i32 4294967295, ptr %1501 | |
%1502 = getelementptr %program, ptr %arg_0, i32 0, i32 3 | |
call ccc void @eclair_btree_lower_bound_1(ptr %1502, ptr %stack.ptr_439, ptr %stack.ptr_441) | |
%1503 = getelementptr %program, ptr %arg_0, i32 0, i32 3 | |
call ccc void @eclair_btree_upper_bound_1(ptr %1503, ptr %stack.ptr_440, ptr %stack.ptr_442) | |
br label %loop_97 | |
loop_97: | |
%1504 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_441, ptr %stack.ptr_442) | |
br i1 %1504, label %if_111, label %end_if_111 | |
if_111: | |
br label %range_query.end_96 | |
end_if_111: | |
%1505 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_441) | |
%1506 = getelementptr [2 x i32], ptr %stack.ptr_443, i32 0, i32 0 | |
%1507 = getelementptr [2 x i32], ptr %1479, i32 0, i32 1 | |
%1508 = load i32, ptr %1507 | |
store i32 %1508, ptr %1506 | |
%1509 = getelementptr [2 x i32], ptr %stack.ptr_443, i32 0, i32 1 | |
%1510 = getelementptr [2 x i32], ptr %1505, i32 0, i32 1 | |
%1511 = load i32, ptr %1510 | |
store i32 %1511, ptr %1509 | |
%1512 = getelementptr %program, ptr %arg_0, i32 0, i32 22 | |
%1513 = call ccc i1 @eclair_btree_insert_value_1(ptr %1512, ptr %stack.ptr_443) | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_441) | |
br label %loop_97 | |
range_query.end_96: | |
call ccc void @eclair_btree_iterator_next_0(ptr %stack.ptr_437) | |
br label %loop_96 | |
range_query.end_95: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_433) | |
br label %loop_95 | |
range_query.end_94: | |
%1514 = getelementptr [2 x i32], ptr %stack.ptr_444, i32 0, i32 0 | |
store i32 0, ptr %1514 | |
%1515 = getelementptr [2 x i32], ptr %stack.ptr_444, i32 0, i32 1 | |
store i32 0, ptr %1515 | |
%1516 = getelementptr [2 x i32], ptr %stack.ptr_445, i32 0, i32 0 | |
store i32 4294967295, ptr %1516 | |
%1517 = getelementptr [2 x i32], ptr %stack.ptr_445, i32 0, i32 1 | |
store i32 4294967295, ptr %1517 | |
%1518 = getelementptr %program, ptr %arg_0, i32 0, i32 24 | |
call ccc void @eclair_btree_lower_bound_7(ptr %1518, ptr %stack.ptr_444, ptr %stack.ptr_446) | |
%1519 = getelementptr %program, ptr %arg_0, i32 0, i32 24 | |
call ccc void @eclair_btree_upper_bound_7(ptr %1519, ptr %stack.ptr_445, ptr %stack.ptr_447) | |
br label %loop_98 | |
loop_98: | |
%1520 = call ccc i1 @eclair_btree_iterator_is_equal_7(ptr %stack.ptr_446, ptr %stack.ptr_447) | |
br i1 %1520, label %if_112, label %end_if_112 | |
if_112: | |
br label %range_query.end_97 | |
end_if_112: | |
%1521 = call ccc ptr @eclair_btree_iterator_current_7(ptr %stack.ptr_446) | |
%1522 = getelementptr [2 x i32], ptr %stack.ptr_448, i32 0, i32 0 | |
store i32 0, ptr %1522 | |
%1523 = getelementptr [2 x i32], ptr %stack.ptr_448, i32 0, i32 1 | |
%1524 = getelementptr [2 x i32], ptr %1521, i32 0, i32 1 | |
%1525 = load i32, ptr %1524 | |
store i32 %1525, ptr %1523 | |
%1526 = getelementptr [2 x i32], ptr %stack.ptr_449, i32 0, i32 0 | |
store i32 4294967295, ptr %1526 | |
%1527 = getelementptr [2 x i32], ptr %stack.ptr_449, i32 0, i32 1 | |
%1528 = getelementptr [2 x i32], ptr %1521, i32 0, i32 1 | |
%1529 = load i32, ptr %1528 | |
store i32 %1529, ptr %1527 | |
%1530 = getelementptr %program, ptr %arg_0, i32 0, i32 4 | |
call ccc void @eclair_btree_lower_bound_2(ptr %1530, ptr %stack.ptr_448, ptr %stack.ptr_450) | |
%1531 = getelementptr %program, ptr %arg_0, i32 0, i32 4 | |
call ccc void @eclair_btree_upper_bound_2(ptr %1531, ptr %stack.ptr_449, ptr %stack.ptr_451) | |
br label %loop_99 | |
loop_99: | |
%1532 = call ccc i1 @eclair_btree_iterator_is_equal_2(ptr %stack.ptr_450, ptr %stack.ptr_451) | |
br i1 %1532, label %if_113, label %end_if_113 | |
if_113: | |
br label %range_query.end_98 | |
end_if_113: | |
%1533 = call ccc ptr @eclair_btree_iterator_current_2(ptr %stack.ptr_450) | |
%1534 = getelementptr [2 x i32], ptr %stack.ptr_452, i32 0, i32 0 | |
%1535 = getelementptr [2 x i32], ptr %1533, i32 0, i32 0 | |
%1536 = load i32, ptr %1535 | |
store i32 %1536, ptr %1534 | |
%1537 = getelementptr [2 x i32], ptr %stack.ptr_452, i32 0, i32 1 | |
%1538 = getelementptr [2 x i32], ptr %1521, i32 0, i32 1 | |
%1539 = load i32, ptr %1538 | |
store i32 %1539, ptr %1537 | |
%1540 = getelementptr %program, ptr %arg_0, i32 0, i32 23 | |
%1541 = call ccc i1 @eclair_btree_insert_value_1(ptr %1540, ptr %stack.ptr_452) | |
call ccc void @eclair_btree_iterator_next_2(ptr %stack.ptr_450) | |
br label %loop_99 | |
range_query.end_98: | |
call ccc void @eclair_btree_iterator_next_7(ptr %stack.ptr_446) | |
br label %loop_98 | |
range_query.end_97: | |
%1542 = getelementptr [2 x i32], ptr %stack.ptr_453, i32 0, i32 0 | |
store i32 0, ptr %1542 | |
%1543 = getelementptr [2 x i32], ptr %stack.ptr_453, i32 0, i32 1 | |
store i32 0, ptr %1543 | |
%1544 = getelementptr [2 x i32], ptr %stack.ptr_454, i32 0, i32 0 | |
store i32 4294967295, ptr %1544 | |
%1545 = getelementptr [2 x i32], ptr %stack.ptr_454, i32 0, i32 1 | |
store i32 4294967295, ptr %1545 | |
%1546 = getelementptr %program, ptr %arg_0, i32 0, i32 50 | |
call ccc void @eclair_btree_lower_bound_1(ptr %1546, ptr %stack.ptr_453, ptr %stack.ptr_455) | |
%1547 = getelementptr %program, ptr %arg_0, i32 0, i32 50 | |
call ccc void @eclair_btree_upper_bound_1(ptr %1547, ptr %stack.ptr_454, ptr %stack.ptr_456) | |
br label %loop_100 | |
loop_100: | |
%1548 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_455, ptr %stack.ptr_456) | |
br i1 %1548, label %if_114, label %end_if_114 | |
if_114: | |
br label %range_query.end_99 | |
end_if_114: | |
%1549 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_455) | |
%1550 = getelementptr [3 x i32], ptr %stack.ptr_457, i32 0, i32 0 | |
%1551 = getelementptr [2 x i32], ptr %1549, i32 0, i32 0 | |
%1552 = load i32, ptr %1551 | |
store i32 %1552, ptr %1550 | |
%1553 = getelementptr [3 x i32], ptr %stack.ptr_457, i32 0, i32 1 | |
store i32 0, ptr %1553 | |
%1554 = getelementptr [3 x i32], ptr %stack.ptr_457, i32 0, i32 2 | |
store i32 0, ptr %1554 | |
%1555 = getelementptr [3 x i32], ptr %stack.ptr_458, i32 0, i32 0 | |
%1556 = getelementptr [2 x i32], ptr %1549, i32 0, i32 0 | |
%1557 = load i32, ptr %1556 | |
store i32 %1557, ptr %1555 | |
%1558 = getelementptr [3 x i32], ptr %stack.ptr_458, i32 0, i32 1 | |
store i32 4294967295, ptr %1558 | |
%1559 = getelementptr [3 x i32], ptr %stack.ptr_458, i32 0, i32 2 | |
store i32 4294967295, ptr %1559 | |
%1560 = getelementptr %program, ptr %arg_0, i32 0, i32 53 | |
call ccc void @eclair_btree_lower_bound_0(ptr %1560, ptr %stack.ptr_457, ptr %stack.ptr_459) | |
%1561 = getelementptr %program, ptr %arg_0, i32 0, i32 53 | |
call ccc void @eclair_btree_upper_bound_0(ptr %1561, ptr %stack.ptr_458, ptr %stack.ptr_460) | |
br label %loop_101 | |
loop_101: | |
%1562 = call ccc i1 @eclair_btree_iterator_is_equal_0(ptr %stack.ptr_459, ptr %stack.ptr_460) | |
br i1 %1562, label %if_115, label %end_if_115 | |
if_115: | |
br label %range_query.end_100 | |
end_if_115: | |
%1563 = call ccc ptr @eclair_btree_iterator_current_0(ptr %stack.ptr_459) | |
%1564 = getelementptr [3 x i32], ptr %stack.ptr_461, i32 0, i32 0 | |
%1565 = getelementptr [3 x i32], ptr %1563, i32 0, i32 2 | |
%1566 = load i32, ptr %1565 | |
store i32 %1566, ptr %1564 | |
%1567 = getelementptr [3 x i32], ptr %stack.ptr_461, i32 0, i32 1 | |
store i32 0, ptr %1567 | |
%1568 = getelementptr [3 x i32], ptr %stack.ptr_461, i32 0, i32 2 | |
store i32 0, ptr %1568 | |
%1569 = getelementptr [3 x i32], ptr %stack.ptr_462, i32 0, i32 0 | |
%1570 = getelementptr [3 x i32], ptr %1563, i32 0, i32 2 | |
%1571 = load i32, ptr %1570 | |
store i32 %1571, ptr %1569 | |
%1572 = getelementptr [3 x i32], ptr %stack.ptr_462, i32 0, i32 1 | |
store i32 4294967295, ptr %1572 | |
%1573 = getelementptr [3 x i32], ptr %stack.ptr_462, i32 0, i32 2 | |
store i32 4294967295, ptr %1573 | |
%1574 = getelementptr %program, ptr %arg_0, i32 0, i32 2 | |
call ccc void @eclair_btree_lower_bound_0(ptr %1574, ptr %stack.ptr_461, ptr %stack.ptr_463) | |
%1575 = getelementptr %program, ptr %arg_0, i32 0, i32 2 | |
call ccc void @eclair_btree_upper_bound_0(ptr %1575, ptr %stack.ptr_462, ptr %stack.ptr_464) | |
br label %loop_102 | |
loop_102: | |
%1576 = call ccc i1 @eclair_btree_iterator_is_equal_0(ptr %stack.ptr_463, ptr %stack.ptr_464) | |
br i1 %1576, label %if_116, label %end_if_116 | |
if_116: | |
br label %range_query.end_101 | |
end_if_116: | |
%1577 = call ccc ptr @eclair_btree_iterator_current_0(ptr %stack.ptr_463) | |
%1578 = getelementptr [2 x i32], ptr %stack.ptr_465, i32 0, i32 0 | |
%1579 = getelementptr [3 x i32], ptr %1577, i32 0, i32 1 | |
%1580 = load i32, ptr %1579 | |
store i32 %1580, ptr %1578 | |
%1581 = getelementptr [2 x i32], ptr %stack.ptr_465, i32 0, i32 1 | |
store i32 0, ptr %1581 | |
%1582 = getelementptr [2 x i32], ptr %stack.ptr_466, i32 0, i32 0 | |
%1583 = getelementptr [3 x i32], ptr %1577, i32 0, i32 1 | |
%1584 = load i32, ptr %1583 | |
store i32 %1584, ptr %1582 | |
%1585 = getelementptr [2 x i32], ptr %stack.ptr_466, i32 0, i32 1 | |
store i32 4294967295, ptr %1585 | |
%1586 = getelementptr %program, ptr %arg_0, i32 0, i32 23 | |
call ccc void @eclair_btree_lower_bound_1(ptr %1586, ptr %stack.ptr_465, ptr %stack.ptr_467) | |
%1587 = getelementptr %program, ptr %arg_0, i32 0, i32 23 | |
call ccc void @eclair_btree_upper_bound_1(ptr %1587, ptr %stack.ptr_466, ptr %stack.ptr_468) | |
br label %loop_103 | |
loop_103: | |
%1588 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_467, ptr %stack.ptr_468) | |
br i1 %1588, label %if_117, label %end_if_117 | |
if_117: | |
br label %range_query.end_102 | |
end_if_117: | |
%1589 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_467) | |
%1590 = getelementptr [2 x i32], ptr %stack.ptr_469, i32 0, i32 0 | |
%1591 = getelementptr [2 x i32], ptr %1549, i32 0, i32 1 | |
%1592 = load i32, ptr %1591 | |
store i32 %1592, ptr %1590 | |
%1593 = getelementptr [2 x i32], ptr %stack.ptr_469, i32 0, i32 1 | |
%1594 = getelementptr [2 x i32], ptr %1589, i32 0, i32 1 | |
%1595 = load i32, ptr %1594 | |
store i32 %1595, ptr %1593 | |
%1596 = getelementptr %program, ptr %arg_0, i32 0, i32 22 | |
%1597 = call ccc i1 @eclair_btree_insert_value_1(ptr %1596, ptr %stack.ptr_469) | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_467) | |
br label %loop_103 | |
range_query.end_102: | |
call ccc void @eclair_btree_iterator_next_0(ptr %stack.ptr_463) | |
br label %loop_102 | |
range_query.end_101: | |
call ccc void @eclair_btree_iterator_next_0(ptr %stack.ptr_459) | |
br label %loop_101 | |
range_query.end_100: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_455) | |
br label %loop_100 | |
range_query.end_99: | |
%1598 = getelementptr [2 x i32], ptr %stack.ptr_470, i32 0, i32 0 | |
store i32 0, ptr %1598 | |
%1599 = getelementptr [2 x i32], ptr %stack.ptr_470, i32 0, i32 1 | |
store i32 0, ptr %1599 | |
%1600 = getelementptr [2 x i32], ptr %stack.ptr_471, i32 0, i32 0 | |
store i32 4294967295, ptr %1600 | |
%1601 = getelementptr [2 x i32], ptr %stack.ptr_471, i32 0, i32 1 | |
store i32 4294967295, ptr %1601 | |
%1602 = getelementptr %program, ptr %arg_0, i32 0, i32 50 | |
call ccc void @eclair_btree_lower_bound_1(ptr %1602, ptr %stack.ptr_470, ptr %stack.ptr_472) | |
%1603 = getelementptr %program, ptr %arg_0, i32 0, i32 50 | |
call ccc void @eclair_btree_upper_bound_1(ptr %1603, ptr %stack.ptr_471, ptr %stack.ptr_473) | |
br label %loop_104 | |
loop_104: | |
%1604 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_472, ptr %stack.ptr_473) | |
br i1 %1604, label %if_118, label %end_if_118 | |
if_118: | |
br label %range_query.end_103 | |
end_if_118: | |
%1605 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_472) | |
%1606 = getelementptr [3 x i32], ptr %stack.ptr_474, i32 0, i32 0 | |
%1607 = getelementptr [2 x i32], ptr %1605, i32 0, i32 0 | |
%1608 = load i32, ptr %1607 | |
store i32 %1608, ptr %1606 | |
%1609 = getelementptr [3 x i32], ptr %stack.ptr_474, i32 0, i32 1 | |
store i32 0, ptr %1609 | |
%1610 = getelementptr [3 x i32], ptr %stack.ptr_474, i32 0, i32 2 | |
store i32 0, ptr %1610 | |
%1611 = getelementptr [3 x i32], ptr %stack.ptr_475, i32 0, i32 0 | |
%1612 = getelementptr [2 x i32], ptr %1605, i32 0, i32 0 | |
%1613 = load i32, ptr %1612 | |
store i32 %1613, ptr %1611 | |
%1614 = getelementptr [3 x i32], ptr %stack.ptr_475, i32 0, i32 1 | |
store i32 4294967295, ptr %1614 | |
%1615 = getelementptr [3 x i32], ptr %stack.ptr_475, i32 0, i32 2 | |
store i32 4294967295, ptr %1615 | |
%1616 = getelementptr %program, ptr %arg_0, i32 0, i32 53 | |
call ccc void @eclair_btree_lower_bound_0(ptr %1616, ptr %stack.ptr_474, ptr %stack.ptr_476) | |
%1617 = getelementptr %program, ptr %arg_0, i32 0, i32 53 | |
call ccc void @eclair_btree_upper_bound_0(ptr %1617, ptr %stack.ptr_475, ptr %stack.ptr_477) | |
br label %loop_105 | |
loop_105: | |
%1618 = call ccc i1 @eclair_btree_iterator_is_equal_0(ptr %stack.ptr_476, ptr %stack.ptr_477) | |
br i1 %1618, label %if_119, label %end_if_119 | |
if_119: | |
br label %range_query.end_104 | |
end_if_119: | |
%1619 = call ccc ptr @eclair_btree_iterator_current_0(ptr %stack.ptr_476) | |
%1620 = getelementptr [3 x i32], ptr %stack.ptr_478, i32 0, i32 0 | |
%1621 = getelementptr [3 x i32], ptr %1619, i32 0, i32 2 | |
%1622 = load i32, ptr %1621 | |
store i32 %1622, ptr %1620 | |
%1623 = getelementptr [3 x i32], ptr %stack.ptr_478, i32 0, i32 1 | |
store i32 0, ptr %1623 | |
%1624 = getelementptr [3 x i32], ptr %stack.ptr_478, i32 0, i32 2 | |
store i32 0, ptr %1624 | |
%1625 = getelementptr [3 x i32], ptr %stack.ptr_479, i32 0, i32 0 | |
%1626 = getelementptr [3 x i32], ptr %1619, i32 0, i32 2 | |
%1627 = load i32, ptr %1626 | |
store i32 %1627, ptr %1625 | |
%1628 = getelementptr [3 x i32], ptr %stack.ptr_479, i32 0, i32 1 | |
store i32 4294967295, ptr %1628 | |
%1629 = getelementptr [3 x i32], ptr %stack.ptr_479, i32 0, i32 2 | |
store i32 4294967295, ptr %1629 | |
%1630 = getelementptr %program, ptr %arg_0, i32 0, i32 2 | |
call ccc void @eclair_btree_lower_bound_0(ptr %1630, ptr %stack.ptr_478, ptr %stack.ptr_480) | |
%1631 = getelementptr %program, ptr %arg_0, i32 0, i32 2 | |
call ccc void @eclair_btree_upper_bound_0(ptr %1631, ptr %stack.ptr_479, ptr %stack.ptr_481) | |
br label %loop_106 | |
loop_106: | |
%1632 = call ccc i1 @eclair_btree_iterator_is_equal_0(ptr %stack.ptr_480, ptr %stack.ptr_481) | |
br i1 %1632, label %if_120, label %end_if_120 | |
if_120: | |
br label %range_query.end_105 | |
end_if_120: | |
%1633 = call ccc ptr @eclair_btree_iterator_current_0(ptr %stack.ptr_480) | |
%1634 = getelementptr [2 x i32], ptr %stack.ptr_482, i32 0, i32 0 | |
%1635 = getelementptr [3 x i32], ptr %1633, i32 0, i32 2 | |
%1636 = load i32, ptr %1635 | |
store i32 %1636, ptr %1634 | |
%1637 = getelementptr [2 x i32], ptr %stack.ptr_482, i32 0, i32 1 | |
store i32 0, ptr %1637 | |
%1638 = getelementptr [2 x i32], ptr %stack.ptr_483, i32 0, i32 0 | |
%1639 = getelementptr [3 x i32], ptr %1633, i32 0, i32 2 | |
%1640 = load i32, ptr %1639 | |
store i32 %1640, ptr %1638 | |
%1641 = getelementptr [2 x i32], ptr %stack.ptr_483, i32 0, i32 1 | |
store i32 4294967295, ptr %1641 | |
%1642 = getelementptr %program, ptr %arg_0, i32 0, i32 23 | |
call ccc void @eclair_btree_lower_bound_1(ptr %1642, ptr %stack.ptr_482, ptr %stack.ptr_484) | |
%1643 = getelementptr %program, ptr %arg_0, i32 0, i32 23 | |
call ccc void @eclair_btree_upper_bound_1(ptr %1643, ptr %stack.ptr_483, ptr %stack.ptr_485) | |
br label %loop_107 | |
loop_107: | |
%1644 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_484, ptr %stack.ptr_485) | |
br i1 %1644, label %if_121, label %end_if_121 | |
if_121: | |
br label %range_query.end_106 | |
end_if_121: | |
%1645 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_484) | |
%1646 = getelementptr [2 x i32], ptr %stack.ptr_486, i32 0, i32 0 | |
%1647 = getelementptr [2 x i32], ptr %1605, i32 0, i32 1 | |
%1648 = load i32, ptr %1647 | |
store i32 %1648, ptr %1646 | |
%1649 = getelementptr [2 x i32], ptr %stack.ptr_486, i32 0, i32 1 | |
%1650 = getelementptr [2 x i32], ptr %1645, i32 0, i32 1 | |
%1651 = load i32, ptr %1650 | |
store i32 %1651, ptr %1649 | |
%1652 = getelementptr %program, ptr %arg_0, i32 0, i32 22 | |
%1653 = call ccc i1 @eclair_btree_insert_value_1(ptr %1652, ptr %stack.ptr_486) | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_484) | |
br label %loop_107 | |
range_query.end_106: | |
call ccc void @eclair_btree_iterator_next_0(ptr %stack.ptr_480) | |
br label %loop_106 | |
range_query.end_105: | |
call ccc void @eclair_btree_iterator_next_0(ptr %stack.ptr_476) | |
br label %loop_105 | |
range_query.end_104: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_472) | |
br label %loop_104 | |
range_query.end_103: | |
%1654 = getelementptr [2 x i32], ptr %stack.ptr_487, i32 0, i32 0 | |
store i32 0, ptr %1654 | |
%1655 = getelementptr [2 x i32], ptr %stack.ptr_487, i32 0, i32 1 | |
store i32 0, ptr %1655 | |
%1656 = getelementptr [2 x i32], ptr %stack.ptr_488, i32 0, i32 0 | |
store i32 4294967295, ptr %1656 | |
%1657 = getelementptr [2 x i32], ptr %stack.ptr_488, i32 0, i32 1 | |
store i32 4294967295, ptr %1657 | |
%1658 = getelementptr %program, ptr %arg_0, i32 0, i32 22 | |
call ccc void @eclair_btree_lower_bound_1(ptr %1658, ptr %stack.ptr_487, ptr %stack.ptr_489) | |
%1659 = getelementptr %program, ptr %arg_0, i32 0, i32 22 | |
call ccc void @eclair_btree_upper_bound_1(ptr %1659, ptr %stack.ptr_488, ptr %stack.ptr_490) | |
br label %loop_108 | |
loop_108: | |
%1660 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_489, ptr %stack.ptr_490) | |
br i1 %1660, label %if_122, label %end_if_122 | |
if_122: | |
br label %range_query.end_107 | |
end_if_122: | |
%1661 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_489) | |
%1662 = getelementptr [2 x i32], ptr %stack.ptr_491, i32 0, i32 0 | |
%1663 = getelementptr [2 x i32], ptr %1661, i32 0, i32 0 | |
%1664 = load i32, ptr %1663 | |
store i32 %1664, ptr %1662 | |
%1665 = getelementptr [2 x i32], ptr %stack.ptr_491, i32 0, i32 1 | |
%1666 = getelementptr [2 x i32], ptr %1661, i32 0, i32 1 | |
%1667 = load i32, ptr %1666 | |
store i32 %1667, ptr %1665 | |
%1668 = getelementptr %program, ptr %arg_0, i32 0, i32 62 | |
%1669 = call ccc i1 @eclair_btree_insert_value_1(ptr %1668, ptr %stack.ptr_491) | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_489) | |
br label %loop_108 | |
range_query.end_107: | |
%1670 = getelementptr %program, ptr %arg_0, i32 0, i32 62 | |
call ccc void @eclair_btree_begin_1(ptr %1670, ptr %stack.ptr_492) | |
%1671 = getelementptr %program, ptr %arg_0, i32 0, i32 62 | |
call ccc void @eclair_btree_end_1(ptr %1671, ptr %stack.ptr_493) | |
%1672 = getelementptr %program, ptr %arg_0, i32 0, i32 20 | |
call ccc void @eclair_btree_insert_range_delta_transitive_depends_on_transitive_depends_on(ptr %1672, ptr %stack.ptr_492, ptr %stack.ptr_493) | |
br label %loop_109 | |
loop_109: | |
%1673 = getelementptr %program, ptr %arg_0, i32 0, i32 45 | |
call ccc void @eclair_btree_clear_1(ptr %1673) | |
%1674 = getelementptr [2 x i32], ptr %stack.ptr_494, i32 0, i32 0 | |
store i32 0, ptr %1674 | |
%1675 = getelementptr [2 x i32], ptr %stack.ptr_494, i32 0, i32 1 | |
store i32 0, ptr %1675 | |
%1676 = getelementptr [2 x i32], ptr %stack.ptr_495, i32 0, i32 0 | |
store i32 4294967295, ptr %1676 | |
%1677 = getelementptr [2 x i32], ptr %stack.ptr_495, i32 0, i32 1 | |
store i32 4294967295, ptr %1677 | |
%1678 = getelementptr %program, ptr %arg_0, i32 0, i32 22 | |
call ccc void @eclair_btree_lower_bound_1(ptr %1678, ptr %stack.ptr_494, ptr %stack.ptr_496) | |
%1679 = getelementptr %program, ptr %arg_0, i32 0, i32 22 | |
call ccc void @eclair_btree_upper_bound_1(ptr %1679, ptr %stack.ptr_495, ptr %stack.ptr_497) | |
br label %loop_110 | |
loop_110: | |
%1680 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_496, ptr %stack.ptr_497) | |
br i1 %1680, label %if_123, label %end_if_123 | |
if_123: | |
br label %range_query.end_108 | |
end_if_123: | |
%1681 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_496) | |
%1682 = getelementptr [2 x i32], ptr %stack.ptr_498, i32 0, i32 0 | |
%1683 = getelementptr [2 x i32], ptr %1681, i32 0, i32 1 | |
%1684 = load i32, ptr %1683 | |
store i32 %1684, ptr %1682 | |
%1685 = getelementptr [2 x i32], ptr %stack.ptr_498, i32 0, i32 1 | |
store i32 0, ptr %1685 | |
%1686 = getelementptr [2 x i32], ptr %stack.ptr_499, i32 0, i32 0 | |
%1687 = getelementptr [2 x i32], ptr %1681, i32 0, i32 1 | |
%1688 = load i32, ptr %1687 | |
store i32 %1688, ptr %1686 | |
%1689 = getelementptr [2 x i32], ptr %stack.ptr_499, i32 0, i32 1 | |
store i32 4294967295, ptr %1689 | |
%1690 = getelementptr %program, ptr %arg_0, i32 0, i32 20 | |
call ccc void @eclair_btree_lower_bound_1(ptr %1690, ptr %stack.ptr_498, ptr %stack.ptr_500) | |
%1691 = getelementptr %program, ptr %arg_0, i32 0, i32 20 | |
call ccc void @eclair_btree_upper_bound_1(ptr %1691, ptr %stack.ptr_499, ptr %stack.ptr_501) | |
br label %loop_111 | |
loop_111: | |
%1692 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_500, ptr %stack.ptr_501) | |
br i1 %1692, label %if_124, label %end_if_124 | |
if_124: | |
br label %range_query.end_109 | |
end_if_124: | |
%1693 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_500) | |
%1694 = getelementptr [2 x i32], ptr %stack.ptr_502, i32 0, i32 0 | |
%1695 = getelementptr [2 x i32], ptr %1681, i32 0, i32 0 | |
%1696 = load i32, ptr %1695 | |
store i32 %1696, ptr %1694 | |
%1697 = getelementptr [2 x i32], ptr %stack.ptr_502, i32 0, i32 1 | |
%1698 = getelementptr [2 x i32], ptr %1693, i32 0, i32 1 | |
%1699 = load i32, ptr %1698 | |
store i32 %1699, ptr %1697 | |
%1700 = getelementptr %program, ptr %arg_0, i32 0, i32 62 | |
%1701 = call ccc i1 @eclair_btree_contains_1(ptr %1700, ptr %stack.ptr_502) | |
%1702 = select i1 %1701, i1 0, i1 1 | |
br i1 %1702, label %if_125, label %end_if_125 | |
if_125: | |
%1703 = getelementptr [2 x i32], ptr %stack.ptr_503, i32 0, i32 0 | |
%1704 = getelementptr [2 x i32], ptr %1681, i32 0, i32 0 | |
%1705 = load i32, ptr %1704 | |
store i32 %1705, ptr %1703 | |
%1706 = getelementptr [2 x i32], ptr %stack.ptr_503, i32 0, i32 1 | |
%1707 = getelementptr [2 x i32], ptr %1693, i32 0, i32 1 | |
%1708 = load i32, ptr %1707 | |
store i32 %1708, ptr %1706 | |
%1709 = getelementptr %program, ptr %arg_0, i32 0, i32 45 | |
%1710 = call ccc i1 @eclair_btree_insert_value_1(ptr %1709, ptr %stack.ptr_503) | |
br label %end_if_125 | |
end_if_125: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_500) | |
br label %loop_111 | |
range_query.end_109: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_496) | |
br label %loop_110 | |
range_query.end_108: | |
%1711 = getelementptr %program, ptr %arg_0, i32 0, i32 45 | |
%1712 = call ccc i1 @eclair_btree_is_empty_1(ptr %1711) | |
br i1 %1712, label %if_126, label %end_if_126 | |
if_126: | |
br label %loop.end_1 | |
end_if_126: | |
%1713 = getelementptr %program, ptr %arg_0, i32 0, i32 45 | |
call ccc void @eclair_btree_begin_1(ptr %1713, ptr %stack.ptr_504) | |
%1714 = getelementptr %program, ptr %arg_0, i32 0, i32 45 | |
call ccc void @eclair_btree_end_1(ptr %1714, ptr %stack.ptr_505) | |
%1715 = getelementptr %program, ptr %arg_0, i32 0, i32 62 | |
call ccc void @eclair_btree_insert_range_transitive_depends_on_new_transitive_depends_on(ptr %1715, ptr %stack.ptr_504, ptr %stack.ptr_505) | |
%1716 = getelementptr %program, ptr %arg_0, i32 0, i32 45 | |
%1717 = getelementptr %program, ptr %arg_0, i32 0, i32 20 | |
call ccc void @eclair_btree_swap_1(ptr %1716, ptr %1717) | |
br label %loop_109 | |
loop.end_1: | |
%1718 = getelementptr [2 x i32], ptr %stack.ptr_506, i32 0, i32 0 | |
store i32 0, ptr %1718 | |
%1719 = getelementptr [2 x i32], ptr %stack.ptr_506, i32 0, i32 1 | |
store i32 0, ptr %1719 | |
%1720 = getelementptr [2 x i32], ptr %stack.ptr_507, i32 0, i32 0 | |
store i32 4294967295, ptr %1720 | |
%1721 = getelementptr [2 x i32], ptr %stack.ptr_507, i32 0, i32 1 | |
store i32 4294967295, ptr %1721 | |
%1722 = getelementptr %program, ptr %arg_0, i32 0, i32 62 | |
call ccc void @eclair_btree_lower_bound_1(ptr %1722, ptr %stack.ptr_506, ptr %stack.ptr_508) | |
%1723 = getelementptr %program, ptr %arg_0, i32 0, i32 62 | |
call ccc void @eclair_btree_upper_bound_1(ptr %1723, ptr %stack.ptr_507, ptr %stack.ptr_509) | |
br label %loop_112 | |
loop_112: | |
%1724 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_508, ptr %stack.ptr_509) | |
br i1 %1724, label %if_127, label %end_if_127 | |
if_127: | |
br label %range_query.end_110 | |
end_if_127: | |
%1725 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_508) | |
%1726 = getelementptr [2 x i32], ptr %1725, i32 0, i32 0 | |
%1727 = load i32, ptr %1726 | |
%1728 = getelementptr [2 x i32], ptr %1725, i32 0, i32 1 | |
%1729 = load i32, ptr %1728 | |
%1730 = icmp eq i32 %1727, %1729 | |
br i1 %1730, label %if_128, label %end_if_128 | |
if_128: | |
%1731 = getelementptr [1 x i32], ptr %stack.ptr_510, i32 0, i32 0 | |
%1732 = getelementptr [2 x i32], ptr %1725, i32 0, i32 0 | |
%1733 = load i32, ptr %1732 | |
store i32 %1733, ptr %1731 | |
%1734 = getelementptr %program, ptr %arg_0, i32 0, i32 21 | |
%1735 = call ccc i1 @eclair_btree_insert_value_6(ptr %1734, ptr %stack.ptr_510) | |
br label %end_if_128 | |
end_if_128: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_508) | |
br label %loop_112 | |
range_query.end_110: | |
%1736 = getelementptr [1 x i32], ptr %stack.ptr_511, i32 0, i32 0 | |
store i32 0, ptr %1736 | |
%1737 = getelementptr [1 x i32], ptr %stack.ptr_512, i32 0, i32 0 | |
store i32 4294967295, ptr %1737 | |
%1738 = getelementptr %program, ptr %arg_0, i32 0, i32 21 | |
call ccc void @eclair_btree_lower_bound_6(ptr %1738, ptr %stack.ptr_511, ptr %stack.ptr_513) | |
%1739 = getelementptr %program, ptr %arg_0, i32 0, i32 21 | |
call ccc void @eclair_btree_upper_bound_6(ptr %1739, ptr %stack.ptr_512, ptr %stack.ptr_514) | |
br label %loop_113 | |
loop_113: | |
%1740 = call ccc i1 @eclair_btree_iterator_is_equal_6(ptr %stack.ptr_513, ptr %stack.ptr_514) | |
br i1 %1740, label %if_129, label %end_if_129 | |
if_129: | |
br label %range_query.end_111 | |
end_if_129: | |
%1741 = call ccc ptr @eclair_btree_iterator_current_6(ptr %stack.ptr_513) | |
%1742 = getelementptr [2 x i32], ptr %stack.ptr_515, i32 0, i32 0 | |
%1743 = getelementptr [1 x i32], ptr %1741, i32 0, i32 0 | |
%1744 = load i32, ptr %1743 | |
store i32 %1744, ptr %1742 | |
%1745 = getelementptr [2 x i32], ptr %stack.ptr_515, i32 0, i32 1 | |
store i32 0, ptr %1745 | |
%1746 = getelementptr [2 x i32], ptr %stack.ptr_516, i32 0, i32 0 | |
%1747 = getelementptr [1 x i32], ptr %1741, i32 0, i32 0 | |
%1748 = load i32, ptr %1747 | |
store i32 %1748, ptr %1746 | |
%1749 = getelementptr [2 x i32], ptr %stack.ptr_516, i32 0, i32 1 | |
store i32 4294967295, ptr %1749 | |
%1750 = getelementptr %program, ptr %arg_0, i32 0, i32 62 | |
call ccc void @eclair_btree_lower_bound_1(ptr %1750, ptr %stack.ptr_515, ptr %stack.ptr_517) | |
%1751 = getelementptr %program, ptr %arg_0, i32 0, i32 62 | |
call ccc void @eclair_btree_upper_bound_1(ptr %1751, ptr %stack.ptr_516, ptr %stack.ptr_518) | |
br label %loop_114 | |
loop_114: | |
%1752 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_517, ptr %stack.ptr_518) | |
br i1 %1752, label %if_130, label %end_if_130 | |
if_130: | |
br label %range_query.end_112 | |
end_if_130: | |
%1753 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_517) | |
%1754 = getelementptr [2 x i32], ptr %stack.ptr_519, i32 0, i32 0 | |
store i32 0, ptr %1754 | |
%1755 = getelementptr [2 x i32], ptr %stack.ptr_519, i32 0, i32 1 | |
%1756 = getelementptr [2 x i32], ptr %1753, i32 0, i32 1 | |
%1757 = load i32, ptr %1756 | |
store i32 %1757, ptr %1755 | |
%1758 = getelementptr [2 x i32], ptr %stack.ptr_520, i32 0, i32 0 | |
store i32 4294967295, ptr %1758 | |
%1759 = getelementptr [2 x i32], ptr %stack.ptr_520, i32 0, i32 1 | |
%1760 = getelementptr [2 x i32], ptr %1753, i32 0, i32 1 | |
%1761 = load i32, ptr %1760 | |
store i32 %1761, ptr %1759 | |
%1762 = getelementptr %program, ptr %arg_0, i32 0, i32 51 | |
call ccc void @eclair_btree_lower_bound_2(ptr %1762, ptr %stack.ptr_519, ptr %stack.ptr_521) | |
%1763 = getelementptr %program, ptr %arg_0, i32 0, i32 51 | |
call ccc void @eclair_btree_upper_bound_2(ptr %1763, ptr %stack.ptr_520, ptr %stack.ptr_522) | |
br label %loop_115 | |
loop_115: | |
%1764 = call ccc i1 @eclair_btree_iterator_is_equal_2(ptr %stack.ptr_521, ptr %stack.ptr_522) | |
br i1 %1764, label %if_131, label %end_if_131 | |
if_131: | |
br label %range_query.end_113 | |
end_if_131: | |
%1765 = call ccc ptr @eclair_btree_iterator_current_2(ptr %stack.ptr_521) | |
%1766 = getelementptr [3 x i32], ptr %stack.ptr_523, i32 0, i32 0 | |
%1767 = getelementptr [2 x i32], ptr %1765, i32 0, i32 0 | |
%1768 = load i32, ptr %1767 | |
store i32 %1768, ptr %1766 | |
%1769 = getelementptr [3 x i32], ptr %stack.ptr_523, i32 0, i32 1 | |
store i32 0, ptr %1769 | |
%1770 = getelementptr [3 x i32], ptr %stack.ptr_523, i32 0, i32 2 | |
store i32 0, ptr %1770 | |
%1771 = getelementptr [3 x i32], ptr %stack.ptr_524, i32 0, i32 0 | |
%1772 = getelementptr [2 x i32], ptr %1765, i32 0, i32 0 | |
%1773 = load i32, ptr %1772 | |
store i32 %1773, ptr %1771 | |
%1774 = getelementptr [3 x i32], ptr %stack.ptr_524, i32 0, i32 1 | |
store i32 4294967295, ptr %1774 | |
%1775 = getelementptr [3 x i32], ptr %stack.ptr_524, i32 0, i32 2 | |
store i32 4294967295, ptr %1775 | |
%1776 = getelementptr %program, ptr %arg_0, i32 0, i32 53 | |
call ccc void @eclair_btree_lower_bound_0(ptr %1776, ptr %stack.ptr_523, ptr %stack.ptr_525) | |
%1777 = getelementptr %program, ptr %arg_0, i32 0, i32 53 | |
call ccc void @eclair_btree_upper_bound_0(ptr %1777, ptr %stack.ptr_524, ptr %stack.ptr_526) | |
br label %loop_116 | |
loop_116: | |
%1778 = call ccc i1 @eclair_btree_iterator_is_equal_0(ptr %stack.ptr_525, ptr %stack.ptr_526) | |
br i1 %1778, label %if_132, label %end_if_132 | |
if_132: | |
br label %range_query.end_114 | |
end_if_132: | |
%1779 = call ccc ptr @eclair_btree_iterator_current_0(ptr %stack.ptr_525) | |
%1780 = getelementptr [2 x i32], ptr %stack.ptr_527, i32 0, i32 0 | |
%1781 = getelementptr [3 x i32], ptr %1779, i32 0, i32 2 | |
%1782 = load i32, ptr %1781 | |
store i32 %1782, ptr %1780 | |
%1783 = getelementptr [2 x i32], ptr %stack.ptr_527, i32 0, i32 1 | |
store i32 0, ptr %1783 | |
%1784 = getelementptr [2 x i32], ptr %stack.ptr_528, i32 0, i32 0 | |
%1785 = getelementptr [3 x i32], ptr %1779, i32 0, i32 2 | |
%1786 = load i32, ptr %1785 | |
store i32 %1786, ptr %1784 | |
%1787 = getelementptr [2 x i32], ptr %stack.ptr_528, i32 0, i32 1 | |
store i32 4294967295, ptr %1787 | |
%1788 = getelementptr %program, ptr %arg_0, i32 0, i32 40 | |
call ccc void @eclair_btree_lower_bound_1(ptr %1788, ptr %stack.ptr_527, ptr %stack.ptr_529) | |
%1789 = getelementptr %program, ptr %arg_0, i32 0, i32 40 | |
call ccc void @eclair_btree_upper_bound_1(ptr %1789, ptr %stack.ptr_528, ptr %stack.ptr_530) | |
br label %loop_117 | |
loop_117: | |
%1790 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_529, ptr %stack.ptr_530) | |
br i1 %1790, label %if_133, label %end_if_133 | |
if_133: | |
br label %range_query.end_115 | |
end_if_133: | |
%1791 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_529) | |
%1792 = getelementptr [2 x i32], ptr %stack.ptr_531, i32 0, i32 0 | |
%1793 = getelementptr [2 x i32], ptr %1791, i32 0, i32 1 | |
%1794 = load i32, ptr %1793 | |
store i32 %1794, ptr %1792 | |
%1795 = getelementptr [2 x i32], ptr %stack.ptr_531, i32 0, i32 1 | |
store i32 0, ptr %1795 | |
%1796 = getelementptr [2 x i32], ptr %stack.ptr_532, i32 0, i32 0 | |
%1797 = getelementptr [2 x i32], ptr %1791, i32 0, i32 1 | |
%1798 = load i32, ptr %1797 | |
store i32 %1798, ptr %1796 | |
%1799 = getelementptr [2 x i32], ptr %stack.ptr_532, i32 0, i32 1 | |
store i32 4294967295, ptr %1799 | |
%1800 = getelementptr %program, ptr %arg_0, i32 0, i32 3 | |
call ccc void @eclair_btree_lower_bound_1(ptr %1800, ptr %stack.ptr_531, ptr %stack.ptr_533) | |
%1801 = getelementptr %program, ptr %arg_0, i32 0, i32 3 | |
call ccc void @eclair_btree_upper_bound_1(ptr %1801, ptr %stack.ptr_532, ptr %stack.ptr_534) | |
br label %loop_118 | |
loop_118: | |
%1802 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_533, ptr %stack.ptr_534) | |
br i1 %1802, label %if_134, label %end_if_134 | |
if_134: | |
br label %range_query.end_116 | |
end_if_134: | |
%1803 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_533) | |
%1804 = getelementptr [2 x i32], ptr %stack.ptr_535, i32 0, i32 0 | |
%1805 = getelementptr [2 x i32], ptr %1803, i32 0, i32 1 | |
%1806 = load i32, ptr %1805 | |
store i32 %1806, ptr %1804 | |
%1807 = getelementptr [2 x i32], ptr %stack.ptr_535, i32 0, i32 1 | |
%1808 = getelementptr [1 x i32], ptr %1741, i32 0, i32 0 | |
%1809 = load i32, ptr %1808 | |
store i32 %1809, ptr %1807 | |
%1810 = getelementptr [2 x i32], ptr %stack.ptr_536, i32 0, i32 0 | |
%1811 = getelementptr [2 x i32], ptr %1803, i32 0, i32 1 | |
%1812 = load i32, ptr %1811 | |
store i32 %1812, ptr %1810 | |
%1813 = getelementptr [2 x i32], ptr %stack.ptr_536, i32 0, i32 1 | |
%1814 = getelementptr [1 x i32], ptr %1741, i32 0, i32 0 | |
%1815 = load i32, ptr %1814 | |
store i32 %1815, ptr %1813 | |
%1816 = getelementptr %program, ptr %arg_0, i32 0, i32 62 | |
call ccc void @eclair_btree_lower_bound_1(ptr %1816, ptr %stack.ptr_535, ptr %stack.ptr_537) | |
%1817 = getelementptr %program, ptr %arg_0, i32 0, i32 62 | |
call ccc void @eclair_btree_upper_bound_1(ptr %1817, ptr %stack.ptr_536, ptr %stack.ptr_538) | |
br label %loop_119 | |
loop_119: | |
%1818 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_537, ptr %stack.ptr_538) | |
br i1 %1818, label %if_135, label %end_if_135 | |
if_135: | |
br label %range_query.end_117 | |
end_if_135: | |
%1819 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_537) | |
%1820 = getelementptr [1 x i32], ptr %stack.ptr_539, i32 0, i32 0 | |
%1821 = getelementptr [3 x i32], ptr %1779, i32 0, i32 2 | |
%1822 = load i32, ptr %1821 | |
store i32 %1822, ptr %1820 | |
%1823 = getelementptr %program, ptr %arg_0, i32 0, i32 11 | |
%1824 = call ccc i1 @eclair_btree_insert_value_6(ptr %1823, ptr %stack.ptr_539) | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_537) | |
br label %loop_119 | |
range_query.end_117: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_533) | |
br label %loop_118 | |
range_query.end_116: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_529) | |
br label %loop_117 | |
range_query.end_115: | |
call ccc void @eclair_btree_iterator_next_0(ptr %stack.ptr_525) | |
br label %loop_116 | |
range_query.end_114: | |
call ccc void @eclair_btree_iterator_next_2(ptr %stack.ptr_521) | |
br label %loop_115 | |
range_query.end_113: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_517) | |
br label %loop_114 | |
range_query.end_112: | |
call ccc void @eclair_btree_iterator_next_6(ptr %stack.ptr_513) | |
br label %loop_113 | |
range_query.end_111: | |
%1825 = getelementptr [1 x i32], ptr %stack.ptr_540, i32 0, i32 0 | |
store i32 0, ptr %1825 | |
%1826 = getelementptr [1 x i32], ptr %stack.ptr_541, i32 0, i32 0 | |
store i32 4294967295, ptr %1826 | |
%1827 = getelementptr %program, ptr %arg_0, i32 0, i32 47 | |
call ccc void @eclair_btree_lower_bound_6(ptr %1827, ptr %stack.ptr_540, ptr %stack.ptr_542) | |
%1828 = getelementptr %program, ptr %arg_0, i32 0, i32 47 | |
call ccc void @eclair_btree_upper_bound_6(ptr %1828, ptr %stack.ptr_541, ptr %stack.ptr_543) | |
br label %loop_120 | |
loop_120: | |
%1829 = call ccc i1 @eclair_btree_iterator_is_equal_6(ptr %stack.ptr_542, ptr %stack.ptr_543) | |
br i1 %1829, label %if_136, label %end_if_136 | |
if_136: | |
br label %range_query.end_118 | |
end_if_136: | |
%1830 = call ccc ptr @eclair_btree_iterator_current_6(ptr %stack.ptr_542) | |
%1831 = getelementptr [2 x i32], ptr %stack.ptr_544, i32 0, i32 0 | |
%1832 = getelementptr [1 x i32], ptr %1830, i32 0, i32 0 | |
%1833 = load i32, ptr %1832 | |
store i32 %1833, ptr %1831 | |
%1834 = getelementptr [2 x i32], ptr %stack.ptr_544, i32 0, i32 1 | |
store i32 0, ptr %1834 | |
%1835 = getelementptr [2 x i32], ptr %stack.ptr_545, i32 0, i32 0 | |
%1836 = getelementptr [1 x i32], ptr %1830, i32 0, i32 0 | |
%1837 = load i32, ptr %1836 | |
store i32 %1837, ptr %1835 | |
%1838 = getelementptr [2 x i32], ptr %stack.ptr_545, i32 0, i32 1 | |
store i32 4294967295, ptr %1838 | |
%1839 = getelementptr %program, ptr %arg_0, i32 0, i32 62 | |
call ccc void @eclair_btree_lower_bound_1(ptr %1839, ptr %stack.ptr_544, ptr %stack.ptr_546) | |
%1840 = getelementptr %program, ptr %arg_0, i32 0, i32 62 | |
call ccc void @eclair_btree_upper_bound_1(ptr %1840, ptr %stack.ptr_545, ptr %stack.ptr_547) | |
br label %loop_121 | |
loop_121: | |
%1841 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_546, ptr %stack.ptr_547) | |
br i1 %1841, label %if_137, label %end_if_137 | |
if_137: | |
br label %range_query.end_119 | |
end_if_137: | |
%1842 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_546) | |
%1843 = getelementptr [1 x i32], ptr %stack.ptr_548, i32 0, i32 0 | |
%1844 = getelementptr [2 x i32], ptr %1842, i32 0, i32 1 | |
%1845 = load i32, ptr %1844 | |
store i32 %1845, ptr %1843 | |
%1846 = getelementptr [1 x i32], ptr %stack.ptr_549, i32 0, i32 0 | |
%1847 = getelementptr [2 x i32], ptr %1842, i32 0, i32 1 | |
%1848 = load i32, ptr %1847 | |
store i32 %1848, ptr %1846 | |
%1849 = getelementptr %program, ptr %arg_0, i32 0, i32 61 | |
call ccc void @eclair_btree_lower_bound_6(ptr %1849, ptr %stack.ptr_548, ptr %stack.ptr_550) | |
%1850 = getelementptr %program, ptr %arg_0, i32 0, i32 61 | |
call ccc void @eclair_btree_upper_bound_6(ptr %1850, ptr %stack.ptr_549, ptr %stack.ptr_551) | |
br label %loop_122 | |
loop_122: | |
%1851 = call ccc i1 @eclair_btree_iterator_is_equal_6(ptr %stack.ptr_550, ptr %stack.ptr_551) | |
br i1 %1851, label %if_138, label %end_if_138 | |
if_138: | |
br label %range_query.end_120 | |
end_if_138: | |
%1852 = call ccc ptr @eclair_btree_iterator_current_6(ptr %stack.ptr_550) | |
%1853 = getelementptr [1 x i32], ptr %stack.ptr_552, i32 0, i32 0 | |
%1854 = getelementptr [1 x i32], ptr %1830, i32 0, i32 0 | |
%1855 = load i32, ptr %1854 | |
store i32 %1855, ptr %1853 | |
%1856 = getelementptr %program, ptr %arg_0, i32 0, i32 37 | |
%1857 = call ccc i1 @eclair_btree_insert_value_6(ptr %1856, ptr %stack.ptr_552) | |
call ccc void @eclair_btree_iterator_next_6(ptr %stack.ptr_550) | |
br label %loop_122 | |
range_query.end_120: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_546) | |
br label %loop_121 | |
range_query.end_119: | |
call ccc void @eclair_btree_iterator_next_6(ptr %stack.ptr_542) | |
br label %loop_120 | |
range_query.end_118: | |
%1858 = getelementptr %program, ptr %arg_0, i32 0, i32 37 | |
call ccc void @eclair_btree_begin_6(ptr %1858, ptr %stack.ptr_553) | |
%1859 = getelementptr %program, ptr %arg_0, i32 0, i32 37 | |
call ccc void @eclair_btree_end_6(ptr %1859, ptr %stack.ptr_554) | |
%1860 = getelementptr %program, ptr %arg_0, i32 0, i32 18 | |
call ccc void @eclair_btree_insert_range_delta_live_rule_live_rule(ptr %1860, ptr %stack.ptr_553, ptr %stack.ptr_554) | |
br label %loop_123 | |
loop_123: | |
%1861 = getelementptr %program, ptr %arg_0, i32 0, i32 43 | |
call ccc void @eclair_btree_clear_6(ptr %1861) | |
%1862 = getelementptr [2 x i32], ptr %stack.ptr_555, i32 0, i32 0 | |
store i32 0, ptr %1862 | |
%1863 = getelementptr [2 x i32], ptr %stack.ptr_555, i32 0, i32 1 | |
store i32 0, ptr %1863 | |
%1864 = getelementptr [2 x i32], ptr %stack.ptr_556, i32 0, i32 0 | |
store i32 4294967295, ptr %1864 | |
%1865 = getelementptr [2 x i32], ptr %stack.ptr_556, i32 0, i32 1 | |
store i32 4294967295, ptr %1865 | |
%1866 = getelementptr %program, ptr %arg_0, i32 0, i32 22 | |
call ccc void @eclair_btree_lower_bound_1(ptr %1866, ptr %stack.ptr_555, ptr %stack.ptr_557) | |
%1867 = getelementptr %program, ptr %arg_0, i32 0, i32 22 | |
call ccc void @eclair_btree_upper_bound_1(ptr %1867, ptr %stack.ptr_556, ptr %stack.ptr_558) | |
br label %loop_124 | |
loop_124: | |
%1868 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_557, ptr %stack.ptr_558) | |
br i1 %1868, label %if_139, label %end_if_139 | |
if_139: | |
br label %range_query.end_121 | |
end_if_139: | |
%1869 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_557) | |
%1870 = getelementptr [1 x i32], ptr %stack.ptr_559, i32 0, i32 0 | |
%1871 = getelementptr [2 x i32], ptr %1869, i32 0, i32 1 | |
%1872 = load i32, ptr %1871 | |
store i32 %1872, ptr %1870 | |
%1873 = getelementptr %program, ptr %arg_0, i32 0, i32 37 | |
%1874 = call ccc i1 @eclair_btree_contains_6(ptr %1873, ptr %stack.ptr_559) | |
%1875 = select i1 %1874, i1 0, i1 1 | |
br i1 %1875, label %if_140, label %end_if_141 | |
if_140: | |
%1876 = getelementptr [1 x i32], ptr %stack.ptr_560, i32 0, i32 0 | |
%1877 = getelementptr [2 x i32], ptr %1869, i32 0, i32 0 | |
%1878 = load i32, ptr %1877 | |
store i32 %1878, ptr %1876 | |
%1879 = getelementptr [1 x i32], ptr %stack.ptr_561, i32 0, i32 0 | |
%1880 = getelementptr [2 x i32], ptr %1869, i32 0, i32 0 | |
%1881 = load i32, ptr %1880 | |
store i32 %1881, ptr %1879 | |
%1882 = getelementptr %program, ptr %arg_0, i32 0, i32 18 | |
call ccc void @eclair_btree_lower_bound_6(ptr %1882, ptr %stack.ptr_560, ptr %stack.ptr_562) | |
%1883 = getelementptr %program, ptr %arg_0, i32 0, i32 18 | |
call ccc void @eclair_btree_upper_bound_6(ptr %1883, ptr %stack.ptr_561, ptr %stack.ptr_563) | |
br label %loop_125 | |
loop_125: | |
%1884 = call ccc i1 @eclair_btree_iterator_is_equal_6(ptr %stack.ptr_562, ptr %stack.ptr_563) | |
br i1 %1884, label %if_141, label %end_if_140 | |
if_141: | |
br label %range_query.end_122 | |
end_if_140: | |
%1885 = call ccc ptr @eclair_btree_iterator_current_6(ptr %stack.ptr_562) | |
%1886 = getelementptr [1 x i32], ptr %stack.ptr_564, i32 0, i32 0 | |
%1887 = getelementptr [2 x i32], ptr %1869, i32 0, i32 1 | |
%1888 = load i32, ptr %1887 | |
store i32 %1888, ptr %1886 | |
%1889 = getelementptr %program, ptr %arg_0, i32 0, i32 43 | |
%1890 = call ccc i1 @eclair_btree_insert_value_6(ptr %1889, ptr %stack.ptr_564) | |
call ccc void @eclair_btree_iterator_next_6(ptr %stack.ptr_562) | |
br label %loop_125 | |
range_query.end_122: | |
br label %end_if_141 | |
end_if_141: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_557) | |
br label %loop_124 | |
range_query.end_121: | |
%1891 = getelementptr %program, ptr %arg_0, i32 0, i32 43 | |
%1892 = call ccc i1 @eclair_btree_is_empty_6(ptr %1891) | |
br i1 %1892, label %if_142, label %end_if_142 | |
if_142: | |
br label %loop.end_2 | |
end_if_142: | |
%1893 = getelementptr %program, ptr %arg_0, i32 0, i32 43 | |
call ccc void @eclair_btree_begin_6(ptr %1893, ptr %stack.ptr_565) | |
%1894 = getelementptr %program, ptr %arg_0, i32 0, i32 43 | |
call ccc void @eclair_btree_end_6(ptr %1894, ptr %stack.ptr_566) | |
%1895 = getelementptr %program, ptr %arg_0, i32 0, i32 37 | |
call ccc void @eclair_btree_insert_range_live_rule_new_live_rule(ptr %1895, ptr %stack.ptr_565, ptr %stack.ptr_566) | |
%1896 = getelementptr %program, ptr %arg_0, i32 0, i32 43 | |
%1897 = getelementptr %program, ptr %arg_0, i32 0, i32 18 | |
call ccc void @eclair_btree_swap_6(ptr %1896, ptr %1897) | |
br label %loop_123 | |
loop.end_2: | |
%1898 = getelementptr [2 x i32], ptr %stack.ptr_567, i32 0, i32 0 | |
store i32 0, ptr %1898 | |
%1899 = getelementptr [2 x i32], ptr %stack.ptr_567, i32 0, i32 1 | |
store i32 0, ptr %1899 | |
%1900 = getelementptr [2 x i32], ptr %stack.ptr_568, i32 0, i32 0 | |
store i32 4294967295, ptr %1900 | |
%1901 = getelementptr [2 x i32], ptr %stack.ptr_568, i32 0, i32 1 | |
store i32 4294967295, ptr %1901 | |
%1902 = getelementptr %program, ptr %arg_0, i32 0, i32 50 | |
call ccc void @eclair_btree_lower_bound_1(ptr %1902, ptr %stack.ptr_567, ptr %stack.ptr_569) | |
%1903 = getelementptr %program, ptr %arg_0, i32 0, i32 50 | |
call ccc void @eclair_btree_upper_bound_1(ptr %1903, ptr %stack.ptr_568, ptr %stack.ptr_570) | |
br label %loop_126 | |
loop_126: | |
%1904 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_569, ptr %stack.ptr_570) | |
br i1 %1904, label %if_143, label %end_if_143 | |
if_143: | |
br label %range_query.end_123 | |
end_if_143: | |
%1905 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_569) | |
%1906 = getelementptr [1 x i32], ptr %stack.ptr_571, i32 0, i32 0 | |
%1907 = getelementptr [2 x i32], ptr %1905, i32 0, i32 1 | |
%1908 = load i32, ptr %1907 | |
store i32 %1908, ptr %1906 | |
%1909 = getelementptr %program, ptr %arg_0, i32 0, i32 37 | |
%1910 = call ccc i1 @eclair_btree_contains_6(ptr %1909, ptr %stack.ptr_571) | |
%1911 = select i1 %1910, i1 0, i1 1 | |
br i1 %1911, label %if_144, label %end_if_144 | |
if_144: | |
%1912 = getelementptr [1 x i32], ptr %stack.ptr_572, i32 0, i32 0 | |
%1913 = getelementptr [2 x i32], ptr %1905, i32 0, i32 0 | |
%1914 = load i32, ptr %1913 | |
store i32 %1914, ptr %1912 | |
%1915 = getelementptr %program, ptr %arg_0, i32 0, i32 12 | |
%1916 = call ccc i1 @eclair_btree_insert_value_6(ptr %1915, ptr %stack.ptr_572) | |
br label %end_if_144 | |
end_if_144: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_569) | |
br label %loop_126 | |
range_query.end_123: | |
%1917 = getelementptr [2 x i32], ptr %stack.ptr_573, i32 0, i32 0 | |
store i32 0, ptr %1917 | |
%1918 = getelementptr [2 x i32], ptr %stack.ptr_573, i32 0, i32 1 | |
store i32 0, ptr %1918 | |
%1919 = getelementptr [2 x i32], ptr %stack.ptr_574, i32 0, i32 0 | |
store i32 4294967295, ptr %1919 | |
%1920 = getelementptr [2 x i32], ptr %stack.ptr_574, i32 0, i32 1 | |
store i32 4294967295, ptr %1920 | |
%1921 = getelementptr %program, ptr %arg_0, i32 0, i32 14 | |
call ccc void @eclair_btree_lower_bound_1(ptr %1921, ptr %stack.ptr_573, ptr %stack.ptr_575) | |
%1922 = getelementptr %program, ptr %arg_0, i32 0, i32 14 | |
call ccc void @eclair_btree_upper_bound_1(ptr %1922, ptr %stack.ptr_574, ptr %stack.ptr_576) | |
br label %loop_127 | |
loop_127: | |
%1923 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_575, ptr %stack.ptr_576) | |
br i1 %1923, label %if_145, label %end_if_145 | |
if_145: | |
br label %range_query.end_124 | |
end_if_145: | |
%1924 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_575) | |
%1925 = getelementptr [1 x i32], ptr %stack.ptr_577, i32 0, i32 0 | |
%1926 = getelementptr [2 x i32], ptr %1924, i32 0, i32 1 | |
%1927 = load i32, ptr %1926 | |
store i32 %1927, ptr %1925 | |
%1928 = getelementptr %program, ptr %arg_0, i32 0, i32 37 | |
%1929 = call ccc i1 @eclair_btree_contains_6(ptr %1928, ptr %stack.ptr_577) | |
%1930 = select i1 %1929, i1 0, i1 1 | |
br i1 %1930, label %if_146, label %end_if_146 | |
if_146: | |
%1931 = getelementptr [1 x i32], ptr %stack.ptr_578, i32 0, i32 0 | |
%1932 = getelementptr [2 x i32], ptr %1924, i32 0, i32 0 | |
%1933 = load i32, ptr %1932 | |
store i32 %1933, ptr %1931 | |
%1934 = getelementptr %program, ptr %arg_0, i32 0, i32 12 | |
%1935 = call ccc i1 @eclair_btree_insert_value_6(ptr %1934, ptr %stack.ptr_578) | |
br label %end_if_146 | |
end_if_146: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_575) | |
br label %loop_127 | |
range_query.end_124: | |
%1936 = getelementptr [2 x i32], ptr %stack.ptr_579, i32 0, i32 0 | |
store i32 0, ptr %1936 | |
%1937 = getelementptr [2 x i32], ptr %stack.ptr_579, i32 0, i32 1 | |
store i32 0, ptr %1937 | |
%1938 = getelementptr [2 x i32], ptr %stack.ptr_580, i32 0, i32 0 | |
store i32 4294967295, ptr %1938 | |
%1939 = getelementptr [2 x i32], ptr %stack.ptr_580, i32 0, i32 1 | |
store i32 4294967295, ptr %1939 | |
%1940 = getelementptr %program, ptr %arg_0, i32 0, i32 24 | |
call ccc void @eclair_btree_lower_bound_7(ptr %1940, ptr %stack.ptr_579, ptr %stack.ptr_581) | |
%1941 = getelementptr %program, ptr %arg_0, i32 0, i32 24 | |
call ccc void @eclair_btree_upper_bound_7(ptr %1941, ptr %stack.ptr_580, ptr %stack.ptr_582) | |
br label %loop_128 | |
loop_128: | |
%1942 = call ccc i1 @eclair_btree_iterator_is_equal_7(ptr %stack.ptr_581, ptr %stack.ptr_582) | |
br i1 %1942, label %if_147, label %end_if_147 | |
if_147: | |
br label %range_query.end_125 | |
end_if_147: | |
%1943 = call ccc ptr @eclair_btree_iterator_current_7(ptr %stack.ptr_581) | |
%1944 = getelementptr [1 x i32], ptr %stack.ptr_583, i32 0, i32 0 | |
%1945 = getelementptr [2 x i32], ptr %1943, i32 0, i32 1 | |
%1946 = load i32, ptr %1945 | |
store i32 %1946, ptr %1944 | |
%1947 = getelementptr %program, ptr %arg_0, i32 0, i32 37 | |
%1948 = call ccc i1 @eclair_btree_contains_6(ptr %1947, ptr %stack.ptr_583) | |
%1949 = select i1 %1948, i1 0, i1 1 | |
br i1 %1949, label %if_148, label %end_if_148 | |
if_148: | |
%1950 = getelementptr [1 x i32], ptr %stack.ptr_584, i32 0, i32 0 | |
%1951 = getelementptr [2 x i32], ptr %1943, i32 0, i32 0 | |
%1952 = load i32, ptr %1951 | |
store i32 %1952, ptr %1950 | |
%1953 = getelementptr %program, ptr %arg_0, i32 0, i32 12 | |
%1954 = call ccc i1 @eclair_btree_insert_value_6(ptr %1953, ptr %stack.ptr_584) | |
br label %end_if_148 | |
end_if_148: | |
call ccc void @eclair_btree_iterator_next_7(ptr %stack.ptr_581) | |
br label %loop_128 | |
range_query.end_125: | |
%1955 = getelementptr [2 x i32], ptr %stack.ptr_585, i32 0, i32 0 | |
store i32 0, ptr %1955 | |
%1956 = getelementptr [2 x i32], ptr %stack.ptr_585, i32 0, i32 1 | |
store i32 0, ptr %1956 | |
%1957 = getelementptr [2 x i32], ptr %stack.ptr_586, i32 0, i32 0 | |
store i32 4294967295, ptr %1957 | |
%1958 = getelementptr [2 x i32], ptr %stack.ptr_586, i32 0, i32 1 | |
store i32 4294967295, ptr %1958 | |
%1959 = getelementptr %program, ptr %arg_0, i32 0, i32 3 | |
call ccc void @eclair_btree_lower_bound_1(ptr %1959, ptr %stack.ptr_585, ptr %stack.ptr_587) | |
%1960 = getelementptr %program, ptr %arg_0, i32 0, i32 3 | |
call ccc void @eclair_btree_upper_bound_1(ptr %1960, ptr %stack.ptr_586, ptr %stack.ptr_588) | |
br label %loop_129 | |
loop_129: | |
%1961 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_587, ptr %stack.ptr_588) | |
br i1 %1961, label %if_149, label %end_if_149 | |
if_149: | |
br label %range_query.end_126 | |
end_if_149: | |
%1962 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_587) | |
%1963 = getelementptr [1 x i32], ptr %stack.ptr_589, i32 0, i32 0 | |
%1964 = getelementptr [2 x i32], ptr %1962, i32 0, i32 1 | |
%1965 = load i32, ptr %1964 | |
store i32 %1965, ptr %1963 | |
%1966 = getelementptr %program, ptr %arg_0, i32 0, i32 37 | |
%1967 = call ccc i1 @eclair_btree_contains_6(ptr %1966, ptr %stack.ptr_589) | |
%1968 = select i1 %1967, i1 0, i1 1 | |
br i1 %1968, label %if_150, label %end_if_150 | |
if_150: | |
%1969 = getelementptr [1 x i32], ptr %stack.ptr_590, i32 0, i32 0 | |
%1970 = getelementptr [2 x i32], ptr %1962, i32 0, i32 0 | |
%1971 = load i32, ptr %1970 | |
store i32 %1971, ptr %1969 | |
%1972 = getelementptr %program, ptr %arg_0, i32 0, i32 12 | |
%1973 = call ccc i1 @eclair_btree_insert_value_6(ptr %1972, ptr %stack.ptr_590) | |
br label %end_if_150 | |
end_if_150: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_587) | |
br label %loop_129 | |
range_query.end_126: | |
%1974 = getelementptr %program, ptr %arg_0, i32 0, i32 12 | |
call ccc void @eclair_btree_begin_6(ptr %1974, ptr %stack.ptr_591) | |
%1975 = getelementptr %program, ptr %arg_0, i32 0, i32 12 | |
call ccc void @eclair_btree_end_6(ptr %1975, ptr %stack.ptr_592) | |
%1976 = getelementptr %program, ptr %arg_0, i32 0, i32 16 | |
call ccc void @eclair_btree_insert_range_delta_dead_code_dead_code(ptr %1976, ptr %stack.ptr_591, ptr %stack.ptr_592) | |
br label %loop_130 | |
loop_130: | |
%1977 = getelementptr %program, ptr %arg_0, i32 0, i32 41 | |
call ccc void @eclair_btree_clear_6(ptr %1977) | |
%1978 = getelementptr [3 x i32], ptr %stack.ptr_593, i32 0, i32 0 | |
store i32 0, ptr %1978 | |
%1979 = getelementptr [3 x i32], ptr %stack.ptr_593, i32 0, i32 1 | |
store i32 0, ptr %1979 | |
%1980 = getelementptr [3 x i32], ptr %stack.ptr_593, i32 0, i32 2 | |
store i32 0, ptr %1980 | |
%1981 = getelementptr [3 x i32], ptr %stack.ptr_594, i32 0, i32 0 | |
store i32 4294967295, ptr %1981 | |
%1982 = getelementptr [3 x i32], ptr %stack.ptr_594, i32 0, i32 1 | |
store i32 4294967295, ptr %1982 | |
%1983 = getelementptr [3 x i32], ptr %stack.ptr_594, i32 0, i32 2 | |
store i32 4294967295, ptr %1983 | |
%1984 = getelementptr %program, ptr %arg_0, i32 0, i32 53 | |
call ccc void @eclair_btree_lower_bound_0(ptr %1984, ptr %stack.ptr_593, ptr %stack.ptr_595) | |
%1985 = getelementptr %program, ptr %arg_0, i32 0, i32 53 | |
call ccc void @eclair_btree_upper_bound_0(ptr %1985, ptr %stack.ptr_594, ptr %stack.ptr_596) | |
br label %loop_131 | |
loop_131: | |
%1986 = call ccc i1 @eclair_btree_iterator_is_equal_0(ptr %stack.ptr_595, ptr %stack.ptr_596) | |
br i1 %1986, label %if_151, label %end_if_151 | |
if_151: | |
br label %range_query.end_127 | |
end_if_151: | |
%1987 = call ccc ptr @eclair_btree_iterator_current_0(ptr %stack.ptr_595) | |
%1988 = getelementptr [1 x i32], ptr %stack.ptr_597, i32 0, i32 0 | |
%1989 = getelementptr [3 x i32], ptr %1987, i32 0, i32 0 | |
%1990 = load i32, ptr %1989 | |
store i32 %1990, ptr %1988 | |
%1991 = getelementptr %program, ptr %arg_0, i32 0, i32 12 | |
%1992 = call ccc i1 @eclair_btree_contains_6(ptr %1991, ptr %stack.ptr_597) | |
%1993 = select i1 %1992, i1 0, i1 1 | |
br i1 %1993, label %if_152, label %end_if_153 | |
if_152: | |
%1994 = getelementptr [1 x i32], ptr %stack.ptr_598, i32 0, i32 0 | |
%1995 = getelementptr [3 x i32], ptr %1987, i32 0, i32 2 | |
%1996 = load i32, ptr %1995 | |
store i32 %1996, ptr %1994 | |
%1997 = getelementptr [1 x i32], ptr %stack.ptr_599, i32 0, i32 0 | |
%1998 = getelementptr [3 x i32], ptr %1987, i32 0, i32 2 | |
%1999 = load i32, ptr %1998 | |
store i32 %1999, ptr %1997 | |
%2000 = getelementptr %program, ptr %arg_0, i32 0, i32 16 | |
call ccc void @eclair_btree_lower_bound_6(ptr %2000, ptr %stack.ptr_598, ptr %stack.ptr_600) | |
%2001 = getelementptr %program, ptr %arg_0, i32 0, i32 16 | |
call ccc void @eclair_btree_upper_bound_6(ptr %2001, ptr %stack.ptr_599, ptr %stack.ptr_601) | |
br label %loop_132 | |
loop_132: | |
%2002 = call ccc i1 @eclair_btree_iterator_is_equal_6(ptr %stack.ptr_600, ptr %stack.ptr_601) | |
br i1 %2002, label %if_153, label %end_if_152 | |
if_153: | |
br label %range_query.end_128 | |
end_if_152: | |
%2003 = call ccc ptr @eclair_btree_iterator_current_6(ptr %stack.ptr_600) | |
%2004 = getelementptr [1 x i32], ptr %stack.ptr_602, i32 0, i32 0 | |
%2005 = getelementptr [3 x i32], ptr %1987, i32 0, i32 0 | |
%2006 = load i32, ptr %2005 | |
store i32 %2006, ptr %2004 | |
%2007 = getelementptr %program, ptr %arg_0, i32 0, i32 41 | |
%2008 = call ccc i1 @eclair_btree_insert_value_6(ptr %2007, ptr %stack.ptr_602) | |
call ccc void @eclair_btree_iterator_next_6(ptr %stack.ptr_600) | |
br label %loop_132 | |
range_query.end_128: | |
br label %end_if_153 | |
end_if_153: | |
call ccc void @eclair_btree_iterator_next_0(ptr %stack.ptr_595) | |
br label %loop_131 | |
range_query.end_127: | |
%2009 = getelementptr %program, ptr %arg_0, i32 0, i32 41 | |
%2010 = call ccc i1 @eclair_btree_is_empty_6(ptr %2009) | |
br i1 %2010, label %if_154, label %end_if_154 | |
if_154: | |
br label %loop.end_3 | |
end_if_154: | |
%2011 = getelementptr %program, ptr %arg_0, i32 0, i32 41 | |
call ccc void @eclair_btree_begin_6(ptr %2011, ptr %stack.ptr_603) | |
%2012 = getelementptr %program, ptr %arg_0, i32 0, i32 41 | |
call ccc void @eclair_btree_end_6(ptr %2012, ptr %stack.ptr_604) | |
%2013 = getelementptr %program, ptr %arg_0, i32 0, i32 12 | |
call ccc void @eclair_btree_insert_range_dead_code_new_dead_code(ptr %2013, ptr %stack.ptr_603, ptr %stack.ptr_604) | |
%2014 = getelementptr %program, ptr %arg_0, i32 0, i32 41 | |
%2015 = getelementptr %program, ptr %arg_0, i32 0, i32 16 | |
call ccc void @eclair_btree_swap_6(ptr %2014, ptr %2015) | |
br label %loop_130 | |
loop.end_3: | |
%2016 = getelementptr [2 x i32], ptr %stack.ptr_605, i32 0, i32 0 | |
store i32 0, ptr %2016 | |
%2017 = getelementptr [2 x i32], ptr %stack.ptr_605, i32 0, i32 1 | |
store i32 0, ptr %2017 | |
%2018 = getelementptr [2 x i32], ptr %stack.ptr_606, i32 0, i32 0 | |
store i32 4294967295, ptr %2018 | |
%2019 = getelementptr [2 x i32], ptr %stack.ptr_606, i32 0, i32 1 | |
store i32 4294967295, ptr %2019 | |
%2020 = getelementptr %program, ptr %arg_0, i32 0, i32 50 | |
call ccc void @eclair_btree_lower_bound_1(ptr %2020, ptr %stack.ptr_605, ptr %stack.ptr_607) | |
%2021 = getelementptr %program, ptr %arg_0, i32 0, i32 50 | |
call ccc void @eclair_btree_upper_bound_1(ptr %2021, ptr %stack.ptr_606, ptr %stack.ptr_608) | |
br label %loop_133 | |
loop_133: | |
%2022 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_607, ptr %stack.ptr_608) | |
br i1 %2022, label %if_155, label %end_if_155 | |
if_155: | |
br label %range_query.end_129 | |
end_if_155: | |
%2023 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_607) | |
%2024 = getelementptr [2 x i32], ptr %stack.ptr_609, i32 0, i32 0 | |
%2025 = getelementptr [2 x i32], ptr %2023, i32 0, i32 0 | |
%2026 = load i32, ptr %2025 | |
store i32 %2026, ptr %2024 | |
%2027 = getelementptr [2 x i32], ptr %stack.ptr_609, i32 0, i32 1 | |
store i32 0, ptr %2027 | |
%2028 = getelementptr [2 x i32], ptr %stack.ptr_610, i32 0, i32 0 | |
%2029 = getelementptr [2 x i32], ptr %2023, i32 0, i32 0 | |
%2030 = load i32, ptr %2029 | |
store i32 %2030, ptr %2028 | |
%2031 = getelementptr [2 x i32], ptr %stack.ptr_610, i32 0, i32 1 | |
store i32 4294967295, ptr %2031 | |
%2032 = getelementptr %program, ptr %arg_0, i32 0, i32 59 | |
call ccc void @eclair_btree_lower_bound_1(ptr %2032, ptr %stack.ptr_609, ptr %stack.ptr_611) | |
%2033 = getelementptr %program, ptr %arg_0, i32 0, i32 59 | |
call ccc void @eclair_btree_upper_bound_1(ptr %2033, ptr %stack.ptr_610, ptr %stack.ptr_612) | |
br label %loop_134 | |
loop_134: | |
%2034 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_611, ptr %stack.ptr_612) | |
br i1 %2034, label %if_156, label %end_if_156 | |
if_156: | |
br label %range_query.end_130 | |
end_if_156: | |
%2035 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_611) | |
%2036 = getelementptr [2 x i32], ptr %stack.ptr_613, i32 0, i32 0 | |
%2037 = getelementptr [2 x i32], ptr %2035, i32 0, i32 1 | |
%2038 = load i32, ptr %2037 | |
store i32 %2038, ptr %2036 | |
%2039 = getelementptr [2 x i32], ptr %stack.ptr_613, i32 0, i32 1 | |
store i32 0, ptr %2039 | |
%2040 = getelementptr [2 x i32], ptr %stack.ptr_614, i32 0, i32 0 | |
%2041 = getelementptr [2 x i32], ptr %2035, i32 0, i32 1 | |
%2042 = load i32, ptr %2041 | |
store i32 %2042, ptr %2040 | |
%2043 = getelementptr [2 x i32], ptr %stack.ptr_614, i32 0, i32 1 | |
store i32 4294967295, ptr %2043 | |
%2044 = getelementptr %program, ptr %arg_0, i32 0, i32 23 | |
call ccc void @eclair_btree_lower_bound_1(ptr %2044, ptr %stack.ptr_613, ptr %stack.ptr_615) | |
%2045 = getelementptr %program, ptr %arg_0, i32 0, i32 23 | |
call ccc void @eclair_btree_upper_bound_1(ptr %2045, ptr %stack.ptr_614, ptr %stack.ptr_616) | |
br label %loop_135 | |
loop_135: | |
%2046 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_615, ptr %stack.ptr_616) | |
br i1 %2046, label %if_157, label %end_if_157 | |
if_157: | |
br label %range_query.end_131 | |
end_if_157: | |
%2047 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_615) | |
%2048 = getelementptr [3 x i32], ptr %stack.ptr_617, i32 0, i32 0 | |
%2049 = getelementptr [2 x i32], ptr %2035, i32 0, i32 1 | |
%2050 = load i32, ptr %2049 | |
store i32 %2050, ptr %2048 | |
%2051 = getelementptr [3 x i32], ptr %stack.ptr_617, i32 0, i32 1 | |
store i32 0, ptr %2051 | |
%2052 = getelementptr [3 x i32], ptr %stack.ptr_617, i32 0, i32 2 | |
store i32 0, ptr %2052 | |
%2053 = getelementptr [3 x i32], ptr %stack.ptr_618, i32 0, i32 0 | |
%2054 = getelementptr [2 x i32], ptr %2035, i32 0, i32 1 | |
%2055 = load i32, ptr %2054 | |
store i32 %2055, ptr %2053 | |
%2056 = getelementptr [3 x i32], ptr %stack.ptr_618, i32 0, i32 1 | |
store i32 4294967295, ptr %2056 | |
%2057 = getelementptr [3 x i32], ptr %stack.ptr_618, i32 0, i32 2 | |
store i32 4294967295, ptr %2057 | |
%2058 = getelementptr %program, ptr %arg_0, i32 0, i32 5 | |
call ccc void @eclair_btree_lower_bound_0(ptr %2058, ptr %stack.ptr_617, ptr %stack.ptr_619) | |
%2059 = getelementptr %program, ptr %arg_0, i32 0, i32 5 | |
call ccc void @eclair_btree_upper_bound_0(ptr %2059, ptr %stack.ptr_618, ptr %stack.ptr_620) | |
br label %loop_136 | |
loop_136: | |
%2060 = call ccc i1 @eclair_btree_iterator_is_equal_0(ptr %stack.ptr_619, ptr %stack.ptr_620) | |
br i1 %2060, label %if_158, label %end_if_158 | |
if_158: | |
br label %range_query.end_132 | |
end_if_158: | |
%2061 = call ccc ptr @eclair_btree_iterator_current_0(ptr %stack.ptr_619) | |
%2062 = getelementptr [1 x i32], ptr %stack.ptr_621, i32 0, i32 0 | |
%2063 = getelementptr [3 x i32], ptr %2061, i32 0, i32 2 | |
%2064 = load i32, ptr %2063 | |
store i32 %2064, ptr %2062 | |
%2065 = getelementptr [1 x i32], ptr %stack.ptr_622, i32 0, i32 0 | |
%2066 = getelementptr [3 x i32], ptr %2061, i32 0, i32 2 | |
%2067 = load i32, ptr %2066 | |
store i32 %2067, ptr %2065 | |
%2068 = getelementptr %program, ptr %arg_0, i32 0, i32 68 | |
call ccc void @eclair_btree_lower_bound_6(ptr %2068, ptr %stack.ptr_621, ptr %stack.ptr_623) | |
%2069 = getelementptr %program, ptr %arg_0, i32 0, i32 68 | |
call ccc void @eclair_btree_upper_bound_6(ptr %2069, ptr %stack.ptr_622, ptr %stack.ptr_624) | |
br label %loop_137 | |
loop_137: | |
%2070 = call ccc i1 @eclair_btree_iterator_is_equal_6(ptr %stack.ptr_623, ptr %stack.ptr_624) | |
br i1 %2070, label %if_159, label %end_if_159 | |
if_159: | |
br label %range_query.end_133 | |
end_if_159: | |
%2071 = call ccc ptr @eclair_btree_iterator_current_6(ptr %stack.ptr_623) | |
%2072 = getelementptr [3 x i32], ptr %stack.ptr_625, i32 0, i32 0 | |
%2073 = getelementptr [2 x i32], ptr %2035, i32 0, i32 1 | |
%2074 = load i32, ptr %2073 | |
store i32 %2074, ptr %2072 | |
%2075 = getelementptr [3 x i32], ptr %stack.ptr_625, i32 0, i32 1 | |
%2076 = getelementptr [3 x i32], ptr %2061, i32 0, i32 2 | |
%2077 = load i32, ptr %2076 | |
store i32 %2077, ptr %2075 | |
%2078 = getelementptr [3 x i32], ptr %stack.ptr_625, i32 0, i32 2 | |
%2079 = getelementptr [3 x i32], ptr %2061, i32 0, i32 1 | |
%2080 = load i32, ptr %2079 | |
store i32 %2080, ptr %2078 | |
%2081 = getelementptr %program, ptr %arg_0, i32 0, i32 71 | |
%2082 = call ccc i1 @eclair_btree_insert_value_0(ptr %2081, ptr %stack.ptr_625) | |
call ccc void @eclair_btree_iterator_next_6(ptr %stack.ptr_623) | |
br label %loop_137 | |
range_query.end_133: | |
call ccc void @eclair_btree_iterator_next_0(ptr %stack.ptr_619) | |
br label %loop_136 | |
range_query.end_132: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_615) | |
br label %loop_135 | |
range_query.end_131: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_611) | |
br label %loop_134 | |
range_query.end_130: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_607) | |
br label %loop_133 | |
range_query.end_129: | |
%2083 = getelementptr [2 x i32], ptr %stack.ptr_626, i32 0, i32 0 | |
store i32 0, ptr %2083 | |
%2084 = getelementptr [2 x i32], ptr %stack.ptr_626, i32 0, i32 1 | |
store i32 0, ptr %2084 | |
%2085 = getelementptr [2 x i32], ptr %stack.ptr_627, i32 0, i32 0 | |
store i32 4294967295, ptr %2085 | |
%2086 = getelementptr [2 x i32], ptr %stack.ptr_627, i32 0, i32 1 | |
store i32 4294967295, ptr %2086 | |
%2087 = getelementptr %program, ptr %arg_0, i32 0, i32 14 | |
call ccc void @eclair_btree_lower_bound_1(ptr %2087, ptr %stack.ptr_626, ptr %stack.ptr_628) | |
%2088 = getelementptr %program, ptr %arg_0, i32 0, i32 14 | |
call ccc void @eclair_btree_upper_bound_1(ptr %2088, ptr %stack.ptr_627, ptr %stack.ptr_629) | |
br label %loop_138 | |
loop_138: | |
%2089 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_628, ptr %stack.ptr_629) | |
br i1 %2089, label %if_160, label %end_if_160 | |
if_160: | |
br label %range_query.end_134 | |
end_if_160: | |
%2090 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_628) | |
%2091 = getelementptr [2 x i32], ptr %stack.ptr_630, i32 0, i32 0 | |
store i32 0, ptr %2091 | |
%2092 = getelementptr [2 x i32], ptr %stack.ptr_630, i32 0, i32 1 | |
%2093 = getelementptr [2 x i32], ptr %2090, i32 0, i32 1 | |
%2094 = load i32, ptr %2093 | |
store i32 %2094, ptr %2092 | |
%2095 = getelementptr [2 x i32], ptr %stack.ptr_631, i32 0, i32 0 | |
store i32 4294967295, ptr %2095 | |
%2096 = getelementptr [2 x i32], ptr %stack.ptr_631, i32 0, i32 1 | |
%2097 = getelementptr [2 x i32], ptr %2090, i32 0, i32 1 | |
%2098 = load i32, ptr %2097 | |
store i32 %2098, ptr %2096 | |
%2099 = getelementptr %program, ptr %arg_0, i32 0, i32 4 | |
call ccc void @eclair_btree_lower_bound_2(ptr %2099, ptr %stack.ptr_630, ptr %stack.ptr_632) | |
%2100 = getelementptr %program, ptr %arg_0, i32 0, i32 4 | |
call ccc void @eclair_btree_upper_bound_2(ptr %2100, ptr %stack.ptr_631, ptr %stack.ptr_633) | |
br label %loop_139 | |
loop_139: | |
%2101 = call ccc i1 @eclair_btree_iterator_is_equal_2(ptr %stack.ptr_632, ptr %stack.ptr_633) | |
br i1 %2101, label %if_161, label %end_if_161 | |
if_161: | |
br label %range_query.end_135 | |
end_if_161: | |
%2102 = call ccc ptr @eclair_btree_iterator_current_2(ptr %stack.ptr_632) | |
%2103 = getelementptr [2 x i32], ptr %stack.ptr_634, i32 0, i32 0 | |
%2104 = getelementptr [2 x i32], ptr %2102, i32 0, i32 0 | |
%2105 = load i32, ptr %2104 | |
store i32 %2105, ptr %2103 | |
%2106 = getelementptr [2 x i32], ptr %stack.ptr_634, i32 0, i32 1 | |
%2107 = getelementptr [2 x i32], ptr %2090, i32 0, i32 1 | |
%2108 = load i32, ptr %2107 | |
store i32 %2108, ptr %2106 | |
%2109 = getelementptr %program, ptr %arg_0, i32 0, i32 49 | |
%2110 = call ccc i1 @eclair_btree_insert_value_1(ptr %2109, ptr %stack.ptr_634) | |
call ccc void @eclair_btree_iterator_next_2(ptr %stack.ptr_632) | |
br label %loop_139 | |
range_query.end_135: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_628) | |
br label %loop_138 | |
range_query.end_134: | |
%2111 = getelementptr [3 x i32], ptr %stack.ptr_635, i32 0, i32 0 | |
store i32 0, ptr %2111 | |
%2112 = getelementptr [3 x i32], ptr %stack.ptr_635, i32 0, i32 1 | |
store i32 0, ptr %2112 | |
%2113 = getelementptr [3 x i32], ptr %stack.ptr_635, i32 0, i32 2 | |
store i32 0, ptr %2113 | |
%2114 = getelementptr [3 x i32], ptr %stack.ptr_636, i32 0, i32 0 | |
store i32 4294967295, ptr %2114 | |
%2115 = getelementptr [3 x i32], ptr %stack.ptr_636, i32 0, i32 1 | |
store i32 4294967295, ptr %2115 | |
%2116 = getelementptr [3 x i32], ptr %stack.ptr_636, i32 0, i32 2 | |
store i32 4294967295, ptr %2116 | |
%2117 = getelementptr %program, ptr %arg_0, i32 0, i32 53 | |
call ccc void @eclair_btree_lower_bound_0(ptr %2117, ptr %stack.ptr_635, ptr %stack.ptr_637) | |
%2118 = getelementptr %program, ptr %arg_0, i32 0, i32 53 | |
call ccc void @eclair_btree_upper_bound_0(ptr %2118, ptr %stack.ptr_636, ptr %stack.ptr_638) | |
br label %loop_140 | |
loop_140: | |
%2119 = call ccc i1 @eclair_btree_iterator_is_equal_0(ptr %stack.ptr_637, ptr %stack.ptr_638) | |
br i1 %2119, label %if_162, label %end_if_162 | |
if_162: | |
br label %range_query.end_136 | |
end_if_162: | |
%2120 = call ccc ptr @eclair_btree_iterator_current_0(ptr %stack.ptr_637) | |
%2121 = getelementptr [2 x i32], ptr %stack.ptr_639, i32 0, i32 0 | |
%2122 = getelementptr [3 x i32], ptr %2120, i32 0, i32 2 | |
%2123 = load i32, ptr %2122 | |
store i32 %2123, ptr %2121 | |
%2124 = getelementptr [2 x i32], ptr %stack.ptr_639, i32 0, i32 1 | |
store i32 0, ptr %2124 | |
%2125 = getelementptr [2 x i32], ptr %stack.ptr_640, i32 0, i32 0 | |
%2126 = getelementptr [3 x i32], ptr %2120, i32 0, i32 2 | |
%2127 = load i32, ptr %2126 | |
store i32 %2127, ptr %2125 | |
%2128 = getelementptr [2 x i32], ptr %stack.ptr_640, i32 0, i32 1 | |
store i32 4294967295, ptr %2128 | |
%2129 = getelementptr %program, ptr %arg_0, i32 0, i32 49 | |
call ccc void @eclair_btree_lower_bound_1(ptr %2129, ptr %stack.ptr_639, ptr %stack.ptr_641) | |
%2130 = getelementptr %program, ptr %arg_0, i32 0, i32 49 | |
call ccc void @eclair_btree_upper_bound_1(ptr %2130, ptr %stack.ptr_640, ptr %stack.ptr_642) | |
br label %loop_141 | |
loop_141: | |
%2131 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_641, ptr %stack.ptr_642) | |
br i1 %2131, label %if_163, label %end_if_163 | |
if_163: | |
br label %range_query.end_137 | |
end_if_163: | |
%2132 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_641) | |
%2133 = getelementptr [3 x i32], ptr %stack.ptr_643, i32 0, i32 0 | |
%2134 = getelementptr [3 x i32], ptr %2120, i32 0, i32 2 | |
%2135 = load i32, ptr %2134 | |
store i32 %2135, ptr %2133 | |
%2136 = getelementptr [3 x i32], ptr %stack.ptr_643, i32 0, i32 1 | |
store i32 0, ptr %2136 | |
%2137 = getelementptr [3 x i32], ptr %stack.ptr_643, i32 0, i32 2 | |
store i32 0, ptr %2137 | |
%2138 = getelementptr [3 x i32], ptr %stack.ptr_644, i32 0, i32 0 | |
%2139 = getelementptr [3 x i32], ptr %2120, i32 0, i32 2 | |
%2140 = load i32, ptr %2139 | |
store i32 %2140, ptr %2138 | |
%2141 = getelementptr [3 x i32], ptr %stack.ptr_644, i32 0, i32 1 | |
store i32 4294967295, ptr %2141 | |
%2142 = getelementptr [3 x i32], ptr %stack.ptr_644, i32 0, i32 2 | |
store i32 4294967295, ptr %2142 | |
%2143 = getelementptr %program, ptr %arg_0, i32 0, i32 5 | |
call ccc void @eclair_btree_lower_bound_0(ptr %2143, ptr %stack.ptr_643, ptr %stack.ptr_645) | |
%2144 = getelementptr %program, ptr %arg_0, i32 0, i32 5 | |
call ccc void @eclair_btree_upper_bound_0(ptr %2144, ptr %stack.ptr_644, ptr %stack.ptr_646) | |
br label %loop_142 | |
loop_142: | |
%2145 = call ccc i1 @eclair_btree_iterator_is_equal_0(ptr %stack.ptr_645, ptr %stack.ptr_646) | |
br i1 %2145, label %if_164, label %end_if_164 | |
if_164: | |
br label %range_query.end_138 | |
end_if_164: | |
%2146 = call ccc ptr @eclair_btree_iterator_current_0(ptr %stack.ptr_645) | |
%2147 = getelementptr [2 x i32], ptr %stack.ptr_647, i32 0, i32 0 | |
%2148 = getelementptr [3 x i32], ptr %2146, i32 0, i32 2 | |
%2149 = load i32, ptr %2148 | |
store i32 %2149, ptr %2147 | |
%2150 = getelementptr [2 x i32], ptr %stack.ptr_647, i32 0, i32 1 | |
store i32 0, ptr %2150 | |
%2151 = getelementptr [2 x i32], ptr %stack.ptr_648, i32 0, i32 0 | |
%2152 = getelementptr [3 x i32], ptr %2146, i32 0, i32 2 | |
%2153 = load i32, ptr %2152 | |
store i32 %2153, ptr %2151 | |
%2154 = getelementptr [2 x i32], ptr %stack.ptr_648, i32 0, i32 1 | |
store i32 4294967295, ptr %2154 | |
%2155 = getelementptr %program, ptr %arg_0, i32 0, i32 66 | |
call ccc void @eclair_btree_lower_bound_1(ptr %2155, ptr %stack.ptr_647, ptr %stack.ptr_649) | |
%2156 = getelementptr %program, ptr %arg_0, i32 0, i32 66 | |
call ccc void @eclair_btree_upper_bound_1(ptr %2156, ptr %stack.ptr_648, ptr %stack.ptr_650) | |
br label %loop_143 | |
loop_143: | |
%2157 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_649, ptr %stack.ptr_650) | |
br i1 %2157, label %if_165, label %end_if_165 | |
if_165: | |
br label %range_query.end_139 | |
end_if_165: | |
%2158 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_649) | |
%2159 = getelementptr [2 x i32], ptr %stack.ptr_651, i32 0, i32 0 | |
%2160 = getelementptr [3 x i32], ptr %2120, i32 0, i32 0 | |
%2161 = load i32, ptr %2160 | |
store i32 %2161, ptr %2159 | |
%2162 = getelementptr [2 x i32], ptr %stack.ptr_651, i32 0, i32 1 | |
%2163 = getelementptr [3 x i32], ptr %2146, i32 0, i32 2 | |
%2164 = load i32, ptr %2163 | |
store i32 %2164, ptr %2162 | |
%2165 = getelementptr %program, ptr %arg_0, i32 0, i32 27 | |
%2166 = call ccc i1 @eclair_btree_insert_value_1(ptr %2165, ptr %stack.ptr_651) | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_649) | |
br label %loop_143 | |
range_query.end_139: | |
call ccc void @eclair_btree_iterator_next_0(ptr %stack.ptr_645) | |
br label %loop_142 | |
range_query.end_138: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_641) | |
br label %loop_141 | |
range_query.end_137: | |
call ccc void @eclair_btree_iterator_next_0(ptr %stack.ptr_637) | |
br label %loop_140 | |
range_query.end_136: | |
%2167 = getelementptr %program, ptr %arg_0, i32 0, i32 27 | |
call ccc void @eclair_btree_begin_1(ptr %2167, ptr %stack.ptr_652) | |
%2168 = getelementptr %program, ptr %arg_0, i32 0, i32 27 | |
call ccc void @eclair_btree_end_1(ptr %2168, ptr %stack.ptr_653) | |
%2169 = getelementptr %program, ptr %arg_0, i32 0, i32 17 | |
call ccc void @eclair_btree_insert_range_delta_grounded_node_grounded_node(ptr %2169, ptr %stack.ptr_652, ptr %stack.ptr_653) | |
br label %loop_144 | |
loop_144: | |
%2170 = getelementptr %program, ptr %arg_0, i32 0, i32 42 | |
call ccc void @eclair_btree_clear_1(ptr %2170) | |
%2171 = getelementptr [3 x i32], ptr %stack.ptr_654, i32 0, i32 0 | |
store i32 0, ptr %2171 | |
%2172 = getelementptr [3 x i32], ptr %stack.ptr_654, i32 0, i32 1 | |
store i32 0, ptr %2172 | |
%2173 = getelementptr [3 x i32], ptr %stack.ptr_654, i32 0, i32 2 | |
store i32 0, ptr %2173 | |
%2174 = getelementptr [3 x i32], ptr %stack.ptr_655, i32 0, i32 0 | |
store i32 4294967295, ptr %2174 | |
%2175 = getelementptr [3 x i32], ptr %stack.ptr_655, i32 0, i32 1 | |
store i32 4294967295, ptr %2175 | |
%2176 = getelementptr [3 x i32], ptr %stack.ptr_655, i32 0, i32 2 | |
store i32 4294967295, ptr %2176 | |
%2177 = getelementptr %program, ptr %arg_0, i32 0, i32 53 | |
call ccc void @eclair_btree_lower_bound_0(ptr %2177, ptr %stack.ptr_654, ptr %stack.ptr_656) | |
%2178 = getelementptr %program, ptr %arg_0, i32 0, i32 53 | |
call ccc void @eclair_btree_upper_bound_0(ptr %2178, ptr %stack.ptr_655, ptr %stack.ptr_657) | |
br label %loop_145 | |
loop_145: | |
%2179 = call ccc i1 @eclair_btree_iterator_is_equal_0(ptr %stack.ptr_656, ptr %stack.ptr_657) | |
br i1 %2179, label %if_166, label %end_if_166 | |
if_166: | |
br label %range_query.end_140 | |
end_if_166: | |
%2180 = call ccc ptr @eclair_btree_iterator_current_0(ptr %stack.ptr_656) | |
%2181 = getelementptr [3 x i32], ptr %stack.ptr_658, i32 0, i32 0 | |
%2182 = getelementptr [3 x i32], ptr %2180, i32 0, i32 2 | |
%2183 = load i32, ptr %2182 | |
store i32 %2183, ptr %2181 | |
%2184 = getelementptr [3 x i32], ptr %stack.ptr_658, i32 0, i32 1 | |
store i32 0, ptr %2184 | |
%2185 = getelementptr [3 x i32], ptr %stack.ptr_658, i32 0, i32 2 | |
store i32 0, ptr %2185 | |
%2186 = getelementptr [3 x i32], ptr %stack.ptr_659, i32 0, i32 0 | |
%2187 = getelementptr [3 x i32], ptr %2180, i32 0, i32 2 | |
%2188 = load i32, ptr %2187 | |
store i32 %2188, ptr %2186 | |
%2189 = getelementptr [3 x i32], ptr %stack.ptr_659, i32 0, i32 1 | |
store i32 4294967295, ptr %2189 | |
%2190 = getelementptr [3 x i32], ptr %stack.ptr_659, i32 0, i32 2 | |
store i32 4294967295, ptr %2190 | |
%2191 = getelementptr %program, ptr %arg_0, i32 0, i32 2 | |
call ccc void @eclair_btree_lower_bound_0(ptr %2191, ptr %stack.ptr_658, ptr %stack.ptr_660) | |
%2192 = getelementptr %program, ptr %arg_0, i32 0, i32 2 | |
call ccc void @eclair_btree_upper_bound_0(ptr %2192, ptr %stack.ptr_659, ptr %stack.ptr_661) | |
br label %loop_146 | |
loop_146: | |
%2193 = call ccc i1 @eclair_btree_iterator_is_equal_0(ptr %stack.ptr_660, ptr %stack.ptr_661) | |
br i1 %2193, label %if_167, label %end_if_167 | |
if_167: | |
br label %range_query.end_141 | |
end_if_167: | |
%2194 = call ccc ptr @eclair_btree_iterator_current_0(ptr %stack.ptr_660) | |
%2195 = getelementptr [2 x i32], ptr %stack.ptr_662, i32 0, i32 0 | |
%2196 = getelementptr [3 x i32], ptr %2180, i32 0, i32 0 | |
%2197 = load i32, ptr %2196 | |
store i32 %2197, ptr %2195 | |
%2198 = getelementptr [2 x i32], ptr %stack.ptr_662, i32 0, i32 1 | |
%2199 = getelementptr [3 x i32], ptr %2194, i32 0, i32 1 | |
%2200 = load i32, ptr %2199 | |
store i32 %2200, ptr %2198 | |
%2201 = getelementptr %program, ptr %arg_0, i32 0, i32 27 | |
%2202 = call ccc i1 @eclair_btree_contains_1(ptr %2201, ptr %stack.ptr_662) | |
%2203 = select i1 %2202, i1 0, i1 1 | |
br i1 %2203, label %if_168, label %end_if_170 | |
if_168: | |
%2204 = getelementptr [2 x i32], ptr %stack.ptr_663, i32 0, i32 0 | |
%2205 = getelementptr [3 x i32], ptr %2180, i32 0, i32 0 | |
%2206 = load i32, ptr %2205 | |
store i32 %2206, ptr %2204 | |
%2207 = getelementptr [2 x i32], ptr %stack.ptr_663, i32 0, i32 1 | |
%2208 = getelementptr [3 x i32], ptr %2194, i32 0, i32 2 | |
%2209 = load i32, ptr %2208 | |
store i32 %2209, ptr %2207 | |
%2210 = getelementptr [2 x i32], ptr %stack.ptr_664, i32 0, i32 0 | |
%2211 = getelementptr [3 x i32], ptr %2180, i32 0, i32 0 | |
%2212 = load i32, ptr %2211 | |
store i32 %2212, ptr %2210 | |
%2213 = getelementptr [2 x i32], ptr %stack.ptr_664, i32 0, i32 1 | |
%2214 = getelementptr [3 x i32], ptr %2194, i32 0, i32 2 | |
%2215 = load i32, ptr %2214 | |
store i32 %2215, ptr %2213 | |
%2216 = getelementptr %program, ptr %arg_0, i32 0, i32 17 | |
call ccc void @eclair_btree_lower_bound_1(ptr %2216, ptr %stack.ptr_663, ptr %stack.ptr_665) | |
%2217 = getelementptr %program, ptr %arg_0, i32 0, i32 17 | |
call ccc void @eclair_btree_upper_bound_1(ptr %2217, ptr %stack.ptr_664, ptr %stack.ptr_666) | |
br label %loop_147 | |
loop_147: | |
%2218 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_665, ptr %stack.ptr_666) | |
br i1 %2218, label %if_169, label %end_if_168 | |
if_169: | |
br label %range_query.end_142 | |
end_if_168: | |
%2219 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_665) | |
%2220 = getelementptr [2 x i32], ptr %stack.ptr_667, i32 0, i32 0 | |
%2221 = getelementptr [3 x i32], ptr %2194, i32 0, i32 1 | |
%2222 = load i32, ptr %2221 | |
store i32 %2222, ptr %2220 | |
%2223 = getelementptr [2 x i32], ptr %stack.ptr_667, i32 0, i32 1 | |
store i32 0, ptr %2223 | |
%2224 = getelementptr [2 x i32], ptr %stack.ptr_668, i32 0, i32 0 | |
%2225 = getelementptr [3 x i32], ptr %2194, i32 0, i32 1 | |
%2226 = load i32, ptr %2225 | |
store i32 %2226, ptr %2224 | |
%2227 = getelementptr [2 x i32], ptr %stack.ptr_668, i32 0, i32 1 | |
store i32 4294967295, ptr %2227 | |
%2228 = getelementptr %program, ptr %arg_0, i32 0, i32 66 | |
call ccc void @eclair_btree_lower_bound_1(ptr %2228, ptr %stack.ptr_667, ptr %stack.ptr_669) | |
%2229 = getelementptr %program, ptr %arg_0, i32 0, i32 66 | |
call ccc void @eclair_btree_upper_bound_1(ptr %2229, ptr %stack.ptr_668, ptr %stack.ptr_670) | |
br label %loop_148 | |
loop_148: | |
%2230 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_669, ptr %stack.ptr_670) | |
br i1 %2230, label %if_170, label %end_if_169 | |
if_170: | |
br label %range_query.end_143 | |
end_if_169: | |
%2231 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_669) | |
%2232 = getelementptr [2 x i32], ptr %stack.ptr_671, i32 0, i32 0 | |
%2233 = getelementptr [3 x i32], ptr %2180, i32 0, i32 0 | |
%2234 = load i32, ptr %2233 | |
store i32 %2234, ptr %2232 | |
%2235 = getelementptr [2 x i32], ptr %stack.ptr_671, i32 0, i32 1 | |
%2236 = getelementptr [3 x i32], ptr %2194, i32 0, i32 1 | |
%2237 = load i32, ptr %2236 | |
store i32 %2237, ptr %2235 | |
%2238 = getelementptr %program, ptr %arg_0, i32 0, i32 42 | |
%2239 = call ccc i1 @eclair_btree_insert_value_1(ptr %2238, ptr %stack.ptr_671) | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_669) | |
br label %loop_148 | |
range_query.end_143: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_665) | |
br label %loop_147 | |
range_query.end_142: | |
br label %end_if_170 | |
end_if_170: | |
call ccc void @eclair_btree_iterator_next_0(ptr %stack.ptr_660) | |
br label %loop_146 | |
range_query.end_141: | |
call ccc void @eclair_btree_iterator_next_0(ptr %stack.ptr_656) | |
br label %loop_145 | |
range_query.end_140: | |
%2240 = getelementptr [3 x i32], ptr %stack.ptr_672, i32 0, i32 0 | |
store i32 0, ptr %2240 | |
%2241 = getelementptr [3 x i32], ptr %stack.ptr_672, i32 0, i32 1 | |
store i32 0, ptr %2241 | |
%2242 = getelementptr [3 x i32], ptr %stack.ptr_672, i32 0, i32 2 | |
store i32 0, ptr %2242 | |
%2243 = getelementptr [3 x i32], ptr %stack.ptr_673, i32 0, i32 0 | |
store i32 4294967295, ptr %2243 | |
%2244 = getelementptr [3 x i32], ptr %stack.ptr_673, i32 0, i32 1 | |
store i32 4294967295, ptr %2244 | |
%2245 = getelementptr [3 x i32], ptr %stack.ptr_673, i32 0, i32 2 | |
store i32 4294967295, ptr %2245 | |
%2246 = getelementptr %program, ptr %arg_0, i32 0, i32 53 | |
call ccc void @eclair_btree_lower_bound_0(ptr %2246, ptr %stack.ptr_672, ptr %stack.ptr_674) | |
%2247 = getelementptr %program, ptr %arg_0, i32 0, i32 53 | |
call ccc void @eclair_btree_upper_bound_0(ptr %2247, ptr %stack.ptr_673, ptr %stack.ptr_675) | |
br label %loop_149 | |
loop_149: | |
%2248 = call ccc i1 @eclair_btree_iterator_is_equal_0(ptr %stack.ptr_674, ptr %stack.ptr_675) | |
br i1 %2248, label %if_171, label %end_if_171 | |
if_171: | |
br label %range_query.end_144 | |
end_if_171: | |
%2249 = call ccc ptr @eclair_btree_iterator_current_0(ptr %stack.ptr_674) | |
%2250 = getelementptr [3 x i32], ptr %stack.ptr_676, i32 0, i32 0 | |
%2251 = getelementptr [3 x i32], ptr %2249, i32 0, i32 2 | |
%2252 = load i32, ptr %2251 | |
store i32 %2252, ptr %2250 | |
%2253 = getelementptr [3 x i32], ptr %stack.ptr_676, i32 0, i32 1 | |
store i32 0, ptr %2253 | |
%2254 = getelementptr [3 x i32], ptr %stack.ptr_676, i32 0, i32 2 | |
store i32 0, ptr %2254 | |
%2255 = getelementptr [3 x i32], ptr %stack.ptr_677, i32 0, i32 0 | |
%2256 = getelementptr [3 x i32], ptr %2249, i32 0, i32 2 | |
%2257 = load i32, ptr %2256 | |
store i32 %2257, ptr %2255 | |
%2258 = getelementptr [3 x i32], ptr %stack.ptr_677, i32 0, i32 1 | |
store i32 4294967295, ptr %2258 | |
%2259 = getelementptr [3 x i32], ptr %stack.ptr_677, i32 0, i32 2 | |
store i32 4294967295, ptr %2259 | |
%2260 = getelementptr %program, ptr %arg_0, i32 0, i32 2 | |
call ccc void @eclair_btree_lower_bound_0(ptr %2260, ptr %stack.ptr_676, ptr %stack.ptr_678) | |
%2261 = getelementptr %program, ptr %arg_0, i32 0, i32 2 | |
call ccc void @eclair_btree_upper_bound_0(ptr %2261, ptr %stack.ptr_677, ptr %stack.ptr_679) | |
br label %loop_150 | |
loop_150: | |
%2262 = call ccc i1 @eclair_btree_iterator_is_equal_0(ptr %stack.ptr_678, ptr %stack.ptr_679) | |
br i1 %2262, label %if_172, label %end_if_172 | |
if_172: | |
br label %range_query.end_145 | |
end_if_172: | |
%2263 = call ccc ptr @eclair_btree_iterator_current_0(ptr %stack.ptr_678) | |
%2264 = getelementptr [2 x i32], ptr %stack.ptr_680, i32 0, i32 0 | |
%2265 = getelementptr [3 x i32], ptr %2249, i32 0, i32 0 | |
%2266 = load i32, ptr %2265 | |
store i32 %2266, ptr %2264 | |
%2267 = getelementptr [2 x i32], ptr %stack.ptr_680, i32 0, i32 1 | |
%2268 = getelementptr [3 x i32], ptr %2263, i32 0, i32 2 | |
%2269 = load i32, ptr %2268 | |
store i32 %2269, ptr %2267 | |
%2270 = getelementptr %program, ptr %arg_0, i32 0, i32 27 | |
%2271 = call ccc i1 @eclair_btree_contains_1(ptr %2270, ptr %stack.ptr_680) | |
%2272 = select i1 %2271, i1 0, i1 1 | |
br i1 %2272, label %if_173, label %end_if_175 | |
if_173: | |
%2273 = getelementptr [2 x i32], ptr %stack.ptr_681, i32 0, i32 0 | |
%2274 = getelementptr [3 x i32], ptr %2249, i32 0, i32 0 | |
%2275 = load i32, ptr %2274 | |
store i32 %2275, ptr %2273 | |
%2276 = getelementptr [2 x i32], ptr %stack.ptr_681, i32 0, i32 1 | |
%2277 = getelementptr [3 x i32], ptr %2263, i32 0, i32 1 | |
%2278 = load i32, ptr %2277 | |
store i32 %2278, ptr %2276 | |
%2279 = getelementptr [2 x i32], ptr %stack.ptr_682, i32 0, i32 0 | |
%2280 = getelementptr [3 x i32], ptr %2249, i32 0, i32 0 | |
%2281 = load i32, ptr %2280 | |
store i32 %2281, ptr %2279 | |
%2282 = getelementptr [2 x i32], ptr %stack.ptr_682, i32 0, i32 1 | |
%2283 = getelementptr [3 x i32], ptr %2263, i32 0, i32 1 | |
%2284 = load i32, ptr %2283 | |
store i32 %2284, ptr %2282 | |
%2285 = getelementptr %program, ptr %arg_0, i32 0, i32 17 | |
call ccc void @eclair_btree_lower_bound_1(ptr %2285, ptr %stack.ptr_681, ptr %stack.ptr_683) | |
%2286 = getelementptr %program, ptr %arg_0, i32 0, i32 17 | |
call ccc void @eclair_btree_upper_bound_1(ptr %2286, ptr %stack.ptr_682, ptr %stack.ptr_684) | |
br label %loop_151 | |
loop_151: | |
%2287 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_683, ptr %stack.ptr_684) | |
br i1 %2287, label %if_174, label %end_if_173 | |
if_174: | |
br label %range_query.end_146 | |
end_if_173: | |
%2288 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_683) | |
%2289 = getelementptr [2 x i32], ptr %stack.ptr_685, i32 0, i32 0 | |
%2290 = getelementptr [3 x i32], ptr %2263, i32 0, i32 2 | |
%2291 = load i32, ptr %2290 | |
store i32 %2291, ptr %2289 | |
%2292 = getelementptr [2 x i32], ptr %stack.ptr_685, i32 0, i32 1 | |
store i32 0, ptr %2292 | |
%2293 = getelementptr [2 x i32], ptr %stack.ptr_686, i32 0, i32 0 | |
%2294 = getelementptr [3 x i32], ptr %2263, i32 0, i32 2 | |
%2295 = load i32, ptr %2294 | |
store i32 %2295, ptr %2293 | |
%2296 = getelementptr [2 x i32], ptr %stack.ptr_686, i32 0, i32 1 | |
store i32 4294967295, ptr %2296 | |
%2297 = getelementptr %program, ptr %arg_0, i32 0, i32 66 | |
call ccc void @eclair_btree_lower_bound_1(ptr %2297, ptr %stack.ptr_685, ptr %stack.ptr_687) | |
%2298 = getelementptr %program, ptr %arg_0, i32 0, i32 66 | |
call ccc void @eclair_btree_upper_bound_1(ptr %2298, ptr %stack.ptr_686, ptr %stack.ptr_688) | |
br label %loop_152 | |
loop_152: | |
%2299 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_687, ptr %stack.ptr_688) | |
br i1 %2299, label %if_175, label %end_if_174 | |
if_175: | |
br label %range_query.end_147 | |
end_if_174: | |
%2300 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_687) | |
%2301 = getelementptr [2 x i32], ptr %stack.ptr_689, i32 0, i32 0 | |
%2302 = getelementptr [3 x i32], ptr %2249, i32 0, i32 0 | |
%2303 = load i32, ptr %2302 | |
store i32 %2303, ptr %2301 | |
%2304 = getelementptr [2 x i32], ptr %stack.ptr_689, i32 0, i32 1 | |
%2305 = getelementptr [3 x i32], ptr %2263, i32 0, i32 2 | |
%2306 = load i32, ptr %2305 | |
store i32 %2306, ptr %2304 | |
%2307 = getelementptr %program, ptr %arg_0, i32 0, i32 42 | |
%2308 = call ccc i1 @eclair_btree_insert_value_1(ptr %2307, ptr %stack.ptr_689) | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_687) | |
br label %loop_152 | |
range_query.end_147: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_683) | |
br label %loop_151 | |
range_query.end_146: | |
br label %end_if_175 | |
end_if_175: | |
call ccc void @eclair_btree_iterator_next_0(ptr %stack.ptr_678) | |
br label %loop_150 | |
range_query.end_145: | |
call ccc void @eclair_btree_iterator_next_0(ptr %stack.ptr_674) | |
br label %loop_149 | |
range_query.end_144: | |
%2309 = getelementptr [2 x i32], ptr %stack.ptr_690, i32 0, i32 0 | |
store i32 0, ptr %2309 | |
%2310 = getelementptr [2 x i32], ptr %stack.ptr_690, i32 0, i32 1 | |
store i32 0, ptr %2310 | |
%2311 = getelementptr [2 x i32], ptr %stack.ptr_691, i32 0, i32 0 | |
store i32 4294967295, ptr %2311 | |
%2312 = getelementptr [2 x i32], ptr %stack.ptr_691, i32 0, i32 1 | |
store i32 4294967295, ptr %2312 | |
%2313 = getelementptr %program, ptr %arg_0, i32 0, i32 17 | |
call ccc void @eclair_btree_lower_bound_1(ptr %2313, ptr %stack.ptr_690, ptr %stack.ptr_692) | |
%2314 = getelementptr %program, ptr %arg_0, i32 0, i32 17 | |
call ccc void @eclair_btree_upper_bound_1(ptr %2314, ptr %stack.ptr_691, ptr %stack.ptr_693) | |
br label %loop_153 | |
loop_153: | |
%2315 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_692, ptr %stack.ptr_693) | |
br i1 %2315, label %if_176, label %end_if_176 | |
if_176: | |
br label %range_query.end_148 | |
end_if_176: | |
%2316 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_692) | |
%2317 = getelementptr [2 x i32], ptr %stack.ptr_694, i32 0, i32 0 | |
%2318 = getelementptr [2 x i32], ptr %2316, i32 0, i32 0 | |
%2319 = load i32, ptr %2318 | |
store i32 %2319, ptr %2317 | |
%2320 = getelementptr [2 x i32], ptr %stack.ptr_694, i32 0, i32 1 | |
store i32 0, ptr %2320 | |
%2321 = getelementptr [2 x i32], ptr %stack.ptr_695, i32 0, i32 0 | |
%2322 = getelementptr [2 x i32], ptr %2316, i32 0, i32 0 | |
%2323 = load i32, ptr %2322 | |
store i32 %2323, ptr %2321 | |
%2324 = getelementptr [2 x i32], ptr %stack.ptr_695, i32 0, i32 1 | |
store i32 4294967295, ptr %2324 | |
%2325 = getelementptr %program, ptr %arg_0, i32 0, i32 17 | |
call ccc void @eclair_btree_lower_bound_1(ptr %2325, ptr %stack.ptr_694, ptr %stack.ptr_696) | |
%2326 = getelementptr %program, ptr %arg_0, i32 0, i32 17 | |
call ccc void @eclair_btree_upper_bound_1(ptr %2326, ptr %stack.ptr_695, ptr %stack.ptr_697) | |
br label %loop_154 | |
loop_154: | |
%2327 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_696, ptr %stack.ptr_697) | |
br i1 %2327, label %if_177, label %end_if_177 | |
if_177: | |
br label %range_query.end_149 | |
end_if_177: | |
%2328 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_696) | |
%2329 = getelementptr [4 x i32], ptr %stack.ptr_698, i32 0, i32 0 | |
store i32 0, ptr %2329 | |
%2330 = getelementptr [4 x i32], ptr %stack.ptr_698, i32 0, i32 1 | |
store i32 0, ptr %2330 | |
%2331 = getelementptr [4 x i32], ptr %stack.ptr_698, i32 0, i32 2 | |
%2332 = getelementptr [2 x i32], ptr %2316, i32 0, i32 1 | |
%2333 = load i32, ptr %2332 | |
store i32 %2333, ptr %2331 | |
%2334 = getelementptr [4 x i32], ptr %stack.ptr_698, i32 0, i32 3 | |
%2335 = getelementptr [2 x i32], ptr %2328, i32 0, i32 1 | |
%2336 = load i32, ptr %2335 | |
store i32 %2336, ptr %2334 | |
%2337 = getelementptr [4 x i32], ptr %stack.ptr_699, i32 0, i32 0 | |
store i32 4294967295, ptr %2337 | |
%2338 = getelementptr [4 x i32], ptr %stack.ptr_699, i32 0, i32 1 | |
store i32 4294967295, ptr %2338 | |
%2339 = getelementptr [4 x i32], ptr %stack.ptr_699, i32 0, i32 2 | |
%2340 = getelementptr [2 x i32], ptr %2316, i32 0, i32 1 | |
%2341 = load i32, ptr %2340 | |
store i32 %2341, ptr %2339 | |
%2342 = getelementptr [4 x i32], ptr %stack.ptr_699, i32 0, i32 3 | |
%2343 = getelementptr [2 x i32], ptr %2328, i32 0, i32 1 | |
%2344 = load i32, ptr %2343 | |
store i32 %2344, ptr %2342 | |
%2345 = getelementptr %program, ptr %arg_0, i32 0, i32 6 | |
call ccc void @eclair_btree_lower_bound_3(ptr %2345, ptr %stack.ptr_698, ptr %stack.ptr_700) | |
%2346 = getelementptr %program, ptr %arg_0, i32 0, i32 6 | |
call ccc void @eclair_btree_upper_bound_3(ptr %2346, ptr %stack.ptr_699, ptr %stack.ptr_701) | |
br label %loop_155 | |
loop_155: | |
%2347 = call ccc i1 @eclair_btree_iterator_is_equal_3(ptr %stack.ptr_700, ptr %stack.ptr_701) | |
br i1 %2347, label %if_178, label %end_if_178 | |
if_178: | |
br label %range_query.end_150 | |
end_if_178: | |
%2348 = call ccc ptr @eclair_btree_iterator_current_3(ptr %stack.ptr_700) | |
%2349 = getelementptr [2 x i32], ptr %stack.ptr_702, i32 0, i32 0 | |
%2350 = getelementptr [2 x i32], ptr %2316, i32 0, i32 0 | |
%2351 = load i32, ptr %2350 | |
store i32 %2351, ptr %2349 | |
%2352 = getelementptr [2 x i32], ptr %stack.ptr_702, i32 0, i32 1 | |
%2353 = getelementptr [4 x i32], ptr %2348, i32 0, i32 0 | |
%2354 = load i32, ptr %2353 | |
store i32 %2354, ptr %2352 | |
%2355 = getelementptr %program, ptr %arg_0, i32 0, i32 27 | |
%2356 = call ccc i1 @eclair_btree_contains_1(ptr %2355, ptr %stack.ptr_702) | |
%2357 = select i1 %2356, i1 0, i1 1 | |
br i1 %2357, label %if_179, label %end_if_179 | |
if_179: | |
%2358 = getelementptr [2 x i32], ptr %stack.ptr_703, i32 0, i32 0 | |
%2359 = getelementptr [2 x i32], ptr %2316, i32 0, i32 0 | |
%2360 = load i32, ptr %2359 | |
store i32 %2360, ptr %2358 | |
%2361 = getelementptr [2 x i32], ptr %stack.ptr_703, i32 0, i32 1 | |
%2362 = getelementptr [4 x i32], ptr %2348, i32 0, i32 0 | |
%2363 = load i32, ptr %2362 | |
store i32 %2363, ptr %2361 | |
%2364 = getelementptr %program, ptr %arg_0, i32 0, i32 42 | |
%2365 = call ccc i1 @eclair_btree_insert_value_1(ptr %2364, ptr %stack.ptr_703) | |
br label %end_if_179 | |
end_if_179: | |
call ccc void @eclair_btree_iterator_next_3(ptr %stack.ptr_700) | |
br label %loop_155 | |
range_query.end_150: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_696) | |
br label %loop_154 | |
range_query.end_149: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_692) | |
br label %loop_153 | |
range_query.end_148: | |
%2366 = getelementptr [2 x i32], ptr %stack.ptr_704, i32 0, i32 0 | |
store i32 0, ptr %2366 | |
%2367 = getelementptr [2 x i32], ptr %stack.ptr_704, i32 0, i32 1 | |
store i32 0, ptr %2367 | |
%2368 = getelementptr [2 x i32], ptr %stack.ptr_705, i32 0, i32 0 | |
store i32 4294967295, ptr %2368 | |
%2369 = getelementptr [2 x i32], ptr %stack.ptr_705, i32 0, i32 1 | |
store i32 4294967295, ptr %2369 | |
%2370 = getelementptr %program, ptr %arg_0, i32 0, i32 40 | |
call ccc void @eclair_btree_lower_bound_1(ptr %2370, ptr %stack.ptr_704, ptr %stack.ptr_706) | |
%2371 = getelementptr %program, ptr %arg_0, i32 0, i32 40 | |
call ccc void @eclair_btree_upper_bound_1(ptr %2371, ptr %stack.ptr_705, ptr %stack.ptr_707) | |
br label %loop_156 | |
loop_156: | |
%2372 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_706, ptr %stack.ptr_707) | |
br i1 %2372, label %if_180, label %end_if_180 | |
if_180: | |
br label %range_query.end_151 | |
end_if_180: | |
%2373 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_706) | |
%2374 = getelementptr [3 x i32], ptr %stack.ptr_708, i32 0, i32 0 | |
store i32 0, ptr %2374 | |
%2375 = getelementptr [3 x i32], ptr %stack.ptr_708, i32 0, i32 1 | |
store i32 0, ptr %2375 | |
%2376 = getelementptr [3 x i32], ptr %stack.ptr_708, i32 0, i32 2 | |
%2377 = getelementptr [2 x i32], ptr %2373, i32 0, i32 0 | |
%2378 = load i32, ptr %2377 | |
store i32 %2378, ptr %2376 | |
%2379 = getelementptr [3 x i32], ptr %stack.ptr_709, i32 0, i32 0 | |
store i32 4294967295, ptr %2379 | |
%2380 = getelementptr [3 x i32], ptr %stack.ptr_709, i32 0, i32 1 | |
store i32 4294967295, ptr %2380 | |
%2381 = getelementptr [3 x i32], ptr %stack.ptr_709, i32 0, i32 2 | |
%2382 = getelementptr [2 x i32], ptr %2373, i32 0, i32 0 | |
%2383 = load i32, ptr %2382 | |
store i32 %2383, ptr %2381 | |
%2384 = getelementptr %program, ptr %arg_0, i32 0, i32 54 | |
call ccc void @eclair_btree_lower_bound_8(ptr %2384, ptr %stack.ptr_708, ptr %stack.ptr_710) | |
%2385 = getelementptr %program, ptr %arg_0, i32 0, i32 54 | |
call ccc void @eclair_btree_upper_bound_8(ptr %2385, ptr %stack.ptr_709, ptr %stack.ptr_711) | |
br label %loop_157 | |
loop_157: | |
%2386 = call ccc i1 @eclair_btree_iterator_is_equal_8(ptr %stack.ptr_710, ptr %stack.ptr_711) | |
br i1 %2386, label %if_181, label %end_if_181 | |
if_181: | |
br label %range_query.end_152 | |
end_if_181: | |
%2387 = call ccc ptr @eclair_btree_iterator_current_8(ptr %stack.ptr_710) | |
%2388 = getelementptr [2 x i32], ptr %stack.ptr_712, i32 0, i32 0 | |
%2389 = getelementptr [3 x i32], ptr %2387, i32 0, i32 0 | |
%2390 = load i32, ptr %2389 | |
store i32 %2390, ptr %2388 | |
%2391 = getelementptr [2 x i32], ptr %stack.ptr_712, i32 0, i32 1 | |
store i32 0, ptr %2391 | |
%2392 = getelementptr [2 x i32], ptr %stack.ptr_713, i32 0, i32 0 | |
%2393 = getelementptr [3 x i32], ptr %2387, i32 0, i32 0 | |
%2394 = load i32, ptr %2393 | |
store i32 %2394, ptr %2392 | |
%2395 = getelementptr [2 x i32], ptr %stack.ptr_713, i32 0, i32 1 | |
store i32 4294967295, ptr %2395 | |
%2396 = getelementptr %program, ptr %arg_0, i32 0, i32 59 | |
call ccc void @eclair_btree_lower_bound_1(ptr %2396, ptr %stack.ptr_712, ptr %stack.ptr_714) | |
%2397 = getelementptr %program, ptr %arg_0, i32 0, i32 59 | |
call ccc void @eclair_btree_upper_bound_1(ptr %2397, ptr %stack.ptr_713, ptr %stack.ptr_715) | |
br label %loop_158 | |
loop_158: | |
%2398 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_714, ptr %stack.ptr_715) | |
br i1 %2398, label %if_182, label %end_if_182 | |
if_182: | |
br label %range_query.end_153 | |
end_if_182: | |
%2399 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_714) | |
%2400 = getelementptr [2 x i32], ptr %stack.ptr_716, i32 0, i32 0 | |
%2401 = getelementptr [2 x i32], ptr %2399, i32 0, i32 1 | |
%2402 = load i32, ptr %2401 | |
store i32 %2402, ptr %2400 | |
%2403 = getelementptr [2 x i32], ptr %stack.ptr_716, i32 0, i32 1 | |
store i32 0, ptr %2403 | |
%2404 = getelementptr [2 x i32], ptr %stack.ptr_717, i32 0, i32 0 | |
%2405 = getelementptr [2 x i32], ptr %2399, i32 0, i32 1 | |
%2406 = load i32, ptr %2405 | |
store i32 %2406, ptr %2404 | |
%2407 = getelementptr [2 x i32], ptr %stack.ptr_717, i32 0, i32 1 | |
store i32 4294967295, ptr %2407 | |
%2408 = getelementptr %program, ptr %arg_0, i32 0, i32 66 | |
call ccc void @eclair_btree_lower_bound_1(ptr %2408, ptr %stack.ptr_716, ptr %stack.ptr_718) | |
%2409 = getelementptr %program, ptr %arg_0, i32 0, i32 66 | |
call ccc void @eclair_btree_upper_bound_1(ptr %2409, ptr %stack.ptr_717, ptr %stack.ptr_719) | |
br label %loop_159 | |
loop_159: | |
%2410 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_718, ptr %stack.ptr_719) | |
br i1 %2410, label %if_183, label %end_if_183 | |
if_183: | |
br label %range_query.end_154 | |
end_if_183: | |
%2411 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_718) | |
%2412 = getelementptr [2 x i32], ptr %stack.ptr_720, i32 0, i32 0 | |
%2413 = getelementptr [3 x i32], ptr %2387, i32 0, i32 0 | |
%2414 = load i32, ptr %2413 | |
store i32 %2414, ptr %2412 | |
%2415 = getelementptr [2 x i32], ptr %stack.ptr_720, i32 0, i32 1 | |
%2416 = getelementptr [2 x i32], ptr %2399, i32 0, i32 1 | |
%2417 = load i32, ptr %2416 | |
store i32 %2417, ptr %2415 | |
%2418 = getelementptr [2 x i32], ptr %stack.ptr_721, i32 0, i32 0 | |
%2419 = getelementptr [3 x i32], ptr %2387, i32 0, i32 0 | |
%2420 = load i32, ptr %2419 | |
store i32 %2420, ptr %2418 | |
%2421 = getelementptr [2 x i32], ptr %stack.ptr_721, i32 0, i32 1 | |
%2422 = getelementptr [2 x i32], ptr %2399, i32 0, i32 1 | |
%2423 = load i32, ptr %2422 | |
store i32 %2423, ptr %2421 | |
%2424 = getelementptr %program, ptr %arg_0, i32 0, i32 17 | |
call ccc void @eclair_btree_lower_bound_1(ptr %2424, ptr %stack.ptr_720, ptr %stack.ptr_722) | |
%2425 = getelementptr %program, ptr %arg_0, i32 0, i32 17 | |
call ccc void @eclair_btree_upper_bound_1(ptr %2425, ptr %stack.ptr_721, ptr %stack.ptr_723) | |
br label %loop_160 | |
loop_160: | |
%2426 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_722, ptr %stack.ptr_723) | |
br i1 %2426, label %if_184, label %end_if_184 | |
if_184: | |
br label %range_query.end_155 | |
end_if_184: | |
%2427 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_722) | |
%2428 = getelementptr [2 x i32], ptr %stack.ptr_724, i32 0, i32 0 | |
%2429 = getelementptr [2 x i32], ptr %2373, i32 0, i32 0 | |
%2430 = load i32, ptr %2429 | |
store i32 %2430, ptr %2428 | |
%2431 = getelementptr [2 x i32], ptr %stack.ptr_724, i32 0, i32 1 | |
store i32 0, ptr %2431 | |
%2432 = getelementptr [2 x i32], ptr %stack.ptr_725, i32 0, i32 0 | |
%2433 = getelementptr [2 x i32], ptr %2373, i32 0, i32 0 | |
%2434 = load i32, ptr %2433 | |
store i32 %2434, ptr %2432 | |
%2435 = getelementptr [2 x i32], ptr %stack.ptr_725, i32 0, i32 1 | |
store i32 4294967295, ptr %2435 | |
%2436 = getelementptr %program, ptr %arg_0, i32 0, i32 59 | |
call ccc void @eclair_btree_lower_bound_1(ptr %2436, ptr %stack.ptr_724, ptr %stack.ptr_726) | |
%2437 = getelementptr %program, ptr %arg_0, i32 0, i32 59 | |
call ccc void @eclair_btree_upper_bound_1(ptr %2437, ptr %stack.ptr_725, ptr %stack.ptr_727) | |
br label %loop_161 | |
loop_161: | |
%2438 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_726, ptr %stack.ptr_727) | |
br i1 %2438, label %if_185, label %end_if_185 | |
if_185: | |
br label %range_query.end_156 | |
end_if_185: | |
%2439 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_726) | |
%2440 = getelementptr [2 x i32], ptr %stack.ptr_728, i32 0, i32 0 | |
%2441 = getelementptr [3 x i32], ptr %2387, i32 0, i32 0 | |
%2442 = load i32, ptr %2441 | |
store i32 %2442, ptr %2440 | |
%2443 = getelementptr [2 x i32], ptr %stack.ptr_728, i32 0, i32 1 | |
%2444 = getelementptr [2 x i32], ptr %2439, i32 0, i32 1 | |
%2445 = load i32, ptr %2444 | |
store i32 %2445, ptr %2443 | |
%2446 = getelementptr %program, ptr %arg_0, i32 0, i32 27 | |
%2447 = call ccc i1 @eclair_btree_contains_1(ptr %2446, ptr %stack.ptr_728) | |
%2448 = select i1 %2447, i1 0, i1 1 | |
br i1 %2448, label %if_186, label %end_if_187 | |
if_186: | |
%2449 = getelementptr [2 x i32], ptr %stack.ptr_729, i32 0, i32 0 | |
%2450 = getelementptr [2 x i32], ptr %2439, i32 0, i32 1 | |
%2451 = load i32, ptr %2450 | |
store i32 %2451, ptr %2449 | |
%2452 = getelementptr [2 x i32], ptr %stack.ptr_729, i32 0, i32 1 | |
%2453 = getelementptr [2 x i32], ptr %2411, i32 0, i32 1 | |
%2454 = load i32, ptr %2453 | |
store i32 %2454, ptr %2452 | |
%2455 = getelementptr [2 x i32], ptr %stack.ptr_730, i32 0, i32 0 | |
%2456 = getelementptr [2 x i32], ptr %2439, i32 0, i32 1 | |
%2457 = load i32, ptr %2456 | |
store i32 %2457, ptr %2455 | |
%2458 = getelementptr [2 x i32], ptr %stack.ptr_730, i32 0, i32 1 | |
%2459 = getelementptr [2 x i32], ptr %2411, i32 0, i32 1 | |
%2460 = load i32, ptr %2459 | |
store i32 %2460, ptr %2458 | |
%2461 = getelementptr %program, ptr %arg_0, i32 0, i32 66 | |
call ccc void @eclair_btree_lower_bound_1(ptr %2461, ptr %stack.ptr_729, ptr %stack.ptr_731) | |
%2462 = getelementptr %program, ptr %arg_0, i32 0, i32 66 | |
call ccc void @eclair_btree_upper_bound_1(ptr %2462, ptr %stack.ptr_730, ptr %stack.ptr_732) | |
br label %loop_162 | |
loop_162: | |
%2463 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_731, ptr %stack.ptr_732) | |
br i1 %2463, label %if_187, label %end_if_186 | |
if_187: | |
br label %range_query.end_157 | |
end_if_186: | |
%2464 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_731) | |
%2465 = getelementptr [2 x i32], ptr %stack.ptr_733, i32 0, i32 0 | |
%2466 = getelementptr [3 x i32], ptr %2387, i32 0, i32 0 | |
%2467 = load i32, ptr %2466 | |
store i32 %2467, ptr %2465 | |
%2468 = getelementptr [2 x i32], ptr %stack.ptr_733, i32 0, i32 1 | |
%2469 = getelementptr [2 x i32], ptr %2439, i32 0, i32 1 | |
%2470 = load i32, ptr %2469 | |
store i32 %2470, ptr %2468 | |
%2471 = getelementptr %program, ptr %arg_0, i32 0, i32 42 | |
%2472 = call ccc i1 @eclair_btree_insert_value_1(ptr %2471, ptr %stack.ptr_733) | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_731) | |
br label %loop_162 | |
range_query.end_157: | |
br label %end_if_187 | |
end_if_187: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_726) | |
br label %loop_161 | |
range_query.end_156: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_722) | |
br label %loop_160 | |
range_query.end_155: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_718) | |
br label %loop_159 | |
range_query.end_154: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_714) | |
br label %loop_158 | |
range_query.end_153: | |
call ccc void @eclair_btree_iterator_next_8(ptr %stack.ptr_710) | |
br label %loop_157 | |
range_query.end_152: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_706) | |
br label %loop_156 | |
range_query.end_151: | |
%2473 = getelementptr [2 x i32], ptr %stack.ptr_734, i32 0, i32 0 | |
store i32 0, ptr %2473 | |
%2474 = getelementptr [2 x i32], ptr %stack.ptr_734, i32 0, i32 1 | |
store i32 0, ptr %2474 | |
%2475 = getelementptr [2 x i32], ptr %stack.ptr_735, i32 0, i32 0 | |
store i32 4294967295, ptr %2475 | |
%2476 = getelementptr [2 x i32], ptr %stack.ptr_735, i32 0, i32 1 | |
store i32 4294967295, ptr %2476 | |
%2477 = getelementptr %program, ptr %arg_0, i32 0, i32 59 | |
call ccc void @eclair_btree_lower_bound_1(ptr %2477, ptr %stack.ptr_734, ptr %stack.ptr_736) | |
%2478 = getelementptr %program, ptr %arg_0, i32 0, i32 59 | |
call ccc void @eclair_btree_upper_bound_1(ptr %2478, ptr %stack.ptr_735, ptr %stack.ptr_737) | |
br label %loop_163 | |
loop_163: | |
%2479 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_736, ptr %stack.ptr_737) | |
br i1 %2479, label %if_188, label %end_if_188 | |
if_188: | |
br label %range_query.end_158 | |
end_if_188: | |
%2480 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_736) | |
%2481 = getelementptr [2 x i32], ptr %stack.ptr_738, i32 0, i32 0 | |
%2482 = getelementptr [2 x i32], ptr %2480, i32 0, i32 1 | |
%2483 = load i32, ptr %2482 | |
store i32 %2483, ptr %2481 | |
%2484 = getelementptr [2 x i32], ptr %stack.ptr_738, i32 0, i32 1 | |
store i32 0, ptr %2484 | |
%2485 = getelementptr [2 x i32], ptr %stack.ptr_739, i32 0, i32 0 | |
%2486 = getelementptr [2 x i32], ptr %2480, i32 0, i32 1 | |
%2487 = load i32, ptr %2486 | |
store i32 %2487, ptr %2485 | |
%2488 = getelementptr [2 x i32], ptr %stack.ptr_739, i32 0, i32 1 | |
store i32 4294967295, ptr %2488 | |
%2489 = getelementptr %program, ptr %arg_0, i32 0, i32 66 | |
call ccc void @eclair_btree_lower_bound_1(ptr %2489, ptr %stack.ptr_738, ptr %stack.ptr_740) | |
%2490 = getelementptr %program, ptr %arg_0, i32 0, i32 66 | |
call ccc void @eclair_btree_upper_bound_1(ptr %2490, ptr %stack.ptr_739, ptr %stack.ptr_741) | |
br label %loop_164 | |
loop_164: | |
%2491 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_740, ptr %stack.ptr_741) | |
br i1 %2491, label %if_189, label %end_if_189 | |
if_189: | |
br label %range_query.end_159 | |
end_if_189: | |
%2492 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_740) | |
%2493 = getelementptr [2 x i32], ptr %stack.ptr_742, i32 0, i32 0 | |
%2494 = getelementptr [2 x i32], ptr %2480, i32 0, i32 0 | |
%2495 = load i32, ptr %2494 | |
store i32 %2495, ptr %2493 | |
%2496 = getelementptr [2 x i32], ptr %stack.ptr_742, i32 0, i32 1 | |
%2497 = getelementptr [2 x i32], ptr %2480, i32 0, i32 1 | |
%2498 = load i32, ptr %2497 | |
store i32 %2498, ptr %2496 | |
%2499 = getelementptr [2 x i32], ptr %stack.ptr_743, i32 0, i32 0 | |
%2500 = getelementptr [2 x i32], ptr %2480, i32 0, i32 0 | |
%2501 = load i32, ptr %2500 | |
store i32 %2501, ptr %2499 | |
%2502 = getelementptr [2 x i32], ptr %stack.ptr_743, i32 0, i32 1 | |
%2503 = getelementptr [2 x i32], ptr %2480, i32 0, i32 1 | |
%2504 = load i32, ptr %2503 | |
store i32 %2504, ptr %2502 | |
%2505 = getelementptr %program, ptr %arg_0, i32 0, i32 17 | |
call ccc void @eclair_btree_lower_bound_1(ptr %2505, ptr %stack.ptr_742, ptr %stack.ptr_744) | |
%2506 = getelementptr %program, ptr %arg_0, i32 0, i32 17 | |
call ccc void @eclair_btree_upper_bound_1(ptr %2506, ptr %stack.ptr_743, ptr %stack.ptr_745) | |
br label %loop_165 | |
loop_165: | |
%2507 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_744, ptr %stack.ptr_745) | |
br i1 %2507, label %if_190, label %end_if_190 | |
if_190: | |
br label %range_query.end_160 | |
end_if_190: | |
%2508 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_744) | |
%2509 = getelementptr [2 x i32], ptr %stack.ptr_746, i32 0, i32 0 | |
%2510 = getelementptr [2 x i32], ptr %2480, i32 0, i32 0 | |
%2511 = load i32, ptr %2510 | |
store i32 %2511, ptr %2509 | |
%2512 = getelementptr [2 x i32], ptr %stack.ptr_746, i32 0, i32 1 | |
store i32 0, ptr %2512 | |
%2513 = getelementptr [2 x i32], ptr %stack.ptr_747, i32 0, i32 0 | |
%2514 = getelementptr [2 x i32], ptr %2480, i32 0, i32 0 | |
%2515 = load i32, ptr %2514 | |
store i32 %2515, ptr %2513 | |
%2516 = getelementptr [2 x i32], ptr %stack.ptr_747, i32 0, i32 1 | |
store i32 4294967295, ptr %2516 | |
%2517 = getelementptr %program, ptr %arg_0, i32 0, i32 59 | |
call ccc void @eclair_btree_lower_bound_1(ptr %2517, ptr %stack.ptr_746, ptr %stack.ptr_748) | |
%2518 = getelementptr %program, ptr %arg_0, i32 0, i32 59 | |
call ccc void @eclair_btree_upper_bound_1(ptr %2518, ptr %stack.ptr_747, ptr %stack.ptr_749) | |
br label %loop_166 | |
loop_166: | |
%2519 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_748, ptr %stack.ptr_749) | |
br i1 %2519, label %if_191, label %end_if_191 | |
if_191: | |
br label %range_query.end_161 | |
end_if_191: | |
%2520 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_748) | |
%2521 = getelementptr [2 x i32], ptr %stack.ptr_750, i32 0, i32 0 | |
%2522 = getelementptr [2 x i32], ptr %2480, i32 0, i32 0 | |
%2523 = load i32, ptr %2522 | |
store i32 %2523, ptr %2521 | |
%2524 = getelementptr [2 x i32], ptr %stack.ptr_750, i32 0, i32 1 | |
%2525 = getelementptr [2 x i32], ptr %2520, i32 0, i32 1 | |
%2526 = load i32, ptr %2525 | |
store i32 %2526, ptr %2524 | |
%2527 = getelementptr %program, ptr %arg_0, i32 0, i32 27 | |
%2528 = call ccc i1 @eclair_btree_contains_1(ptr %2527, ptr %stack.ptr_750) | |
%2529 = select i1 %2528, i1 0, i1 1 | |
br i1 %2529, label %if_192, label %end_if_193 | |
if_192: | |
%2530 = getelementptr [2 x i32], ptr %stack.ptr_751, i32 0, i32 0 | |
%2531 = getelementptr [2 x i32], ptr %2520, i32 0, i32 1 | |
%2532 = load i32, ptr %2531 | |
store i32 %2532, ptr %2530 | |
%2533 = getelementptr [2 x i32], ptr %stack.ptr_751, i32 0, i32 1 | |
%2534 = getelementptr [2 x i32], ptr %2492, i32 0, i32 1 | |
%2535 = load i32, ptr %2534 | |
store i32 %2535, ptr %2533 | |
%2536 = getelementptr [2 x i32], ptr %stack.ptr_752, i32 0, i32 0 | |
%2537 = getelementptr [2 x i32], ptr %2520, i32 0, i32 1 | |
%2538 = load i32, ptr %2537 | |
store i32 %2538, ptr %2536 | |
%2539 = getelementptr [2 x i32], ptr %stack.ptr_752, i32 0, i32 1 | |
%2540 = getelementptr [2 x i32], ptr %2492, i32 0, i32 1 | |
%2541 = load i32, ptr %2540 | |
store i32 %2541, ptr %2539 | |
%2542 = getelementptr %program, ptr %arg_0, i32 0, i32 66 | |
call ccc void @eclair_btree_lower_bound_1(ptr %2542, ptr %stack.ptr_751, ptr %stack.ptr_753) | |
%2543 = getelementptr %program, ptr %arg_0, i32 0, i32 66 | |
call ccc void @eclair_btree_upper_bound_1(ptr %2543, ptr %stack.ptr_752, ptr %stack.ptr_754) | |
br label %loop_167 | |
loop_167: | |
%2544 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_753, ptr %stack.ptr_754) | |
br i1 %2544, label %if_193, label %end_if_192 | |
if_193: | |
br label %range_query.end_162 | |
end_if_192: | |
%2545 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_753) | |
%2546 = getelementptr [2 x i32], ptr %stack.ptr_755, i32 0, i32 0 | |
%2547 = getelementptr [2 x i32], ptr %2480, i32 0, i32 0 | |
%2548 = load i32, ptr %2547 | |
store i32 %2548, ptr %2546 | |
%2549 = getelementptr [2 x i32], ptr %stack.ptr_755, i32 0, i32 1 | |
%2550 = getelementptr [2 x i32], ptr %2520, i32 0, i32 1 | |
%2551 = load i32, ptr %2550 | |
store i32 %2551, ptr %2549 | |
%2552 = getelementptr %program, ptr %arg_0, i32 0, i32 42 | |
%2553 = call ccc i1 @eclair_btree_insert_value_1(ptr %2552, ptr %stack.ptr_755) | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_753) | |
br label %loop_167 | |
range_query.end_162: | |
br label %end_if_193 | |
end_if_193: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_748) | |
br label %loop_166 | |
range_query.end_161: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_744) | |
br label %loop_165 | |
range_query.end_160: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_740) | |
br label %loop_164 | |
range_query.end_159: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_736) | |
br label %loop_163 | |
range_query.end_158: | |
%2554 = getelementptr %program, ptr %arg_0, i32 0, i32 42 | |
%2555 = call ccc i1 @eclair_btree_is_empty_1(ptr %2554) | |
br i1 %2555, label %if_194, label %end_if_194 | |
if_194: | |
br label %loop.end_4 | |
end_if_194: | |
%2556 = getelementptr %program, ptr %arg_0, i32 0, i32 42 | |
call ccc void @eclair_btree_begin_1(ptr %2556, ptr %stack.ptr_756) | |
%2557 = getelementptr %program, ptr %arg_0, i32 0, i32 42 | |
call ccc void @eclair_btree_end_1(ptr %2557, ptr %stack.ptr_757) | |
%2558 = getelementptr %program, ptr %arg_0, i32 0, i32 27 | |
call ccc void @eclair_btree_insert_range_grounded_node_new_grounded_node(ptr %2558, ptr %stack.ptr_756, ptr %stack.ptr_757) | |
%2559 = getelementptr %program, ptr %arg_0, i32 0, i32 42 | |
%2560 = getelementptr %program, ptr %arg_0, i32 0, i32 17 | |
call ccc void @eclair_btree_swap_1(ptr %2559, ptr %2560) | |
br label %loop_144 | |
loop.end_4: | |
%2561 = getelementptr [2 x i32], ptr %stack.ptr_758, i32 0, i32 0 | |
store i32 0, ptr %2561 | |
%2562 = getelementptr [2 x i32], ptr %stack.ptr_758, i32 0, i32 1 | |
store i32 0, ptr %2562 | |
%2563 = getelementptr [2 x i32], ptr %stack.ptr_759, i32 0, i32 0 | |
store i32 4294967295, ptr %2563 | |
%2564 = getelementptr [2 x i32], ptr %stack.ptr_759, i32 0, i32 1 | |
store i32 4294967295, ptr %2564 | |
%2565 = getelementptr %program, ptr %arg_0, i32 0, i32 40 | |
call ccc void @eclair_btree_lower_bound_1(ptr %2565, ptr %stack.ptr_758, ptr %stack.ptr_760) | |
%2566 = getelementptr %program, ptr %arg_0, i32 0, i32 40 | |
call ccc void @eclair_btree_upper_bound_1(ptr %2566, ptr %stack.ptr_759, ptr %stack.ptr_761) | |
br label %loop_168 | |
loop_168: | |
%2567 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_760, ptr %stack.ptr_761) | |
br i1 %2567, label %if_195, label %end_if_195 | |
if_195: | |
br label %range_query.end_163 | |
end_if_195: | |
%2568 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_760) | |
%2569 = getelementptr [3 x i32], ptr %stack.ptr_762, i32 0, i32 0 | |
store i32 0, ptr %2569 | |
%2570 = getelementptr [3 x i32], ptr %stack.ptr_762, i32 0, i32 1 | |
store i32 0, ptr %2570 | |
%2571 = getelementptr [3 x i32], ptr %stack.ptr_762, i32 0, i32 2 | |
%2572 = getelementptr [2 x i32], ptr %2568, i32 0, i32 0 | |
%2573 = load i32, ptr %2572 | |
store i32 %2573, ptr %2571 | |
%2574 = getelementptr [3 x i32], ptr %stack.ptr_763, i32 0, i32 0 | |
store i32 4294967295, ptr %2574 | |
%2575 = getelementptr [3 x i32], ptr %stack.ptr_763, i32 0, i32 1 | |
store i32 4294967295, ptr %2575 | |
%2576 = getelementptr [3 x i32], ptr %stack.ptr_763, i32 0, i32 2 | |
%2577 = getelementptr [2 x i32], ptr %2568, i32 0, i32 0 | |
%2578 = load i32, ptr %2577 | |
store i32 %2578, ptr %2576 | |
%2579 = getelementptr %program, ptr %arg_0, i32 0, i32 54 | |
call ccc void @eclair_btree_lower_bound_8(ptr %2579, ptr %stack.ptr_762, ptr %stack.ptr_764) | |
%2580 = getelementptr %program, ptr %arg_0, i32 0, i32 54 | |
call ccc void @eclair_btree_upper_bound_8(ptr %2580, ptr %stack.ptr_763, ptr %stack.ptr_765) | |
br label %loop_169 | |
loop_169: | |
%2581 = call ccc i1 @eclair_btree_iterator_is_equal_8(ptr %stack.ptr_764, ptr %stack.ptr_765) | |
br i1 %2581, label %if_196, label %end_if_196 | |
if_196: | |
br label %range_query.end_164 | |
end_if_196: | |
%2582 = call ccc ptr @eclair_btree_iterator_current_8(ptr %stack.ptr_764) | |
%2583 = getelementptr [2 x i32], ptr %stack.ptr_766, i32 0, i32 0 | |
%2584 = getelementptr [2 x i32], ptr %2568, i32 0, i32 0 | |
%2585 = load i32, ptr %2584 | |
store i32 %2585, ptr %2583 | |
%2586 = getelementptr [2 x i32], ptr %stack.ptr_766, i32 0, i32 1 | |
store i32 0, ptr %2586 | |
%2587 = getelementptr [2 x i32], ptr %stack.ptr_767, i32 0, i32 0 | |
%2588 = getelementptr [2 x i32], ptr %2568, i32 0, i32 0 | |
%2589 = load i32, ptr %2588 | |
store i32 %2589, ptr %2587 | |
%2590 = getelementptr [2 x i32], ptr %stack.ptr_767, i32 0, i32 1 | |
store i32 4294967295, ptr %2590 | |
%2591 = getelementptr %program, ptr %arg_0, i32 0, i32 59 | |
call ccc void @eclair_btree_lower_bound_1(ptr %2591, ptr %stack.ptr_766, ptr %stack.ptr_768) | |
%2592 = getelementptr %program, ptr %arg_0, i32 0, i32 59 | |
call ccc void @eclair_btree_upper_bound_1(ptr %2592, ptr %stack.ptr_767, ptr %stack.ptr_769) | |
br label %loop_170 | |
loop_170: | |
%2593 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_768, ptr %stack.ptr_769) | |
br i1 %2593, label %if_197, label %end_if_197 | |
if_197: | |
br label %range_query.end_165 | |
end_if_197: | |
%2594 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_768) | |
%2595 = getelementptr [2 x i32], ptr %stack.ptr_770, i32 0, i32 0 | |
%2596 = getelementptr [3 x i32], ptr %2582, i32 0, i32 0 | |
%2597 = load i32, ptr %2596 | |
store i32 %2597, ptr %2595 | |
%2598 = getelementptr [2 x i32], ptr %stack.ptr_770, i32 0, i32 1 | |
%2599 = getelementptr [2 x i32], ptr %2594, i32 0, i32 1 | |
%2600 = load i32, ptr %2599 | |
store i32 %2600, ptr %2598 | |
%2601 = getelementptr %program, ptr %arg_0, i32 0, i32 27 | |
%2602 = call ccc i1 @eclair_btree_contains_1(ptr %2601, ptr %stack.ptr_770) | |
%2603 = select i1 %2602, i1 0, i1 1 | |
br i1 %2603, label %if_198, label %end_if_199 | |
if_198: | |
%2604 = getelementptr [2 x i32], ptr %stack.ptr_771, i32 0, i32 0 | |
%2605 = getelementptr [2 x i32], ptr %2594, i32 0, i32 1 | |
%2606 = load i32, ptr %2605 | |
store i32 %2606, ptr %2604 | |
%2607 = getelementptr [2 x i32], ptr %stack.ptr_771, i32 0, i32 1 | |
store i32 0, ptr %2607 | |
%2608 = getelementptr [2 x i32], ptr %stack.ptr_772, i32 0, i32 0 | |
%2609 = getelementptr [2 x i32], ptr %2594, i32 0, i32 1 | |
%2610 = load i32, ptr %2609 | |
store i32 %2610, ptr %2608 | |
%2611 = getelementptr [2 x i32], ptr %stack.ptr_772, i32 0, i32 1 | |
store i32 4294967295, ptr %2611 | |
%2612 = getelementptr %program, ptr %arg_0, i32 0, i32 66 | |
call ccc void @eclair_btree_lower_bound_1(ptr %2612, ptr %stack.ptr_771, ptr %stack.ptr_773) | |
%2613 = getelementptr %program, ptr %arg_0, i32 0, i32 66 | |
call ccc void @eclair_btree_upper_bound_1(ptr %2613, ptr %stack.ptr_772, ptr %stack.ptr_774) | |
br label %loop_171 | |
loop_171: | |
%2614 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_773, ptr %stack.ptr_774) | |
br i1 %2614, label %if_199, label %end_if_198 | |
if_199: | |
br label %range_query.end_166 | |
end_if_198: | |
%2615 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_773) | |
%2616 = getelementptr [3 x i32], ptr %stack.ptr_775, i32 0, i32 0 | |
%2617 = getelementptr [3 x i32], ptr %2582, i32 0, i32 0 | |
%2618 = load i32, ptr %2617 | |
store i32 %2618, ptr %2616 | |
%2619 = getelementptr [3 x i32], ptr %stack.ptr_775, i32 0, i32 1 | |
%2620 = getelementptr [2 x i32], ptr %2594, i32 0, i32 1 | |
%2621 = load i32, ptr %2620 | |
store i32 %2621, ptr %2619 | |
%2622 = getelementptr [3 x i32], ptr %stack.ptr_775, i32 0, i32 2 | |
%2623 = getelementptr [2 x i32], ptr %2615, i32 0, i32 1 | |
%2624 = load i32, ptr %2623 | |
store i32 %2624, ptr %2622 | |
%2625 = getelementptr %program, ptr %arg_0, i32 0, i32 65 | |
%2626 = call ccc i1 @eclair_btree_insert_value_0(ptr %2625, ptr %stack.ptr_775) | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_773) | |
br label %loop_171 | |
range_query.end_166: | |
br label %end_if_199 | |
end_if_199: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_768) | |
br label %loop_170 | |
range_query.end_165: | |
call ccc void @eclair_btree_iterator_next_8(ptr %stack.ptr_764) | |
br label %loop_169 | |
range_query.end_164: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_760) | |
br label %loop_168 | |
range_query.end_163: | |
%2627 = getelementptr [2 x i32], ptr %stack.ptr_776, i32 0, i32 0 | |
store i32 0, ptr %2627 | |
%2628 = getelementptr [2 x i32], ptr %stack.ptr_776, i32 0, i32 1 | |
store i32 0, ptr %2628 | |
%2629 = getelementptr [2 x i32], ptr %stack.ptr_777, i32 0, i32 0 | |
store i32 4294967295, ptr %2629 | |
%2630 = getelementptr [2 x i32], ptr %stack.ptr_777, i32 0, i32 1 | |
store i32 4294967295, ptr %2630 | |
%2631 = getelementptr %program, ptr %arg_0, i32 0, i32 39 | |
call ccc void @eclair_btree_lower_bound_1(ptr %2631, ptr %stack.ptr_776, ptr %stack.ptr_778) | |
%2632 = getelementptr %program, ptr %arg_0, i32 0, i32 39 | |
call ccc void @eclair_btree_upper_bound_1(ptr %2632, ptr %stack.ptr_777, ptr %stack.ptr_779) | |
br label %loop_172 | |
loop_172: | |
%2633 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_778, ptr %stack.ptr_779) | |
br i1 %2633, label %if_200, label %end_if_200 | |
if_200: | |
br label %range_query.end_167 | |
end_if_200: | |
%2634 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_778) | |
%2635 = getelementptr [3 x i32], ptr %stack.ptr_780, i32 0, i32 0 | |
%2636 = getelementptr [2 x i32], ptr %2634, i32 0, i32 1 | |
%2637 = load i32, ptr %2636 | |
store i32 %2637, ptr %2635 | |
%2638 = getelementptr [3 x i32], ptr %stack.ptr_780, i32 0, i32 1 | |
store i32 0, ptr %2638 | |
%2639 = getelementptr [3 x i32], ptr %stack.ptr_780, i32 0, i32 2 | |
store i32 0, ptr %2639 | |
%2640 = getelementptr [3 x i32], ptr %stack.ptr_781, i32 0, i32 0 | |
%2641 = getelementptr [2 x i32], ptr %2634, i32 0, i32 1 | |
%2642 = load i32, ptr %2641 | |
store i32 %2642, ptr %2640 | |
%2643 = getelementptr [3 x i32], ptr %stack.ptr_781, i32 0, i32 1 | |
store i32 4294967295, ptr %2643 | |
%2644 = getelementptr [3 x i32], ptr %stack.ptr_781, i32 0, i32 2 | |
store i32 4294967295, ptr %2644 | |
%2645 = getelementptr %program, ptr %arg_0, i32 0, i32 5 | |
call ccc void @eclair_btree_lower_bound_0(ptr %2645, ptr %stack.ptr_780, ptr %stack.ptr_782) | |
%2646 = getelementptr %program, ptr %arg_0, i32 0, i32 5 | |
call ccc void @eclair_btree_upper_bound_0(ptr %2646, ptr %stack.ptr_781, ptr %stack.ptr_783) | |
br label %loop_173 | |
loop_173: | |
%2647 = call ccc i1 @eclair_btree_iterator_is_equal_0(ptr %stack.ptr_782, ptr %stack.ptr_783) | |
br i1 %2647, label %if_201, label %end_if_201 | |
if_201: | |
br label %range_query.end_168 | |
end_if_201: | |
%2648 = call ccc ptr @eclair_btree_iterator_current_0(ptr %stack.ptr_782) | |
%2649 = getelementptr [2 x i32], ptr %stack.ptr_784, i32 0, i32 0 | |
%2650 = getelementptr [2 x i32], ptr %2634, i32 0, i32 1 | |
%2651 = load i32, ptr %2650 | |
store i32 %2651, ptr %2649 | |
%2652 = getelementptr [2 x i32], ptr %stack.ptr_784, i32 0, i32 1 | |
%2653 = getelementptr [3 x i32], ptr %2648, i32 0, i32 2 | |
%2654 = load i32, ptr %2653 | |
store i32 %2654, ptr %2652 | |
%2655 = getelementptr %program, ptr %arg_0, i32 0, i32 27 | |
%2656 = call ccc i1 @eclair_btree_contains_1(ptr %2655, ptr %stack.ptr_784) | |
%2657 = select i1 %2656, i1 0, i1 1 | |
br i1 %2657, label %if_202, label %end_if_203 | |
if_202: | |
%2658 = getelementptr [2 x i32], ptr %stack.ptr_785, i32 0, i32 0 | |
%2659 = getelementptr [3 x i32], ptr %2648, i32 0, i32 2 | |
%2660 = load i32, ptr %2659 | |
store i32 %2660, ptr %2658 | |
%2661 = getelementptr [2 x i32], ptr %stack.ptr_785, i32 0, i32 1 | |
store i32 0, ptr %2661 | |
%2662 = getelementptr [2 x i32], ptr %stack.ptr_786, i32 0, i32 0 | |
%2663 = getelementptr [3 x i32], ptr %2648, i32 0, i32 2 | |
%2664 = load i32, ptr %2663 | |
store i32 %2664, ptr %2662 | |
%2665 = getelementptr [2 x i32], ptr %stack.ptr_786, i32 0, i32 1 | |
store i32 4294967295, ptr %2665 | |
%2666 = getelementptr %program, ptr %arg_0, i32 0, i32 23 | |
call ccc void @eclair_btree_lower_bound_1(ptr %2666, ptr %stack.ptr_785, ptr %stack.ptr_787) | |
%2667 = getelementptr %program, ptr %arg_0, i32 0, i32 23 | |
call ccc void @eclair_btree_upper_bound_1(ptr %2667, ptr %stack.ptr_786, ptr %stack.ptr_788) | |
br label %loop_174 | |
loop_174: | |
%2668 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_787, ptr %stack.ptr_788) | |
br i1 %2668, label %if_203, label %end_if_202 | |
if_203: | |
br label %range_query.end_169 | |
end_if_202: | |
%2669 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_787) | |
%2670 = getelementptr [3 x i32], ptr %stack.ptr_789, i32 0, i32 0 | |
%2671 = getelementptr [2 x i32], ptr %2634, i32 0, i32 1 | |
%2672 = load i32, ptr %2671 | |
store i32 %2672, ptr %2670 | |
%2673 = getelementptr [3 x i32], ptr %stack.ptr_789, i32 0, i32 1 | |
%2674 = getelementptr [3 x i32], ptr %2648, i32 0, i32 2 | |
%2675 = load i32, ptr %2674 | |
store i32 %2675, ptr %2673 | |
%2676 = getelementptr [3 x i32], ptr %stack.ptr_789, i32 0, i32 2 | |
%2677 = getelementptr [2 x i32], ptr %2669, i32 0, i32 1 | |
%2678 = load i32, ptr %2677 | |
store i32 %2678, ptr %2676 | |
%2679 = getelementptr %program, ptr %arg_0, i32 0, i32 64 | |
%2680 = call ccc i1 @eclair_btree_insert_value_0(ptr %2679, ptr %stack.ptr_789) | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_787) | |
br label %loop_174 | |
range_query.end_169: | |
br label %end_if_203 | |
end_if_203: | |
call ccc void @eclair_btree_iterator_next_0(ptr %stack.ptr_782) | |
br label %loop_173 | |
range_query.end_168: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_778) | |
br label %loop_172 | |
range_query.end_167: | |
%2681 = getelementptr [3 x i32], ptr %stack.ptr_790, i32 0, i32 0 | |
store i32 0, ptr %2681 | |
%2682 = getelementptr [3 x i32], ptr %stack.ptr_790, i32 0, i32 1 | |
store i32 0, ptr %2682 | |
%2683 = getelementptr [3 x i32], ptr %stack.ptr_790, i32 0, i32 2 | |
store i32 0, ptr %2683 | |
%2684 = getelementptr [3 x i32], ptr %stack.ptr_791, i32 0, i32 0 | |
store i32 4294967295, ptr %2684 | |
%2685 = getelementptr [3 x i32], ptr %stack.ptr_791, i32 0, i32 1 | |
store i32 4294967295, ptr %2685 | |
%2686 = getelementptr [3 x i32], ptr %stack.ptr_791, i32 0, i32 2 | |
store i32 4294967295, ptr %2686 | |
%2687 = getelementptr %program, ptr %arg_0, i32 0, i32 52 | |
call ccc void @eclair_btree_lower_bound_0(ptr %2687, ptr %stack.ptr_790, ptr %stack.ptr_792) | |
%2688 = getelementptr %program, ptr %arg_0, i32 0, i32 52 | |
call ccc void @eclair_btree_upper_bound_0(ptr %2688, ptr %stack.ptr_791, ptr %stack.ptr_793) | |
br label %loop_175 | |
loop_175: | |
%2689 = call ccc i1 @eclair_btree_iterator_is_equal_0(ptr %stack.ptr_792, ptr %stack.ptr_793) | |
br i1 %2689, label %if_204, label %end_if_204 | |
if_204: | |
br label %range_query.end_170 | |
end_if_204: | |
%2690 = call ccc ptr @eclair_btree_iterator_current_0(ptr %stack.ptr_792) | |
%2691 = getelementptr [2 x i32], ptr %stack.ptr_794, i32 0, i32 0 | |
%2692 = getelementptr [3 x i32], ptr %2690, i32 0, i32 0 | |
%2693 = load i32, ptr %2692 | |
store i32 %2693, ptr %2691 | |
%2694 = getelementptr [2 x i32], ptr %stack.ptr_794, i32 0, i32 1 | |
%2695 = getelementptr [3 x i32], ptr %2690, i32 0, i32 2 | |
%2696 = load i32, ptr %2695 | |
store i32 %2696, ptr %2694 | |
%2697 = getelementptr %program, ptr %arg_0, i32 0, i32 27 | |
%2698 = call ccc i1 @eclair_btree_contains_1(ptr %2697, ptr %stack.ptr_794) | |
%2699 = select i1 %2698, i1 0, i1 1 | |
br i1 %2699, label %if_205, label %end_if_207 | |
if_205: | |
%2700 = getelementptr [2 x i32], ptr %stack.ptr_795, i32 0, i32 0 | |
%2701 = getelementptr [3 x i32], ptr %2690, i32 0, i32 2 | |
%2702 = load i32, ptr %2701 | |
store i32 %2702, ptr %2700 | |
%2703 = getelementptr [2 x i32], ptr %stack.ptr_795, i32 0, i32 1 | |
store i32 0, ptr %2703 | |
%2704 = getelementptr [2 x i32], ptr %stack.ptr_796, i32 0, i32 0 | |
%2705 = getelementptr [3 x i32], ptr %2690, i32 0, i32 2 | |
%2706 = load i32, ptr %2705 | |
store i32 %2706, ptr %2704 | |
%2707 = getelementptr [2 x i32], ptr %stack.ptr_796, i32 0, i32 1 | |
store i32 4294967295, ptr %2707 | |
%2708 = getelementptr %program, ptr %arg_0, i32 0, i32 3 | |
call ccc void @eclair_btree_lower_bound_1(ptr %2708, ptr %stack.ptr_795, ptr %stack.ptr_797) | |
%2709 = getelementptr %program, ptr %arg_0, i32 0, i32 3 | |
call ccc void @eclair_btree_upper_bound_1(ptr %2709, ptr %stack.ptr_796, ptr %stack.ptr_798) | |
br label %loop_176 | |
loop_176: | |
%2710 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_797, ptr %stack.ptr_798) | |
br i1 %2710, label %if_206, label %end_if_205 | |
if_206: | |
br label %range_query.end_171 | |
end_if_205: | |
%2711 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_797) | |
%2712 = getelementptr [2 x i32], ptr %stack.ptr_799, i32 0, i32 0 | |
%2713 = getelementptr [3 x i32], ptr %2690, i32 0, i32 0 | |
%2714 = load i32, ptr %2713 | |
store i32 %2714, ptr %2712 | |
%2715 = getelementptr [2 x i32], ptr %stack.ptr_799, i32 0, i32 1 | |
%2716 = getelementptr [3 x i32], ptr %2690, i32 0, i32 2 | |
%2717 = load i32, ptr %2716 | |
store i32 %2717, ptr %2715 | |
%2718 = getelementptr [2 x i32], ptr %stack.ptr_800, i32 0, i32 0 | |
%2719 = getelementptr [3 x i32], ptr %2690, i32 0, i32 0 | |
%2720 = load i32, ptr %2719 | |
store i32 %2720, ptr %2718 | |
%2721 = getelementptr [2 x i32], ptr %stack.ptr_800, i32 0, i32 1 | |
%2722 = getelementptr [3 x i32], ptr %2690, i32 0, i32 2 | |
%2723 = load i32, ptr %2722 | |
store i32 %2723, ptr %2721 | |
%2724 = getelementptr %program, ptr %arg_0, i32 0, i32 59 | |
call ccc void @eclair_btree_lower_bound_1(ptr %2724, ptr %stack.ptr_799, ptr %stack.ptr_801) | |
%2725 = getelementptr %program, ptr %arg_0, i32 0, i32 59 | |
call ccc void @eclair_btree_upper_bound_1(ptr %2725, ptr %stack.ptr_800, ptr %stack.ptr_802) | |
br label %loop_177 | |
loop_177: | |
%2726 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_801, ptr %stack.ptr_802) | |
br i1 %2726, label %if_207, label %end_if_206 | |
if_207: | |
br label %range_query.end_172 | |
end_if_206: | |
%2727 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_801) | |
%2728 = getelementptr [3 x i32], ptr %stack.ptr_803, i32 0, i32 0 | |
%2729 = getelementptr [3 x i32], ptr %2690, i32 0, i32 0 | |
%2730 = load i32, ptr %2729 | |
store i32 %2730, ptr %2728 | |
%2731 = getelementptr [3 x i32], ptr %stack.ptr_803, i32 0, i32 1 | |
%2732 = getelementptr [3 x i32], ptr %2690, i32 0, i32 2 | |
%2733 = load i32, ptr %2732 | |
store i32 %2733, ptr %2731 | |
%2734 = getelementptr [3 x i32], ptr %stack.ptr_803, i32 0, i32 2 | |
%2735 = getelementptr [2 x i32], ptr %2711, i32 0, i32 1 | |
%2736 = load i32, ptr %2735 | |
store i32 %2736, ptr %2734 | |
%2737 = getelementptr %program, ptr %arg_0, i32 0, i32 64 | |
%2738 = call ccc i1 @eclair_btree_insert_value_0(ptr %2737, ptr %stack.ptr_803) | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_801) | |
br label %loop_177 | |
range_query.end_172: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_797) | |
br label %loop_176 | |
range_query.end_171: | |
br label %end_if_207 | |
end_if_207: | |
call ccc void @eclair_btree_iterator_next_0(ptr %stack.ptr_792) | |
br label %loop_175 | |
range_query.end_170: | |
%2739 = getelementptr [3 x i32], ptr %stack.ptr_804, i32 0, i32 0 | |
store i32 0, ptr %2739 | |
%2740 = getelementptr [3 x i32], ptr %stack.ptr_804, i32 0, i32 1 | |
store i32 0, ptr %2740 | |
%2741 = getelementptr [3 x i32], ptr %stack.ptr_804, i32 0, i32 2 | |
store i32 0, ptr %2741 | |
%2742 = getelementptr [3 x i32], ptr %stack.ptr_805, i32 0, i32 0 | |
store i32 4294967295, ptr %2742 | |
%2743 = getelementptr [3 x i32], ptr %stack.ptr_805, i32 0, i32 1 | |
store i32 4294967295, ptr %2743 | |
%2744 = getelementptr [3 x i32], ptr %stack.ptr_805, i32 0, i32 2 | |
store i32 4294967295, ptr %2744 | |
%2745 = getelementptr %program, ptr %arg_0, i32 0, i32 53 | |
call ccc void @eclair_btree_lower_bound_0(ptr %2745, ptr %stack.ptr_804, ptr %stack.ptr_806) | |
%2746 = getelementptr %program, ptr %arg_0, i32 0, i32 53 | |
call ccc void @eclair_btree_upper_bound_0(ptr %2746, ptr %stack.ptr_805, ptr %stack.ptr_807) | |
br label %loop_178 | |
loop_178: | |
%2747 = call ccc i1 @eclair_btree_iterator_is_equal_0(ptr %stack.ptr_806, ptr %stack.ptr_807) | |
br i1 %2747, label %if_208, label %end_if_208 | |
if_208: | |
br label %range_query.end_173 | |
end_if_208: | |
%2748 = call ccc ptr @eclair_btree_iterator_current_0(ptr %stack.ptr_806) | |
%2749 = getelementptr [4 x i32], ptr %stack.ptr_808, i32 0, i32 0 | |
%2750 = getelementptr [3 x i32], ptr %2748, i32 0, i32 2 | |
%2751 = load i32, ptr %2750 | |
store i32 %2751, ptr %2749 | |
%2752 = getelementptr [4 x i32], ptr %stack.ptr_808, i32 0, i32 1 | |
store i32 0, ptr %2752 | |
%2753 = getelementptr [4 x i32], ptr %stack.ptr_808, i32 0, i32 2 | |
store i32 0, ptr %2753 | |
%2754 = getelementptr [4 x i32], ptr %stack.ptr_808, i32 0, i32 3 | |
store i32 0, ptr %2754 | |
%2755 = getelementptr [4 x i32], ptr %stack.ptr_809, i32 0, i32 0 | |
%2756 = getelementptr [3 x i32], ptr %2748, i32 0, i32 2 | |
%2757 = load i32, ptr %2756 | |
store i32 %2757, ptr %2755 | |
%2758 = getelementptr [4 x i32], ptr %stack.ptr_809, i32 0, i32 1 | |
store i32 4294967295, ptr %2758 | |
%2759 = getelementptr [4 x i32], ptr %stack.ptr_809, i32 0, i32 2 | |
store i32 4294967295, ptr %2759 | |
%2760 = getelementptr [4 x i32], ptr %stack.ptr_809, i32 0, i32 3 | |
store i32 4294967295, ptr %2760 | |
%2761 = getelementptr %program, ptr %arg_0, i32 0, i32 9 | |
call ccc void @eclair_btree_lower_bound_4(ptr %2761, ptr %stack.ptr_808, ptr %stack.ptr_810) | |
%2762 = getelementptr %program, ptr %arg_0, i32 0, i32 9 | |
call ccc void @eclair_btree_upper_bound_4(ptr %2762, ptr %stack.ptr_809, ptr %stack.ptr_811) | |
br label %loop_179 | |
loop_179: | |
%2763 = call ccc i1 @eclair_btree_iterator_is_equal_4(ptr %stack.ptr_810, ptr %stack.ptr_811) | |
br i1 %2763, label %if_209, label %end_if_209 | |
if_209: | |
br label %range_query.end_174 | |
end_if_209: | |
%2764 = call ccc ptr @eclair_btree_iterator_current_4(ptr %stack.ptr_810) | |
%2765 = getelementptr [2 x i32], ptr %stack.ptr_812, i32 0, i32 0 | |
%2766 = getelementptr [3 x i32], ptr %2748, i32 0, i32 0 | |
%2767 = load i32, ptr %2766 | |
store i32 %2767, ptr %2765 | |
%2768 = getelementptr [2 x i32], ptr %stack.ptr_812, i32 0, i32 1 | |
%2769 = getelementptr [4 x i32], ptr %2764, i32 0, i32 3 | |
%2770 = load i32, ptr %2769 | |
store i32 %2770, ptr %2768 | |
%2771 = getelementptr %program, ptr %arg_0, i32 0, i32 27 | |
%2772 = call ccc i1 @eclair_btree_contains_1(ptr %2771, ptr %stack.ptr_812) | |
%2773 = select i1 %2772, i1 0, i1 1 | |
br i1 %2773, label %if_210, label %end_if_213 | |
if_210: | |
%2774 = getelementptr [1 x i32], ptr %stack.ptr_813, i32 0, i32 0 | |
%2775 = getelementptr [4 x i32], ptr %2764, i32 0, i32 1 | |
%2776 = load i32, ptr %2775 | |
store i32 %2776, ptr %2774 | |
%2777 = getelementptr [1 x i32], ptr %stack.ptr_814, i32 0, i32 0 | |
%2778 = getelementptr [4 x i32], ptr %2764, i32 0, i32 1 | |
%2779 = load i32, ptr %2778 | |
store i32 %2779, ptr %2777 | |
%2780 = getelementptr %program, ptr %arg_0, i32 0, i32 31 | |
call ccc void @eclair_btree_lower_bound_6(ptr %2780, ptr %stack.ptr_813, ptr %stack.ptr_815) | |
%2781 = getelementptr %program, ptr %arg_0, i32 0, i32 31 | |
call ccc void @eclair_btree_upper_bound_6(ptr %2781, ptr %stack.ptr_814, ptr %stack.ptr_816) | |
br label %loop_180 | |
loop_180: | |
%2782 = call ccc i1 @eclair_btree_iterator_is_equal_6(ptr %stack.ptr_815, ptr %stack.ptr_816) | |
br i1 %2782, label %if_211, label %end_if_210 | |
if_211: | |
br label %range_query.end_175 | |
end_if_210: | |
%2783 = call ccc ptr @eclair_btree_iterator_current_6(ptr %stack.ptr_815) | |
%2784 = getelementptr [2 x i32], ptr %stack.ptr_817, i32 0, i32 0 | |
%2785 = getelementptr [4 x i32], ptr %2764, i32 0, i32 3 | |
%2786 = load i32, ptr %2785 | |
store i32 %2786, ptr %2784 | |
%2787 = getelementptr [2 x i32], ptr %stack.ptr_817, i32 0, i32 1 | |
store i32 0, ptr %2787 | |
%2788 = getelementptr [2 x i32], ptr %stack.ptr_818, i32 0, i32 0 | |
%2789 = getelementptr [4 x i32], ptr %2764, i32 0, i32 3 | |
%2790 = load i32, ptr %2789 | |
store i32 %2790, ptr %2788 | |
%2791 = getelementptr [2 x i32], ptr %stack.ptr_818, i32 0, i32 1 | |
store i32 4294967295, ptr %2791 | |
%2792 = getelementptr %program, ptr %arg_0, i32 0, i32 3 | |
call ccc void @eclair_btree_lower_bound_1(ptr %2792, ptr %stack.ptr_817, ptr %stack.ptr_819) | |
%2793 = getelementptr %program, ptr %arg_0, i32 0, i32 3 | |
call ccc void @eclair_btree_upper_bound_1(ptr %2793, ptr %stack.ptr_818, ptr %stack.ptr_820) | |
br label %loop_181 | |
loop_181: | |
%2794 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_819, ptr %stack.ptr_820) | |
br i1 %2794, label %if_212, label %end_if_211 | |
if_212: | |
br label %range_query.end_176 | |
end_if_211: | |
%2795 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_819) | |
%2796 = getelementptr [2 x i32], ptr %stack.ptr_821, i32 0, i32 0 | |
%2797 = getelementptr [3 x i32], ptr %2748, i32 0, i32 0 | |
%2798 = load i32, ptr %2797 | |
store i32 %2798, ptr %2796 | |
%2799 = getelementptr [2 x i32], ptr %stack.ptr_821, i32 0, i32 1 | |
%2800 = getelementptr [4 x i32], ptr %2764, i32 0, i32 3 | |
%2801 = load i32, ptr %2800 | |
store i32 %2801, ptr %2799 | |
%2802 = getelementptr [2 x i32], ptr %stack.ptr_822, i32 0, i32 0 | |
%2803 = getelementptr [3 x i32], ptr %2748, i32 0, i32 0 | |
%2804 = load i32, ptr %2803 | |
store i32 %2804, ptr %2802 | |
%2805 = getelementptr [2 x i32], ptr %stack.ptr_822, i32 0, i32 1 | |
%2806 = getelementptr [4 x i32], ptr %2764, i32 0, i32 3 | |
%2807 = load i32, ptr %2806 | |
store i32 %2807, ptr %2805 | |
%2808 = getelementptr %program, ptr %arg_0, i32 0, i32 59 | |
call ccc void @eclair_btree_lower_bound_1(ptr %2808, ptr %stack.ptr_821, ptr %stack.ptr_823) | |
%2809 = getelementptr %program, ptr %arg_0, i32 0, i32 59 | |
call ccc void @eclair_btree_upper_bound_1(ptr %2809, ptr %stack.ptr_822, ptr %stack.ptr_824) | |
br label %loop_182 | |
loop_182: | |
%2810 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_823, ptr %stack.ptr_824) | |
br i1 %2810, label %if_213, label %end_if_212 | |
if_213: | |
br label %range_query.end_177 | |
end_if_212: | |
%2811 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_823) | |
%2812 = getelementptr [3 x i32], ptr %stack.ptr_825, i32 0, i32 0 | |
%2813 = getelementptr [3 x i32], ptr %2748, i32 0, i32 0 | |
%2814 = load i32, ptr %2813 | |
store i32 %2814, ptr %2812 | |
%2815 = getelementptr [3 x i32], ptr %stack.ptr_825, i32 0, i32 1 | |
%2816 = getelementptr [4 x i32], ptr %2764, i32 0, i32 3 | |
%2817 = load i32, ptr %2816 | |
store i32 %2817, ptr %2815 | |
%2818 = getelementptr [3 x i32], ptr %stack.ptr_825, i32 0, i32 2 | |
%2819 = getelementptr [2 x i32], ptr %2795, i32 0, i32 1 | |
%2820 = load i32, ptr %2819 | |
store i32 %2820, ptr %2818 | |
%2821 = getelementptr %program, ptr %arg_0, i32 0, i32 64 | |
%2822 = call ccc i1 @eclair_btree_insert_value_0(ptr %2821, ptr %stack.ptr_825) | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_823) | |
br label %loop_182 | |
range_query.end_177: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_819) | |
br label %loop_181 | |
range_query.end_176: | |
call ccc void @eclair_btree_iterator_next_6(ptr %stack.ptr_815) | |
br label %loop_180 | |
range_query.end_175: | |
br label %end_if_213 | |
end_if_213: | |
call ccc void @eclair_btree_iterator_next_4(ptr %stack.ptr_810) | |
br label %loop_179 | |
range_query.end_174: | |
call ccc void @eclair_btree_iterator_next_0(ptr %stack.ptr_806) | |
br label %loop_178 | |
range_query.end_173: | |
%2823 = getelementptr [3 x i32], ptr %stack.ptr_826, i32 0, i32 0 | |
store i32 0, ptr %2823 | |
%2824 = getelementptr [3 x i32], ptr %stack.ptr_826, i32 0, i32 1 | |
store i32 0, ptr %2824 | |
%2825 = getelementptr [3 x i32], ptr %stack.ptr_826, i32 0, i32 2 | |
store i32 0, ptr %2825 | |
%2826 = getelementptr [3 x i32], ptr %stack.ptr_827, i32 0, i32 0 | |
store i32 4294967295, ptr %2826 | |
%2827 = getelementptr [3 x i32], ptr %stack.ptr_827, i32 0, i32 1 | |
store i32 4294967295, ptr %2827 | |
%2828 = getelementptr [3 x i32], ptr %stack.ptr_827, i32 0, i32 2 | |
store i32 4294967295, ptr %2828 | |
%2829 = getelementptr %program, ptr %arg_0, i32 0, i32 53 | |
call ccc void @eclair_btree_lower_bound_0(ptr %2829, ptr %stack.ptr_826, ptr %stack.ptr_828) | |
%2830 = getelementptr %program, ptr %arg_0, i32 0, i32 53 | |
call ccc void @eclair_btree_upper_bound_0(ptr %2830, ptr %stack.ptr_827, ptr %stack.ptr_829) | |
br label %loop_183 | |
loop_183: | |
%2831 = call ccc i1 @eclair_btree_iterator_is_equal_0(ptr %stack.ptr_828, ptr %stack.ptr_829) | |
br i1 %2831, label %if_214, label %end_if_214 | |
if_214: | |
br label %range_query.end_178 | |
end_if_214: | |
%2832 = call ccc ptr @eclair_btree_iterator_current_0(ptr %stack.ptr_828) | |
%2833 = getelementptr [4 x i32], ptr %stack.ptr_830, i32 0, i32 0 | |
%2834 = getelementptr [3 x i32], ptr %2832, i32 0, i32 2 | |
%2835 = load i32, ptr %2834 | |
store i32 %2835, ptr %2833 | |
%2836 = getelementptr [4 x i32], ptr %stack.ptr_830, i32 0, i32 1 | |
store i32 0, ptr %2836 | |
%2837 = getelementptr [4 x i32], ptr %stack.ptr_830, i32 0, i32 2 | |
store i32 0, ptr %2837 | |
%2838 = getelementptr [4 x i32], ptr %stack.ptr_830, i32 0, i32 3 | |
store i32 0, ptr %2838 | |
%2839 = getelementptr [4 x i32], ptr %stack.ptr_831, i32 0, i32 0 | |
%2840 = getelementptr [3 x i32], ptr %2832, i32 0, i32 2 | |
%2841 = load i32, ptr %2840 | |
store i32 %2841, ptr %2839 | |
%2842 = getelementptr [4 x i32], ptr %stack.ptr_831, i32 0, i32 1 | |
store i32 4294967295, ptr %2842 | |
%2843 = getelementptr [4 x i32], ptr %stack.ptr_831, i32 0, i32 2 | |
store i32 4294967295, ptr %2843 | |
%2844 = getelementptr [4 x i32], ptr %stack.ptr_831, i32 0, i32 3 | |
store i32 4294967295, ptr %2844 | |
%2845 = getelementptr %program, ptr %arg_0, i32 0, i32 9 | |
call ccc void @eclair_btree_lower_bound_4(ptr %2845, ptr %stack.ptr_830, ptr %stack.ptr_832) | |
%2846 = getelementptr %program, ptr %arg_0, i32 0, i32 9 | |
call ccc void @eclair_btree_upper_bound_4(ptr %2846, ptr %stack.ptr_831, ptr %stack.ptr_833) | |
br label %loop_184 | |
loop_184: | |
%2847 = call ccc i1 @eclair_btree_iterator_is_equal_4(ptr %stack.ptr_832, ptr %stack.ptr_833) | |
br i1 %2847, label %if_215, label %end_if_215 | |
if_215: | |
br label %range_query.end_179 | |
end_if_215: | |
%2848 = call ccc ptr @eclair_btree_iterator_current_4(ptr %stack.ptr_832) | |
%2849 = getelementptr [2 x i32], ptr %stack.ptr_834, i32 0, i32 0 | |
%2850 = getelementptr [3 x i32], ptr %2832, i32 0, i32 0 | |
%2851 = load i32, ptr %2850 | |
store i32 %2851, ptr %2849 | |
%2852 = getelementptr [2 x i32], ptr %stack.ptr_834, i32 0, i32 1 | |
%2853 = getelementptr [4 x i32], ptr %2848, i32 0, i32 2 | |
%2854 = load i32, ptr %2853 | |
store i32 %2854, ptr %2852 | |
%2855 = getelementptr %program, ptr %arg_0, i32 0, i32 27 | |
%2856 = call ccc i1 @eclair_btree_contains_1(ptr %2855, ptr %stack.ptr_834) | |
%2857 = select i1 %2856, i1 0, i1 1 | |
br i1 %2857, label %if_216, label %end_if_219 | |
if_216: | |
%2858 = getelementptr [1 x i32], ptr %stack.ptr_835, i32 0, i32 0 | |
%2859 = getelementptr [4 x i32], ptr %2848, i32 0, i32 1 | |
%2860 = load i32, ptr %2859 | |
store i32 %2860, ptr %2858 | |
%2861 = getelementptr [1 x i32], ptr %stack.ptr_836, i32 0, i32 0 | |
%2862 = getelementptr [4 x i32], ptr %2848, i32 0, i32 1 | |
%2863 = load i32, ptr %2862 | |
store i32 %2863, ptr %2861 | |
%2864 = getelementptr %program, ptr %arg_0, i32 0, i32 31 | |
call ccc void @eclair_btree_lower_bound_6(ptr %2864, ptr %stack.ptr_835, ptr %stack.ptr_837) | |
%2865 = getelementptr %program, ptr %arg_0, i32 0, i32 31 | |
call ccc void @eclair_btree_upper_bound_6(ptr %2865, ptr %stack.ptr_836, ptr %stack.ptr_838) | |
br label %loop_185 | |
loop_185: | |
%2866 = call ccc i1 @eclair_btree_iterator_is_equal_6(ptr %stack.ptr_837, ptr %stack.ptr_838) | |
br i1 %2866, label %if_217, label %end_if_216 | |
if_217: | |
br label %range_query.end_180 | |
end_if_216: | |
%2867 = call ccc ptr @eclair_btree_iterator_current_6(ptr %stack.ptr_837) | |
%2868 = getelementptr [2 x i32], ptr %stack.ptr_839, i32 0, i32 0 | |
%2869 = getelementptr [4 x i32], ptr %2848, i32 0, i32 2 | |
%2870 = load i32, ptr %2869 | |
store i32 %2870, ptr %2868 | |
%2871 = getelementptr [2 x i32], ptr %stack.ptr_839, i32 0, i32 1 | |
store i32 0, ptr %2871 | |
%2872 = getelementptr [2 x i32], ptr %stack.ptr_840, i32 0, i32 0 | |
%2873 = getelementptr [4 x i32], ptr %2848, i32 0, i32 2 | |
%2874 = load i32, ptr %2873 | |
store i32 %2874, ptr %2872 | |
%2875 = getelementptr [2 x i32], ptr %stack.ptr_840, i32 0, i32 1 | |
store i32 4294967295, ptr %2875 | |
%2876 = getelementptr %program, ptr %arg_0, i32 0, i32 3 | |
call ccc void @eclair_btree_lower_bound_1(ptr %2876, ptr %stack.ptr_839, ptr %stack.ptr_841) | |
%2877 = getelementptr %program, ptr %arg_0, i32 0, i32 3 | |
call ccc void @eclair_btree_upper_bound_1(ptr %2877, ptr %stack.ptr_840, ptr %stack.ptr_842) | |
br label %loop_186 | |
loop_186: | |
%2878 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_841, ptr %stack.ptr_842) | |
br i1 %2878, label %if_218, label %end_if_217 | |
if_218: | |
br label %range_query.end_181 | |
end_if_217: | |
%2879 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_841) | |
%2880 = getelementptr [2 x i32], ptr %stack.ptr_843, i32 0, i32 0 | |
%2881 = getelementptr [3 x i32], ptr %2832, i32 0, i32 0 | |
%2882 = load i32, ptr %2881 | |
store i32 %2882, ptr %2880 | |
%2883 = getelementptr [2 x i32], ptr %stack.ptr_843, i32 0, i32 1 | |
%2884 = getelementptr [4 x i32], ptr %2848, i32 0, i32 2 | |
%2885 = load i32, ptr %2884 | |
store i32 %2885, ptr %2883 | |
%2886 = getelementptr [2 x i32], ptr %stack.ptr_844, i32 0, i32 0 | |
%2887 = getelementptr [3 x i32], ptr %2832, i32 0, i32 0 | |
%2888 = load i32, ptr %2887 | |
store i32 %2888, ptr %2886 | |
%2889 = getelementptr [2 x i32], ptr %stack.ptr_844, i32 0, i32 1 | |
%2890 = getelementptr [4 x i32], ptr %2848, i32 0, i32 2 | |
%2891 = load i32, ptr %2890 | |
store i32 %2891, ptr %2889 | |
%2892 = getelementptr %program, ptr %arg_0, i32 0, i32 59 | |
call ccc void @eclair_btree_lower_bound_1(ptr %2892, ptr %stack.ptr_843, ptr %stack.ptr_845) | |
%2893 = getelementptr %program, ptr %arg_0, i32 0, i32 59 | |
call ccc void @eclair_btree_upper_bound_1(ptr %2893, ptr %stack.ptr_844, ptr %stack.ptr_846) | |
br label %loop_187 | |
loop_187: | |
%2894 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_845, ptr %stack.ptr_846) | |
br i1 %2894, label %if_219, label %end_if_218 | |
if_219: | |
br label %range_query.end_182 | |
end_if_218: | |
%2895 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_845) | |
%2896 = getelementptr [3 x i32], ptr %stack.ptr_847, i32 0, i32 0 | |
%2897 = getelementptr [3 x i32], ptr %2832, i32 0, i32 0 | |
%2898 = load i32, ptr %2897 | |
store i32 %2898, ptr %2896 | |
%2899 = getelementptr [3 x i32], ptr %stack.ptr_847, i32 0, i32 1 | |
%2900 = getelementptr [4 x i32], ptr %2848, i32 0, i32 2 | |
%2901 = load i32, ptr %2900 | |
store i32 %2901, ptr %2899 | |
%2902 = getelementptr [3 x i32], ptr %stack.ptr_847, i32 0, i32 2 | |
%2903 = getelementptr [2 x i32], ptr %2879, i32 0, i32 1 | |
%2904 = load i32, ptr %2903 | |
store i32 %2904, ptr %2902 | |
%2905 = getelementptr %program, ptr %arg_0, i32 0, i32 64 | |
%2906 = call ccc i1 @eclair_btree_insert_value_0(ptr %2905, ptr %stack.ptr_847) | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_845) | |
br label %loop_187 | |
range_query.end_182: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_841) | |
br label %loop_186 | |
range_query.end_181: | |
call ccc void @eclair_btree_iterator_next_6(ptr %stack.ptr_837) | |
br label %loop_185 | |
range_query.end_180: | |
br label %end_if_219 | |
end_if_219: | |
call ccc void @eclair_btree_iterator_next_4(ptr %stack.ptr_832) | |
br label %loop_184 | |
range_query.end_179: | |
call ccc void @eclair_btree_iterator_next_0(ptr %stack.ptr_828) | |
br label %loop_183 | |
range_query.end_178: | |
%2907 = getelementptr [4 x i32], ptr %stack.ptr_848, i32 0, i32 0 | |
store i32 0, ptr %2907 | |
%2908 = getelementptr [4 x i32], ptr %stack.ptr_848, i32 0, i32 1 | |
store i32 0, ptr %2908 | |
%2909 = getelementptr [4 x i32], ptr %stack.ptr_848, i32 0, i32 2 | |
store i32 0, ptr %2909 | |
%2910 = getelementptr [4 x i32], ptr %stack.ptr_848, i32 0, i32 3 | |
store i32 0, ptr %2910 | |
%2911 = getelementptr [4 x i32], ptr %stack.ptr_849, i32 0, i32 0 | |
store i32 4294967295, ptr %2911 | |
%2912 = getelementptr [4 x i32], ptr %stack.ptr_849, i32 0, i32 1 | |
store i32 4294967295, ptr %2912 | |
%2913 = getelementptr [4 x i32], ptr %stack.ptr_849, i32 0, i32 2 | |
store i32 4294967295, ptr %2913 | |
%2914 = getelementptr [4 x i32], ptr %stack.ptr_849, i32 0, i32 3 | |
store i32 4294967295, ptr %2914 | |
%2915 = getelementptr %program, ptr %arg_0, i32 0, i32 6 | |
call ccc void @eclair_btree_lower_bound_3(ptr %2915, ptr %stack.ptr_848, ptr %stack.ptr_850) | |
%2916 = getelementptr %program, ptr %arg_0, i32 0, i32 6 | |
call ccc void @eclair_btree_upper_bound_3(ptr %2916, ptr %stack.ptr_849, ptr %stack.ptr_851) | |
br label %loop_188 | |
loop_188: | |
%2917 = call ccc i1 @eclair_btree_iterator_is_equal_3(ptr %stack.ptr_850, ptr %stack.ptr_851) | |
br i1 %2917, label %if_220, label %end_if_220 | |
if_220: | |
br label %range_query.end_183 | |
end_if_220: | |
%2918 = call ccc ptr @eclair_btree_iterator_current_3(ptr %stack.ptr_850) | |
%2919 = getelementptr [2 x i32], ptr %stack.ptr_852, i32 0, i32 0 | |
%2920 = getelementptr [4 x i32], ptr %2918, i32 0, i32 3 | |
%2921 = load i32, ptr %2920 | |
store i32 %2921, ptr %2919 | |
%2922 = getelementptr [2 x i32], ptr %stack.ptr_852, i32 0, i32 1 | |
store i32 0, ptr %2922 | |
%2923 = getelementptr [2 x i32], ptr %stack.ptr_853, i32 0, i32 0 | |
%2924 = getelementptr [4 x i32], ptr %2918, i32 0, i32 3 | |
%2925 = load i32, ptr %2924 | |
store i32 %2925, ptr %2923 | |
%2926 = getelementptr [2 x i32], ptr %stack.ptr_853, i32 0, i32 1 | |
store i32 4294967295, ptr %2926 | |
%2927 = getelementptr %program, ptr %arg_0, i32 0, i32 3 | |
call ccc void @eclair_btree_lower_bound_1(ptr %2927, ptr %stack.ptr_852, ptr %stack.ptr_854) | |
%2928 = getelementptr %program, ptr %arg_0, i32 0, i32 3 | |
call ccc void @eclair_btree_upper_bound_1(ptr %2928, ptr %stack.ptr_853, ptr %stack.ptr_855) | |
br label %loop_189 | |
loop_189: | |
%2929 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_854, ptr %stack.ptr_855) | |
br i1 %2929, label %if_221, label %end_if_221 | |
if_221: | |
br label %range_query.end_184 | |
end_if_221: | |
%2930 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_854) | |
%2931 = getelementptr [2 x i32], ptr %stack.ptr_856, i32 0, i32 0 | |
store i32 0, ptr %2931 | |
%2932 = getelementptr [2 x i32], ptr %stack.ptr_856, i32 0, i32 1 | |
%2933 = getelementptr [4 x i32], ptr %2918, i32 0, i32 3 | |
%2934 = load i32, ptr %2933 | |
store i32 %2934, ptr %2932 | |
%2935 = getelementptr [2 x i32], ptr %stack.ptr_857, i32 0, i32 0 | |
store i32 4294967295, ptr %2935 | |
%2936 = getelementptr [2 x i32], ptr %stack.ptr_857, i32 0, i32 1 | |
%2937 = getelementptr [4 x i32], ptr %2918, i32 0, i32 3 | |
%2938 = load i32, ptr %2937 | |
store i32 %2938, ptr %2936 | |
%2939 = getelementptr %program, ptr %arg_0, i32 0, i32 60 | |
call ccc void @eclair_btree_lower_bound_2(ptr %2939, ptr %stack.ptr_856, ptr %stack.ptr_858) | |
%2940 = getelementptr %program, ptr %arg_0, i32 0, i32 60 | |
call ccc void @eclair_btree_upper_bound_2(ptr %2940, ptr %stack.ptr_857, ptr %stack.ptr_859) | |
br label %loop_190 | |
loop_190: | |
%2941 = call ccc i1 @eclair_btree_iterator_is_equal_2(ptr %stack.ptr_858, ptr %stack.ptr_859) | |
br i1 %2941, label %if_222, label %end_if_222 | |
if_222: | |
br label %range_query.end_185 | |
end_if_222: | |
%2942 = call ccc ptr @eclair_btree_iterator_current_2(ptr %stack.ptr_858) | |
%2943 = getelementptr [2 x i32], ptr %stack.ptr_860, i32 0, i32 0 | |
%2944 = getelementptr [2 x i32], ptr %2942, i32 0, i32 0 | |
%2945 = load i32, ptr %2944 | |
store i32 %2945, ptr %2943 | |
%2946 = getelementptr [2 x i32], ptr %stack.ptr_860, i32 0, i32 1 | |
%2947 = getelementptr [4 x i32], ptr %2918, i32 0, i32 3 | |
%2948 = load i32, ptr %2947 | |
store i32 %2948, ptr %2946 | |
%2949 = getelementptr %program, ptr %arg_0, i32 0, i32 27 | |
%2950 = call ccc i1 @eclair_btree_contains_1(ptr %2949, ptr %stack.ptr_860) | |
%2951 = select i1 %2950, i1 0, i1 1 | |
br i1 %2951, label %if_223, label %end_if_223 | |
if_223: | |
%2952 = getelementptr [3 x i32], ptr %stack.ptr_861, i32 0, i32 0 | |
%2953 = getelementptr [2 x i32], ptr %2942, i32 0, i32 0 | |
%2954 = load i32, ptr %2953 | |
store i32 %2954, ptr %2952 | |
%2955 = getelementptr [3 x i32], ptr %stack.ptr_861, i32 0, i32 1 | |
%2956 = getelementptr [4 x i32], ptr %2918, i32 0, i32 3 | |
%2957 = load i32, ptr %2956 | |
store i32 %2957, ptr %2955 | |
%2958 = getelementptr [3 x i32], ptr %stack.ptr_861, i32 0, i32 2 | |
%2959 = getelementptr [2 x i32], ptr %2930, i32 0, i32 1 | |
%2960 = load i32, ptr %2959 | |
store i32 %2960, ptr %2958 | |
%2961 = getelementptr %program, ptr %arg_0, i32 0, i32 64 | |
%2962 = call ccc i1 @eclair_btree_insert_value_0(ptr %2961, ptr %stack.ptr_861) | |
br label %end_if_223 | |
end_if_223: | |
call ccc void @eclair_btree_iterator_next_2(ptr %stack.ptr_858) | |
br label %loop_190 | |
range_query.end_185: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_854) | |
br label %loop_189 | |
range_query.end_184: | |
call ccc void @eclair_btree_iterator_next_3(ptr %stack.ptr_850) | |
br label %loop_188 | |
range_query.end_183: | |
%2963 = getelementptr [4 x i32], ptr %stack.ptr_862, i32 0, i32 0 | |
store i32 0, ptr %2963 | |
%2964 = getelementptr [4 x i32], ptr %stack.ptr_862, i32 0, i32 1 | |
store i32 0, ptr %2964 | |
%2965 = getelementptr [4 x i32], ptr %stack.ptr_862, i32 0, i32 2 | |
store i32 0, ptr %2965 | |
%2966 = getelementptr [4 x i32], ptr %stack.ptr_862, i32 0, i32 3 | |
store i32 0, ptr %2966 | |
%2967 = getelementptr [4 x i32], ptr %stack.ptr_863, i32 0, i32 0 | |
store i32 4294967295, ptr %2967 | |
%2968 = getelementptr [4 x i32], ptr %stack.ptr_863, i32 0, i32 1 | |
store i32 4294967295, ptr %2968 | |
%2969 = getelementptr [4 x i32], ptr %stack.ptr_863, i32 0, i32 2 | |
store i32 4294967295, ptr %2969 | |
%2970 = getelementptr [4 x i32], ptr %stack.ptr_863, i32 0, i32 3 | |
store i32 4294967295, ptr %2970 | |
%2971 = getelementptr %program, ptr %arg_0, i32 0, i32 6 | |
call ccc void @eclair_btree_lower_bound_3(ptr %2971, ptr %stack.ptr_862, ptr %stack.ptr_864) | |
%2972 = getelementptr %program, ptr %arg_0, i32 0, i32 6 | |
call ccc void @eclair_btree_upper_bound_3(ptr %2972, ptr %stack.ptr_863, ptr %stack.ptr_865) | |
br label %loop_191 | |
loop_191: | |
%2973 = call ccc i1 @eclair_btree_iterator_is_equal_3(ptr %stack.ptr_864, ptr %stack.ptr_865) | |
br i1 %2973, label %if_224, label %end_if_224 | |
if_224: | |
br label %range_query.end_186 | |
end_if_224: | |
%2974 = call ccc ptr @eclair_btree_iterator_current_3(ptr %stack.ptr_864) | |
%2975 = getelementptr [2 x i32], ptr %stack.ptr_866, i32 0, i32 0 | |
%2976 = getelementptr [4 x i32], ptr %2974, i32 0, i32 2 | |
%2977 = load i32, ptr %2976 | |
store i32 %2977, ptr %2975 | |
%2978 = getelementptr [2 x i32], ptr %stack.ptr_866, i32 0, i32 1 | |
store i32 0, ptr %2978 | |
%2979 = getelementptr [2 x i32], ptr %stack.ptr_867, i32 0, i32 0 | |
%2980 = getelementptr [4 x i32], ptr %2974, i32 0, i32 2 | |
%2981 = load i32, ptr %2980 | |
store i32 %2981, ptr %2979 | |
%2982 = getelementptr [2 x i32], ptr %stack.ptr_867, i32 0, i32 1 | |
store i32 4294967295, ptr %2982 | |
%2983 = getelementptr %program, ptr %arg_0, i32 0, i32 3 | |
call ccc void @eclair_btree_lower_bound_1(ptr %2983, ptr %stack.ptr_866, ptr %stack.ptr_868) | |
%2984 = getelementptr %program, ptr %arg_0, i32 0, i32 3 | |
call ccc void @eclair_btree_upper_bound_1(ptr %2984, ptr %stack.ptr_867, ptr %stack.ptr_869) | |
br label %loop_192 | |
loop_192: | |
%2985 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_868, ptr %stack.ptr_869) | |
br i1 %2985, label %if_225, label %end_if_225 | |
if_225: | |
br label %range_query.end_187 | |
end_if_225: | |
%2986 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_868) | |
%2987 = getelementptr [2 x i32], ptr %stack.ptr_870, i32 0, i32 0 | |
store i32 0, ptr %2987 | |
%2988 = getelementptr [2 x i32], ptr %stack.ptr_870, i32 0, i32 1 | |
%2989 = getelementptr [4 x i32], ptr %2974, i32 0, i32 2 | |
%2990 = load i32, ptr %2989 | |
store i32 %2990, ptr %2988 | |
%2991 = getelementptr [2 x i32], ptr %stack.ptr_871, i32 0, i32 0 | |
store i32 4294967295, ptr %2991 | |
%2992 = getelementptr [2 x i32], ptr %stack.ptr_871, i32 0, i32 1 | |
%2993 = getelementptr [4 x i32], ptr %2974, i32 0, i32 2 | |
%2994 = load i32, ptr %2993 | |
store i32 %2994, ptr %2992 | |
%2995 = getelementptr %program, ptr %arg_0, i32 0, i32 60 | |
call ccc void @eclair_btree_lower_bound_2(ptr %2995, ptr %stack.ptr_870, ptr %stack.ptr_872) | |
%2996 = getelementptr %program, ptr %arg_0, i32 0, i32 60 | |
call ccc void @eclair_btree_upper_bound_2(ptr %2996, ptr %stack.ptr_871, ptr %stack.ptr_873) | |
br label %loop_193 | |
loop_193: | |
%2997 = call ccc i1 @eclair_btree_iterator_is_equal_2(ptr %stack.ptr_872, ptr %stack.ptr_873) | |
br i1 %2997, label %if_226, label %end_if_226 | |
if_226: | |
br label %range_query.end_188 | |
end_if_226: | |
%2998 = call ccc ptr @eclair_btree_iterator_current_2(ptr %stack.ptr_872) | |
%2999 = getelementptr [2 x i32], ptr %stack.ptr_874, i32 0, i32 0 | |
%3000 = getelementptr [2 x i32], ptr %2998, i32 0, i32 0 | |
%3001 = load i32, ptr %3000 | |
store i32 %3001, ptr %2999 | |
%3002 = getelementptr [2 x i32], ptr %stack.ptr_874, i32 0, i32 1 | |
%3003 = getelementptr [4 x i32], ptr %2974, i32 0, i32 2 | |
%3004 = load i32, ptr %3003 | |
store i32 %3004, ptr %3002 | |
%3005 = getelementptr %program, ptr %arg_0, i32 0, i32 27 | |
%3006 = call ccc i1 @eclair_btree_contains_1(ptr %3005, ptr %stack.ptr_874) | |
%3007 = select i1 %3006, i1 0, i1 1 | |
br i1 %3007, label %if_227, label %end_if_227 | |
if_227: | |
%3008 = getelementptr [3 x i32], ptr %stack.ptr_875, i32 0, i32 0 | |
%3009 = getelementptr [2 x i32], ptr %2998, i32 0, i32 0 | |
%3010 = load i32, ptr %3009 | |
store i32 %3010, ptr %3008 | |
%3011 = getelementptr [3 x i32], ptr %stack.ptr_875, i32 0, i32 1 | |
%3012 = getelementptr [4 x i32], ptr %2974, i32 0, i32 2 | |
%3013 = load i32, ptr %3012 | |
store i32 %3013, ptr %3011 | |
%3014 = getelementptr [3 x i32], ptr %stack.ptr_875, i32 0, i32 2 | |
%3015 = getelementptr [2 x i32], ptr %2986, i32 0, i32 1 | |
%3016 = load i32, ptr %3015 | |
store i32 %3016, ptr %3014 | |
%3017 = getelementptr %program, ptr %arg_0, i32 0, i32 64 | |
%3018 = call ccc i1 @eclair_btree_insert_value_0(ptr %3017, ptr %stack.ptr_875) | |
br label %end_if_227 | |
end_if_227: | |
call ccc void @eclair_btree_iterator_next_2(ptr %stack.ptr_872) | |
br label %loop_193 | |
range_query.end_188: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_868) | |
br label %loop_192 | |
range_query.end_187: | |
call ccc void @eclair_btree_iterator_next_3(ptr %stack.ptr_864) | |
br label %loop_191 | |
range_query.end_186: | |
%3019 = getelementptr [2 x i32], ptr %stack.ptr_876, i32 0, i32 0 | |
store i32 0, ptr %3019 | |
%3020 = getelementptr [2 x i32], ptr %stack.ptr_876, i32 0, i32 1 | |
store i32 0, ptr %3020 | |
%3021 = getelementptr [2 x i32], ptr %stack.ptr_877, i32 0, i32 0 | |
store i32 4294967295, ptr %3021 | |
%3022 = getelementptr [2 x i32], ptr %stack.ptr_877, i32 0, i32 1 | |
store i32 4294967295, ptr %3022 | |
%3023 = getelementptr %program, ptr %arg_0, i32 0, i32 27 | |
call ccc void @eclair_btree_lower_bound_1(ptr %3023, ptr %stack.ptr_876, ptr %stack.ptr_878) | |
%3024 = getelementptr %program, ptr %arg_0, i32 0, i32 27 | |
call ccc void @eclair_btree_upper_bound_1(ptr %3024, ptr %stack.ptr_877, ptr %stack.ptr_879) | |
br label %loop_194 | |
loop_194: | |
%3025 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_878, ptr %stack.ptr_879) | |
br i1 %3025, label %if_228, label %end_if_228 | |
if_228: | |
br label %range_query.end_189 | |
end_if_228: | |
%3026 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_878) | |
%3027 = getelementptr [2 x i32], ptr %stack.ptr_880, i32 0, i32 0 | |
%3028 = getelementptr [2 x i32], ptr %3026, i32 0, i32 1 | |
%3029 = load i32, ptr %3028 | |
store i32 %3029, ptr %3027 | |
%3030 = getelementptr [2 x i32], ptr %stack.ptr_880, i32 0, i32 1 | |
store i32 0, ptr %3030 | |
%3031 = getelementptr [2 x i32], ptr %stack.ptr_881, i32 0, i32 0 | |
%3032 = getelementptr [2 x i32], ptr %3026, i32 0, i32 1 | |
%3033 = load i32, ptr %3032 | |
store i32 %3033, ptr %3031 | |
%3034 = getelementptr [2 x i32], ptr %stack.ptr_881, i32 0, i32 1 | |
store i32 4294967295, ptr %3034 | |
%3035 = getelementptr %program, ptr %arg_0, i32 0, i32 66 | |
call ccc void @eclair_btree_lower_bound_1(ptr %3035, ptr %stack.ptr_880, ptr %stack.ptr_882) | |
%3036 = getelementptr %program, ptr %arg_0, i32 0, i32 66 | |
call ccc void @eclair_btree_upper_bound_1(ptr %3036, ptr %stack.ptr_881, ptr %stack.ptr_883) | |
br label %loop_195 | |
loop_195: | |
%3037 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_882, ptr %stack.ptr_883) | |
br i1 %3037, label %if_229, label %end_if_229 | |
if_229: | |
br label %range_query.end_190 | |
end_if_229: | |
%3038 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_882) | |
%3039 = getelementptr [2 x i32], ptr %stack.ptr_884, i32 0, i32 0 | |
%3040 = getelementptr [2 x i32], ptr %3026, i32 0, i32 0 | |
%3041 = load i32, ptr %3040 | |
store i32 %3041, ptr %3039 | |
%3042 = getelementptr [2 x i32], ptr %stack.ptr_884, i32 0, i32 1 | |
%3043 = getelementptr [2 x i32], ptr %3038, i32 0, i32 1 | |
%3044 = load i32, ptr %3043 | |
store i32 %3044, ptr %3042 | |
%3045 = getelementptr %program, ptr %arg_0, i32 0, i32 28 | |
%3046 = call ccc i1 @eclair_btree_insert_value_1(ptr %3045, ptr %stack.ptr_884) | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_882) | |
br label %loop_195 | |
range_query.end_190: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_878) | |
br label %loop_194 | |
range_query.end_189: | |
%3047 = getelementptr [3 x i32], ptr %stack.ptr_885, i32 0, i32 0 | |
store i32 0, ptr %3047 | |
%3048 = getelementptr [3 x i32], ptr %stack.ptr_885, i32 0, i32 1 | |
store i32 0, ptr %3048 | |
%3049 = getelementptr [3 x i32], ptr %stack.ptr_885, i32 0, i32 2 | |
store i32 0, ptr %3049 | |
%3050 = getelementptr [3 x i32], ptr %stack.ptr_886, i32 0, i32 0 | |
store i32 4294967295, ptr %3050 | |
%3051 = getelementptr [3 x i32], ptr %stack.ptr_886, i32 0, i32 1 | |
store i32 4294967295, ptr %3051 | |
%3052 = getelementptr [3 x i32], ptr %stack.ptr_886, i32 0, i32 2 | |
store i32 4294967295, ptr %3052 | |
%3053 = getelementptr %program, ptr %arg_0, i32 0, i32 55 | |
call ccc void @eclair_btree_lower_bound_0(ptr %3053, ptr %stack.ptr_885, ptr %stack.ptr_887) | |
%3054 = getelementptr %program, ptr %arg_0, i32 0, i32 55 | |
call ccc void @eclair_btree_upper_bound_0(ptr %3054, ptr %stack.ptr_886, ptr %stack.ptr_888) | |
br label %loop_196 | |
loop_196: | |
%3055 = call ccc i1 @eclair_btree_iterator_is_equal_0(ptr %stack.ptr_887, ptr %stack.ptr_888) | |
br i1 %3055, label %if_230, label %end_if_230 | |
if_230: | |
br label %range_query.end_191 | |
end_if_230: | |
%3056 = call ccc ptr @eclair_btree_iterator_current_0(ptr %stack.ptr_887) | |
%3057 = getelementptr [3 x i32], ptr %3056, i32 0, i32 2 | |
%3058 = load i32, ptr %3057 | |
%3059 = icmp ne i32 %3058, 54 | |
br i1 %3059, label %if_231, label %end_if_232 | |
if_231: | |
%3060 = getelementptr [2 x i32], ptr %stack.ptr_889, i32 0, i32 0 | |
%3061 = getelementptr [3 x i32], ptr %3056, i32 0, i32 0 | |
%3062 = load i32, ptr %3061 | |
store i32 %3062, ptr %3060 | |
%3063 = getelementptr [2 x i32], ptr %stack.ptr_889, i32 0, i32 1 | |
%3064 = getelementptr [3 x i32], ptr %3056, i32 0, i32 2 | |
%3065 = load i32, ptr %3064 | |
store i32 %3065, ptr %3063 | |
%3066 = getelementptr %program, ptr %arg_0, i32 0, i32 28 | |
%3067 = call ccc i1 @eclair_btree_contains_1(ptr %3066, ptr %stack.ptr_889) | |
%3068 = select i1 %3067, i1 0, i1 1 | |
br i1 %3068, label %if_232, label %end_if_231 | |
if_232: | |
%3069 = getelementptr [3 x i32], ptr %stack.ptr_890, i32 0, i32 0 | |
%3070 = getelementptr [3 x i32], ptr %3056, i32 0, i32 0 | |
%3071 = load i32, ptr %3070 | |
store i32 %3071, ptr %3069 | |
%3072 = getelementptr [3 x i32], ptr %stack.ptr_890, i32 0, i32 1 | |
%3073 = getelementptr [3 x i32], ptr %3056, i32 0, i32 1 | |
%3074 = load i32, ptr %3073 | |
store i32 %3074, ptr %3072 | |
%3075 = getelementptr [3 x i32], ptr %stack.ptr_890, i32 0, i32 2 | |
%3076 = getelementptr [3 x i32], ptr %3056, i32 0, i32 2 | |
%3077 = load i32, ptr %3076 | |
store i32 %3077, ptr %3075 | |
%3078 = getelementptr %program, ptr %arg_0, i32 0, i32 65 | |
%3079 = call ccc i1 @eclair_btree_insert_value_0(ptr %3078, ptr %stack.ptr_890) | |
br label %end_if_231 | |
end_if_231: | |
br label %end_if_232 | |
end_if_232: | |
call ccc void @eclair_btree_iterator_next_0(ptr %stack.ptr_887) | |
br label %loop_196 | |
range_query.end_191: | |
%3080 = getelementptr [3 x i32], ptr %stack.ptr_891, i32 0, i32 0 | |
store i32 0, ptr %3080 | |
%3081 = getelementptr [3 x i32], ptr %stack.ptr_891, i32 0, i32 1 | |
store i32 0, ptr %3081 | |
%3082 = getelementptr [3 x i32], ptr %stack.ptr_891, i32 0, i32 2 | |
store i32 0, ptr %3082 | |
%3083 = getelementptr [3 x i32], ptr %stack.ptr_892, i32 0, i32 0 | |
store i32 4294967295, ptr %3083 | |
%3084 = getelementptr [3 x i32], ptr %stack.ptr_892, i32 0, i32 1 | |
store i32 4294967295, ptr %3084 | |
%3085 = getelementptr [3 x i32], ptr %stack.ptr_892, i32 0, i32 2 | |
store i32 4294967295, ptr %3085 | |
%3086 = getelementptr %program, ptr %arg_0, i32 0, i32 53 | |
call ccc void @eclair_btree_lower_bound_0(ptr %3086, ptr %stack.ptr_891, ptr %stack.ptr_893) | |
%3087 = getelementptr %program, ptr %arg_0, i32 0, i32 53 | |
call ccc void @eclair_btree_upper_bound_0(ptr %3087, ptr %stack.ptr_892, ptr %stack.ptr_894) | |
br label %loop_197 | |
loop_197: | |
%3088 = call ccc i1 @eclair_btree_iterator_is_equal_0(ptr %stack.ptr_893, ptr %stack.ptr_894) | |
br i1 %3088, label %if_233, label %end_if_233 | |
if_233: | |
br label %range_query.end_192 | |
end_if_233: | |
%3089 = call ccc ptr @eclair_btree_iterator_current_0(ptr %stack.ptr_893) | |
%3090 = getelementptr [4 x i32], ptr %stack.ptr_895, i32 0, i32 0 | |
%3091 = getelementptr [3 x i32], ptr %3089, i32 0, i32 2 | |
%3092 = load i32, ptr %3091 | |
store i32 %3092, ptr %3090 | |
%3093 = getelementptr [4 x i32], ptr %stack.ptr_895, i32 0, i32 1 | |
store i32 0, ptr %3093 | |
%3094 = getelementptr [4 x i32], ptr %stack.ptr_895, i32 0, i32 2 | |
store i32 0, ptr %3094 | |
%3095 = getelementptr [4 x i32], ptr %stack.ptr_895, i32 0, i32 3 | |
store i32 0, ptr %3095 | |
%3096 = getelementptr [4 x i32], ptr %stack.ptr_896, i32 0, i32 0 | |
%3097 = getelementptr [3 x i32], ptr %3089, i32 0, i32 2 | |
%3098 = load i32, ptr %3097 | |
store i32 %3098, ptr %3096 | |
%3099 = getelementptr [4 x i32], ptr %stack.ptr_896, i32 0, i32 1 | |
store i32 4294967295, ptr %3099 | |
%3100 = getelementptr [4 x i32], ptr %stack.ptr_896, i32 0, i32 2 | |
store i32 4294967295, ptr %3100 | |
%3101 = getelementptr [4 x i32], ptr %stack.ptr_896, i32 0, i32 3 | |
store i32 4294967295, ptr %3101 | |
%3102 = getelementptr %program, ptr %arg_0, i32 0, i32 9 | |
call ccc void @eclair_btree_lower_bound_4(ptr %3102, ptr %stack.ptr_895, ptr %stack.ptr_897) | |
%3103 = getelementptr %program, ptr %arg_0, i32 0, i32 9 | |
call ccc void @eclair_btree_upper_bound_4(ptr %3103, ptr %stack.ptr_896, ptr %stack.ptr_898) | |
br label %loop_198 | |
loop_198: | |
%3104 = call ccc i1 @eclair_btree_iterator_is_equal_4(ptr %stack.ptr_897, ptr %stack.ptr_898) | |
br i1 %3104, label %if_234, label %end_if_234 | |
if_234: | |
br label %range_query.end_193 | |
end_if_234: | |
%3105 = call ccc ptr @eclair_btree_iterator_current_4(ptr %stack.ptr_897) | |
%3106 = getelementptr [2 x i32], ptr %stack.ptr_899, i32 0, i32 0 | |
%3107 = getelementptr [4 x i32], ptr %3105, i32 0, i32 2 | |
%3108 = load i32, ptr %3107 | |
store i32 %3108, ptr %3106 | |
%3109 = getelementptr [2 x i32], ptr %stack.ptr_899, i32 0, i32 1 | |
store i32 0, ptr %3109 | |
%3110 = getelementptr [2 x i32], ptr %stack.ptr_900, i32 0, i32 0 | |
%3111 = getelementptr [4 x i32], ptr %3105, i32 0, i32 2 | |
%3112 = load i32, ptr %3111 | |
store i32 %3112, ptr %3110 | |
%3113 = getelementptr [2 x i32], ptr %stack.ptr_900, i32 0, i32 1 | |
store i32 4294967295, ptr %3113 | |
%3114 = getelementptr %program, ptr %arg_0, i32 0, i32 66 | |
call ccc void @eclair_btree_lower_bound_1(ptr %3114, ptr %stack.ptr_899, ptr %stack.ptr_901) | |
%3115 = getelementptr %program, ptr %arg_0, i32 0, i32 66 | |
call ccc void @eclair_btree_upper_bound_1(ptr %3115, ptr %stack.ptr_900, ptr %stack.ptr_902) | |
br label %loop_199 | |
loop_199: | |
%3116 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_901, ptr %stack.ptr_902) | |
br i1 %3116, label %if_235, label %end_if_235 | |
if_235: | |
br label %range_query.end_194 | |
end_if_235: | |
%3117 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_901) | |
%3118 = getelementptr [2 x i32], ptr %3117, i32 0, i32 1 | |
%3119 = load i32, ptr %3118 | |
%3120 = icmp ne i32 %3119, 54 | |
br i1 %3120, label %if_236, label %end_if_237 | |
if_236: | |
%3121 = getelementptr [2 x i32], ptr %stack.ptr_903, i32 0, i32 0 | |
%3122 = getelementptr [3 x i32], ptr %3089, i32 0, i32 0 | |
%3123 = load i32, ptr %3122 | |
store i32 %3123, ptr %3121 | |
%3124 = getelementptr [2 x i32], ptr %stack.ptr_903, i32 0, i32 1 | |
%3125 = getelementptr [2 x i32], ptr %3117, i32 0, i32 1 | |
%3126 = load i32, ptr %3125 | |
store i32 %3126, ptr %3124 | |
%3127 = getelementptr %program, ptr %arg_0, i32 0, i32 28 | |
%3128 = call ccc i1 @eclair_btree_contains_1(ptr %3127, ptr %stack.ptr_903) | |
%3129 = select i1 %3128, i1 0, i1 1 | |
br i1 %3129, label %if_237, label %end_if_236 | |
if_237: | |
%3130 = getelementptr [3 x i32], ptr %stack.ptr_904, i32 0, i32 0 | |
%3131 = getelementptr [3 x i32], ptr %3089, i32 0, i32 0 | |
%3132 = load i32, ptr %3131 | |
store i32 %3132, ptr %3130 | |
%3133 = getelementptr [3 x i32], ptr %stack.ptr_904, i32 0, i32 1 | |
%3134 = getelementptr [4 x i32], ptr %3105, i32 0, i32 2 | |
%3135 = load i32, ptr %3134 | |
store i32 %3135, ptr %3133 | |
%3136 = getelementptr [3 x i32], ptr %stack.ptr_904, i32 0, i32 2 | |
%3137 = getelementptr [2 x i32], ptr %3117, i32 0, i32 1 | |
%3138 = load i32, ptr %3137 | |
store i32 %3138, ptr %3136 | |
%3139 = getelementptr %program, ptr %arg_0, i32 0, i32 65 | |
%3140 = call ccc i1 @eclair_btree_insert_value_0(ptr %3139, ptr %stack.ptr_904) | |
br label %end_if_236 | |
end_if_236: | |
br label %end_if_237 | |
end_if_237: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_901) | |
br label %loop_199 | |
range_query.end_194: | |
call ccc void @eclair_btree_iterator_next_4(ptr %stack.ptr_897) | |
br label %loop_198 | |
range_query.end_193: | |
call ccc void @eclair_btree_iterator_next_0(ptr %stack.ptr_893) | |
br label %loop_197 | |
range_query.end_192: | |
%3141 = getelementptr [3 x i32], ptr %stack.ptr_905, i32 0, i32 0 | |
store i32 0, ptr %3141 | |
%3142 = getelementptr [3 x i32], ptr %stack.ptr_905, i32 0, i32 1 | |
store i32 0, ptr %3142 | |
%3143 = getelementptr [3 x i32], ptr %stack.ptr_905, i32 0, i32 2 | |
store i32 0, ptr %3143 | |
%3144 = getelementptr [3 x i32], ptr %stack.ptr_906, i32 0, i32 0 | |
store i32 4294967295, ptr %3144 | |
%3145 = getelementptr [3 x i32], ptr %stack.ptr_906, i32 0, i32 1 | |
store i32 4294967295, ptr %3145 | |
%3146 = getelementptr [3 x i32], ptr %stack.ptr_906, i32 0, i32 2 | |
store i32 4294967295, ptr %3146 | |
%3147 = getelementptr %program, ptr %arg_0, i32 0, i32 53 | |
call ccc void @eclair_btree_lower_bound_0(ptr %3147, ptr %stack.ptr_905, ptr %stack.ptr_907) | |
%3148 = getelementptr %program, ptr %arg_0, i32 0, i32 53 | |
call ccc void @eclair_btree_upper_bound_0(ptr %3148, ptr %stack.ptr_906, ptr %stack.ptr_908) | |
br label %loop_200 | |
loop_200: | |
%3149 = call ccc i1 @eclair_btree_iterator_is_equal_0(ptr %stack.ptr_907, ptr %stack.ptr_908) | |
br i1 %3149, label %if_238, label %end_if_238 | |
if_238: | |
br label %range_query.end_195 | |
end_if_238: | |
%3150 = call ccc ptr @eclair_btree_iterator_current_0(ptr %stack.ptr_907) | |
%3151 = getelementptr [4 x i32], ptr %stack.ptr_909, i32 0, i32 0 | |
%3152 = getelementptr [3 x i32], ptr %3150, i32 0, i32 2 | |
%3153 = load i32, ptr %3152 | |
store i32 %3153, ptr %3151 | |
%3154 = getelementptr [4 x i32], ptr %stack.ptr_909, i32 0, i32 1 | |
store i32 0, ptr %3154 | |
%3155 = getelementptr [4 x i32], ptr %stack.ptr_909, i32 0, i32 2 | |
store i32 0, ptr %3155 | |
%3156 = getelementptr [4 x i32], ptr %stack.ptr_909, i32 0, i32 3 | |
store i32 0, ptr %3156 | |
%3157 = getelementptr [4 x i32], ptr %stack.ptr_910, i32 0, i32 0 | |
%3158 = getelementptr [3 x i32], ptr %3150, i32 0, i32 2 | |
%3159 = load i32, ptr %3158 | |
store i32 %3159, ptr %3157 | |
%3160 = getelementptr [4 x i32], ptr %stack.ptr_910, i32 0, i32 1 | |
store i32 4294967295, ptr %3160 | |
%3161 = getelementptr [4 x i32], ptr %stack.ptr_910, i32 0, i32 2 | |
store i32 4294967295, ptr %3161 | |
%3162 = getelementptr [4 x i32], ptr %stack.ptr_910, i32 0, i32 3 | |
store i32 4294967295, ptr %3162 | |
%3163 = getelementptr %program, ptr %arg_0, i32 0, i32 9 | |
call ccc void @eclair_btree_lower_bound_4(ptr %3163, ptr %stack.ptr_909, ptr %stack.ptr_911) | |
%3164 = getelementptr %program, ptr %arg_0, i32 0, i32 9 | |
call ccc void @eclair_btree_upper_bound_4(ptr %3164, ptr %stack.ptr_910, ptr %stack.ptr_912) | |
br label %loop_201 | |
loop_201: | |
%3165 = call ccc i1 @eclair_btree_iterator_is_equal_4(ptr %stack.ptr_911, ptr %stack.ptr_912) | |
br i1 %3165, label %if_239, label %end_if_239 | |
if_239: | |
br label %range_query.end_196 | |
end_if_239: | |
%3166 = call ccc ptr @eclair_btree_iterator_current_4(ptr %stack.ptr_911) | |
%3167 = getelementptr [2 x i32], ptr %stack.ptr_913, i32 0, i32 0 | |
%3168 = getelementptr [4 x i32], ptr %3166, i32 0, i32 3 | |
%3169 = load i32, ptr %3168 | |
store i32 %3169, ptr %3167 | |
%3170 = getelementptr [2 x i32], ptr %stack.ptr_913, i32 0, i32 1 | |
store i32 0, ptr %3170 | |
%3171 = getelementptr [2 x i32], ptr %stack.ptr_914, i32 0, i32 0 | |
%3172 = getelementptr [4 x i32], ptr %3166, i32 0, i32 3 | |
%3173 = load i32, ptr %3172 | |
store i32 %3173, ptr %3171 | |
%3174 = getelementptr [2 x i32], ptr %stack.ptr_914, i32 0, i32 1 | |
store i32 4294967295, ptr %3174 | |
%3175 = getelementptr %program, ptr %arg_0, i32 0, i32 66 | |
call ccc void @eclair_btree_lower_bound_1(ptr %3175, ptr %stack.ptr_913, ptr %stack.ptr_915) | |
%3176 = getelementptr %program, ptr %arg_0, i32 0, i32 66 | |
call ccc void @eclair_btree_upper_bound_1(ptr %3176, ptr %stack.ptr_914, ptr %stack.ptr_916) | |
br label %loop_202 | |
loop_202: | |
%3177 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_915, ptr %stack.ptr_916) | |
br i1 %3177, label %if_240, label %end_if_240 | |
if_240: | |
br label %range_query.end_197 | |
end_if_240: | |
%3178 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_915) | |
%3179 = getelementptr [2 x i32], ptr %3178, i32 0, i32 1 | |
%3180 = load i32, ptr %3179 | |
%3181 = icmp ne i32 %3180, 54 | |
br i1 %3181, label %if_241, label %end_if_242 | |
if_241: | |
%3182 = getelementptr [2 x i32], ptr %stack.ptr_917, i32 0, i32 0 | |
%3183 = getelementptr [3 x i32], ptr %3150, i32 0, i32 0 | |
%3184 = load i32, ptr %3183 | |
store i32 %3184, ptr %3182 | |
%3185 = getelementptr [2 x i32], ptr %stack.ptr_917, i32 0, i32 1 | |
%3186 = getelementptr [2 x i32], ptr %3178, i32 0, i32 1 | |
%3187 = load i32, ptr %3186 | |
store i32 %3187, ptr %3185 | |
%3188 = getelementptr %program, ptr %arg_0, i32 0, i32 28 | |
%3189 = call ccc i1 @eclair_btree_contains_1(ptr %3188, ptr %stack.ptr_917) | |
%3190 = select i1 %3189, i1 0, i1 1 | |
br i1 %3190, label %if_242, label %end_if_241 | |
if_242: | |
%3191 = getelementptr [3 x i32], ptr %stack.ptr_918, i32 0, i32 0 | |
%3192 = getelementptr [3 x i32], ptr %3150, i32 0, i32 0 | |
%3193 = load i32, ptr %3192 | |
store i32 %3193, ptr %3191 | |
%3194 = getelementptr [3 x i32], ptr %stack.ptr_918, i32 0, i32 1 | |
%3195 = getelementptr [4 x i32], ptr %3166, i32 0, i32 3 | |
%3196 = load i32, ptr %3195 | |
store i32 %3196, ptr %3194 | |
%3197 = getelementptr [3 x i32], ptr %stack.ptr_918, i32 0, i32 2 | |
%3198 = getelementptr [2 x i32], ptr %3178, i32 0, i32 1 | |
%3199 = load i32, ptr %3198 | |
store i32 %3199, ptr %3197 | |
%3200 = getelementptr %program, ptr %arg_0, i32 0, i32 65 | |
%3201 = call ccc i1 @eclair_btree_insert_value_0(ptr %3200, ptr %stack.ptr_918) | |
br label %end_if_241 | |
end_if_241: | |
br label %end_if_242 | |
end_if_242: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_915) | |
br label %loop_202 | |
range_query.end_197: | |
call ccc void @eclair_btree_iterator_next_4(ptr %stack.ptr_911) | |
br label %loop_201 | |
range_query.end_196: | |
call ccc void @eclair_btree_iterator_next_0(ptr %stack.ptr_907) | |
br label %loop_200 | |
range_query.end_195: | |
%3202 = getelementptr [4 x i32], ptr %stack.ptr_919, i32 0, i32 0 | |
store i32 0, ptr %3202 | |
%3203 = getelementptr [4 x i32], ptr %stack.ptr_919, i32 0, i32 1 | |
store i32 0, ptr %3203 | |
%3204 = getelementptr [4 x i32], ptr %stack.ptr_919, i32 0, i32 2 | |
store i32 0, ptr %3204 | |
%3205 = getelementptr [4 x i32], ptr %stack.ptr_919, i32 0, i32 3 | |
store i32 0, ptr %3205 | |
%3206 = getelementptr [4 x i32], ptr %stack.ptr_920, i32 0, i32 0 | |
store i32 4294967295, ptr %3206 | |
%3207 = getelementptr [4 x i32], ptr %stack.ptr_920, i32 0, i32 1 | |
store i32 4294967295, ptr %3207 | |
%3208 = getelementptr [4 x i32], ptr %stack.ptr_920, i32 0, i32 2 | |
store i32 4294967295, ptr %3208 | |
%3209 = getelementptr [4 x i32], ptr %stack.ptr_920, i32 0, i32 3 | |
store i32 4294967295, ptr %3209 | |
%3210 = getelementptr %program, ptr %arg_0, i32 0, i32 6 | |
call ccc void @eclair_btree_lower_bound_3(ptr %3210, ptr %stack.ptr_919, ptr %stack.ptr_921) | |
%3211 = getelementptr %program, ptr %arg_0, i32 0, i32 6 | |
call ccc void @eclair_btree_upper_bound_3(ptr %3211, ptr %stack.ptr_920, ptr %stack.ptr_922) | |
br label %loop_203 | |
loop_203: | |
%3212 = call ccc i1 @eclair_btree_iterator_is_equal_3(ptr %stack.ptr_921, ptr %stack.ptr_922) | |
br i1 %3212, label %if_243, label %end_if_243 | |
if_243: | |
br label %range_query.end_198 | |
end_if_243: | |
%3213 = call ccc ptr @eclair_btree_iterator_current_3(ptr %stack.ptr_921) | |
%3214 = getelementptr [2 x i32], ptr %stack.ptr_923, i32 0, i32 0 | |
%3215 = getelementptr [4 x i32], ptr %3213, i32 0, i32 2 | |
%3216 = load i32, ptr %3215 | |
store i32 %3216, ptr %3214 | |
%3217 = getelementptr [2 x i32], ptr %stack.ptr_923, i32 0, i32 1 | |
store i32 0, ptr %3217 | |
%3218 = getelementptr [2 x i32], ptr %stack.ptr_924, i32 0, i32 0 | |
%3219 = getelementptr [4 x i32], ptr %3213, i32 0, i32 2 | |
%3220 = load i32, ptr %3219 | |
store i32 %3220, ptr %3218 | |
%3221 = getelementptr [2 x i32], ptr %stack.ptr_924, i32 0, i32 1 | |
store i32 4294967295, ptr %3221 | |
%3222 = getelementptr %program, ptr %arg_0, i32 0, i32 66 | |
call ccc void @eclair_btree_lower_bound_1(ptr %3222, ptr %stack.ptr_923, ptr %stack.ptr_925) | |
%3223 = getelementptr %program, ptr %arg_0, i32 0, i32 66 | |
call ccc void @eclair_btree_upper_bound_1(ptr %3223, ptr %stack.ptr_924, ptr %stack.ptr_926) | |
br label %loop_204 | |
loop_204: | |
%3224 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_925, ptr %stack.ptr_926) | |
br i1 %3224, label %if_244, label %end_if_244 | |
if_244: | |
br label %range_query.end_199 | |
end_if_244: | |
%3225 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_925) | |
%3226 = getelementptr [2 x i32], ptr %stack.ptr_927, i32 0, i32 0 | |
store i32 0, ptr %3226 | |
%3227 = getelementptr [2 x i32], ptr %stack.ptr_927, i32 0, i32 1 | |
%3228 = getelementptr [4 x i32], ptr %3213, i32 0, i32 2 | |
%3229 = load i32, ptr %3228 | |
store i32 %3229, ptr %3227 | |
%3230 = getelementptr [2 x i32], ptr %stack.ptr_928, i32 0, i32 0 | |
store i32 4294967295, ptr %3230 | |
%3231 = getelementptr [2 x i32], ptr %stack.ptr_928, i32 0, i32 1 | |
%3232 = getelementptr [4 x i32], ptr %3213, i32 0, i32 2 | |
%3233 = load i32, ptr %3232 | |
store i32 %3233, ptr %3231 | |
%3234 = getelementptr %program, ptr %arg_0, i32 0, i32 60 | |
call ccc void @eclair_btree_lower_bound_2(ptr %3234, ptr %stack.ptr_927, ptr %stack.ptr_929) | |
%3235 = getelementptr %program, ptr %arg_0, i32 0, i32 60 | |
call ccc void @eclair_btree_upper_bound_2(ptr %3235, ptr %stack.ptr_928, ptr %stack.ptr_930) | |
br label %loop_205 | |
loop_205: | |
%3236 = call ccc i1 @eclair_btree_iterator_is_equal_2(ptr %stack.ptr_929, ptr %stack.ptr_930) | |
br i1 %3236, label %if_245, label %end_if_245 | |
if_245: | |
br label %range_query.end_200 | |
end_if_245: | |
%3237 = call ccc ptr @eclair_btree_iterator_current_2(ptr %stack.ptr_929) | |
%3238 = getelementptr [2 x i32], ptr %stack.ptr_931, i32 0, i32 0 | |
store i32 0, ptr %3238 | |
%3239 = getelementptr [2 x i32], ptr %stack.ptr_931, i32 0, i32 1 | |
%3240 = getelementptr [2 x i32], ptr %3237, i32 0, i32 0 | |
%3241 = load i32, ptr %3240 | |
store i32 %3241, ptr %3239 | |
%3242 = getelementptr [2 x i32], ptr %stack.ptr_932, i32 0, i32 0 | |
store i32 4294967295, ptr %3242 | |
%3243 = getelementptr [2 x i32], ptr %stack.ptr_932, i32 0, i32 1 | |
%3244 = getelementptr [2 x i32], ptr %3237, i32 0, i32 0 | |
%3245 = load i32, ptr %3244 | |
store i32 %3245, ptr %3243 | |
%3246 = getelementptr %program, ptr %arg_0, i32 0, i32 57 | |
call ccc void @eclair_btree_lower_bound_2(ptr %3246, ptr %stack.ptr_931, ptr %stack.ptr_933) | |
%3247 = getelementptr %program, ptr %arg_0, i32 0, i32 57 | |
call ccc void @eclair_btree_upper_bound_2(ptr %3247, ptr %stack.ptr_932, ptr %stack.ptr_934) | |
br label %loop_206 | |
loop_206: | |
%3248 = call ccc i1 @eclair_btree_iterator_is_equal_2(ptr %stack.ptr_933, ptr %stack.ptr_934) | |
br i1 %3248, label %if_246, label %end_if_246 | |
if_246: | |
br label %range_query.end_201 | |
end_if_246: | |
%3249 = call ccc ptr @eclair_btree_iterator_current_2(ptr %stack.ptr_933) | |
%3250 = getelementptr [2 x i32], ptr %stack.ptr_935, i32 0, i32 0 | |
%3251 = getelementptr [2 x i32], ptr %3249, i32 0, i32 0 | |
%3252 = load i32, ptr %3251 | |
store i32 %3252, ptr %3250 | |
%3253 = getelementptr [2 x i32], ptr %stack.ptr_935, i32 0, i32 1 | |
%3254 = getelementptr [2 x i32], ptr %3225, i32 0, i32 1 | |
%3255 = load i32, ptr %3254 | |
store i32 %3255, ptr %3253 | |
%3256 = getelementptr %program, ptr %arg_0, i32 0, i32 28 | |
%3257 = call ccc i1 @eclair_btree_contains_1(ptr %3256, ptr %stack.ptr_935) | |
%3258 = select i1 %3257, i1 0, i1 1 | |
br i1 %3258, label %if_247, label %end_if_247 | |
if_247: | |
%3259 = getelementptr [3 x i32], ptr %stack.ptr_936, i32 0, i32 0 | |
%3260 = getelementptr [2 x i32], ptr %3249, i32 0, i32 0 | |
%3261 = load i32, ptr %3260 | |
store i32 %3261, ptr %3259 | |
%3262 = getelementptr [3 x i32], ptr %stack.ptr_936, i32 0, i32 1 | |
%3263 = getelementptr [4 x i32], ptr %3213, i32 0, i32 2 | |
%3264 = load i32, ptr %3263 | |
store i32 %3264, ptr %3262 | |
%3265 = getelementptr [3 x i32], ptr %stack.ptr_936, i32 0, i32 2 | |
%3266 = getelementptr [2 x i32], ptr %3225, i32 0, i32 1 | |
%3267 = load i32, ptr %3266 | |
store i32 %3267, ptr %3265 | |
%3268 = getelementptr %program, ptr %arg_0, i32 0, i32 65 | |
%3269 = call ccc i1 @eclair_btree_insert_value_0(ptr %3268, ptr %stack.ptr_936) | |
br label %end_if_247 | |
end_if_247: | |
call ccc void @eclair_btree_iterator_next_2(ptr %stack.ptr_933) | |
br label %loop_206 | |
range_query.end_201: | |
call ccc void @eclair_btree_iterator_next_2(ptr %stack.ptr_929) | |
br label %loop_205 | |
range_query.end_200: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_925) | |
br label %loop_204 | |
range_query.end_199: | |
call ccc void @eclair_btree_iterator_next_3(ptr %stack.ptr_921) | |
br label %loop_203 | |
range_query.end_198: | |
%3270 = getelementptr [4 x i32], ptr %stack.ptr_937, i32 0, i32 0 | |
store i32 0, ptr %3270 | |
%3271 = getelementptr [4 x i32], ptr %stack.ptr_937, i32 0, i32 1 | |
store i32 0, ptr %3271 | |
%3272 = getelementptr [4 x i32], ptr %stack.ptr_937, i32 0, i32 2 | |
store i32 0, ptr %3272 | |
%3273 = getelementptr [4 x i32], ptr %stack.ptr_937, i32 0, i32 3 | |
store i32 0, ptr %3273 | |
%3274 = getelementptr [4 x i32], ptr %stack.ptr_938, i32 0, i32 0 | |
store i32 4294967295, ptr %3274 | |
%3275 = getelementptr [4 x i32], ptr %stack.ptr_938, i32 0, i32 1 | |
store i32 4294967295, ptr %3275 | |
%3276 = getelementptr [4 x i32], ptr %stack.ptr_938, i32 0, i32 2 | |
store i32 4294967295, ptr %3276 | |
%3277 = getelementptr [4 x i32], ptr %stack.ptr_938, i32 0, i32 3 | |
store i32 4294967295, ptr %3277 | |
%3278 = getelementptr %program, ptr %arg_0, i32 0, i32 6 | |
call ccc void @eclair_btree_lower_bound_3(ptr %3278, ptr %stack.ptr_937, ptr %stack.ptr_939) | |
%3279 = getelementptr %program, ptr %arg_0, i32 0, i32 6 | |
call ccc void @eclair_btree_upper_bound_3(ptr %3279, ptr %stack.ptr_938, ptr %stack.ptr_940) | |
br label %loop_207 | |
loop_207: | |
%3280 = call ccc i1 @eclair_btree_iterator_is_equal_3(ptr %stack.ptr_939, ptr %stack.ptr_940) | |
br i1 %3280, label %if_248, label %end_if_248 | |
if_248: | |
br label %range_query.end_202 | |
end_if_248: | |
%3281 = call ccc ptr @eclair_btree_iterator_current_3(ptr %stack.ptr_939) | |
%3282 = getelementptr [2 x i32], ptr %stack.ptr_941, i32 0, i32 0 | |
%3283 = getelementptr [4 x i32], ptr %3281, i32 0, i32 3 | |
%3284 = load i32, ptr %3283 | |
store i32 %3284, ptr %3282 | |
%3285 = getelementptr [2 x i32], ptr %stack.ptr_941, i32 0, i32 1 | |
store i32 0, ptr %3285 | |
%3286 = getelementptr [2 x i32], ptr %stack.ptr_942, i32 0, i32 0 | |
%3287 = getelementptr [4 x i32], ptr %3281, i32 0, i32 3 | |
%3288 = load i32, ptr %3287 | |
store i32 %3288, ptr %3286 | |
%3289 = getelementptr [2 x i32], ptr %stack.ptr_942, i32 0, i32 1 | |
store i32 4294967295, ptr %3289 | |
%3290 = getelementptr %program, ptr %arg_0, i32 0, i32 66 | |
call ccc void @eclair_btree_lower_bound_1(ptr %3290, ptr %stack.ptr_941, ptr %stack.ptr_943) | |
%3291 = getelementptr %program, ptr %arg_0, i32 0, i32 66 | |
call ccc void @eclair_btree_upper_bound_1(ptr %3291, ptr %stack.ptr_942, ptr %stack.ptr_944) | |
br label %loop_208 | |
loop_208: | |
%3292 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_943, ptr %stack.ptr_944) | |
br i1 %3292, label %if_249, label %end_if_249 | |
if_249: | |
br label %range_query.end_203 | |
end_if_249: | |
%3293 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_943) | |
%3294 = getelementptr [2 x i32], ptr %stack.ptr_945, i32 0, i32 0 | |
store i32 0, ptr %3294 | |
%3295 = getelementptr [2 x i32], ptr %stack.ptr_945, i32 0, i32 1 | |
%3296 = getelementptr [4 x i32], ptr %3281, i32 0, i32 3 | |
%3297 = load i32, ptr %3296 | |
store i32 %3297, ptr %3295 | |
%3298 = getelementptr [2 x i32], ptr %stack.ptr_946, i32 0, i32 0 | |
store i32 4294967295, ptr %3298 | |
%3299 = getelementptr [2 x i32], ptr %stack.ptr_946, i32 0, i32 1 | |
%3300 = getelementptr [4 x i32], ptr %3281, i32 0, i32 3 | |
%3301 = load i32, ptr %3300 | |
store i32 %3301, ptr %3299 | |
%3302 = getelementptr %program, ptr %arg_0, i32 0, i32 60 | |
call ccc void @eclair_btree_lower_bound_2(ptr %3302, ptr %stack.ptr_945, ptr %stack.ptr_947) | |
%3303 = getelementptr %program, ptr %arg_0, i32 0, i32 60 | |
call ccc void @eclair_btree_upper_bound_2(ptr %3303, ptr %stack.ptr_946, ptr %stack.ptr_948) | |
br label %loop_209 | |
loop_209: | |
%3304 = call ccc i1 @eclair_btree_iterator_is_equal_2(ptr %stack.ptr_947, ptr %stack.ptr_948) | |
br i1 %3304, label %if_250, label %end_if_250 | |
if_250: | |
br label %range_query.end_204 | |
end_if_250: | |
%3305 = call ccc ptr @eclair_btree_iterator_current_2(ptr %stack.ptr_947) | |
%3306 = getelementptr [2 x i32], ptr %stack.ptr_949, i32 0, i32 0 | |
store i32 0, ptr %3306 | |
%3307 = getelementptr [2 x i32], ptr %stack.ptr_949, i32 0, i32 1 | |
%3308 = getelementptr [2 x i32], ptr %3305, i32 0, i32 0 | |
%3309 = load i32, ptr %3308 | |
store i32 %3309, ptr %3307 | |
%3310 = getelementptr [2 x i32], ptr %stack.ptr_950, i32 0, i32 0 | |
store i32 4294967295, ptr %3310 | |
%3311 = getelementptr [2 x i32], ptr %stack.ptr_950, i32 0, i32 1 | |
%3312 = getelementptr [2 x i32], ptr %3305, i32 0, i32 0 | |
%3313 = load i32, ptr %3312 | |
store i32 %3313, ptr %3311 | |
%3314 = getelementptr %program, ptr %arg_0, i32 0, i32 57 | |
call ccc void @eclair_btree_lower_bound_2(ptr %3314, ptr %stack.ptr_949, ptr %stack.ptr_951) | |
%3315 = getelementptr %program, ptr %arg_0, i32 0, i32 57 | |
call ccc void @eclair_btree_upper_bound_2(ptr %3315, ptr %stack.ptr_950, ptr %stack.ptr_952) | |
br label %loop_210 | |
loop_210: | |
%3316 = call ccc i1 @eclair_btree_iterator_is_equal_2(ptr %stack.ptr_951, ptr %stack.ptr_952) | |
br i1 %3316, label %if_251, label %end_if_251 | |
if_251: | |
br label %range_query.end_205 | |
end_if_251: | |
%3317 = call ccc ptr @eclair_btree_iterator_current_2(ptr %stack.ptr_951) | |
%3318 = getelementptr [2 x i32], ptr %stack.ptr_953, i32 0, i32 0 | |
%3319 = getelementptr [2 x i32], ptr %3317, i32 0, i32 0 | |
%3320 = load i32, ptr %3319 | |
store i32 %3320, ptr %3318 | |
%3321 = getelementptr [2 x i32], ptr %stack.ptr_953, i32 0, i32 1 | |
%3322 = getelementptr [2 x i32], ptr %3293, i32 0, i32 1 | |
%3323 = load i32, ptr %3322 | |
store i32 %3323, ptr %3321 | |
%3324 = getelementptr %program, ptr %arg_0, i32 0, i32 28 | |
%3325 = call ccc i1 @eclair_btree_contains_1(ptr %3324, ptr %stack.ptr_953) | |
%3326 = select i1 %3325, i1 0, i1 1 | |
br i1 %3326, label %if_252, label %end_if_252 | |
if_252: | |
%3327 = getelementptr [3 x i32], ptr %stack.ptr_954, i32 0, i32 0 | |
%3328 = getelementptr [2 x i32], ptr %3317, i32 0, i32 0 | |
%3329 = load i32, ptr %3328 | |
store i32 %3329, ptr %3327 | |
%3330 = getelementptr [3 x i32], ptr %stack.ptr_954, i32 0, i32 1 | |
%3331 = getelementptr [4 x i32], ptr %3281, i32 0, i32 3 | |
%3332 = load i32, ptr %3331 | |
store i32 %3332, ptr %3330 | |
%3333 = getelementptr [3 x i32], ptr %stack.ptr_954, i32 0, i32 2 | |
%3334 = getelementptr [2 x i32], ptr %3293, i32 0, i32 1 | |
%3335 = load i32, ptr %3334 | |
store i32 %3335, ptr %3333 | |
%3336 = getelementptr %program, ptr %arg_0, i32 0, i32 65 | |
%3337 = call ccc i1 @eclair_btree_insert_value_0(ptr %3336, ptr %stack.ptr_954) | |
br label %end_if_252 | |
end_if_252: | |
call ccc void @eclair_btree_iterator_next_2(ptr %stack.ptr_951) | |
br label %loop_210 | |
range_query.end_205: | |
call ccc void @eclair_btree_iterator_next_2(ptr %stack.ptr_947) | |
br label %loop_209 | |
range_query.end_204: | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_943) | |
br label %loop_208 | |
range_query.end_203: | |
call ccc void @eclair_btree_iterator_next_3(ptr %stack.ptr_939) | |
br label %loop_207 | |
range_query.end_202: | |
ret void | |
} | |
define external ccc void @eclair_add_facts(ptr %eclair_program_0, i32 %fact_type_0, ptr %memory_0, i32 %fact_count_0) "wasm-export-name"="eclair_add_facts" { | |
start: | |
switch i32 %fact_type_0, label %switch.default_0 [i32 5, label %atom_0 i32 6, label %atom_arg_0 i32 4, label %binop_0 i32 3, label %constraint_0 i32 15, label %declare_type_0 i32 14, label %extern_definition_0 i32 11, label %input_relation_0 i32 13, label %internal_relation_0 i32 0, label %lit_number_0 i32 1, label %lit_string_0 i32 16, label %module_declaration_0 i32 10, label %negation_0 i32 12, label %output_relation_0 i32 7, label %rule_0 i32 8, label %rule_arg_0 i32 9, label %rule_clause_0 i32 17, label %scoped_value_0 i32 2, label %variable_0] | |
atom_0: | |
%0 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 4 | |
br label %for_begin_0 | |
for_begin_0: | |
%1 = phi i32 [0, %atom_0], [%5, %for_body_0] | |
%2 = icmp ult i32 %1, %fact_count_0 | |
br i1 %2, label %for_body_0, label %for_end_0 | |
for_body_0: | |
%3 = getelementptr [2 x i32], ptr %memory_0, i32 %1 | |
%4 = call ccc i1 @eclair_btree_insert_value_2(ptr %0, ptr %3) | |
%5 = add i32 1, %1 | |
br label %for_begin_0 | |
for_end_0: | |
%6 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 3 | |
br label %for_begin_1 | |
for_begin_1: | |
%7 = phi i32 [0, %for_end_0], [%11, %for_body_1] | |
%8 = icmp ult i32 %7, %fact_count_0 | |
br i1 %8, label %for_body_1, label %for_end_1 | |
for_body_1: | |
%9 = getelementptr [2 x i32], ptr %memory_0, i32 %7 | |
%10 = call ccc i1 @eclair_btree_insert_value_1(ptr %6, ptr %9) | |
%11 = add i32 1, %7 | |
br label %for_begin_1 | |
for_end_1: | |
br label %end_0 | |
atom_arg_0: | |
%12 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 5 | |
br label %for_begin_2 | |
for_begin_2: | |
%13 = phi i32 [0, %atom_arg_0], [%17, %for_body_2] | |
%14 = icmp ult i32 %13, %fact_count_0 | |
br i1 %14, label %for_body_2, label %for_end_2 | |
for_body_2: | |
%15 = getelementptr [3 x i32], ptr %memory_0, i32 %13 | |
%16 = call ccc i1 @eclair_btree_insert_value_0(ptr %12, ptr %15) | |
%17 = add i32 1, %13 | |
br label %for_begin_2 | |
for_end_2: | |
br label %end_0 | |
binop_0: | |
%18 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 6 | |
br label %for_begin_3 | |
for_begin_3: | |
%19 = phi i32 [0, %binop_0], [%23, %for_body_3] | |
%20 = icmp ult i32 %19, %fact_count_0 | |
br i1 %20, label %for_body_3, label %for_end_3 | |
for_body_3: | |
%21 = getelementptr [4 x i32], ptr %memory_0, i32 %19 | |
%22 = call ccc i1 @eclair_btree_insert_value_3(ptr %18, ptr %21) | |
%23 = add i32 1, %19 | |
br label %for_begin_3 | |
for_end_3: | |
br label %end_0 | |
constraint_0: | |
%24 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 10 | |
br label %for_begin_4 | |
for_begin_4: | |
%25 = phi i32 [0, %constraint_0], [%29, %for_body_4] | |
%26 = icmp ult i32 %25, %fact_count_0 | |
br i1 %26, label %for_body_4, label %for_end_4 | |
for_body_4: | |
%27 = getelementptr [4 x i32], ptr %memory_0, i32 %25 | |
%28 = call ccc i1 @eclair_btree_insert_value_5(ptr %24, ptr %27) | |
%29 = add i32 1, %25 | |
br label %for_begin_4 | |
for_end_4: | |
%30 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 9 | |
br label %for_begin_5 | |
for_begin_5: | |
%31 = phi i32 [0, %for_end_4], [%35, %for_body_5] | |
%32 = icmp ult i32 %31, %fact_count_0 | |
br i1 %32, label %for_body_5, label %for_end_5 | |
for_body_5: | |
%33 = getelementptr [4 x i32], ptr %memory_0, i32 %31 | |
%34 = call ccc i1 @eclair_btree_insert_value_4(ptr %30, ptr %33) | |
%35 = add i32 1, %31 | |
br label %for_begin_5 | |
for_end_5: | |
br label %end_0 | |
declare_type_0: | |
%36 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 15 | |
br label %for_begin_6 | |
for_begin_6: | |
%37 = phi i32 [0, %declare_type_0], [%41, %for_body_6] | |
%38 = icmp ult i32 %37, %fact_count_0 | |
br i1 %38, label %for_body_6, label %for_end_6 | |
for_body_6: | |
%39 = getelementptr [2 x i32], ptr %memory_0, i32 %37 | |
%40 = call ccc i1 @eclair_btree_insert_value_2(ptr %36, ptr %39) | |
%41 = add i32 1, %37 | |
br label %for_begin_6 | |
for_end_6: | |
%42 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 14 | |
br label %for_begin_7 | |
for_begin_7: | |
%43 = phi i32 [0, %for_end_6], [%47, %for_body_7] | |
%44 = icmp ult i32 %43, %fact_count_0 | |
br i1 %44, label %for_body_7, label %for_end_7 | |
for_body_7: | |
%45 = getelementptr [2 x i32], ptr %memory_0, i32 %43 | |
%46 = call ccc i1 @eclair_btree_insert_value_1(ptr %42, ptr %45) | |
%47 = add i32 1, %43 | |
br label %for_begin_7 | |
for_end_7: | |
br label %end_0 | |
extern_definition_0: | |
%48 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 24 | |
br label %for_begin_8 | |
for_begin_8: | |
%49 = phi i32 [0, %extern_definition_0], [%53, %for_body_8] | |
%50 = icmp ult i32 %49, %fact_count_0 | |
br i1 %50, label %for_body_8, label %for_end_8 | |
for_body_8: | |
%51 = getelementptr [2 x i32], ptr %memory_0, i32 %49 | |
%52 = call ccc i1 @eclair_btree_insert_value_7(ptr %48, ptr %51) | |
%53 = add i32 1, %49 | |
br label %for_begin_8 | |
for_end_8: | |
br label %end_0 | |
input_relation_0: | |
%54 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 32 | |
br label %for_begin_9 | |
for_begin_9: | |
%55 = phi i32 [0, %input_relation_0], [%59, %for_body_9] | |
%56 = icmp ult i32 %55, %fact_count_0 | |
br i1 %56, label %for_body_9, label %for_end_9 | |
for_body_9: | |
%57 = getelementptr [1 x i32], ptr %memory_0, i32 %55 | |
%58 = call ccc i1 @eclair_btree_insert_value_6(ptr %54, ptr %57) | |
%59 = add i32 1, %55 | |
br label %for_begin_9 | |
for_end_9: | |
br label %end_0 | |
internal_relation_0: | |
%60 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 33 | |
br label %for_begin_10 | |
for_begin_10: | |
%61 = phi i32 [0, %internal_relation_0], [%65, %for_body_10] | |
%62 = icmp ult i32 %61, %fact_count_0 | |
br i1 %62, label %for_body_10, label %for_end_10 | |
for_body_10: | |
%63 = getelementptr [1 x i32], ptr %memory_0, i32 %61 | |
%64 = call ccc i1 @eclair_btree_insert_value_6(ptr %60, ptr %63) | |
%65 = add i32 1, %61 | |
br label %for_begin_10 | |
for_end_10: | |
br label %end_0 | |
lit_number_0: | |
%66 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 34 | |
br label %for_begin_11 | |
for_begin_11: | |
%67 = phi i32 [0, %lit_number_0], [%71, %for_body_11] | |
%68 = icmp ult i32 %67, %fact_count_0 | |
br i1 %68, label %for_body_11, label %for_end_11 | |
for_body_11: | |
%69 = getelementptr [2 x i32], ptr %memory_0, i32 %67 | |
%70 = call ccc i1 @eclair_btree_insert_value_1(ptr %66, ptr %69) | |
%71 = add i32 1, %67 | |
br label %for_begin_11 | |
for_end_11: | |
br label %end_0 | |
lit_string_0: | |
%72 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 35 | |
br label %for_begin_12 | |
for_begin_12: | |
%73 = phi i32 [0, %lit_string_0], [%77, %for_body_12] | |
%74 = icmp ult i32 %73, %fact_count_0 | |
br i1 %74, label %for_body_12, label %for_end_12 | |
for_body_12: | |
%75 = getelementptr [2 x i32], ptr %memory_0, i32 %73 | |
%76 = call ccc i1 @eclair_btree_insert_value_1(ptr %72, ptr %75) | |
%77 = add i32 1, %73 | |
br label %for_begin_12 | |
for_end_12: | |
br label %end_0 | |
module_declaration_0: | |
%78 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 39 | |
br label %for_begin_13 | |
for_begin_13: | |
%79 = phi i32 [0, %module_declaration_0], [%83, %for_body_13] | |
%80 = icmp ult i32 %79, %fact_count_0 | |
br i1 %80, label %for_body_13, label %for_end_13 | |
for_body_13: | |
%81 = getelementptr [2 x i32], ptr %memory_0, i32 %79 | |
%82 = call ccc i1 @eclair_btree_insert_value_1(ptr %78, ptr %81) | |
%83 = add i32 1, %79 | |
br label %for_begin_13 | |
for_end_13: | |
br label %end_0 | |
negation_0: | |
%84 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 40 | |
br label %for_begin_14 | |
for_begin_14: | |
%85 = phi i32 [0, %negation_0], [%89, %for_body_14] | |
%86 = icmp ult i32 %85, %fact_count_0 | |
br i1 %86, label %for_body_14, label %for_end_14 | |
for_body_14: | |
%87 = getelementptr [2 x i32], ptr %memory_0, i32 %85 | |
%88 = call ccc i1 @eclair_btree_insert_value_1(ptr %84, ptr %87) | |
%89 = add i32 1, %85 | |
br label %for_begin_14 | |
for_end_14: | |
br label %end_0 | |
output_relation_0: | |
%90 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 47 | |
br label %for_begin_15 | |
for_begin_15: | |
%91 = phi i32 [0, %output_relation_0], [%95, %for_body_15] | |
%92 = icmp ult i32 %91, %fact_count_0 | |
br i1 %92, label %for_body_15, label %for_end_15 | |
for_body_15: | |
%93 = getelementptr [1 x i32], ptr %memory_0, i32 %91 | |
%94 = call ccc i1 @eclair_btree_insert_value_6(ptr %90, ptr %93) | |
%95 = add i32 1, %91 | |
br label %for_begin_15 | |
for_end_15: | |
br label %end_0 | |
rule_0: | |
%96 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 51 | |
br label %for_begin_16 | |
for_begin_16: | |
%97 = phi i32 [0, %rule_0], [%101, %for_body_16] | |
%98 = icmp ult i32 %97, %fact_count_0 | |
br i1 %98, label %for_body_16, label %for_end_16 | |
for_body_16: | |
%99 = getelementptr [2 x i32], ptr %memory_0, i32 %97 | |
%100 = call ccc i1 @eclair_btree_insert_value_2(ptr %96, ptr %99) | |
%101 = add i32 1, %97 | |
br label %for_begin_16 | |
for_end_16: | |
%102 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 50 | |
br label %for_begin_17 | |
for_begin_17: | |
%103 = phi i32 [0, %for_end_16], [%107, %for_body_17] | |
%104 = icmp ult i32 %103, %fact_count_0 | |
br i1 %104, label %for_body_17, label %for_end_17 | |
for_body_17: | |
%105 = getelementptr [2 x i32], ptr %memory_0, i32 %103 | |
%106 = call ccc i1 @eclair_btree_insert_value_1(ptr %102, ptr %105) | |
%107 = add i32 1, %103 | |
br label %for_begin_17 | |
for_end_17: | |
br label %end_0 | |
rule_arg_0: | |
%108 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 52 | |
br label %for_begin_18 | |
for_begin_18: | |
%109 = phi i32 [0, %rule_arg_0], [%113, %for_body_18] | |
%110 = icmp ult i32 %109, %fact_count_0 | |
br i1 %110, label %for_body_18, label %for_end_18 | |
for_body_18: | |
%111 = getelementptr [3 x i32], ptr %memory_0, i32 %109 | |
%112 = call ccc i1 @eclair_btree_insert_value_0(ptr %108, ptr %111) | |
%113 = add i32 1, %109 | |
br label %for_begin_18 | |
for_end_18: | |
br label %end_0 | |
rule_clause_0: | |
%114 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 54 | |
br label %for_begin_19 | |
for_begin_19: | |
%115 = phi i32 [0, %rule_clause_0], [%119, %for_body_19] | |
%116 = icmp ult i32 %115, %fact_count_0 | |
br i1 %116, label %for_body_19, label %for_end_19 | |
for_body_19: | |
%117 = getelementptr [3 x i32], ptr %memory_0, i32 %115 | |
%118 = call ccc i1 @eclair_btree_insert_value_8(ptr %114, ptr %117) | |
%119 = add i32 1, %115 | |
br label %for_begin_19 | |
for_end_19: | |
%120 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 53 | |
br label %for_begin_20 | |
for_begin_20: | |
%121 = phi i32 [0, %for_end_19], [%125, %for_body_20] | |
%122 = icmp ult i32 %121, %fact_count_0 | |
br i1 %122, label %for_body_20, label %for_end_20 | |
for_body_20: | |
%123 = getelementptr [3 x i32], ptr %memory_0, i32 %121 | |
%124 = call ccc i1 @eclair_btree_insert_value_0(ptr %120, ptr %123) | |
%125 = add i32 1, %121 | |
br label %for_begin_20 | |
for_end_20: | |
br label %end_0 | |
scoped_value_0: | |
%126 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 60 | |
br label %for_begin_21 | |
for_begin_21: | |
%127 = phi i32 [0, %scoped_value_0], [%131, %for_body_21] | |
%128 = icmp ult i32 %127, %fact_count_0 | |
br i1 %128, label %for_body_21, label %for_end_21 | |
for_body_21: | |
%129 = getelementptr [2 x i32], ptr %memory_0, i32 %127 | |
%130 = call ccc i1 @eclair_btree_insert_value_2(ptr %126, ptr %129) | |
%131 = add i32 1, %127 | |
br label %for_begin_21 | |
for_end_21: | |
%132 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 59 | |
br label %for_begin_22 | |
for_begin_22: | |
%133 = phi i32 [0, %for_end_21], [%137, %for_body_22] | |
%134 = icmp ult i32 %133, %fact_count_0 | |
br i1 %134, label %for_body_22, label %for_end_22 | |
for_body_22: | |
%135 = getelementptr [2 x i32], ptr %memory_0, i32 %133 | |
%136 = call ccc i1 @eclair_btree_insert_value_1(ptr %132, ptr %135) | |
%137 = add i32 1, %133 | |
br label %for_begin_22 | |
for_end_22: | |
br label %end_0 | |
variable_0: | |
%138 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 67 | |
br label %for_begin_23 | |
for_begin_23: | |
%139 = phi i32 [0, %variable_0], [%143, %for_body_23] | |
%140 = icmp ult i32 %139, %fact_count_0 | |
br i1 %140, label %for_body_23, label %for_end_23 | |
for_body_23: | |
%141 = getelementptr [2 x i32], ptr %memory_0, i32 %139 | |
%142 = call ccc i1 @eclair_btree_insert_value_2(ptr %138, ptr %141) | |
%143 = add i32 1, %139 | |
br label %for_begin_23 | |
for_end_23: | |
%144 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 66 | |
br label %for_begin_24 | |
for_begin_24: | |
%145 = phi i32 [0, %for_end_23], [%149, %for_body_24] | |
%146 = icmp ult i32 %145, %fact_count_0 | |
br i1 %146, label %for_body_24, label %for_end_24 | |
for_body_24: | |
%147 = getelementptr [2 x i32], ptr %memory_0, i32 %145 | |
%148 = call ccc i1 @eclair_btree_insert_value_1(ptr %144, ptr %147) | |
%149 = add i32 1, %145 | |
br label %for_begin_24 | |
for_end_24: | |
br label %end_0 | |
switch.default_0: | |
ret void | |
end_0: | |
ret void | |
} | |
define external ccc void @eclair_add_fact(ptr %eclair_program_0, i32 %fact_type_0, ptr %memory_0) "wasm-export-name"="eclair_add_fact" { | |
start: | |
call ccc void @eclair_add_facts(ptr %eclair_program_0, i32 %fact_type_0, ptr %memory_0, i32 1) | |
ret void | |
} | |
define external ccc ptr @eclair_get_facts(ptr %eclair_program_0, i32 %fact_type_0) "wasm-export-name"="eclair_get_facts" { | |
start: | |
%stack.ptr_0 = alloca i32, i32 1 | |
%stack.ptr_1 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_2 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_3 = alloca i32, i32 1 | |
%stack.ptr_4 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_5 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_6 = alloca i32, i32 1 | |
%stack.ptr_7 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_8 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_9 = alloca i32, i32 1 | |
%stack.ptr_10 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_11 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_12 = alloca i32, i32 1 | |
%stack.ptr_13 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_14 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_15 = alloca i32, i32 1 | |
%stack.ptr_16 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_17 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_18 = alloca i32, i32 1 | |
%stack.ptr_19 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_20 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_21 = alloca i32, i32 1 | |
%stack.ptr_22 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_23 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_24 = alloca i32, i32 1 | |
%stack.ptr_25 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_26 = alloca %btree_iterator_t_6, i32 1 | |
%stack.ptr_27 = alloca i32, i32 1 | |
%stack.ptr_28 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_29 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_30 = alloca i32, i32 1 | |
%stack.ptr_31 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_32 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_33 = alloca i32, i32 1 | |
%stack.ptr_34 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_35 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_36 = alloca i32, i32 1 | |
%stack.ptr_37 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_38 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_39 = alloca i32, i32 1 | |
%stack.ptr_40 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_41 = alloca %btree_iterator_t_1, i32 1 | |
%stack.ptr_42 = alloca i32, i32 1 | |
%stack.ptr_43 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_44 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_45 = alloca i32, i32 1 | |
%stack.ptr_46 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_47 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_48 = alloca i32, i32 1 | |
%stack.ptr_49 = alloca %btree_iterator_t_0, i32 1 | |
%stack.ptr_50 = alloca %btree_iterator_t_0, i32 1 | |
switch i32 %fact_type_0, label %switch.default_0 [i32 50, label %conflicting_definitions_0 i32 53, label %cyclic_negation_0 i32 47, label %dead_code_0 i32 49, label %dead_internal_relation_0 i32 51, label %extern_used_as_fact_0 i32 52, label %extern_used_as_rule_0 i32 37, label %grounded_variable_0 i32 48, label %no_output_relation_0 i32 46, label %rule_with_contradiction_0 i32 45, label %unconstrained_rule_var_0 i32 39, label %ungrounded_external_atom_0 i32 38, label %ungrounded_variable_0 i32 44, label %wildcard_in_binop_0 i32 43, label %wildcard_in_constraint_0 i32 41, label %wildcard_in_extern_0 i32 40, label %wildcard_in_fact_0 i32 42, label %wildcard_in_rule_head_0] | |
conflicting_definitions_0: | |
%0 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 7 | |
%1 = call ccc i64 @eclair_btree_size_0(ptr %0) | |
%2 = trunc i64 %1 to i32 | |
%3 = mul i32 %2, 12 | |
%4 = call ccc ptr @malloc(i32 %3) | |
store i32 0, ptr %stack.ptr_0 | |
call ccc void @eclair_btree_begin_0(ptr %0, ptr %stack.ptr_1) | |
call ccc void @eclair_btree_end_0(ptr %0, ptr %stack.ptr_2) | |
br label %while_begin_0 | |
while_begin_0: | |
%5 = call ccc i1 @eclair_btree_iterator_is_equal_0(ptr %stack.ptr_1, ptr %stack.ptr_2) | |
%6 = select i1 %5, i1 0, i1 1 | |
br i1 %6, label %while_body_0, label %while_end_0 | |
while_body_0: | |
%7 = load i32, ptr %stack.ptr_0 | |
%8 = getelementptr [3 x i32], ptr %4, i32 %7 | |
%9 = call ccc ptr @eclair_btree_iterator_current_0(ptr %stack.ptr_1) | |
%10 = getelementptr [3 x i32], ptr %9, i32 0 | |
%11 = load [3 x i32], ptr %10 | |
%12 = getelementptr [3 x i32], ptr %8, i32 0 | |
store [3 x i32] %11, ptr %12 | |
%13 = add i32 %7, 1 | |
store i32 %13, ptr %stack.ptr_0 | |
call ccc void @eclair_btree_iterator_next_0(ptr %stack.ptr_1) | |
br label %while_begin_0 | |
while_end_0: | |
ret ptr %4 | |
cyclic_negation_0: | |
%14 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 11 | |
%15 = call ccc i64 @eclair_btree_size_6(ptr %14) | |
%16 = trunc i64 %15 to i32 | |
%17 = mul i32 %16, 4 | |
%18 = call ccc ptr @malloc(i32 %17) | |
store i32 0, ptr %stack.ptr_3 | |
call ccc void @eclair_btree_begin_6(ptr %14, ptr %stack.ptr_4) | |
call ccc void @eclair_btree_end_6(ptr %14, ptr %stack.ptr_5) | |
br label %while_begin_1 | |
while_begin_1: | |
%19 = call ccc i1 @eclair_btree_iterator_is_equal_6(ptr %stack.ptr_4, ptr %stack.ptr_5) | |
%20 = select i1 %19, i1 0, i1 1 | |
br i1 %20, label %while_body_1, label %while_end_1 | |
while_body_1: | |
%21 = load i32, ptr %stack.ptr_3 | |
%22 = getelementptr [1 x i32], ptr %18, i32 %21 | |
%23 = call ccc ptr @eclair_btree_iterator_current_6(ptr %stack.ptr_4) | |
%24 = getelementptr [1 x i32], ptr %23, i32 0 | |
%25 = load [1 x i32], ptr %24 | |
%26 = getelementptr [1 x i32], ptr %22, i32 0 | |
store [1 x i32] %25, ptr %26 | |
%27 = add i32 %21, 1 | |
store i32 %27, ptr %stack.ptr_3 | |
call ccc void @eclair_btree_iterator_next_6(ptr %stack.ptr_4) | |
br label %while_begin_1 | |
while_end_1: | |
ret ptr %18 | |
dead_code_0: | |
%28 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 12 | |
%29 = call ccc i64 @eclair_btree_size_6(ptr %28) | |
%30 = trunc i64 %29 to i32 | |
%31 = mul i32 %30, 4 | |
%32 = call ccc ptr @malloc(i32 %31) | |
store i32 0, ptr %stack.ptr_6 | |
call ccc void @eclair_btree_begin_6(ptr %28, ptr %stack.ptr_7) | |
call ccc void @eclair_btree_end_6(ptr %28, ptr %stack.ptr_8) | |
br label %while_begin_2 | |
while_begin_2: | |
%33 = call ccc i1 @eclair_btree_iterator_is_equal_6(ptr %stack.ptr_7, ptr %stack.ptr_8) | |
%34 = select i1 %33, i1 0, i1 1 | |
br i1 %34, label %while_body_2, label %while_end_2 | |
while_body_2: | |
%35 = load i32, ptr %stack.ptr_6 | |
%36 = getelementptr [1 x i32], ptr %32, i32 %35 | |
%37 = call ccc ptr @eclair_btree_iterator_current_6(ptr %stack.ptr_7) | |
%38 = getelementptr [1 x i32], ptr %37, i32 0 | |
%39 = load [1 x i32], ptr %38 | |
%40 = getelementptr [1 x i32], ptr %36, i32 0 | |
store [1 x i32] %39, ptr %40 | |
%41 = add i32 %35, 1 | |
store i32 %41, ptr %stack.ptr_6 | |
call ccc void @eclair_btree_iterator_next_6(ptr %stack.ptr_7) | |
br label %while_begin_2 | |
while_end_2: | |
ret ptr %32 | |
dead_internal_relation_0: | |
%42 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 13 | |
%43 = call ccc i64 @eclair_btree_size_1(ptr %42) | |
%44 = trunc i64 %43 to i32 | |
%45 = mul i32 %44, 8 | |
%46 = call ccc ptr @malloc(i32 %45) | |
store i32 0, ptr %stack.ptr_9 | |
call ccc void @eclair_btree_begin_1(ptr %42, ptr %stack.ptr_10) | |
call ccc void @eclair_btree_end_1(ptr %42, ptr %stack.ptr_11) | |
br label %while_begin_3 | |
while_begin_3: | |
%47 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_10, ptr %stack.ptr_11) | |
%48 = select i1 %47, i1 0, i1 1 | |
br i1 %48, label %while_body_3, label %while_end_3 | |
while_body_3: | |
%49 = load i32, ptr %stack.ptr_9 | |
%50 = getelementptr [2 x i32], ptr %46, i32 %49 | |
%51 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_10) | |
%52 = getelementptr [2 x i32], ptr %51, i32 0 | |
%53 = load [2 x i32], ptr %52 | |
%54 = getelementptr [2 x i32], ptr %50, i32 0 | |
store [2 x i32] %53, ptr %54 | |
%55 = add i32 %49, 1 | |
store i32 %55, ptr %stack.ptr_9 | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_10) | |
br label %while_begin_3 | |
while_end_3: | |
ret ptr %46 | |
extern_used_as_fact_0: | |
%56 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 25 | |
%57 = call ccc i64 @eclair_btree_size_0(ptr %56) | |
%58 = trunc i64 %57 to i32 | |
%59 = mul i32 %58, 12 | |
%60 = call ccc ptr @malloc(i32 %59) | |
store i32 0, ptr %stack.ptr_12 | |
call ccc void @eclair_btree_begin_0(ptr %56, ptr %stack.ptr_13) | |
call ccc void @eclair_btree_end_0(ptr %56, ptr %stack.ptr_14) | |
br label %while_begin_4 | |
while_begin_4: | |
%61 = call ccc i1 @eclair_btree_iterator_is_equal_0(ptr %stack.ptr_13, ptr %stack.ptr_14) | |
%62 = select i1 %61, i1 0, i1 1 | |
br i1 %62, label %while_body_4, label %while_end_4 | |
while_body_4: | |
%63 = load i32, ptr %stack.ptr_12 | |
%64 = getelementptr [3 x i32], ptr %60, i32 %63 | |
%65 = call ccc ptr @eclair_btree_iterator_current_0(ptr %stack.ptr_13) | |
%66 = getelementptr [3 x i32], ptr %65, i32 0 | |
%67 = load [3 x i32], ptr %66 | |
%68 = getelementptr [3 x i32], ptr %64, i32 0 | |
store [3 x i32] %67, ptr %68 | |
%69 = add i32 %63, 1 | |
store i32 %69, ptr %stack.ptr_12 | |
call ccc void @eclair_btree_iterator_next_0(ptr %stack.ptr_13) | |
br label %while_begin_4 | |
while_end_4: | |
ret ptr %60 | |
extern_used_as_rule_0: | |
%70 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 26 | |
%71 = call ccc i64 @eclair_btree_size_0(ptr %70) | |
%72 = trunc i64 %71 to i32 | |
%73 = mul i32 %72, 12 | |
%74 = call ccc ptr @malloc(i32 %73) | |
store i32 0, ptr %stack.ptr_15 | |
call ccc void @eclair_btree_begin_0(ptr %70, ptr %stack.ptr_16) | |
call ccc void @eclair_btree_end_0(ptr %70, ptr %stack.ptr_17) | |
br label %while_begin_5 | |
while_begin_5: | |
%75 = call ccc i1 @eclair_btree_iterator_is_equal_0(ptr %stack.ptr_16, ptr %stack.ptr_17) | |
%76 = select i1 %75, i1 0, i1 1 | |
br i1 %76, label %while_body_5, label %while_end_5 | |
while_body_5: | |
%77 = load i32, ptr %stack.ptr_15 | |
%78 = getelementptr [3 x i32], ptr %74, i32 %77 | |
%79 = call ccc ptr @eclair_btree_iterator_current_0(ptr %stack.ptr_16) | |
%80 = getelementptr [3 x i32], ptr %79, i32 0 | |
%81 = load [3 x i32], ptr %80 | |
%82 = getelementptr [3 x i32], ptr %78, i32 0 | |
store [3 x i32] %81, ptr %82 | |
%83 = add i32 %77, 1 | |
store i32 %83, ptr %stack.ptr_15 | |
call ccc void @eclair_btree_iterator_next_0(ptr %stack.ptr_16) | |
br label %while_begin_5 | |
while_end_5: | |
ret ptr %74 | |
grounded_variable_0: | |
%84 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 28 | |
%85 = call ccc i64 @eclair_btree_size_1(ptr %84) | |
%86 = trunc i64 %85 to i32 | |
%87 = mul i32 %86, 8 | |
%88 = call ccc ptr @malloc(i32 %87) | |
store i32 0, ptr %stack.ptr_18 | |
call ccc void @eclair_btree_begin_1(ptr %84, ptr %stack.ptr_19) | |
call ccc void @eclair_btree_end_1(ptr %84, ptr %stack.ptr_20) | |
br label %while_begin_6 | |
while_begin_6: | |
%89 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_19, ptr %stack.ptr_20) | |
%90 = select i1 %89, i1 0, i1 1 | |
br i1 %90, label %while_body_6, label %while_end_6 | |
while_body_6: | |
%91 = load i32, ptr %stack.ptr_18 | |
%92 = getelementptr [2 x i32], ptr %88, i32 %91 | |
%93 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_19) | |
%94 = getelementptr [2 x i32], ptr %93, i32 0 | |
%95 = load [2 x i32], ptr %94 | |
%96 = getelementptr [2 x i32], ptr %92, i32 0 | |
store [2 x i32] %95, ptr %96 | |
%97 = add i32 %91, 1 | |
store i32 %97, ptr %stack.ptr_18 | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_19) | |
br label %while_begin_6 | |
while_end_6: | |
ret ptr %88 | |
no_output_relation_0: | |
%98 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 46 | |
%99 = call ccc i64 @eclair_btree_size_6(ptr %98) | |
%100 = trunc i64 %99 to i32 | |
%101 = mul i32 %100, 4 | |
%102 = call ccc ptr @malloc(i32 %101) | |
store i32 0, ptr %stack.ptr_21 | |
call ccc void @eclair_btree_begin_6(ptr %98, ptr %stack.ptr_22) | |
call ccc void @eclair_btree_end_6(ptr %98, ptr %stack.ptr_23) | |
br label %while_begin_7 | |
while_begin_7: | |
%103 = call ccc i1 @eclair_btree_iterator_is_equal_6(ptr %stack.ptr_22, ptr %stack.ptr_23) | |
%104 = select i1 %103, i1 0, i1 1 | |
br i1 %104, label %while_body_7, label %while_end_7 | |
while_body_7: | |
%105 = load i32, ptr %stack.ptr_21 | |
%106 = getelementptr [1 x i32], ptr %102, i32 %105 | |
%107 = call ccc ptr @eclair_btree_iterator_current_6(ptr %stack.ptr_22) | |
%108 = getelementptr [1 x i32], ptr %107, i32 0 | |
%109 = load [1 x i32], ptr %108 | |
%110 = getelementptr [1 x i32], ptr %106, i32 0 | |
store [1 x i32] %109, ptr %110 | |
%111 = add i32 %105, 1 | |
store i32 %111, ptr %stack.ptr_21 | |
call ccc void @eclair_btree_iterator_next_6(ptr %stack.ptr_22) | |
br label %while_begin_7 | |
while_end_7: | |
ret ptr %102 | |
rule_with_contradiction_0: | |
%112 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 58 | |
%113 = call ccc i64 @eclair_btree_size_6(ptr %112) | |
%114 = trunc i64 %113 to i32 | |
%115 = mul i32 %114, 4 | |
%116 = call ccc ptr @malloc(i32 %115) | |
store i32 0, ptr %stack.ptr_24 | |
call ccc void @eclair_btree_begin_6(ptr %112, ptr %stack.ptr_25) | |
call ccc void @eclair_btree_end_6(ptr %112, ptr %stack.ptr_26) | |
br label %while_begin_8 | |
while_begin_8: | |
%117 = call ccc i1 @eclair_btree_iterator_is_equal_6(ptr %stack.ptr_25, ptr %stack.ptr_26) | |
%118 = select i1 %117, i1 0, i1 1 | |
br i1 %118, label %while_body_8, label %while_end_8 | |
while_body_8: | |
%119 = load i32, ptr %stack.ptr_24 | |
%120 = getelementptr [1 x i32], ptr %116, i32 %119 | |
%121 = call ccc ptr @eclair_btree_iterator_current_6(ptr %stack.ptr_25) | |
%122 = getelementptr [1 x i32], ptr %121, i32 0 | |
%123 = load [1 x i32], ptr %122 | |
%124 = getelementptr [1 x i32], ptr %120, i32 0 | |
store [1 x i32] %123, ptr %124 | |
%125 = add i32 %119, 1 | |
store i32 %125, ptr %stack.ptr_24 | |
call ccc void @eclair_btree_iterator_next_6(ptr %stack.ptr_25) | |
br label %while_begin_8 | |
while_end_8: | |
ret ptr %116 | |
unconstrained_rule_var_0: | |
%126 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 63 | |
%127 = call ccc i64 @eclair_btree_size_0(ptr %126) | |
%128 = trunc i64 %127 to i32 | |
%129 = mul i32 %128, 12 | |
%130 = call ccc ptr @malloc(i32 %129) | |
store i32 0, ptr %stack.ptr_27 | |
call ccc void @eclair_btree_begin_0(ptr %126, ptr %stack.ptr_28) | |
call ccc void @eclair_btree_end_0(ptr %126, ptr %stack.ptr_29) | |
br label %while_begin_9 | |
while_begin_9: | |
%131 = call ccc i1 @eclair_btree_iterator_is_equal_0(ptr %stack.ptr_28, ptr %stack.ptr_29) | |
%132 = select i1 %131, i1 0, i1 1 | |
br i1 %132, label %while_body_9, label %while_end_9 | |
while_body_9: | |
%133 = load i32, ptr %stack.ptr_27 | |
%134 = getelementptr [3 x i32], ptr %130, i32 %133 | |
%135 = call ccc ptr @eclair_btree_iterator_current_0(ptr %stack.ptr_28) | |
%136 = getelementptr [3 x i32], ptr %135, i32 0 | |
%137 = load [3 x i32], ptr %136 | |
%138 = getelementptr [3 x i32], ptr %134, i32 0 | |
store [3 x i32] %137, ptr %138 | |
%139 = add i32 %133, 1 | |
store i32 %139, ptr %stack.ptr_27 | |
call ccc void @eclair_btree_iterator_next_0(ptr %stack.ptr_28) | |
br label %while_begin_9 | |
while_end_9: | |
ret ptr %130 | |
ungrounded_external_atom_0: | |
%140 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 64 | |
%141 = call ccc i64 @eclair_btree_size_0(ptr %140) | |
%142 = trunc i64 %141 to i32 | |
%143 = mul i32 %142, 12 | |
%144 = call ccc ptr @malloc(i32 %143) | |
store i32 0, ptr %stack.ptr_30 | |
call ccc void @eclair_btree_begin_0(ptr %140, ptr %stack.ptr_31) | |
call ccc void @eclair_btree_end_0(ptr %140, ptr %stack.ptr_32) | |
br label %while_begin_10 | |
while_begin_10: | |
%145 = call ccc i1 @eclair_btree_iterator_is_equal_0(ptr %stack.ptr_31, ptr %stack.ptr_32) | |
%146 = select i1 %145, i1 0, i1 1 | |
br i1 %146, label %while_body_10, label %while_end_10 | |
while_body_10: | |
%147 = load i32, ptr %stack.ptr_30 | |
%148 = getelementptr [3 x i32], ptr %144, i32 %147 | |
%149 = call ccc ptr @eclair_btree_iterator_current_0(ptr %stack.ptr_31) | |
%150 = getelementptr [3 x i32], ptr %149, i32 0 | |
%151 = load [3 x i32], ptr %150 | |
%152 = getelementptr [3 x i32], ptr %148, i32 0 | |
store [3 x i32] %151, ptr %152 | |
%153 = add i32 %147, 1 | |
store i32 %153, ptr %stack.ptr_30 | |
call ccc void @eclair_btree_iterator_next_0(ptr %stack.ptr_31) | |
br label %while_begin_10 | |
while_end_10: | |
ret ptr %144 | |
ungrounded_variable_0: | |
%154 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 65 | |
%155 = call ccc i64 @eclair_btree_size_0(ptr %154) | |
%156 = trunc i64 %155 to i32 | |
%157 = mul i32 %156, 12 | |
%158 = call ccc ptr @malloc(i32 %157) | |
store i32 0, ptr %stack.ptr_33 | |
call ccc void @eclair_btree_begin_0(ptr %154, ptr %stack.ptr_34) | |
call ccc void @eclair_btree_end_0(ptr %154, ptr %stack.ptr_35) | |
br label %while_begin_11 | |
while_begin_11: | |
%159 = call ccc i1 @eclair_btree_iterator_is_equal_0(ptr %stack.ptr_34, ptr %stack.ptr_35) | |
%160 = select i1 %159, i1 0, i1 1 | |
br i1 %160, label %while_body_11, label %while_end_11 | |
while_body_11: | |
%161 = load i32, ptr %stack.ptr_33 | |
%162 = getelementptr [3 x i32], ptr %158, i32 %161 | |
%163 = call ccc ptr @eclair_btree_iterator_current_0(ptr %stack.ptr_34) | |
%164 = getelementptr [3 x i32], ptr %163, i32 0 | |
%165 = load [3 x i32], ptr %164 | |
%166 = getelementptr [3 x i32], ptr %162, i32 0 | |
store [3 x i32] %165, ptr %166 | |
%167 = add i32 %161, 1 | |
store i32 %167, ptr %stack.ptr_33 | |
call ccc void @eclair_btree_iterator_next_0(ptr %stack.ptr_34) | |
br label %while_begin_11 | |
while_end_11: | |
ret ptr %158 | |
wildcard_in_binop_0: | |
%168 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 69 | |
%169 = call ccc i64 @eclair_btree_size_1(ptr %168) | |
%170 = trunc i64 %169 to i32 | |
%171 = mul i32 %170, 8 | |
%172 = call ccc ptr @malloc(i32 %171) | |
store i32 0, ptr %stack.ptr_36 | |
call ccc void @eclair_btree_begin_1(ptr %168, ptr %stack.ptr_37) | |
call ccc void @eclair_btree_end_1(ptr %168, ptr %stack.ptr_38) | |
br label %while_begin_12 | |
while_begin_12: | |
%173 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_37, ptr %stack.ptr_38) | |
%174 = select i1 %173, i1 0, i1 1 | |
br i1 %174, label %while_body_12, label %while_end_12 | |
while_body_12: | |
%175 = load i32, ptr %stack.ptr_36 | |
%176 = getelementptr [2 x i32], ptr %172, i32 %175 | |
%177 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_37) | |
%178 = getelementptr [2 x i32], ptr %177, i32 0 | |
%179 = load [2 x i32], ptr %178 | |
%180 = getelementptr [2 x i32], ptr %176, i32 0 | |
store [2 x i32] %179, ptr %180 | |
%181 = add i32 %175, 1 | |
store i32 %181, ptr %stack.ptr_36 | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_37) | |
br label %while_begin_12 | |
while_end_12: | |
ret ptr %172 | |
wildcard_in_constraint_0: | |
%182 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 70 | |
%183 = call ccc i64 @eclair_btree_size_1(ptr %182) | |
%184 = trunc i64 %183 to i32 | |
%185 = mul i32 %184, 8 | |
%186 = call ccc ptr @malloc(i32 %185) | |
store i32 0, ptr %stack.ptr_39 | |
call ccc void @eclair_btree_begin_1(ptr %182, ptr %stack.ptr_40) | |
call ccc void @eclair_btree_end_1(ptr %182, ptr %stack.ptr_41) | |
br label %while_begin_13 | |
while_begin_13: | |
%187 = call ccc i1 @eclair_btree_iterator_is_equal_1(ptr %stack.ptr_40, ptr %stack.ptr_41) | |
%188 = select i1 %187, i1 0, i1 1 | |
br i1 %188, label %while_body_13, label %while_end_13 | |
while_body_13: | |
%189 = load i32, ptr %stack.ptr_39 | |
%190 = getelementptr [2 x i32], ptr %186, i32 %189 | |
%191 = call ccc ptr @eclair_btree_iterator_current_1(ptr %stack.ptr_40) | |
%192 = getelementptr [2 x i32], ptr %191, i32 0 | |
%193 = load [2 x i32], ptr %192 | |
%194 = getelementptr [2 x i32], ptr %190, i32 0 | |
store [2 x i32] %193, ptr %194 | |
%195 = add i32 %189, 1 | |
store i32 %195, ptr %stack.ptr_39 | |
call ccc void @eclair_btree_iterator_next_1(ptr %stack.ptr_40) | |
br label %while_begin_13 | |
while_end_13: | |
ret ptr %186 | |
wildcard_in_extern_0: | |
%196 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 71 | |
%197 = call ccc i64 @eclair_btree_size_0(ptr %196) | |
%198 = trunc i64 %197 to i32 | |
%199 = mul i32 %198, 12 | |
%200 = call ccc ptr @malloc(i32 %199) | |
store i32 0, ptr %stack.ptr_42 | |
call ccc void @eclair_btree_begin_0(ptr %196, ptr %stack.ptr_43) | |
call ccc void @eclair_btree_end_0(ptr %196, ptr %stack.ptr_44) | |
br label %while_begin_14 | |
while_begin_14: | |
%201 = call ccc i1 @eclair_btree_iterator_is_equal_0(ptr %stack.ptr_43, ptr %stack.ptr_44) | |
%202 = select i1 %201, i1 0, i1 1 | |
br i1 %202, label %while_body_14, label %while_end_14 | |
while_body_14: | |
%203 = load i32, ptr %stack.ptr_42 | |
%204 = getelementptr [3 x i32], ptr %200, i32 %203 | |
%205 = call ccc ptr @eclair_btree_iterator_current_0(ptr %stack.ptr_43) | |
%206 = getelementptr [3 x i32], ptr %205, i32 0 | |
%207 = load [3 x i32], ptr %206 | |
%208 = getelementptr [3 x i32], ptr %204, i32 0 | |
store [3 x i32] %207, ptr %208 | |
%209 = add i32 %203, 1 | |
store i32 %209, ptr %stack.ptr_42 | |
call ccc void @eclair_btree_iterator_next_0(ptr %stack.ptr_43) | |
br label %while_begin_14 | |
while_end_14: | |
ret ptr %200 | |
wildcard_in_fact_0: | |
%210 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 72 | |
%211 = call ccc i64 @eclair_btree_size_0(ptr %210) | |
%212 = trunc i64 %211 to i32 | |
%213 = mul i32 %212, 12 | |
%214 = call ccc ptr @malloc(i32 %213) | |
store i32 0, ptr %stack.ptr_45 | |
call ccc void @eclair_btree_begin_0(ptr %210, ptr %stack.ptr_46) | |
call ccc void @eclair_btree_end_0(ptr %210, ptr %stack.ptr_47) | |
br label %while_begin_15 | |
while_begin_15: | |
%215 = call ccc i1 @eclair_btree_iterator_is_equal_0(ptr %stack.ptr_46, ptr %stack.ptr_47) | |
%216 = select i1 %215, i1 0, i1 1 | |
br i1 %216, label %while_body_15, label %while_end_15 | |
while_body_15: | |
%217 = load i32, ptr %stack.ptr_45 | |
%218 = getelementptr [3 x i32], ptr %214, i32 %217 | |
%219 = call ccc ptr @eclair_btree_iterator_current_0(ptr %stack.ptr_46) | |
%220 = getelementptr [3 x i32], ptr %219, i32 0 | |
%221 = load [3 x i32], ptr %220 | |
%222 = getelementptr [3 x i32], ptr %218, i32 0 | |
store [3 x i32] %221, ptr %222 | |
%223 = add i32 %217, 1 | |
store i32 %223, ptr %stack.ptr_45 | |
call ccc void @eclair_btree_iterator_next_0(ptr %stack.ptr_46) | |
br label %while_begin_15 | |
while_end_15: | |
ret ptr %214 | |
wildcard_in_rule_head_0: | |
%224 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 73 | |
%225 = call ccc i64 @eclair_btree_size_0(ptr %224) | |
%226 = trunc i64 %225 to i32 | |
%227 = mul i32 %226, 12 | |
%228 = call ccc ptr @malloc(i32 %227) | |
store i32 0, ptr %stack.ptr_48 | |
call ccc void @eclair_btree_begin_0(ptr %224, ptr %stack.ptr_49) | |
call ccc void @eclair_btree_end_0(ptr %224, ptr %stack.ptr_50) | |
br label %while_begin_16 | |
while_begin_16: | |
%229 = call ccc i1 @eclair_btree_iterator_is_equal_0(ptr %stack.ptr_49, ptr %stack.ptr_50) | |
%230 = select i1 %229, i1 0, i1 1 | |
br i1 %230, label %while_body_16, label %while_end_16 | |
while_body_16: | |
%231 = load i32, ptr %stack.ptr_48 | |
%232 = getelementptr [3 x i32], ptr %228, i32 %231 | |
%233 = call ccc ptr @eclair_btree_iterator_current_0(ptr %stack.ptr_49) | |
%234 = getelementptr [3 x i32], ptr %233, i32 0 | |
%235 = load [3 x i32], ptr %234 | |
%236 = getelementptr [3 x i32], ptr %232, i32 0 | |
store [3 x i32] %235, ptr %236 | |
%237 = add i32 %231, 1 | |
store i32 %237, ptr %stack.ptr_48 | |
call ccc void @eclair_btree_iterator_next_0(ptr %stack.ptr_49) | |
br label %while_begin_16 | |
while_end_16: | |
ret ptr %228 | |
switch.default_0: | |
ret ptr zeroinitializer | |
} | |
define external ccc void @eclair_free_buffer(ptr %buffer_0) "wasm-export-name"="eclair_free_buffer" { | |
start: | |
call ccc void @free(ptr %buffer_0) | |
ret void | |
} | |
define external ccc i32 @eclair_fact_count(ptr %eclair_program_0, i32 %fact_type_0) "wasm-export-name"="eclair_fact_count" { | |
start: | |
switch i32 %fact_type_0, label %switch.default_0 [i32 50, label %conflicting_definitions_0 i32 53, label %cyclic_negation_0 i32 47, label %dead_code_0 i32 49, label %dead_internal_relation_0 i32 51, label %extern_used_as_fact_0 i32 52, label %extern_used_as_rule_0 i32 37, label %grounded_variable_0 i32 48, label %no_output_relation_0 i32 46, label %rule_with_contradiction_0 i32 45, label %unconstrained_rule_var_0 i32 39, label %ungrounded_external_atom_0 i32 38, label %ungrounded_variable_0 i32 44, label %wildcard_in_binop_0 i32 43, label %wildcard_in_constraint_0 i32 41, label %wildcard_in_extern_0 i32 40, label %wildcard_in_fact_0 i32 42, label %wildcard_in_rule_head_0] | |
conflicting_definitions_0: | |
%0 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 7 | |
%1 = call ccc i64 @eclair_btree_size_0(ptr %0) | |
%2 = trunc i64 %1 to i32 | |
ret i32 %2 | |
cyclic_negation_0: | |
%3 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 11 | |
%4 = call ccc i64 @eclair_btree_size_6(ptr %3) | |
%5 = trunc i64 %4 to i32 | |
ret i32 %5 | |
dead_code_0: | |
%6 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 12 | |
%7 = call ccc i64 @eclair_btree_size_6(ptr %6) | |
%8 = trunc i64 %7 to i32 | |
ret i32 %8 | |
dead_internal_relation_0: | |
%9 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 13 | |
%10 = call ccc i64 @eclair_btree_size_1(ptr %9) | |
%11 = trunc i64 %10 to i32 | |
ret i32 %11 | |
extern_used_as_fact_0: | |
%12 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 25 | |
%13 = call ccc i64 @eclair_btree_size_0(ptr %12) | |
%14 = trunc i64 %13 to i32 | |
ret i32 %14 | |
extern_used_as_rule_0: | |
%15 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 26 | |
%16 = call ccc i64 @eclair_btree_size_0(ptr %15) | |
%17 = trunc i64 %16 to i32 | |
ret i32 %17 | |
grounded_variable_0: | |
%18 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 28 | |
%19 = call ccc i64 @eclair_btree_size_1(ptr %18) | |
%20 = trunc i64 %19 to i32 | |
ret i32 %20 | |
no_output_relation_0: | |
%21 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 46 | |
%22 = call ccc i64 @eclair_btree_size_6(ptr %21) | |
%23 = trunc i64 %22 to i32 | |
ret i32 %23 | |
rule_with_contradiction_0: | |
%24 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 58 | |
%25 = call ccc i64 @eclair_btree_size_6(ptr %24) | |
%26 = trunc i64 %25 to i32 | |
ret i32 %26 | |
unconstrained_rule_var_0: | |
%27 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 63 | |
%28 = call ccc i64 @eclair_btree_size_0(ptr %27) | |
%29 = trunc i64 %28 to i32 | |
ret i32 %29 | |
ungrounded_external_atom_0: | |
%30 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 64 | |
%31 = call ccc i64 @eclair_btree_size_0(ptr %30) | |
%32 = trunc i64 %31 to i32 | |
ret i32 %32 | |
ungrounded_variable_0: | |
%33 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 65 | |
%34 = call ccc i64 @eclair_btree_size_0(ptr %33) | |
%35 = trunc i64 %34 to i32 | |
ret i32 %35 | |
wildcard_in_binop_0: | |
%36 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 69 | |
%37 = call ccc i64 @eclair_btree_size_1(ptr %36) | |
%38 = trunc i64 %37 to i32 | |
ret i32 %38 | |
wildcard_in_constraint_0: | |
%39 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 70 | |
%40 = call ccc i64 @eclair_btree_size_1(ptr %39) | |
%41 = trunc i64 %40 to i32 | |
ret i32 %41 | |
wildcard_in_extern_0: | |
%42 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 71 | |
%43 = call ccc i64 @eclair_btree_size_0(ptr %42) | |
%44 = trunc i64 %43 to i32 | |
ret i32 %44 | |
wildcard_in_fact_0: | |
%45 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 72 | |
%46 = call ccc i64 @eclair_btree_size_0(ptr %45) | |
%47 = trunc i64 %46 to i32 | |
ret i32 %47 | |
wildcard_in_rule_head_0: | |
%48 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 73 | |
%49 = call ccc i64 @eclair_btree_size_0(ptr %48) | |
%50 = trunc i64 %49 to i32 | |
ret i32 %50 | |
switch.default_0: | |
ret i32 0 | |
} | |
define external ccc i32 @eclair_encode_string(ptr %eclair_program_0, i32 %string_length_0, ptr %string_data_0) "wasm-export-name"="eclair_encode_string" { | |
start: | |
%stack.ptr_0 = alloca %symbol_t, i32 1 | |
%0 = call ccc ptr @malloc(i32 %string_length_0) | |
%1 = zext i32 %string_length_0 to i64 | |
call ccc void @llvm.memcpy.p0i8.p0i8.i64(ptr %0, ptr %string_data_0, i64 %1, i1 0) | |
call ccc void @eclair_symbol_init(ptr %stack.ptr_0, i32 %string_length_0, ptr %0) | |
%2 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 0 | |
%3 = call ccc i32 @eclair_symbol_table_lookup_index(ptr %2, ptr %stack.ptr_0) | |
%4 = icmp ne i32 %3, 4294967295 | |
br i1 %4, label %if_0, label %end_if_0 | |
if_0: | |
call ccc void @free(ptr %0) | |
ret i32 %3 | |
end_if_0: | |
%5 = call ccc i32 @eclair_symbol_table_find_or_insert(ptr %2, ptr %stack.ptr_0) | |
ret i32 %5 | |
} | |
define external ccc ptr @eclair_decode_string(ptr %eclair_program_0, i32 %string_index_0) "wasm-export-name"="eclair_decode_string" { | |
start: | |
%0 = getelementptr %program, ptr %eclair_program_0, i32 0, i32 0 | |
%1 = call ccc i1 @eclair_symbol_table_contains_index(ptr %0, i32 %string_index_0) | |
br i1 %1, label %if_0, label %end_if_0 | |
if_0: | |
%2 = call ccc ptr @eclair_symbol_table_lookup_symbol(ptr %0, i32 %string_index_0) | |
ret ptr %2 | |
end_if_0: | |
ret ptr zeroinitializer | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment