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

	Node0x2209d70 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%3:\l  %4 = alloca %struct.splay_tree_s*, align 8\l  %5 = alloca i64, align 8\l  %6 = alloca i64, align 8\l  %7 = alloca i32, align 4\l  %8 = alloca %struct.splay_tree_node_s*, align 8\l  store %struct.splay_tree_s* %0, %struct.splay_tree_s** %4, align 8\l  store i64 %1, i64* %5, align 8\l  store i64 %2, i64* %6, align 8\l  store i32 0, i32* %7, align 4\l  store %struct.splay_tree_node_s* null, %struct.splay_tree_node_s** %8, align\l... 8\l  %9 = load %struct.splay_tree_s*, %struct.splay_tree_s** %4, align 8\l  %10 = load i64, i64* %5, align 8\l  call void @splay_tree_splay(%struct.splay_tree_s* %9, i64 %10)\l  %11 = load %struct.splay_tree_s*, %struct.splay_tree_s** %4, align 8\l  %12 = getelementptr inbounds %struct.splay_tree_s, %struct.splay_tree_s*\l... %11, i32 0, i32 0\l  %13 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %12,\l... align 8\l  %14 = icmp ne %struct.splay_tree_node_s* %13, null\l  br i1 %14, label %15, label %26\l|{<s0>T|<s1>F}}"];
	Node0x2209d70:s0 -> Node0x220ab20;
	Node0x2209d70:s1 -> Node0x220ab70;
	Node0x220ab20 [shape=record,color="#b70d28ff", style=filled, fillcolor="#dc5d4a70",label="{%15:\l15:                                               \l  %16 = load %struct.splay_tree_s*, %struct.splay_tree_s** %4, align 8\l  %17 = getelementptr inbounds %struct.splay_tree_s, %struct.splay_tree_s*\l... %16, i32 0, i32 1\l  %18 = load i32 (i64, i64)*, i32 (i64, i64)** %17, align 8\l  %19 = load %struct.splay_tree_s*, %struct.splay_tree_s** %4, align 8\l  %20 = getelementptr inbounds %struct.splay_tree_s, %struct.splay_tree_s*\l... %19, i32 0, i32 0\l  %21 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %20,\l... align 8\l  %22 = getelementptr inbounds %struct.splay_tree_node_s,\l... %struct.splay_tree_node_s* %21, i32 0, i32 0\l  %23 = load i64, i64* %22, align 8\l  %24 = load i64, i64* %5, align 8\l  %25 = call i32 %18(i64 %23, i64 %24)\l  store i32 %25, i32* %7, align 4\l  br label %26\l}"];
	Node0x220ab20 -> Node0x220ab70;
	Node0x220ab70 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%26:\l26:                                               \l  %27 = load %struct.splay_tree_s*, %struct.splay_tree_s** %4, align 8\l  %28 = getelementptr inbounds %struct.splay_tree_s, %struct.splay_tree_s*\l... %27, i32 0, i32 0\l  %29 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %28,\l... align 8\l  %30 = icmp ne %struct.splay_tree_node_s* %29, null\l  br i1 %30, label %31, label %73\l|{<s0>T|<s1>F}}"];
	Node0x220ab70:s0 -> Node0x220abc0;
	Node0x220ab70:s1 -> Node0x220ada0;
	Node0x220abc0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#dc5d4a70",label="{%31:\l31:                                               \l  %32 = load i32, i32* %7, align 4\l  %33 = icmp eq i32 %32, 0\l  br i1 %33, label %34, label %73\l|{<s0>T|<s1>F}}"];
	Node0x220abc0:s0 -> Node0x220ac10;
	Node0x220abc0:s1 -> Node0x220ada0;
	Node0x220ac10 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#f4c5ad70",label="{%34:\l34:                                               \l  %35 = load %struct.splay_tree_s*, %struct.splay_tree_s** %4, align 8\l  %36 = getelementptr inbounds %struct.splay_tree_s, %struct.splay_tree_s*\l... %35, i32 0, i32 2\l  %37 = load void (i64)*, void (i64)** %36, align 8\l  %38 = icmp ne void (i64)* %37, null\l  br i1 %38, label %39, label %48\l|{<s0>T|<s1>F}}"];
	Node0x220ac10:s0 -> Node0x220ac60;
	Node0x220ac10:s1 -> Node0x220acb0;
	Node0x220ac60 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e3d9d370",label="{%39:\l39:                                               \l  %40 = load %struct.splay_tree_s*, %struct.splay_tree_s** %4, align 8\l  %41 = getelementptr inbounds %struct.splay_tree_s, %struct.splay_tree_s*\l... %40, i32 0, i32 2\l  %42 = load void (i64)*, void (i64)** %41, align 8\l  %43 = load %struct.splay_tree_s*, %struct.splay_tree_s** %4, align 8\l  %44 = getelementptr inbounds %struct.splay_tree_s, %struct.splay_tree_s*\l... %43, i32 0, i32 0\l  %45 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %44,\l... align 8\l  %46 = getelementptr inbounds %struct.splay_tree_node_s,\l... %struct.splay_tree_node_s* %45, i32 0, i32 0\l  %47 = load i64, i64* %46, align 8\l  call void %42(i64 %47)\l  br label %48\l}"];
	Node0x220ac60 -> Node0x220acb0;
	Node0x220acb0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#f4c5ad70",label="{%48:\l48:                                               \l  %49 = load %struct.splay_tree_s*, %struct.splay_tree_s** %4, align 8\l  %50 = getelementptr inbounds %struct.splay_tree_s, %struct.splay_tree_s*\l... %49, i32 0, i32 3\l  %51 = load void (i64)*, void (i64)** %50, align 8\l  %52 = icmp ne void (i64)* %51, null\l  br i1 %52, label %53, label %62\l|{<s0>T|<s1>F}}"];
	Node0x220acb0:s0 -> Node0x220ad00;
	Node0x220acb0:s1 -> Node0x220ad50;
	Node0x220ad00 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#e3d9d370",label="{%53:\l53:                                               \l  %54 = load %struct.splay_tree_s*, %struct.splay_tree_s** %4, align 8\l  %55 = getelementptr inbounds %struct.splay_tree_s, %struct.splay_tree_s*\l... %54, i32 0, i32 3\l  %56 = load void (i64)*, void (i64)** %55, align 8\l  %57 = load %struct.splay_tree_s*, %struct.splay_tree_s** %4, align 8\l  %58 = getelementptr inbounds %struct.splay_tree_s, %struct.splay_tree_s*\l... %57, i32 0, i32 0\l  %59 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %58,\l... align 8\l  %60 = getelementptr inbounds %struct.splay_tree_node_s,\l... %struct.splay_tree_node_s* %59, i32 0, i32 1\l  %61 = load i64, i64* %60, align 8\l  call void %56(i64 %61)\l  br label %62\l}"];
	Node0x220ad00 -> Node0x220ad50;
	Node0x220ad50 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#f4c5ad70",label="{%62:\l62:                                               \l  %63 = load i64, i64* %5, align 8\l  %64 = load %struct.splay_tree_s*, %struct.splay_tree_s** %4, align 8\l  %65 = getelementptr inbounds %struct.splay_tree_s, %struct.splay_tree_s*\l... %64, i32 0, i32 0\l  %66 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %65,\l... align 8\l  %67 = getelementptr inbounds %struct.splay_tree_node_s,\l... %struct.splay_tree_node_s* %66, i32 0, i32 0\l  store i64 %63, i64* %67, align 8\l  %68 = load i64, i64* %6, align 8\l  %69 = load %struct.splay_tree_s*, %struct.splay_tree_s** %4, align 8\l  %70 = getelementptr inbounds %struct.splay_tree_s, %struct.splay_tree_s*\l... %69, i32 0, i32 0\l  %71 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %70,\l... align 8\l  %72 = getelementptr inbounds %struct.splay_tree_node_s,\l... %struct.splay_tree_node_s* %71, i32 0, i32 1\l  store i64 %68, i64* %72, align 8\l  br label %139\l}"];
	Node0x220ad50 -> Node0x220afd0;
	Node0x220ada0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#d0473d70",label="{%73:\l73:                                               \l  %74 = load %struct.splay_tree_s*, %struct.splay_tree_s** %4, align 8\l  %75 = getelementptr inbounds %struct.splay_tree_s, %struct.splay_tree_s*\l... %74, i32 0, i32 4\l  %76 = load i8* (i32, i8*)*, i8* (i32, i8*)** %75, align 8\l  %77 = load %struct.splay_tree_s*, %struct.splay_tree_s** %4, align 8\l  %78 = getelementptr inbounds %struct.splay_tree_s, %struct.splay_tree_s*\l... %77, i32 0, i32 6\l  %79 = load i8*, i8** %78, align 8\l  %80 = call i8* %76(i32 32, i8* %79)\l  %81 = bitcast i8* %80 to %struct.splay_tree_node_s*\l  store %struct.splay_tree_node_s* %81, %struct.splay_tree_node_s** %8, align 8\l  %82 = load i64, i64* %5, align 8\l  %83 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %8, align\l... 8\l  %84 = getelementptr inbounds %struct.splay_tree_node_s,\l... %struct.splay_tree_node_s* %83, i32 0, i32 0\l  store i64 %82, i64* %84, align 8\l  %85 = load i64, i64* %6, align 8\l  %86 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %8, align\l... 8\l  %87 = getelementptr inbounds %struct.splay_tree_node_s,\l... %struct.splay_tree_node_s* %86, i32 0, i32 1\l  store i64 %85, i64* %87, align 8\l  %88 = load %struct.splay_tree_s*, %struct.splay_tree_s** %4, align 8\l  %89 = getelementptr inbounds %struct.splay_tree_s, %struct.splay_tree_s*\l... %88, i32 0, i32 0\l  %90 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %89,\l... align 8\l  %91 = icmp ne %struct.splay_tree_node_s* %90, null\l  br i1 %91, label %97, label %92\l|{<s0>T|<s1>F}}"];
	Node0x220ada0:s0 -> Node0x220ae40;
	Node0x220ada0:s1 -> Node0x220adf0;
	Node0x220adf0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#f7b59970",label="{%92:\l92:                                               \l  %93 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %8, align\l... 8\l  %94 = getelementptr inbounds %struct.splay_tree_node_s,\l... %struct.splay_tree_node_s* %93, i32 0, i32 2\l  store %struct.splay_tree_node_s* null, %struct.splay_tree_node_s** %94,\l... align 8\l  %95 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %8, align\l... 8\l  %96 = getelementptr inbounds %struct.splay_tree_node_s,\l... %struct.splay_tree_node_s* %95, i32 0, i32 3\l  store %struct.splay_tree_node_s* null, %struct.splay_tree_node_s** %96,\l... align 8\l  br label %135\l}"];
	Node0x220adf0 -> Node0x220af80;
	Node0x220ae40 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%97:\l97:                                               \l  %98 = load i32, i32* %7, align 4\l  %99 = icmp slt i32 %98, 0\l  br i1 %99, label %100, label %117\l|{<s0>T|<s1>F}}"];
	Node0x220ae40:s0 -> Node0x220ae90;
	Node0x220ae40:s1 -> Node0x220aee0;
	Node0x220ae90 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ead5c970",label="{%100:\l100:                                              \l  %101 = load %struct.splay_tree_s*, %struct.splay_tree_s** %4, align 8\l  %102 = getelementptr inbounds %struct.splay_tree_s, %struct.splay_tree_s*\l... %101, i32 0, i32 0\l  %103 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %102,\l... align 8\l  %104 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %8,\l... align 8\l  %105 = getelementptr inbounds %struct.splay_tree_node_s,\l... %struct.splay_tree_node_s* %104, i32 0, i32 2\l  store %struct.splay_tree_node_s* %103, %struct.splay_tree_node_s** %105,\l... align 8\l  %106 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %8,\l... align 8\l  %107 = getelementptr inbounds %struct.splay_tree_node_s,\l... %struct.splay_tree_node_s* %106, i32 0, i32 2\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 3\l  %110 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %109,\l... align 8\l  %111 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %8,\l... align 8\l  %112 = getelementptr inbounds %struct.splay_tree_node_s,\l... %struct.splay_tree_node_s* %111, i32 0, i32 3\l  store %struct.splay_tree_node_s* %110, %struct.splay_tree_node_s** %112,\l... align 8\l  %113 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %8,\l... align 8\l  %114 = getelementptr inbounds %struct.splay_tree_node_s,\l... %struct.splay_tree_node_s* %113, i32 0, i32 2\l  %115 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %114,\l... align 8\l  %116 = getelementptr inbounds %struct.splay_tree_node_s,\l... %struct.splay_tree_node_s* %115, i32 0, i32 3\l  store %struct.splay_tree_node_s* null, %struct.splay_tree_node_s** %116,\l... align 8\l  br label %134\l}"];
	Node0x220ae90 -> Node0x220af30;
	Node0x220aee0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#f7af9170",label="{%117:\l117:                                              \l  %118 = load %struct.splay_tree_s*, %struct.splay_tree_s** %4, align 8\l  %119 = getelementptr inbounds %struct.splay_tree_s, %struct.splay_tree_s*\l... %118, i32 0, i32 0\l  %120 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %119,\l... align 8\l  %121 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %8,\l... align 8\l  %122 = getelementptr inbounds %struct.splay_tree_node_s,\l... %struct.splay_tree_node_s* %121, i32 0, i32 3\l  store %struct.splay_tree_node_s* %120, %struct.splay_tree_node_s** %122,\l... align 8\l  %123 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %8,\l... align 8\l  %124 = getelementptr inbounds %struct.splay_tree_node_s,\l... %struct.splay_tree_node_s* %123, i32 0, i32 3\l  %125 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %124,\l... align 8\l  %126 = getelementptr inbounds %struct.splay_tree_node_s,\l... %struct.splay_tree_node_s* %125, i32 0, i32 2\l  %127 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %126,\l... align 8\l  %128 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %8,\l... align 8\l  %129 = getelementptr inbounds %struct.splay_tree_node_s,\l... %struct.splay_tree_node_s* %128, i32 0, i32 2\l  store %struct.splay_tree_node_s* %127, %struct.splay_tree_node_s** %129,\l... align 8\l  %130 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %8,\l... align 8\l  %131 = getelementptr inbounds %struct.splay_tree_node_s,\l... %struct.splay_tree_node_s* %130, i32 0, i32 3\l  %132 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %131,\l... align 8\l  %133 = getelementptr inbounds %struct.splay_tree_node_s,\l... %struct.splay_tree_node_s* %132, i32 0, i32 2\l  store %struct.splay_tree_node_s* null, %struct.splay_tree_node_s** %133,\l... align 8\l  br label %134\l}"];
	Node0x220aee0 -> Node0x220af30;
	Node0x220af30 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%134:\l134:                                              \l  br label %135\l}"];
	Node0x220af30 -> Node0x220af80;
	Node0x220af80 [shape=record,color="#b70d28ff", style=filled, fillcolor="#d0473d70",label="{%135:\l135:                                              \l  %136 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %8,\l... align 8\l  %137 = load %struct.splay_tree_s*, %struct.splay_tree_s** %4, align 8\l  %138 = getelementptr inbounds %struct.splay_tree_s, %struct.splay_tree_s*\l... %137, i32 0, i32 0\l  store %struct.splay_tree_node_s* %136, %struct.splay_tree_node_s** %138,\l... align 8\l  br label %139\l}"];
	Node0x220af80 -> Node0x220afd0;
	Node0x220afd0 [shape=record,color="#b70d28ff", style=filled, fillcolor="#b70d2870",label="{%139:\l139:                                              \l  %140 = load %struct.splay_tree_s*, %struct.splay_tree_s** %4, align 8\l  %141 = getelementptr inbounds %struct.splay_tree_s, %struct.splay_tree_s*\l... %140, i32 0, i32 0\l  %142 = load %struct.splay_tree_node_s*, %struct.splay_tree_node_s** %141,\l... align 8\l  ret %struct.splay_tree_node_s* %142\l}"];
}
