.splay_tree_delete_helper.dot 17 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. digraph "CFG for 'splay_tree_delete_helper' function" {
  2. label="CFG for 'splay_tree_delete_helper' function";
  3. 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}}"];
  4. Node0x2216660:s0 -> Node0x2218130;
  5. Node0x2216660:s1 -> Node0x22180e0;
  6. Node0x22180e0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#85a8fc70",label="{%10:\l10: \l br label %151\l}"];
  7. Node0x22180e0 -> Node0x2218860;
  8. 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}}"];
  9. Node0x2218130:s0 -> Node0x2218180;
  10. Node0x2218130:s1 -> Node0x22181d0;
  11. 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}"];
  12. Node0x2218180 -> Node0x22181d0;
  13. 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}}"];
  14. Node0x22181d0:s0 -> Node0x2218220;
  15. Node0x22181d0:s1 -> Node0x2218270;
  16. 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}"];
  17. Node0x2218220 -> Node0x2218270;
  18. 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}"];
  19. Node0x2218270 -> Node0x22182c0;
  20. 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}}"];
  21. Node0x22182c0:s0 -> Node0x2218310;
  22. Node0x22182c0:s1 -> Node0x2218810;
  23. 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}"];
  24. Node0x2218310 -> Node0x2218360;
  25. 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}}"];
  26. Node0x2218360:s0 -> Node0x22183b0;
  27. Node0x2218360:s1 -> Node0x22187c0;
  28. 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}}"];
  29. Node0x22183b0:s0 -> Node0x2218400;
  30. Node0x22183b0:s1 -> Node0x2218590;
  31. 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}}"];
  32. Node0x2218400:s0 -> Node0x2218450;
  33. Node0x2218400:s1 -> Node0x22184a0;
  34. 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}"];
  35. Node0x2218450 -> Node0x22184a0;
  36. 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}}"];
  37. Node0x22184a0:s0 -> Node0x22184f0;
  38. Node0x22184a0:s1 -> Node0x2218540;
  39. 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}"];
  40. Node0x22184f0 -> Node0x2218540;
  41. 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}"];
  42. Node0x2218540 -> Node0x2218590;
  43. 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}}"];
  44. Node0x2218590:s0 -> Node0x22185e0;
  45. Node0x2218590:s1 -> Node0x2218770;
  46. 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}}"];
  47. Node0x22185e0:s0 -> Node0x2218630;
  48. Node0x22185e0:s1 -> Node0x2218680;
  49. 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}"];
  50. Node0x2218630 -> Node0x2218680;
  51. 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}}"];
  52. Node0x2218680:s0 -> Node0x22186d0;
  53. Node0x2218680:s1 -> Node0x2218720;
  54. 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}"];
  55. Node0x22186d0 -> Node0x2218720;
  56. 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}"];
  57. Node0x2218720 -> Node0x2218770;
  58. 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}"];
  59. Node0x2218770 -> Node0x2218360;
  60. Node0x22187c0 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#f5c1a970",label="{%149:\l149: \l br label %41\l}"];
  61. Node0x22187c0 -> Node0x22182c0;
  62. Node0x2218810 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#96b7ff70",label="{%150:\l150: \l br label %151\l}"];
  63. Node0x2218810 -> Node0x2218860;
  64. Node0x2218860 [shape=record,color="#3d50c3ff", style=filled, fillcolor="#a7c5fe70",label="{%151:\l151: \l ret void\l}"];
  65. }