digraph "CFG for 'splay_tree_delete_helper' function" {
	label="CFG for 'splay_tree_delete_helper' function";

	Node0x2216660 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#a7c5fe70",label="{%2:\l  %3 = alloca %struct.splay_tree_s*, align 8\l  %4 = alloca %struct.splay_tree_node_s*, align 8\l  %5 = alloca %struct.splay_tree_node_s*, align 8\l  %6 = alloca %struct.splay_tree_node_s*, align 8\l  %7 = alloca %struct.splay_tree_node_s*, align 8\l  store %struct.splay_tree_s* %0, %struct.splay_tree_s** %3, align 8\l  store %struct.splay_tree_node_s* %1, %struct.splay_tree_node_s** %4, align 8\l  store %struct.splay_tree_node_s* null, %struct.splay_tree_node_s** %5, align\l... 8\l  store %struct.splay_tree_node_s* null, %struct.splay_tree_node_s** %6, align\l... 8\l  %8 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %4, align 8\l  %9 = icmp ne %struct.splay_tree_node_s* %8, null\l  br i1 %9, label %11, label %10\l|{<s0>T|<s1>F}}"];
	Node0x2216660:s0 -> Node0x2218130;
	Node0x2216660:s1 -> Node0x22180e0;
	Node0x22180e0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#85a8fc70",label="{%10:\l10:                                               \l  br label %151\l}"];
	Node0x22180e0 -> Node0x2218860;
	Node0x2218130 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#96b7ff70",label="{%11:\l11:                                               \l  %12 = load %struct.splay_tree_s*, %struct.splay_tree_s** %3, align 8\l  %13 = getelementptr inbounds %struct.splay_tree_s, %struct.splay_tree_s*\l... %12, i32 0, i32 2\l  %14 = load void (i64)*, void (i64)** %13, align 8\l  %15 = icmp ne void (i64)* %14, null\l  br i1 %15, label %16, label %23\l|{<s0>T|<s1>F}}"];
	Node0x2218130:s0 -> Node0x2218180;
	Node0x2218130:s1 -> Node0x22181d0;
	Node0x2218180 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#85a8fc70",label="{%16:\l16:                                               \l  %17 = load %struct.splay_tree_s*, %struct.splay_tree_s** %3, align 8\l  %18 = getelementptr inbounds %struct.splay_tree_s, %struct.splay_tree_s*\l... %17, i32 0, i32 2\l  %19 = load void (i64)*, void (i64)** %18, align 8\l  %20 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %4, align\l... 8\l  %21 = getelementptr inbounds %struct.splay_tree_node_s,\l... %struct.splay_tree_node_s* %20, i32 0, i32 0\l  %22 = load i64, i64* %21, align 8\l  call void %19(i64 %22)\l  br label %23\l}"];
	Node0x2218180 -> Node0x22181d0;
	Node0x22181d0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#96b7ff70",label="{%23:\l23:                                               \l  %24 = load %struct.splay_tree_s*, %struct.splay_tree_s** %3, align 8\l  %25 = getelementptr inbounds %struct.splay_tree_s, %struct.splay_tree_s*\l... %24, i32 0, i32 3\l  %26 = load void (i64)*, void (i64)** %25, align 8\l  %27 = icmp ne void (i64)* %26, null\l  br i1 %27, label %28, label %35\l|{<s0>T|<s1>F}}"];
	Node0x22181d0:s0 -> Node0x2218220;
	Node0x22181d0:s1 -> Node0x2218270;
	Node0x2218220 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#85a8fc70",label="{%28:\l28:                                               \l  %29 = load %struct.splay_tree_s*, %struct.splay_tree_s** %3, align 8\l  %30 = getelementptr inbounds %struct.splay_tree_s, %struct.splay_tree_s*\l... %29, i32 0, i32 3\l  %31 = load void (i64)*, void (i64)** %30, align 8\l  %32 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %4, align\l... 8\l  %33 = getelementptr inbounds %struct.splay_tree_node_s,\l... %struct.splay_tree_node_s* %32, i32 0, i32 1\l  %34 = load i64, i64* %33, align 8\l  call void %31(i64 %34)\l  br label %35\l}"];
	Node0x2218220 -> Node0x2218270;
	Node0x2218270 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#96b7ff70",label="{%35:\l35:                                               \l  %36 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %5, align\l... 8\l  %37 = ptrtoint %struct.splay_tree_node_s* %36 to i64\l  %38 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %4, align\l... 8\l  %39 = getelementptr inbounds %struct.splay_tree_node_s,\l... %struct.splay_tree_node_s* %38, i32 0, i32 0\l  store i64 %37, i64* %39, align 8\l  %40 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %4, align\l... 8\l  store %struct.splay_tree_node_s* %40, %struct.splay_tree_node_s** %5, align 8\l  br label %41\l}"];
	Node0x2218270 -> Node0x22182c0;
	Node0x22182c0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#f5c1a970",label="{%41:\l41:                                               \l  %42 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %5, align\l... 8\l  %43 = icmp ne %struct.splay_tree_node_s* %42, null\l  br i1 %43, label %44, label %150\l|{<s0>T|<s1>F}}"];
	Node0x22182c0:s0 -> Node0x2218310;
	Node0x22182c0:s1 -> Node0x2218810;
	Node0x2218310 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#f5c1a970",label="{%44:\l44:                                               \l  %45 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %5, align\l... 8\l  store %struct.splay_tree_node_s* %45, %struct.splay_tree_node_s** %6, align 8\l  store %struct.splay_tree_node_s* null, %struct.splay_tree_node_s** %5, align\l... 8\l  br label %46\l}"];
	Node0x2218310 -> Node0x2218360;
	Node0x2218360 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%46:\l46:                                               \l  %47 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %6, align\l... 8\l  %48 = icmp ne %struct.splay_tree_node_s* %47, null\l  br i1 %48, label %49, label %149\l|{<s0>T|<s1>F}}"];
	Node0x2218360:s0 -> Node0x22183b0;
	Node0x2218360:s1 -> Node0x22187c0;
	Node0x22183b0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%49:\l49:                                               \l  store %struct.splay_tree_node_s* null, %struct.splay_tree_node_s** %7, align\l... 8\l  %50 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %6, align\l... 8\l  %51 = getelementptr inbounds %struct.splay_tree_node_s,\l... %struct.splay_tree_node_s* %50, i32 0, i32 2\l  %52 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %51,\l... align 8\l  %53 = icmp ne %struct.splay_tree_node_s* %52, null\l  br i1 %53, label %54, label %92\l|{<s0>T|<s1>F}}"];
	Node0x22183b0:s0 -> Node0x2218400;
	Node0x22183b0:s1 -> Node0x2218590;
	Node0x2218400 [shape=record,color="#b70d28ff", style=filled, fillcolor="#ca3b3770",label="{%54:\l54:                                               \l  %55 = load %struct.splay_tree_s*, %struct.splay_tree_s** %3, align 8\l  %56 = getelementptr inbounds %struct.splay_tree_s, %struct.splay_tree_s*\l... %55, i32 0, i32 2\l  %57 = load void (i64)*, void (i64)** %56, align 8\l  %58 = icmp ne void (i64)* %57, null\l  br i1 %58, label %59, label %68\l|{<s0>T|<s1>F}}"];
	Node0x2218400:s0 -> Node0x2218450;
	Node0x2218400:s1 -> Node0x22184a0;
	Node0x2218450 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#d8564670",label="{%59:\l59:                                               \l  %60 = load %struct.splay_tree_s*, %struct.splay_tree_s** %3, align 8\l  %61 = getelementptr inbounds %struct.splay_tree_s, %struct.splay_tree_s*\l... %60, i32 0, i32 2\l  %62 = load void (i64)*, void (i64)** %61, align 8\l  %63 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %6, align\l... 8\l  %64 = getelementptr inbounds %struct.splay_tree_node_s,\l... %struct.splay_tree_node_s* %63, i32 0, i32 2\l  %65 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %64,\l... align 8\l  %66 = getelementptr inbounds %struct.splay_tree_node_s,\l... %struct.splay_tree_node_s* %65, i32 0, i32 0\l  %67 = load i64, i64* %66, align 8\l  call void %62(i64 %67)\l  br label %68\l}"];
	Node0x2218450 -> Node0x22184a0;
	Node0x22184a0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#ca3b3770",label="{%68:\l68:                                               \l  %69 = load %struct.splay_tree_s*, %struct.splay_tree_s** %3, align 8\l  %70 = getelementptr inbounds %struct.splay_tree_s, %struct.splay_tree_s*\l... %69, i32 0, i32 3\l  %71 = load void (i64)*, void (i64)** %70, align 8\l  %72 = icmp ne void (i64)* %71, null\l  br i1 %72, label %73, label %82\l|{<s0>T|<s1>F}}"];
	Node0x22184a0:s0 -> Node0x22184f0;
	Node0x22184a0:s1 -> Node0x2218540;
	Node0x22184f0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#d8564670",label="{%73:\l73:                                               \l  %74 = load %struct.splay_tree_s*, %struct.splay_tree_s** %3, align 8\l  %75 = getelementptr inbounds %struct.splay_tree_s, %struct.splay_tree_s*\l... %74, i32 0, i32 3\l  %76 = load void (i64)*, void (i64)** %75, align 8\l  %77 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %6, align\l... 8\l  %78 = getelementptr inbounds %struct.splay_tree_node_s,\l... %struct.splay_tree_node_s* %77, i32 0, i32 2\l  %79 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %78,\l... align 8\l  %80 = getelementptr inbounds %struct.splay_tree_node_s,\l... %struct.splay_tree_node_s* %79, i32 0, i32 1\l  %81 = load i64, i64* %80, align 8\l  call void %76(i64 %81)\l  br label %82\l}"];
	Node0x22184f0 -> Node0x2218540;
	Node0x2218540 [shape=record,color="#b70d28ff", style=filled, fillcolor="#ca3b3770",label="{%82:\l82:                                               \l  %83 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %5, align\l... 8\l  %84 = ptrtoint %struct.splay_tree_node_s* %83 to i64\l  %85 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %6, align\l... 8\l  %86 = getelementptr inbounds %struct.splay_tree_node_s,\l... %struct.splay_tree_node_s* %85, i32 0, i32 2\l  %87 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %86,\l... align 8\l  %88 = getelementptr inbounds %struct.splay_tree_node_s,\l... %struct.splay_tree_node_s* %87, i32 0, i32 0\l  store i64 %84, i64* %88, align 8\l  %89 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %6, align\l... 8\l  %90 = getelementptr inbounds %struct.splay_tree_node_s,\l... %struct.splay_tree_node_s* %89, i32 0, i32 2\l  %91 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %90,\l... align 8\l  store %struct.splay_tree_node_s* %91, %struct.splay_tree_node_s** %5, align 8\l  br label %92\l}"];
	Node0x2218540 -> Node0x2218590;
	Node0x2218590 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%92:\l92:                                               \l  %93 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %6, align\l... 8\l  %94 = getelementptr inbounds %struct.splay_tree_node_s,\l... %struct.splay_tree_node_s* %93, i32 0, i32 3\l  %95 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %94,\l... align 8\l  %96 = icmp ne %struct.splay_tree_node_s* %95, null\l  br i1 %96, label %97, label %135\l|{<s0>T|<s1>F}}"];
	Node0x2218590:s0 -> Node0x22185e0;
	Node0x2218590:s1 -> Node0x2218770;
	Node0x22185e0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#ca3b3770",label="{%97:\l97:                                               \l  %98 = load %struct.splay_tree_s*, %struct.splay_tree_s** %3, align 8\l  %99 = getelementptr inbounds %struct.splay_tree_s, %struct.splay_tree_s*\l... %98, i32 0, i32 2\l  %100 = load void (i64)*, void (i64)** %99, align 8\l  %101 = icmp ne void (i64)* %100, null\l  br i1 %101, label %102, label %111\l|{<s0>T|<s1>F}}"];
	Node0x22185e0:s0 -> Node0x2218630;
	Node0x22185e0:s1 -> Node0x2218680;
	Node0x2218630 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#d8564670",label="{%102:\l102:                                              \l  %103 = load %struct.splay_tree_s*, %struct.splay_tree_s** %3, align 8\l  %104 = getelementptr inbounds %struct.splay_tree_s, %struct.splay_tree_s*\l... %103, i32 0, i32 2\l  %105 = load void (i64)*, void (i64)** %104, align 8\l  %106 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %6,\l... align 8\l  %107 = getelementptr inbounds %struct.splay_tree_node_s,\l... %struct.splay_tree_node_s* %106, i32 0, i32 3\l  %108 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %107,\l... align 8\l  %109 = getelementptr inbounds %struct.splay_tree_node_s,\l... %struct.splay_tree_node_s* %108, i32 0, i32 0\l  %110 = load i64, i64* %109, align 8\l  call void %105(i64 %110)\l  br label %111\l}"];
	Node0x2218630 -> Node0x2218680;
	Node0x2218680 [shape=record,color="#b70d28ff", style=filled, fillcolor="#ca3b3770",label="{%111:\l111:                                              \l  %112 = load %struct.splay_tree_s*, %struct.splay_tree_s** %3, align 8\l  %113 = getelementptr inbounds %struct.splay_tree_s, %struct.splay_tree_s*\l... %112, i32 0, i32 3\l  %114 = load void (i64)*, void (i64)** %113, align 8\l  %115 = icmp ne void (i64)* %114, null\l  br i1 %115, label %116, label %125\l|{<s0>T|<s1>F}}"];
	Node0x2218680:s0 -> Node0x22186d0;
	Node0x2218680:s1 -> Node0x2218720;
	Node0x22186d0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#d8564670",label="{%116:\l116:                                              \l  %117 = load %struct.splay_tree_s*, %struct.splay_tree_s** %3, align 8\l  %118 = getelementptr inbounds %struct.splay_tree_s, %struct.splay_tree_s*\l... %117, i32 0, i32 3\l  %119 = load void (i64)*, void (i64)** %118, align 8\l  %120 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %6,\l... align 8\l  %121 = getelementptr inbounds %struct.splay_tree_node_s,\l... %struct.splay_tree_node_s* %120, i32 0, i32 3\l  %122 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %121,\l... align 8\l  %123 = getelementptr inbounds %struct.splay_tree_node_s,\l... %struct.splay_tree_node_s* %122, i32 0, i32 1\l  %124 = load i64, i64* %123, align 8\l  call void %119(i64 %124)\l  br label %125\l}"];
	Node0x22186d0 -> Node0x2218720;
	Node0x2218720 [shape=record,color="#b70d28ff", style=filled, fillcolor="#ca3b3770",label="{%125:\l125:                                              \l  %126 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %5,\l... align 8\l  %127 = ptrtoint %struct.splay_tree_node_s* %126 to i64\l  %128 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %6,\l... align 8\l  %129 = getelementptr inbounds %struct.splay_tree_node_s,\l... %struct.splay_tree_node_s* %128, i32 0, i32 3\l  %130 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %129,\l... align 8\l  %131 = getelementptr inbounds %struct.splay_tree_node_s,\l... %struct.splay_tree_node_s* %130, i32 0, i32 0\l  store i64 %127, i64* %131, align 8\l  %132 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %6,\l... align 8\l  %133 = getelementptr inbounds %struct.splay_tree_node_s,\l... %struct.splay_tree_node_s* %132, i32 0, i32 3\l  %134 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %133,\l... align 8\l  store %struct.splay_tree_node_s* %134, %struct.splay_tree_node_s** %5, align\l... 8\l  br label %135\l}"];
	Node0x2218720 -> Node0x2218770;
	Node0x2218770 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%135:\l135:                                              \l  %136 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %6,\l... align 8\l  store %struct.splay_tree_node_s* %136, %struct.splay_tree_node_s** %7, align\l... 8\l  %137 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %7,\l... align 8\l  %138 = getelementptr inbounds %struct.splay_tree_node_s,\l... %struct.splay_tree_node_s* %137, i32 0, i32 0\l  %139 = load i64, i64* %138, align 8\l  %140 = inttoptr i64 %139 to %struct.splay_tree_node_s*\l  store %struct.splay_tree_node_s* %140, %struct.splay_tree_node_s** %6, align\l... 8\l  %141 = load %struct.splay_tree_s*, %struct.splay_tree_s** %3, align 8\l  %142 = getelementptr inbounds %struct.splay_tree_s, %struct.splay_tree_s*\l... %141, i32 0, i32 5\l  %143 = load void (i8*, i8*)*, void (i8*, i8*)** %142, align 8\l  %144 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %7,\l... align 8\l  %145 = bitcast %struct.splay_tree_node_s* %144 to i8*\l  %146 = load %struct.splay_tree_s*, %struct.splay_tree_s** %3, align 8\l  %147 = getelementptr inbounds %struct.splay_tree_s, %struct.splay_tree_s*\l... %146, i32 0, i32 6\l  %148 = load i8*, i8** %147, align 8\l  call void %143(i8* %145, i8* %148)\l  br label %46\l}"];
	Node0x2218770 -> Node0x2218360;
	Node0x22187c0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#f5c1a970",label="{%149:\l149:                                              \l  br label %41\l}"];
	Node0x22187c0 -> Node0x22182c0;
	Node0x2218810 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#96b7ff70",label="{%150:\l150:                                              \l  br label %151\l}"];
	Node0x2218810 -> Node0x2218860;
	Node0x2218860 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#a7c5fe70",label="{%151:\l151:                                              \l  ret void\l}"];
}
