.splay_tree_insert.dot 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. digraph "CFG for 'splay_tree_insert' function" {
  2. label="CFG for 'splay_tree_insert' function";
  3. Node0x797d60 [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}}"];
  4. Node0x797d60:s0 -> Node0x798b10;
  5. Node0x797d60:s1 -> Node0x798b60;
  6. Node0x798b10 [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}"];
  7. Node0x798b10 -> Node0x798b60;
  8. Node0x798b60 [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}}"];
  9. Node0x798b60:s0 -> Node0x798bb0;
  10. Node0x798b60:s1 -> Node0x798d90;
  11. Node0x798bb0 [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}}"];
  12. Node0x798bb0:s0 -> Node0x798c00;
  13. Node0x798bb0:s1 -> Node0x798d90;
  14. Node0x798c00 [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}}"];
  15. Node0x798c00:s0 -> Node0x798c50;
  16. Node0x798c00:s1 -> Node0x798ca0;
  17. Node0x798c50 [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}"];
  18. Node0x798c50 -> Node0x798ca0;
  19. Node0x798ca0 [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}}"];
  20. Node0x798ca0:s0 -> Node0x798cf0;
  21. Node0x798ca0:s1 -> Node0x798d40;
  22. Node0x798cf0 [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}"];
  23. Node0x798cf0 -> Node0x798d40;
  24. Node0x798d40 [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}"];
  25. Node0x798d40 -> Node0x798fc0;
  26. Node0x798d90 [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}}"];
  27. Node0x798d90:s0 -> Node0x798e30;
  28. Node0x798d90:s1 -> Node0x798de0;
  29. Node0x798de0 [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}"];
  30. Node0x798de0 -> Node0x798f70;
  31. Node0x798e30 [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}}"];
  32. Node0x798e30:s0 -> Node0x798e80;
  33. Node0x798e30:s1 -> Node0x798ed0;
  34. Node0x798e80 [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}"];
  35. Node0x798e80 -> Node0x798f20;
  36. Node0x798ed0 [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}"];
  37. Node0x798ed0 -> Node0x798f20;
  38. Node0x798f20 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#ec7f6370",label="{%134:\l134: \l br label %135\l}"];
  39. Node0x798f20 -> Node0x798f70;
  40. Node0x798f70 [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}"];
  41. Node0x798f70 -> Node0x798fc0;
  42. Node0x798fc0 [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}"];
  43. }