Advertisement
sebikul

Untitled

Jun 14th, 2012
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 157.99 KB | None | 0 0
  1. gb.qt4: warning: unable to load Qt translation: es_AR.UTF-8
  2. gb.jit: using LLVM 3.1.
  3. ------------------------------------------------------------------------
  4. gb.jit: beginning compiling Module.Module:
  5. ------------------------------------------------------------------------
  6.  
  7. ------------------------------------------------------------------------
  8. gb.jit: beginning compiling Module.Load_External:
  9. ------------------------------------------------------------------------
  10.  
  11. ------------------------------------------------------------------------
  12. gb.jit: dumping function Module.Load_External:
  13. ------------------------------------------------------------------------
  14. ; ModuleID = 'jit_mod'
  15. target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32-n8:16:32-S128"
  16. target triple = "i386-unknown-linux-gnu"
  17.  
  18. %String = type { i32, i8*, i32, i32 }
  19. %Value = type { i32, i32, i32, i32 }
  20. %Integer = type { i32, i32 }
  21. %ValueObject = type { i8*, i8*, i8* }
  22. %Null = type { i32 }
  23. %Object = type { i8*, i8* }
  24. %OBJECT = type { i8*, i32 }
  25. %ValueFunction = type { i32, i8*, i8*, i8, i8, i16 }
  26. %ValueVariant = type { i32, i32, i64 }
  27. %Boolean = type { i32, i32 }
  28. %Void = type { i32, i32, i32, i32 }
  29.  
  30. define void @func_0_Module_6() {
  31. entry:
  32. %0 = load i8** inttoptr (i32 134824628 to i8**)
  33. %1 = load i8** inttoptr (i32 134824636 to i8**)
  34. %2 = getelementptr i8* %1, i32 112
  35. %3 = icmp eq i8* %2, %0
  36. br i1 %3, label %if.cont, label %if.then
  37.  
  38. if.then: ; preds = %entry
  39. tail call void @stack_corrupted_abort()
  40. unreachable
  41.  
  42. if.cont: ; preds = %entry
  43. %4 = load i8** inttoptr (i32 144415652 to i8**)
  44. %5 = icmp eq i8* %4, null
  45. br i1 %5, label %if.cont2, label %if.then1
  46.  
  47. if.then1: ; preds = %if.cont
  48. %6 = bitcast i8* %4 to i32*
  49. %7 = getelementptr i32* %6, i32 -2
  50. %8 = load i32* %7
  51. %9 = add i32 %8, 1
  52. store i32 %9, i32* %7
  53. %10 = getelementptr i8* %4, i32 -4
  54. %11 = bitcast i8* %10 to i32*
  55. %12 = load i32* %11
  56. %13 = insertvalue %String { i32 9, i8* undef, i32 undef, i32 undef }, i8* %4, 1
  57. %14 = insertvalue %String %13, i32 0, 2
  58. %15 = insertvalue %String %14, i32 %12, 3
  59. br label %if.cont2
  60.  
  61. if.cont2: ; preds = %if.cont, %if.then1
  62. %16 = phi %String [ %15, %if.then1 ], [ { i32 10, i8* null, i32 0, i32 0 }, %if.cont ]
  63. %17 = load %Value** inttoptr (i32 134824628 to %Value**)
  64. %18 = bitcast %Value* %17 to %String*
  65. %19 = extractvalue %String %16, 0
  66. %20 = getelementptr %String* %18, i32 0, i32 0
  67. store i32 %19, i32* %20
  68. %21 = extractvalue %String %16, 1
  69. %22 = getelementptr %String* %18, i32 0, i32 1
  70. store i8* %21, i8** %22
  71. %23 = extractvalue %String %16, 2
  72. %24 = getelementptr %String* %18, i32 0, i32 2
  73. store i32 %23, i32* %24
  74. %25 = extractvalue %String %16, 3
  75. %26 = getelementptr %String* %18, i32 0, i32 3
  76. store i32 %25, i32* %26
  77. %27 = getelementptr %Value* %17, i32 1
  78. %28 = bitcast %Value* %27 to %String*
  79. %29 = getelementptr %String* %28, i32 0, i32 0
  80. store i32 10, i32* %29
  81. %30 = getelementptr %String* %28, i32 0, i32 1
  82. store i8* inttoptr (i32 144440103 to i8*), i8** %30
  83. %31 = getelementptr %String* %28, i32 0, i32 2
  84. store i32 0, i32* %31
  85. %32 = getelementptr %String* %28, i32 0, i32 3
  86. store i32 8, i32* %32
  87. %33 = getelementptr %Value* %17, i32 2
  88. %34 = bitcast %Value* %33 to %Integer*
  89. %35 = getelementptr %Integer* %34, i32 0, i32 0
  90. store i32 4, i32* %35
  91. %36 = getelementptr %Integer* %34, i32 0, i32 1
  92. store i32 1, i32* %36
  93. %37 = getelementptr %Value* %17, i32 3
  94. store %Value* %37, %Value** inttoptr (i32 134824628 to %Value**)
  95. tail call void @SUBR_dir(i16 -28413)
  96. %38 = load %Value** inttoptr (i32 134824628 to %Value**)
  97. %39 = getelementptr %Value* %38, i32 -1
  98. %40 = bitcast %Value* %39 to %ValueObject*
  99. %41 = bitcast %Value* %39 to %Null*
  100. %42 = getelementptr %Null* %41, i32 0, i32 0
  101. %43 = load i32* %42
  102. %44 = icmp eq i32 %43, 15
  103. %45 = getelementptr %ValueObject* %40, i32 0, i32 1
  104. %46 = load i8** %45
  105. %47 = getelementptr %ValueObject* %40, i32 0, i32 0
  106. %48 = load i8** %47
  107. %49 = insertvalue %Object undef, i8* %48, 0
  108. %50 = insertvalue %Object %49, i8* %46, 1
  109. %51 = select i1 %44, %Object { i8* inttoptr (i32 142287700 to i8*), i8* null }, %Object %50
  110. store %Value* %39, %Value** inttoptr (i32 134824628 to %Value**)
  111. %52 = load i8** inttoptr (i32 134824636 to i8**)
  112. %53 = bitcast i8* %52 to %ValueObject*
  113. %54 = extractvalue %Object %51, 0
  114. %55 = getelementptr %ValueObject* %53, i32 0, i32 0
  115. store i8* %54, i8** %55
  116. %56 = extractvalue %Object %51, 1
  117. %57 = getelementptr %ValueObject* %53, i32 0, i32 1
  118. store i8* %56, i8** %57
  119. %58 = load i8** inttoptr (i32 134824628 to i8**)
  120. %59 = load i8** inttoptr (i32 134824636 to i8**)
  121. %60 = getelementptr i8* %59, i32 112
  122. %61 = icmp eq i8* %60, %58
  123. br i1 %61, label %if.cont4, label %if.then3
  124.  
  125. if.then3: ; preds = %if.cont2
  126. tail call void @stack_corrupted_abort()
  127. unreachable
  128.  
  129. if.cont4: ; preds = %if.cont2
  130. %62 = load %Value** inttoptr (i32 134824628 to %Value**)
  131. %63 = bitcast %Value* %62 to %ValueObject*
  132. %64 = getelementptr %ValueObject* %63, i32 0, i32 0
  133. store i8* %54, i8** %64
  134. %65 = getelementptr %ValueObject* %63, i32 0, i32 1
  135. store i8* %56, i8** %65
  136. %66 = getelementptr %Value* %62, i32 1
  137. store %Value* %66, %Value** inttoptr (i32 134824628 to %Value**)
  138. %67 = icmp ne i8* %56, null
  139. br i1 %67, label %obj_not_null5, label %borrow_object_done
  140.  
  141. obj_not_null5: ; preds = %if.cont4
  142. %68 = bitcast i8* %56 to %OBJECT*
  143. %69 = getelementptr %OBJECT* %68, i32 0, i32 1
  144. %70 = load i32* %69
  145. %71 = add i32 %70, 1
  146. store i32 %71, i32* %69
  147. %.pre = load %Value** inttoptr (i32 134824628 to %Value**)
  148. br label %borrow_object_done
  149.  
  150. borrow_object_done: ; preds = %if.cont4, %obj_not_null5
  151. %72 = phi %Value* [ %66, %if.cont4 ], [ %.pre, %obj_not_null5 ]
  152. %73 = getelementptr %Value* %72, i32 -1
  153. %74 = bitcast %Value* %73 to %ValueObject*
  154. %75 = bitcast %Value* %73 to %Null*
  155. %76 = getelementptr %Null* %75, i32 0, i32 0
  156. %77 = load i32* %76
  157. %78 = icmp eq i32 %77, 15
  158. %79 = getelementptr %ValueObject* %74, i32 0, i32 1
  159. %80 = load i8** %79
  160. %81 = getelementptr %ValueObject* %74, i32 0, i32 0
  161. %82 = load i8** %81
  162. %83 = insertvalue %Object undef, i8* %82, 0
  163. %84 = insertvalue %Object %83, i8* %80, 1
  164. %85 = select i1 %78, %Object { i8* inttoptr (i32 142287700 to i8*), i8* null }, %Object %84
  165. %86 = extractvalue %Object %85, 0
  166. %87 = ptrtoint i8* %86 to i32
  167. %88 = icmp eq i32 %87, 15
  168. br i1 %88, label %if.then6, label %if.cont7
  169.  
  170. if.then6: ; preds = %borrow_object_done
  171. tail call void (i32, ...)* @THROW(i32 13)
  172. unreachable
  173.  
  174. if.cont7: ; preds = %borrow_object_done
  175. %89 = extractvalue %Object %85, 1
  176. %90 = icmp eq i8* %89, null
  177. br i1 %90, label %is_null, label %not_null
  178.  
  179. is_null: ; preds = %if.cont7
  180. tail call void (i32, ...)* @THROW(i32 13)
  181. unreachable
  182.  
  183. not_null: ; preds = %if.cont7
  184. %91 = bitcast i8* %89 to %OBJECT*
  185. %92 = getelementptr %OBJECT* %91, i32 0, i32 0
  186. %93 = load i8** %92
  187. %94 = getelementptr i8* %93, i32 28
  188. %95 = bitcast i8* %94 to i8**
  189. %96 = load i8** %95
  190. %97 = getelementptr i8* %96, i32 32
  191. %98 = bitcast i8* %97 to i8**
  192. %99 = load i8** %98
  193. %100 = getelementptr i8* %99, i32 16
  194. %101 = load i8* %100
  195. %102 = and i8 %101, 1
  196. %103 = icmp eq i8 %102, 0
  197. %104 = getelementptr i8* %99, i32 8
  198. br i1 %103, label %property_non_native, label %property_native
  199.  
  200. property_native: ; preds = %not_null
  201. %105 = bitcast i8* %104 to i8**
  202. %106 = load i8** %105
  203. %107 = tail call i8 @EXEC_call_native(i8* %106, i8* %89, i32 4, i8* null)
  204. %108 = icmp eq i8 %107, 0
  205. br i1 %108, label %if.cont9, label %if.then8
  206.  
  207. if.then8: ; preds = %property_native
  208. tail call void @ERROR_propagate()
  209. unreachable
  210.  
  211. if.cont9: ; preds = %property_native
  212. %109 = load i32* getelementptr (%Integer* inttoptr (i32 134831596 to %Integer*), i32 0, i32 1)
  213. br label %property_read_done
  214.  
  215. property_non_native: ; preds = %not_null
  216. %110 = bitcast i8* %104 to i32*
  217. %111 = load i32* %110
  218. %112 = getelementptr i8* %99, i32 20
  219. %113 = bitcast i8* %112 to i8**
  220. %114 = load i8** %113
  221. store i8* %114, i8** inttoptr (i32 134831616 to i8**)
  222. store i8* %89, i8** inttoptr (i32 134831620 to i8**)
  223. store i32 0, i32* inttoptr (i32 134831632 to i32*)
  224. store i32 %111, i32* inttoptr (i32 134831624 to i32*)
  225. tail call void @EXEC_function_real()
  226. %115 = load i32* getelementptr (%Integer* inttoptr (i32 134831572 to %Integer*), i32 0, i32 1)
  227. store i32 0, i32* inttoptr (i32 134831572 to i32*)
  228. br label %property_read_done
  229.  
  230. property_read_done: ; preds = %property_non_native, %if.cont9
  231. %116 = phi i32 [ %109, %if.cont9 ], [ %115, %property_non_native ]
  232. %117 = getelementptr %OBJECT* %91, i32 0, i32 1
  233. %118 = load i32* %117
  234. %119 = add i32 %118, -1
  235. store i32 %119, i32* %117
  236. %120 = icmp slt i32 %119, 1
  237. br i1 %120, label %release_obj10, label %release_done11
  238.  
  239. release_obj10: ; preds = %property_read_done
  240. tail call void @CLASS_free(i8* %89)
  241. br label %release_done11
  242.  
  243. release_done11: ; preds = %property_read_done, %release_obj10
  244. %121 = load %Value** inttoptr (i32 134824628 to %Value**)
  245. %122 = getelementptr %Value* %121, i32 -1
  246. store %Value* %122, %Value** inttoptr (i32 134824628 to %Value**)
  247. %123 = icmp eq i32 %116, 0
  248. br i1 %123, label %return, label %block13
  249.  
  250. block13: ; preds = %release_done11
  251. %124 = load i8** inttoptr (i32 134824628 to i8**)
  252. %125 = load i8** inttoptr (i32 134824636 to i8**)
  253. %126 = getelementptr i8* %125, i32 112
  254. %127 = icmp eq i8* %126, %124
  255. br i1 %127, label %if.cont15, label %if.then14
  256.  
  257. if.then14: ; preds = %block13
  258. tail call void @stack_corrupted_abort()
  259. unreachable
  260.  
  261. if.cont15: ; preds = %block13
  262. br i1 %67, label %not_null24, label %is_null23
  263.  
  264. is_null23: ; preds = %if.cont15
  265. %128 = getelementptr i8* %125, i32 64
  266. %129 = bitcast i8* %128 to %ValueObject*
  267. %130 = getelementptr %ValueObject* %129, i32 0, i32 0
  268. store i8* %54, i8** %130
  269. %131 = getelementptr %ValueObject* %129, i32 0, i32 1
  270. store i8* %56, i8** %131
  271. tail call void (i32, ...)* @THROW(i32 13)
  272. unreachable
  273.  
  274. not_null24: ; preds = %if.cont15
  275. %132 = bitcast i8* %56 to %OBJECT*
  276. %133 = getelementptr %OBJECT* %132, i32 0, i32 1
  277. %134 = load i32* %133
  278. %135 = add i32 %134, 1
  279. store i32 %135, i32* %133
  280. %.pre403 = load i8** inttoptr (i32 134824636 to i8**)
  281. %136 = getelementptr i8* %.pre403, i32 64
  282. %137 = bitcast i8* %136 to %ValueObject*
  283. %138 = getelementptr %ValueObject* %137, i32 0, i32 0
  284. store i8* %54, i8** %138
  285. %139 = getelementptr %ValueObject* %137, i32 0, i32 1
  286. store i8* %56, i8** %139
  287. %140 = tail call i8* @CENUM_create(i8* %56)
  288. %141 = bitcast i8* %140 to %OBJECT*
  289. %142 = getelementptr %OBJECT* %141, i32 0, i32 1
  290. %143 = load i32* %142
  291. %144 = add i32 %143, 1
  292. store i32 %144, i32* %142
  293. %145 = load i8** inttoptr (i32 134824636 to i8**)
  294. %146 = getelementptr i8* %145, i32 80
  295. %147 = bitcast i8* %146 to %ValueObject*
  296. %148 = getelementptr %ValueObject* %147, i32 0, i32 0
  297. store i8* inttoptr (i32 142287132 to i8*), i8** %148
  298. %149 = getelementptr %ValueObject* %147, i32 0, i32 1
  299. store i8* %140, i8** %149
  300. %150 = load i8** inttoptr (i32 134831612 to i8**)
  301. store i8* %140, i8** inttoptr (i32 134831612 to i8**)
  302. %151 = tail call i8 @EXEC_special(i32 4, i8* %54, i8* %56, i32 0, i8 1)
  303. store i8* %150, i8** inttoptr (i32 134831612 to i8**)
  304. %152 = getelementptr i8* %140, i32 36
  305. br label %block31
  306.  
  307. block31: ; preds = %block279, %not_null24
  308. %.0292 = phi %String [ { i32 10, i8* null, i32 0, i32 0 }, %not_null24 ], [ %.1293, %block279 ]
  309. %.0291 = phi %Object [ { i8* inttoptr (i32 142289596 to i8*), i8* null }, %not_null24 ], [ %270, %block279 ]
  310. %.0287 = phi i32 [ 0, %not_null24 ], [ %.1288, %block279 ]
  311. %.0 = phi %Object [ undef, %not_null24 ], [ %.1, %block279 ]
  312. %153 = load i8* %152
  313. %154 = and i8 %153, 1
  314. %155 = icmp eq i8 %154, 0
  315. br i1 %155, label %enum_next_cont, label %block283
  316.  
  317. enum_next_cont: ; preds = %block31
  318. %156 = load i8** inttoptr (i32 134831612 to i8**)
  319. store i8* %140, i8** inttoptr (i32 134831612 to i8**)
  320. store i32 144437496, i32* inttoptr (i32 134824660 to i32*)
  321. %157 = tail call i8 @EXEC_special(i32 5, i8* %54, i8* %56, i32 0, i8 0)
  322. store i8* %156, i8** inttoptr (i32 134831612 to i8**)
  323. %158 = icmp eq i8 %157, 0
  324. br i1 %158, label %if.cont33, label %if.then32
  325.  
  326. if.then32: ; preds = %enum_next_cont
  327. tail call void (i32, ...)* @THROW(i32 30)
  328. unreachable
  329.  
  330. if.cont33: ; preds = %enum_next_cont
  331. %159 = load i8* %152
  332. %160 = and i8 %159, 1
  333. %161 = icmp eq i8 %160, 0
  334. %.pre412 = load %Value** inttoptr (i32 134824628 to %Value**)
  335. %162 = getelementptr %Value* %.pre412, i32 -1
  336. %163 = bitcast %Value* %162 to %String*
  337. %164 = getelementptr %String* %163, i32 0, i32 0
  338. %165 = load i32* %164
  339. br i1 %161, label %block42, label %if.then34
  340.  
  341. if.then34: ; preds = %if.cont33
  342. %166 = getelementptr %String* %163, i32 0, i32 1
  343. %167 = load i8** %166
  344. %168 = icmp eq i32 %165, 12
  345. br i1 %168, label %bb1, label %bb2
  346.  
  347. bb1: ; preds = %if.then34
  348. tail call void @abort()
  349. unreachable
  350.  
  351. bb2: ; preds = %if.then34
  352. %notrhs = icmp ne i32 %165, 9
  353. %169 = icmp eq i8* %167, null
  354. %or.cond295 = or i1 %notrhs, %169
  355. br i1 %or.cond295, label %if.cont40.block283_crit_edge, label %str_not_null
  356.  
  357. str_not_null: ; preds = %bb2
  358. %170 = bitcast i8* %167 to i32*
  359. %171 = getelementptr i32* %170, i32 -2
  360. %172 = load i32* %171
  361. %173 = add i32 %172, -1
  362. store i32 %173, i32* %171
  363. %174 = icmp slt i32 %173, 1
  364. br i1 %174, label %release_str, label %if.cont40.block283_crit_edge
  365.  
  366. release_str: ; preds = %str_not_null
  367. tail call void @STRING_free_real(i8* %167)
  368. br label %if.cont40.block283_crit_edge
  369.  
  370. if.cont40.block283_crit_edge: ; preds = %bb2, %release_str, %str_not_null
  371. %175 = load %Value** inttoptr (i32 134824628 to %Value**)
  372. %176 = getelementptr %Value* %175, i32 -1
  373. store %Value* %176, %Value** inttoptr (i32 134824628 to %Value**)
  374. br label %block283
  375.  
  376. block42: ; preds = %if.cont33
  377. %177 = getelementptr %String* %163, i32 0, i32 3
  378. %178 = load i32* %177
  379. %179 = getelementptr %String* %163, i32 0, i32 2
  380. %180 = load i32* %179
  381. %181 = getelementptr %String* %163, i32 0, i32 1
  382. %182 = load i8** %181
  383. %183 = insertvalue %String undef, i32 %165, 0
  384. %184 = insertvalue %String %183, i8* %182, 1
  385. %185 = insertvalue %String %184, i32 %180, 2
  386. %186 = insertvalue %String %185, i32 %178, 3
  387. %187 = icmp eq i32 %165, 12
  388. br i1 %187, label %bb143, label %bb244
  389.  
  390. bb143: ; preds = %block42
  391. tail call void @abort()
  392. unreachable
  393.  
  394. bb244: ; preds = %block42
  395. store %Value* %162, %Value** inttoptr (i32 134824628 to %Value**)
  396. %188 = extractvalue %String %.0292, 0
  397. %189 = icmp eq i32 %188, 9
  398. br i1 %189, label %release_T_STRING45, label %str_release_done50
  399.  
  400. release_T_STRING45: ; preds = %bb244
  401. %190 = extractvalue %String %.0292, 1
  402. %191 = icmp eq i8* %190, null
  403. br i1 %191, label %str_release_done50, label %str_not_null46
  404.  
  405. str_not_null46: ; preds = %release_T_STRING45
  406. %192 = bitcast i8* %190 to i32*
  407. %193 = getelementptr i32* %192, i32 -2
  408. %194 = load i32* %193
  409. %195 = add i32 %194, -1
  410. store i32 %195, i32* %193
  411. %196 = icmp slt i32 %195, 1
  412. br i1 %196, label %release_str47, label %str_release_done50
  413.  
  414. release_str47: ; preds = %str_not_null46
  415. tail call void @STRING_free_real(i8* %190)
  416. br label %str_release_done50
  417.  
  418. str_release_done50: ; preds = %release_T_STRING45, %str_not_null46, %release_str47, %bb244
  419. %197 = load i8** inttoptr (i32 134824636 to i8**)
  420. %198 = getelementptr i8* %197, i32 16
  421. %199 = bitcast i8* %198 to %String*
  422. %200 = getelementptr %String* %199, i32 0, i32 0
  423. store i32 %165, i32* %200
  424. %201 = getelementptr %String* %199, i32 0, i32 1
  425. store i8* %182, i8** %201
  426. %202 = getelementptr %String* %199, i32 0, i32 2
  427. store i32 %180, i32* %202
  428. %203 = getelementptr %String* %199, i32 0, i32 3
  429. store i32 %178, i32* %203
  430. %204 = load i8** inttoptr (i32 134824628 to i8**)
  431. %205 = load i8** inttoptr (i32 134824636 to i8**)
  432. %206 = getelementptr i8* %205, i32 112
  433. %207 = icmp eq i8* %206, %204
  434. br i1 %207, label %if.cont52, label %if.then51
  435.  
  436. if.then51: ; preds = %str_release_done50
  437. tail call void @stack_corrupted_abort()
  438. unreachable
  439.  
  440. if.cont52: ; preds = %str_release_done50
  441. %208 = load %Value** inttoptr (i32 134824628 to %Value**)
  442. %209 = bitcast %Value* %208 to %ValueFunction*
  443. %210 = getelementptr %ValueFunction* %209, i32 0, i32 0
  444. store i32 13, i32* %210
  445. %211 = getelementptr %ValueFunction* %209, i32 0, i32 1
  446. store i8* inttoptr (i32 143005620 to i8*), i8** %211
  447. %212 = getelementptr %ValueFunction* %209, i32 0, i32 2
  448. store i8* null, i8** %212
  449. %213 = getelementptr %Value* %208, i32 1
  450. %214 = bitcast %Value* %213 to %ValueFunction*
  451. %215 = getelementptr %ValueFunction* %214, i32 0, i32 0
  452. store i32 13, i32* %215
  453. %216 = getelementptr %ValueFunction* %214, i32 0, i32 1
  454. store i8* inttoptr (i32 142291628 to i8*), i8** %216
  455. %217 = getelementptr %ValueFunction* %214, i32 0, i32 2
  456. store i8* null, i8** %217
  457. %218 = getelementptr %Value* %208, i32 2
  458. store %Value* %218, %Value** inttoptr (i32 134824628 to %Value**)
  459. %219 = load i8** inttoptr (i32 144415652 to i8**)
  460. %220 = icmp eq i8* %219, null
  461. br i1 %220, label %if.cont54, label %if.then53
  462.  
  463. if.then53: ; preds = %if.cont52
  464. %221 = bitcast i8* %219 to i32*
  465. %222 = getelementptr i32* %221, i32 -2
  466. %223 = load i32* %222
  467. %224 = add i32 %223, 1
  468. store i32 %224, i32* %222
  469. %225 = getelementptr i8* %219, i32 -4
  470. %226 = bitcast i8* %225 to i32*
  471. %227 = load i32* %226
  472. %228 = insertvalue %String { i32 9, i8* undef, i32 undef, i32 undef }, i8* %219, 1
  473. %229 = insertvalue %String %228, i32 0, 2
  474. %230 = insertvalue %String %229, i32 %227, 3
  475. %.pre404 = load %Value** inttoptr (i32 134824628 to %Value**)
  476. br label %if.cont54
  477.  
  478. if.cont54: ; preds = %if.cont52, %if.then53
  479. %231 = phi %Value* [ %.pre404, %if.then53 ], [ %218, %if.cont52 ]
  480. %232 = phi %String [ %230, %if.then53 ], [ { i32 10, i8* null, i32 0, i32 0 }, %if.cont52 ]
  481. %233 = bitcast %Value* %231 to %String*
  482. %234 = extractvalue %String %232, 0
  483. %235 = getelementptr %String* %233, i32 0, i32 0
  484. store i32 %234, i32* %235
  485. %236 = extractvalue %String %232, 1
  486. %237 = getelementptr %String* %233, i32 0, i32 1
  487. store i8* %236, i8** %237
  488. %238 = extractvalue %String %232, 2
  489. %239 = getelementptr %String* %233, i32 0, i32 2
  490. store i32 %238, i32* %239
  491. %240 = extractvalue %String %232, 3
  492. %241 = getelementptr %String* %233, i32 0, i32 3
  493. store i32 %240, i32* %241
  494. %242 = getelementptr %Value* %231, i32 1
  495. %243 = bitcast %Value* %242 to %String*
  496. %244 = getelementptr %String* %243, i32 0, i32 0
  497. store i32 %165, i32* %244
  498. %245 = getelementptr %String* %243, i32 0, i32 1
  499. store i8* %182, i8** %245
  500. %246 = getelementptr %String* %243, i32 0, i32 2
  501. store i32 %180, i32* %246
  502. %247 = getelementptr %String* %243, i32 0, i32 3
  503. store i32 %178, i32* %247
  504. %248 = getelementptr %Value* %231, i32 2
  505. store %Value* %248, %Value** inttoptr (i32 134824628 to %Value**)
  506. %.not = icmp ne i32 %165, 9
  507. %249 = icmp eq i8* %182, null
  508. %or.cond296 = or i1 %.not, %249
  509. br i1 %or.cond296, label %str_borrow_done, label %str_not_null55
  510.  
  511. str_not_null55: ; preds = %if.cont54
  512. %250 = bitcast i8* %182 to i32*
  513. %251 = getelementptr i32* %250, i32 -2
  514. %252 = load i32* %251
  515. %253 = add i32 %252, 1
  516. store i32 %253, i32* %251
  517. br label %str_borrow_done
  518.  
  519. str_borrow_done: ; preds = %if.cont54, %str_not_null55
  520. tail call void @SUBR_file(i16 2)
  521. store i32 144437526, i32* inttoptr (i32 134824660 to i32*)
  522. store i8 1, i8* inttoptr (i32 134831632 to i8*)
  523. store i8* inttoptr (i32 134811532 to i8*), i8** inttoptr (i32 134831628 to i8**)
  524. store i8* null, i8** inttoptr (i32 134831620 to i8**)
  525. store i8* inttoptr (i32 142291628 to i8*), i8** inttoptr (i32 134831616 to i8**)
  526. tail call void @EXEC_native_quick()
  527. store i32 144437528, i32* inttoptr (i32 134824660 to i32*)
  528. store i8 1, i8* inttoptr (i32 134831632 to i8*)
  529. tail call void @JR_exec_enter_quick(i8* inttoptr (i32 143005620 to i8*), i8* null, i32 0)
  530. %254 = load %Value** inttoptr (i32 134824628 to %Value**)
  531. %255 = getelementptr %Value* %254, i32 -1
  532. %256 = bitcast %Value* %255 to i8*
  533. tail call void @VALUE_convert(i8* %256, i32 142289596)
  534. %257 = load %Value** inttoptr (i32 134824628 to %Value**)
  535. %258 = getelementptr %Value* %257, i32 -1
  536. %259 = bitcast %Value* %258 to %ValueObject*
  537. %260 = bitcast %Value* %258 to %Null*
  538. %261 = getelementptr %Null* %260, i32 0, i32 0
  539. %262 = load i32* %261
  540. %263 = icmp eq i32 %262, 15
  541. %264 = getelementptr %ValueObject* %259, i32 0, i32 1
  542. %265 = load i8** %264
  543. %266 = getelementptr %ValueObject* %259, i32 0, i32 0
  544. %267 = load i8** %266
  545. %268 = insertvalue %Object undef, i8* %267, 0
  546. %269 = insertvalue %Object %268, i8* %265, 1
  547. %270 = select i1 %263, %Object { i8* inttoptr (i32 142289596 to i8*), i8* null }, %Object %269
  548. store %Value* %258, %Value** inttoptr (i32 134824628 to %Value**)
  549. %271 = extractvalue %Object %.0291, 1
  550. %272 = icmp eq i8* %271, null
  551. br i1 %272, label %unref_done59, label %obj_not_null56
  552.  
  553. obj_not_null56: ; preds = %str_borrow_done
  554. %273 = bitcast i8* %271 to %OBJECT*
  555. %274 = getelementptr %OBJECT* %273, i32 0, i32 1
  556. %275 = load i32* %274
  557. %276 = add i32 %275, -1
  558. store i32 %276, i32* %274
  559. %277 = icmp slt i32 %276, 1
  560. br i1 %277, label %release_obj57, label %unref_done59
  561.  
  562. release_obj57: ; preds = %obj_not_null56
  563. tail call void @CLASS_free(i8* %271)
  564. br label %unref_done59
  565.  
  566. unref_done59: ; preds = %str_borrow_done, %release_obj57, %obj_not_null56
  567. %278 = load i8** inttoptr (i32 134824636 to i8**)
  568. %279 = getelementptr i8* %278, i32 32
  569. %280 = bitcast i8* %279 to %ValueObject*
  570. %281 = extractvalue %Object %270, 0
  571. %282 = getelementptr %ValueObject* %280, i32 0, i32 0
  572. store i8* %281, i8** %282
  573. %283 = extractvalue %Object %270, 1
  574. %284 = getelementptr %ValueObject* %280, i32 0, i32 1
  575. store i8* %283, i8** %284
  576. %285 = load i8** inttoptr (i32 134824628 to i8**)
  577. %286 = load i8** inttoptr (i32 134824636 to i8**)
  578. %287 = getelementptr i8* %286, i32 112
  579. %288 = icmp eq i8* %287, %285
  580. br i1 %288, label %if.cont61, label %if.then60
  581.  
  582. if.then60: ; preds = %unref_done59
  583. tail call void @stack_corrupted_abort()
  584. unreachable
  585.  
  586. if.cont61: ; preds = %unref_done59
  587. %289 = load i8** inttoptr (i32 144415616 to i8**)
  588. %290 = icmp eq i8* %289, null
  589. br i1 %290, label %is_null64, label %not_null65
  590.  
  591. is_null64: ; preds = %if.cont61
  592. tail call void (i32, ...)* @THROW(i32 13)
  593. unreachable
  594.  
  595. not_null65: ; preds = %if.cont61
  596. %291 = bitcast i8* %289 to %OBJECT*
  597. %292 = getelementptr %OBJECT* %291, i32 0, i32 1
  598. %293 = load i32* %292
  599. %294 = add i32 %293, 1
  600. store i32 %294, i32* %292
  601. %295 = getelementptr %OBJECT* %291, i32 0, i32 0
  602. %296 = load i8** %295
  603. %297 = bitcast i8* %296 to i8**
  604. %298 = getelementptr i8** %297, i32 7
  605. %299 = load i8** %298
  606. %300 = getelementptr i8* %299, i32 80
  607. %301 = bitcast i8* %300 to i8**
  608. %302 = load i8** %301
  609. %303 = getelementptr i8* %302, i32 19
  610. %304 = load i8* %303
  611. %305 = shl i8 %304, 1
  612. %306 = and i8 %305, 2
  613. %307 = xor i8 %306, 3
  614. %308 = load %Value** inttoptr (i32 134824628 to %Value**)
  615. %309 = bitcast %Value* %308 to %ValueFunction*
  616. %310 = getelementptr %ValueFunction* %309, i32 0, i32 0
  617. store i32 13, i32* %310
  618. %311 = getelementptr %ValueFunction* %309, i32 0, i32 2
  619. store i8* %289, i8** %311
  620. %312 = getelementptr %ValueFunction* %309, i32 0, i32 3
  621. store i8 %307, i8* %312
  622. %313 = getelementptr %Value* %308, i32 1
  623. store %Value* %313, %Value** inttoptr (i32 134824628 to %Value**)
  624. %314 = icmp eq i8* %283, null
  625. br i1 %314, label %str_release_done74, label %not_null75
  626.  
  627. str_release_done74: ; preds = %not_null65
  628. tail call void (i32, ...)* @THROW(i32 13)
  629. unreachable
  630.  
  631. not_null75: ; preds = %not_null65
  632. %315 = bitcast i8* %283 to %OBJECT*
  633. %316 = getelementptr %OBJECT* %315, i32 0, i32 1
  634. %317 = load i32* %316
  635. %318 = add i32 %317, 1
  636. store i32 %318, i32* %316
  637. %319 = load %Value** inttoptr (i32 134824628 to %Value**)
  638. %320 = bitcast %Value* %319 to i8*
  639. %321 = tail call i8 @GB.Collection.Get(i8* %283, i8* inttoptr (i32 144439784 to i8*), i32 4, i8* %320)
  640. %322 = bitcast %Value* %319 to %ValueVariant*
  641. %323 = getelementptr %ValueVariant* %322, i32 0, i32 2
  642. %324 = load i64* %323
  643. %325 = getelementptr %ValueVariant* %322, i32 0, i32 1
  644. %326 = load i32* %325
  645. tail call void @JR_borrow_variant(i32 %326, i64 %324)
  646. %327 = getelementptr %Value* %319, i32 1
  647. store %Value* %327, %Value** inttoptr (i32 134824628 to %Value**)
  648. %328 = load i32* %316
  649. %329 = add i32 %328, -1
  650. store i32 %329, i32* %316
  651. %330 = icmp slt i32 %329, 1
  652. br i1 %330, label %release_obj82, label %release_done83
  653.  
  654. release_obj82: ; preds = %not_null75
  655. tail call void @CLASS_free(i8* %283)
  656. br label %release_done83
  657.  
  658. release_done83: ; preds = %not_null75, %release_obj82
  659. %331 = load %Value** inttoptr (i32 134824628 to %Value**)
  660. %332 = getelementptr %Value* %331, i32 -1
  661. %333 = bitcast %Value* %332 to i8*
  662. tail call void @VALUE_convert(i8* %333, i32 9)
  663. %334 = load %Value** inttoptr (i32 134824628 to %Value**)
  664. %335 = getelementptr %Value* %334, i32 -1
  665. %336 = bitcast %Value* %335 to %String*
  666. %337 = getelementptr %String* %336, i32 0, i32 0
  667. %338 = load i32* %337
  668. %339 = icmp eq i32 %338, 12
  669. br i1 %339, label %bb184, label %bb285
  670.  
  671. bb184: ; preds = %release_done83
  672. tail call void @abort()
  673. unreachable
  674.  
  675. bb285: ; preds = %release_done83
  676. store i32 144437550, i32* inttoptr (i32 134824660 to i32*)
  677. store i8 1, i8* inttoptr (i32 134831632 to i8*)
  678. %340 = icmp eq i8 %306, 0
  679. br i1 %340, label %if.then86, label %if.else
  680.  
  681. if.then86: ; preds = %bb285
  682. tail call void @JR_exec_enter_quick(i8* %296, i8* %289, i32 6)
  683. br label %if.cont87
  684.  
  685. if.else: ; preds = %bb285
  686. store i8* inttoptr (i32 134808580 to i8*), i8** inttoptr (i32 134831628 to i8**)
  687. store i8* %289, i8** inttoptr (i32 134831620 to i8**)
  688. store i8* %296, i8** inttoptr (i32 134831616 to i8**)
  689. tail call void @EXEC_native_quick()
  690. br label %if.cont87
  691.  
  692. if.cont87: ; preds = %if.else, %if.then86
  693. %341 = load %Value** inttoptr (i32 134824628 to %Value**)
  694. %342 = getelementptr %Value* %341, i32 -1
  695. %343 = bitcast %Value* %342 to %Boolean*
  696. %344 = getelementptr %Boolean* %343, i32 0, i32 1
  697. %345 = load i32* %344
  698. %346 = icmp eq i32 %345, 0
  699. store %Value* %342, %Value** inttoptr (i32 134824628 to %Value**)
  700. %347 = load i8** inttoptr (i32 134824628 to i8**)
  701. %348 = load i8** inttoptr (i32 134824636 to i8**)
  702. %349 = getelementptr i8* %348, i32 112
  703. %350 = icmp ne i8* %349, %347
  704. br i1 %346, label %block95, label %block89
  705.  
  706. block89: ; preds = %if.cont87
  707. br i1 %350, label %if.then90, label %if.cont91
  708.  
  709. if.then90: ; preds = %block89
  710. tail call void @stack_corrupted_abort()
  711. unreachable
  712.  
  713. if.cont91: ; preds = %block89
  714. %351 = bitcast %Value* %342 to %ValueFunction*
  715. %352 = getelementptr %ValueFunction* %351, i32 0, i32 0
  716. store i32 13, i32* %352
  717. %353 = getelementptr %ValueFunction* %351, i32 0, i32 1
  718. store i8* inttoptr (i32 142489076 to i8*), i8** %353
  719. %354 = getelementptr %ValueFunction* %351, i32 0, i32 2
  720. store i8* null, i8** %354
  721. %355 = bitcast %Value* %341 to %String*
  722. %356 = getelementptr %String* %355, i32 0, i32 0
  723. store i32 10, i32* %356
  724. %357 = getelementptr %String* %355, i32 0, i32 1
  725. store i8* inttoptr (i32 144440112 to i8*), i8** %357
  726. %358 = getelementptr %String* %355, i32 0, i32 2
  727. store i32 0, i32* %358
  728. %359 = getelementptr %String* %355, i32 0, i32 3
  729. store i32 36, i32* %359
  730. %360 = getelementptr %Value* %341, i32 1
  731. store %Value* %360, %Value** inttoptr (i32 134824628 to %Value**)
  732. store i32 144437566, i32* inttoptr (i32 134824660 to i32*)
  733. store i8 1, i8* inttoptr (i32 134831632 to i8*)
  734. store i8* inttoptr (i32 -1229930676 to i8*), i8** inttoptr (i32 134831628 to i8**)
  735. store i8* null, i8** inttoptr (i32 134831620 to i8**)
  736. store i8* inttoptr (i32 142489076 to i8*), i8** inttoptr (i32 134831616 to i8**)
  737. store i8 1, i8* inttoptr (i32 134831634 to i8*)
  738. tail call void @EXEC_native()
  739. %361 = load %Value** inttoptr (i32 134824628 to %Value**)
  740. %362 = getelementptr %Value* %361, i32 -1
  741. store %Value* %362, %Value** inttoptr (i32 134824628 to %Value**)
  742. %363 = load i8** inttoptr (i32 134824628 to i8**)
  743. %364 = load i8** inttoptr (i32 134824636 to i8**)
  744. %365 = getelementptr i8* %364, i32 112
  745. %366 = icmp eq i8* %365, %363
  746. br i1 %366, label %block279, label %if.then92
  747.  
  748. if.then92: ; preds = %if.cont91
  749. tail call void @stack_corrupted_abort()
  750. unreachable
  751.  
  752. block95: ; preds = %if.cont87
  753. br i1 %350, label %if.then96, label %if.cont97
  754.  
  755. if.then96: ; preds = %block95
  756. tail call void @stack_corrupted_abort()
  757. unreachable
  758.  
  759. if.cont97: ; preds = %block95
  760. %367 = bitcast %Value* %342 to %ValueFunction*
  761. %368 = getelementptr %ValueFunction* %367, i32 0, i32 0
  762. store i32 13, i32* %368
  763. %369 = getelementptr %ValueFunction* %367, i32 0, i32 1
  764. store i8* inttoptr (i32 142291628 to i8*), i8** %369
  765. %370 = getelementptr %ValueFunction* %367, i32 0, i32 2
  766. store i8* null, i8** %370
  767. %371 = bitcast %Value* %341 to %String*
  768. %372 = getelementptr %String* %371, i32 0, i32 0
  769. store i32 %165, i32* %372
  770. %373 = getelementptr %String* %371, i32 0, i32 1
  771. store i8* %182, i8** %373
  772. %374 = getelementptr %String* %371, i32 0, i32 2
  773. store i32 %180, i32* %374
  774. %375 = getelementptr %String* %371, i32 0, i32 3
  775. store i32 %178, i32* %375
  776. %376 = getelementptr %Value* %341, i32 1
  777. store %Value* %376, %Value** inttoptr (i32 134824628 to %Value**)
  778. br i1 %or.cond296, label %str_borrow_done101, label %str_not_null99
  779.  
  780. str_not_null99: ; preds = %if.cont97
  781. %377 = bitcast i8* %182 to i32*
  782. %378 = getelementptr i32* %377, i32 -2
  783. %379 = load i32* %378
  784. %380 = add i32 %379, 1
  785. store i32 %380, i32* %378
  786. %.pre405 = load %Value** inttoptr (i32 134824628 to %Value**)
  787. br label %str_borrow_done101
  788.  
  789. str_borrow_done101: ; preds = %if.cont97, %str_not_null99
  790. %381 = phi %Value* [ %376, %if.cont97 ], [ %.pre405, %str_not_null99 ]
  791. %382 = bitcast %Value* %381 to %String*
  792. %383 = getelementptr %String* %382, i32 0, i32 0
  793. store i32 10, i32* %383
  794. %384 = getelementptr %String* %382, i32 0, i32 1
  795. store i8* null, i8** %384
  796. %385 = getelementptr %String* %382, i32 0, i32 2
  797. store i32 0, i32* %385
  798. %386 = getelementptr %String* %382, i32 0, i32 3
  799. store i32 0, i32* %386
  800. %387 = getelementptr %Value* %381, i32 1
  801. store %Value* %387, %Value** inttoptr (i32 134824628 to %Value**)
  802. store i32 144437588, i32* inttoptr (i32 134824660 to i32*)
  803. store i8 2, i8* inttoptr (i32 134831632 to i8*)
  804. store i8* inttoptr (i32 134811484 to i8*), i8** inttoptr (i32 134831628 to i8**)
  805. store i8* null, i8** inttoptr (i32 134831620 to i8**)
  806. store i8* inttoptr (i32 142291628 to i8*), i8** inttoptr (i32 134831616 to i8**)
  807. tail call void @EXEC_native_quick()
  808. %388 = load %Value** inttoptr (i32 134824628 to %Value**)
  809. %389 = getelementptr %Value* %388, i32 -1
  810. %390 = bitcast %Value* %389 to %String*
  811. %391 = getelementptr %String* %390, i32 0, i32 0
  812. %392 = load i32* %391
  813. %393 = getelementptr %String* %390, i32 0, i32 3
  814. %394 = load i32* %393
  815. %395 = getelementptr %String* %390, i32 0, i32 2
  816. %396 = load i32* %395
  817. %397 = getelementptr %String* %390, i32 0, i32 1
  818. %398 = load i8** %397
  819. %399 = insertvalue %String undef, i32 %392, 0
  820. %400 = insertvalue %String %399, i8* %398, 1
  821. %401 = insertvalue %String %400, i32 %396, 2
  822. %402 = insertvalue %String %401, i32 %394, 3
  823. %403 = icmp eq i32 %392, 12
  824. br i1 %403, label %bb1102, label %bb2103
  825.  
  826. bb1102: ; preds = %str_borrow_done101
  827. tail call void @abort()
  828. unreachable
  829.  
  830. bb2103: ; preds = %str_borrow_done101
  831. store %Value* %389, %Value** inttoptr (i32 134824628 to %Value**)
  832. br i1 %or.cond296, label %str_release_done109, label %str_not_null105
  833.  
  834. str_not_null105: ; preds = %bb2103
  835. %404 = bitcast i8* %182 to i32*
  836. %405 = getelementptr i32* %404, i32 -2
  837. %406 = load i32* %405
  838. %407 = add i32 %406, -1
  839. store i32 %407, i32* %405
  840. %408 = icmp slt i32 %407, 1
  841. br i1 %408, label %release_str106, label %str_release_done109
  842.  
  843. release_str106: ; preds = %str_not_null105
  844. tail call void @STRING_free_real(i8* %182)
  845. br label %str_release_done109
  846.  
  847. str_release_done109: ; preds = %bb2103, %str_not_null105, %release_str106
  848. %409 = load i8** inttoptr (i32 134824636 to i8**)
  849. %410 = getelementptr i8* %409, i32 16
  850. %411 = bitcast i8* %410 to %String*
  851. %412 = getelementptr %String* %411, i32 0, i32 0
  852. store i32 %392, i32* %412
  853. %413 = getelementptr %String* %411, i32 0, i32 1
  854. store i8* %398, i8** %413
  855. %414 = getelementptr %String* %411, i32 0, i32 2
  856. store i32 %396, i32* %414
  857. %415 = getelementptr %String* %411, i32 0, i32 3
  858. store i32 %394, i32* %415
  859. %416 = load i8** inttoptr (i32 134824628 to i8**)
  860. %417 = load i8** inttoptr (i32 134824636 to i8**)
  861. %418 = getelementptr i8* %417, i32 112
  862. %419 = icmp eq i8* %418, %416
  863. br i1 %419, label %borrow_object_done115, label %if.then110
  864.  
  865. if.then110: ; preds = %str_release_done109
  866. tail call void @stack_corrupted_abort()
  867. unreachable
  868.  
  869. borrow_object_done115: ; preds = %str_release_done109
  870. %420 = load %Value** inttoptr (i32 134824628 to %Value**)
  871. %421 = bitcast %Value* %420 to %ValueFunction*
  872. %422 = getelementptr %ValueFunction* %421, i32 0, i32 0
  873. store i32 13, i32* %422
  874. %423 = getelementptr %ValueFunction* %421, i32 0, i32 2
  875. store i8* null, i8** %423
  876. %424 = getelementptr %Value* %420, i32 1
  877. %425 = bitcast %Value* %424 to %ValueObject*
  878. %426 = getelementptr %ValueObject* %425, i32 0, i32 0
  879. store i8* %281, i8** %426
  880. %427 = getelementptr %ValueObject* %425, i32 0, i32 1
  881. store i8* %283, i8** %427
  882. %428 = getelementptr %Value* %420, i32 2
  883. store %Value* %428, %Value** inttoptr (i32 134824628 to %Value**)
  884. %429 = load i32* %316
  885. %430 = add i32 %429, 1
  886. store i32 %430, i32* %316
  887. %.pre406 = load %Value** inttoptr (i32 134824628 to %Value**)
  888. %431 = bitcast %Value* %.pre406 to %Boolean*
  889. %432 = getelementptr %Boolean* %431, i32 0, i32 0
  890. store i32 1, i32* %432
  891. %433 = getelementptr %Boolean* %431, i32 0, i32 1
  892. store i32 -1, i32* %433
  893. %434 = getelementptr %Value* %.pre406, i32 1
  894. store %Value* %434, %Value** inttoptr (i32 134824628 to %Value**)
  895. store i32 144437600, i32* inttoptr (i32 134824660 to i32*)
  896. store i8 2, i8* inttoptr (i32 134831632 to i8*)
  897. store i32 7, i32* inttoptr (i32 134831624 to i32*)
  898. store i8* null, i8** inttoptr (i32 134831620 to i8**)
  899. store i8* inttoptr (i32 144414908 to i8*), i8** inttoptr (i32 134831616 to i8**)
  900. tail call void @EXEC_enter()
  901. tail call void @JR_EXEC_jit_execute_function()
  902. %435 = load %Value** inttoptr (i32 134824628 to %Value**)
  903. %436 = getelementptr %Value* %435, i32 -1
  904. %437 = bitcast %Value* %436 to %ValueObject*
  905. %438 = bitcast %Value* %436 to %Null*
  906. %439 = getelementptr %Null* %438, i32 0, i32 0
  907. %440 = load i32* %439
  908. %441 = icmp eq i32 %440, 15
  909. %442 = getelementptr %ValueObject* %437, i32 0, i32 1
  910. %443 = load i8** %442
  911. %444 = getelementptr %ValueObject* %437, i32 0, i32 0
  912. %445 = load i8** %444
  913. %446 = insertvalue %Object undef, i8* %445, 0
  914. %447 = insertvalue %Object %446, i8* %443, 1
  915. %448 = select i1 %441, %Object { i8* inttoptr (i32 144414908 to i8*), i8* null }, %Object %447
  916. store %Value* %436, %Value** inttoptr (i32 134824628 to %Value**)
  917. %449 = load i8** inttoptr (i32 134824636 to i8**)
  918. %450 = getelementptr i8* %449, i32 48
  919. %451 = bitcast i8* %450 to %ValueObject*
  920. %452 = extractvalue %Object %448, 0
  921. %453 = getelementptr %ValueObject* %451, i32 0, i32 0
  922. store i8* %452, i8** %453
  923. %454 = extractvalue %Object %448, 1
  924. %455 = getelementptr %ValueObject* %451, i32 0, i32 1
  925. store i8* %454, i8** %455
  926. %456 = load i8** inttoptr (i32 134824628 to i8**)
  927. %457 = load i8** inttoptr (i32 134824636 to i8**)
  928. %458 = getelementptr i8* %457, i32 112
  929. %459 = icmp eq i8* %458, %456
  930. br i1 %459, label %if.cont121, label %if.then120
  931.  
  932. if.then120: ; preds = %borrow_object_done115
  933. tail call void @stack_corrupted_abort()
  934. unreachable
  935.  
  936. if.cont121: ; preds = %borrow_object_done115
  937. %460 = icmp ne i8* %454, null
  938. br i1 %460, label %obj_not_null122, label %borrow_object_done123
  939.  
  940. obj_not_null122: ; preds = %if.cont121
  941. %461 = bitcast i8* %454 to %OBJECT*
  942. %462 = getelementptr %OBJECT* %461, i32 0, i32 1
  943. %463 = load i32* %462
  944. %464 = add i32 %463, 1
  945. store i32 %464, i32* %462
  946. br label %borrow_object_done123
  947.  
  948. borrow_object_done123: ; preds = %if.cont121, %obj_not_null122
  949. %465 = icmp eq i32 %.0287, 2
  950. br i1 %465, label %was_object_ctrl_before124, label %if.cont129
  951.  
  952. was_object_ctrl_before124: ; preds = %borrow_object_done123
  953. %466 = extractvalue %Object %.0, 1
  954. %467 = icmp eq i8* %466, null
  955. br i1 %467, label %if.cont129, label %obj_not_null125
  956.  
  957. obj_not_null125: ; preds = %was_object_ctrl_before124
  958. %468 = bitcast i8* %466 to %OBJECT*
  959. %469 = getelementptr %OBJECT* %468, i32 0, i32 1
  960. %470 = load i32* %469
  961. %471 = add i32 %470, -1
  962. store i32 %471, i32* %469
  963. %472 = icmp slt i32 %471, 1
  964. br i1 %472, label %release_obj126, label %if.cont129
  965.  
  966. release_obj126: ; preds = %obj_not_null125
  967. tail call void @CLASS_free(i8* %466)
  968. br label %if.cont129
  969.  
  970. if.cont129: ; preds = %obj_not_null125, %was_object_ctrl_before124, %borrow_object_done123, %release_obj126
  971. %473 = load i8** inttoptr (i32 134824636 to i8**)
  972. %474 = getelementptr i8* %473, i32 96
  973. %475 = bitcast i8* %474 to %ValueObject*
  974. %476 = getelementptr %ValueObject* %475, i32 0, i32 0
  975. store i8* %452, i8** %476
  976. %477 = getelementptr %ValueObject* %475, i32 0, i32 1
  977. store i8* %454, i8** %477
  978. %478 = load i8** inttoptr (i32 134824628 to i8**)
  979. %479 = load i8** inttoptr (i32 134824636 to i8**)
  980. %480 = getelementptr i8* %479, i32 112
  981. %481 = icmp eq i8* %480, %478
  982. br i1 %481, label %not_null141, label %if.then130
  983.  
  984. if.then130: ; preds = %if.cont129
  985. tail call void @stack_corrupted_abort()
  986. unreachable
  987.  
  988. not_null141: ; preds = %if.cont129
  989. %482 = load i32* %316
  990. %483 = add i32 %482, 1
  991. store i32 %483, i32* %316
  992. %484 = load %Value** inttoptr (i32 134824628 to %Value**)
  993. %485 = bitcast %Value* %484 to i8*
  994. %486 = tail call i8 @GB.Collection.Get(i8* %283, i8* inttoptr (i32 144440006 to i8*), i32 15, i8* %485)
  995. %487 = bitcast %Value* %484 to %ValueVariant*
  996. %488 = getelementptr %ValueVariant* %487, i32 0, i32 2
  997. %489 = load i64* %488
  998. %490 = getelementptr %ValueVariant* %487, i32 0, i32 1
  999. %491 = load i32* %490
  1000. tail call void @JR_borrow_variant(i32 %491, i64 %489)
  1001. %492 = getelementptr %Value* %484, i32 1
  1002. store %Value* %492, %Value** inttoptr (i32 134824628 to %Value**)
  1003. %493 = load i32* %316
  1004. %494 = add i32 %493, -1
  1005. store i32 %494, i32* %316
  1006. %495 = icmp slt i32 %494, 1
  1007. br i1 %495, label %release_obj148, label %release_done149
  1008.  
  1009. release_obj148: ; preds = %not_null141
  1010. tail call void @CLASS_free(i8* %283)
  1011. br label %release_done149
  1012.  
  1013. release_done149: ; preds = %not_null141, %release_obj148
  1014. %496 = load %Value** inttoptr (i32 134824628 to %Value**)
  1015. %497 = getelementptr %Value* %496, i32 -1
  1016. %498 = bitcast %Value* %497 to i8*
  1017. tail call void @VALUE_convert(i8* %498, i32 9)
  1018. %499 = load %Value** inttoptr (i32 134824628 to %Value**)
  1019. %500 = getelementptr %Value* %499, i32 -1
  1020. %501 = bitcast %Value* %500 to %String*
  1021. %502 = getelementptr %String* %501, i32 0, i32 0
  1022. %503 = load i32* %502
  1023. %504 = getelementptr %String* %501, i32 0, i32 3
  1024. %505 = load i32* %504
  1025. %506 = getelementptr %String* %501, i32 0, i32 2
  1026. %507 = load i32* %506
  1027. %508 = getelementptr %String* %501, i32 0, i32 1
  1028. %509 = load i8** %508
  1029. %510 = icmp eq i32 %503, 12
  1030. br i1 %510, label %bb1150, label %bb2151
  1031.  
  1032. bb1150: ; preds = %release_done149
  1033. tail call void @abort()
  1034. unreachable
  1035.  
  1036. bb2151: ; preds = %release_done149
  1037. br i1 %460, label %obj_not_null152, label %borrow_object_done153
  1038.  
  1039. obj_not_null152: ; preds = %bb2151
  1040. %511 = bitcast i8* %454 to %OBJECT*
  1041. %512 = getelementptr %OBJECT* %511, i32 0, i32 1
  1042. %513 = load i32* %512
  1043. %514 = add i32 %513, 1
  1044. store i32 %514, i32* %512
  1045. br label %borrow_object_done153
  1046.  
  1047. borrow_object_done153: ; preds = %bb2151, %obj_not_null152
  1048. %515 = ptrtoint i8* %452 to i32
  1049. %516 = icmp eq i32 %515, 15
  1050. br i1 %516, label %if.then154, label %if.cont161
  1051.  
  1052. if.then154: ; preds = %borrow_object_done153
  1053. %517 = icmp ne i32 %503, 9
  1054. %518 = icmp eq i8* %509, null
  1055. %or.cond301 = or i1 %517, %518
  1056. br i1 %or.cond301, label %str_release_done160, label %str_not_null156
  1057.  
  1058. str_not_null156: ; preds = %if.then154
  1059. %519 = bitcast i8* %509 to i32*
  1060. %520 = getelementptr i32* %519, i32 -2
  1061. %521 = load i32* %520
  1062. %522 = add i32 %521, -1
  1063. store i32 %522, i32* %520
  1064. %523 = icmp slt i32 %522, 1
  1065. br i1 %523, label %release_str157, label %str_release_done160
  1066.  
  1067. release_str157: ; preds = %str_not_null156
  1068. tail call void @STRING_free_real(i8* %509)
  1069. br label %str_release_done160
  1070.  
  1071. str_release_done160: ; preds = %if.then154, %str_not_null156, %release_str157
  1072. tail call void (i32, ...)* @THROW(i32 13)
  1073. unreachable
  1074.  
  1075. if.cont161: ; preds = %borrow_object_done153
  1076. %524 = icmp eq i8* %454, null
  1077. br i1 %524, label %is_null162, label %not_null169
  1078.  
  1079. is_null162: ; preds = %if.cont161
  1080. %525 = icmp ne i32 %503, 9
  1081. %526 = icmp eq i8* %509, null
  1082. %or.cond302 = or i1 %525, %526
  1083. br i1 %or.cond302, label %str_release_done168, label %str_not_null164
  1084.  
  1085. str_not_null164: ; preds = %is_null162
  1086. %527 = bitcast i8* %509 to i32*
  1087. %528 = getelementptr i32* %527, i32 -2
  1088. %529 = load i32* %528
  1089. %530 = add i32 %529, -1
  1090. store i32 %530, i32* %528
  1091. %531 = icmp slt i32 %530, 1
  1092. br i1 %531, label %release_str165, label %str_release_done168
  1093.  
  1094. release_str165: ; preds = %str_not_null164
  1095. tail call void @STRING_free_real(i8* %509)
  1096. br label %str_release_done168
  1097.  
  1098. str_release_done168: ; preds = %is_null162, %str_not_null164, %release_str165
  1099. tail call void (i32, ...)* @THROW(i32 13)
  1100. unreachable
  1101.  
  1102. not_null169: ; preds = %if.cont161
  1103. %532 = bitcast i8* %454 to %OBJECT*
  1104. %533 = getelementptr %OBJECT* %532, i32 0, i32 0
  1105. %534 = load i8** %533
  1106. %535 = getelementptr i8* %534, i32 28
  1107. %536 = bitcast i8* %535 to i8**
  1108. %537 = load i8** %536
  1109. %538 = getelementptr i8* %537, i32 260
  1110. %539 = bitcast i8* %538 to i8**
  1111. %540 = load i8** %539
  1112. %541 = getelementptr i8* %540, i32 8
  1113. %542 = bitcast i8* %541 to i32*
  1114. %543 = load i32* %542
  1115. %544 = getelementptr i8* %454, i32 %543
  1116. %545 = bitcast i8* %544 to i8**
  1117. %546 = load i8** %545
  1118. %547 = icmp eq i8* %546, null
  1119. br i1 %547, label %unref_done173, label %str_not_null170
  1120.  
  1121. str_not_null170: ; preds = %not_null169
  1122. %548 = bitcast i8* %546 to i32*
  1123. %549 = getelementptr i32* %548, i32 -2
  1124. %550 = load i32* %549
  1125. %551 = add i32 %550, -1
  1126. store i32 %551, i32* %549
  1127. %552 = icmp slt i32 %551, 1
  1128. br i1 %552, label %release_str171, label %unref_done173
  1129.  
  1130. release_str171: ; preds = %str_not_null170
  1131. tail call void @STRING_free_real(i8* %546)
  1132. br label %unref_done173
  1133.  
  1134. unref_done173: ; preds = %not_null169, %release_str171, %str_not_null170
  1135. %553 = icmp eq i32 %505, 0
  1136. br i1 %553, label %if.cont181, label %if.then174
  1137.  
  1138. if.then174: ; preds = %unref_done173
  1139. %554 = icmp eq i32 %503, 9
  1140. %555 = icmp eq i32 %507, 0
  1141. %556 = and i1 %554, %555
  1142. br i1 %556, label %and_if, label %if.then175
  1143.  
  1144. and_if: ; preds = %if.then174
  1145. %557 = getelementptr i8* %509, i32 -4
  1146. %558 = bitcast i8* %557 to i32*
  1147. %559 = load i32* %558
  1148. %phitmp294 = icmp eq i32 %559, %505
  1149. br i1 %phitmp294, label %if.cont181, label %if.then175
  1150.  
  1151. if.then175: ; preds = %and_if, %if.then174
  1152. %560 = getelementptr i8* %509, i32 %507
  1153. %561 = tail call i8* @STRING_new(i8* %560, i32 %505)
  1154. %562 = tail call i8* @STRING_free_later(i8* %561)
  1155. br i1 %554, label %if.then176, label %if.cont179
  1156.  
  1157. if.then176: ; preds = %if.then175
  1158. %563 = bitcast i8* %509 to i32*
  1159. %564 = getelementptr i32* %563, i32 -2
  1160. %565 = load i32* %564
  1161. %566 = add i32 %565, -1
  1162. store i32 %566, i32* %564
  1163. %567 = icmp slt i32 %566, 1
  1164. br i1 %567, label %release_str177, label %if.cont179
  1165.  
  1166. release_str177: ; preds = %if.then176
  1167. tail call void @STRING_free_real(i8* %509)
  1168. br label %if.cont179
  1169.  
  1170. if.cont179: ; preds = %release_str177, %if.then176, %if.then175
  1171. %568 = bitcast i8* %562 to i32*
  1172. %569 = getelementptr i32* %568, i32 -2
  1173. %570 = load i32* %569
  1174. %571 = add i32 %570, 1
  1175. store i32 %571, i32* %569
  1176. br label %if.cont181
  1177.  
  1178. if.cont181: ; preds = %and_if, %unref_done173, %if.cont179
  1179. %572 = phi i8* [ null, %unref_done173 ], [ %562, %if.cont179 ], [ %509, %and_if ]
  1180. store i8* %572, i8** %545
  1181. %573 = getelementptr %OBJECT* %532, i32 0, i32 1
  1182. %574 = load i32* %573
  1183. %575 = add i32 %574, -1
  1184. store i32 %575, i32* %573
  1185. %576 = icmp slt i32 %575, 1
  1186. br i1 %576, label %release_obj182, label %release_done183
  1187.  
  1188. release_obj182: ; preds = %if.cont181
  1189. tail call void @CLASS_free(i8* %454)
  1190. br label %release_done183
  1191.  
  1192. release_done183: ; preds = %if.cont181, %release_obj182
  1193. %577 = load %Value** inttoptr (i32 134824628 to %Value**)
  1194. %578 = getelementptr %Value* %577, i32 -1
  1195. store %Value* %578, %Value** inttoptr (i32 134824628 to %Value**)
  1196. %579 = load i8** inttoptr (i32 134824628 to i8**)
  1197. %580 = load i8** inttoptr (i32 134824636 to i8**)
  1198. %581 = getelementptr i8* %580, i32 112
  1199. %582 = icmp eq i8* %581, %579
  1200. br i1 %582, label %if.cont185, label %if.then184
  1201.  
  1202. if.then184: ; preds = %release_done183
  1203. tail call void @stack_corrupted_abort()
  1204. unreachable
  1205.  
  1206. if.cont185: ; preds = %release_done183
  1207. %583 = load i8** inttoptr (i32 144415652 to i8**)
  1208. %584 = icmp eq i8* %583, null
  1209. br i1 %584, label %if.cont187, label %if.then186
  1210.  
  1211. if.then186: ; preds = %if.cont185
  1212. %585 = bitcast i8* %583 to i32*
  1213. %586 = getelementptr i32* %585, i32 -2
  1214. %587 = load i32* %586
  1215. %588 = add i32 %587, 1
  1216. store i32 %588, i32* %586
  1217. %589 = getelementptr i8* %583, i32 -4
  1218. %590 = bitcast i8* %589 to i32*
  1219. %591 = load i32* %590
  1220. %592 = insertvalue %String { i32 9, i8* undef, i32 undef, i32 undef }, i8* %583, 1
  1221. %593 = insertvalue %String %592, i32 0, 2
  1222. %594 = insertvalue %String %593, i32 %591, 3
  1223. %.pre407 = load %Value** inttoptr (i32 134824628 to %Value**)
  1224. br label %if.cont187
  1225.  
  1226. if.cont187: ; preds = %if.cont185, %if.then186
  1227. %595 = phi %Value* [ %.pre407, %if.then186 ], [ %578, %if.cont185 ]
  1228. %596 = phi %String [ %594, %if.then186 ], [ { i32 10, i8* null, i32 0, i32 0 }, %if.cont185 ]
  1229. %597 = bitcast %Value* %595 to %String*
  1230. %598 = extractvalue %String %596, 0
  1231. %599 = getelementptr %String* %597, i32 0, i32 0
  1232. store i32 %598, i32* %599
  1233. %600 = extractvalue %String %596, 1
  1234. %601 = getelementptr %String* %597, i32 0, i32 1
  1235. store i8* %600, i8** %601
  1236. %602 = extractvalue %String %596, 2
  1237. %603 = getelementptr %String* %597, i32 0, i32 2
  1238. store i32 %602, i32* %603
  1239. %604 = extractvalue %String %596, 3
  1240. %605 = getelementptr %String* %597, i32 0, i32 3
  1241. store i32 %604, i32* %605
  1242. %606 = getelementptr %Value* %595, i32 1
  1243. %607 = bitcast %Value* %606 to %ValueFunction*
  1244. %608 = getelementptr %ValueFunction* %607, i32 0, i32 0
  1245. store i32 13, i32* %608
  1246. %609 = getelementptr %ValueFunction* %607, i32 0, i32 1
  1247. store i8* inttoptr (i32 142291628 to i8*), i8** %609
  1248. %610 = getelementptr %ValueFunction* %607, i32 0, i32 2
  1249. store i8* null, i8** %610
  1250. %611 = getelementptr %Value* %595, i32 2
  1251. %612 = bitcast %Value* %611 to %String*
  1252. %613 = getelementptr %String* %612, i32 0, i32 0
  1253. store i32 %392, i32* %613
  1254. %614 = getelementptr %String* %612, i32 0, i32 1
  1255. store i8* %398, i8** %614
  1256. %615 = getelementptr %String* %612, i32 0, i32 2
  1257. store i32 %396, i32* %615
  1258. %616 = getelementptr %String* %612, i32 0, i32 3
  1259. store i32 %394, i32* %616
  1260. %617 = getelementptr %Value* %595, i32 3
  1261. store %Value* %617, %Value** inttoptr (i32 134824628 to %Value**)
  1262. %618 = icmp ne i32 %392, 9
  1263. %619 = icmp eq i8* %398, null
  1264. %or.cond303 = or i1 %618, %619
  1265. br i1 %or.cond303, label %str_borrow_done191, label %str_not_null189
  1266.  
  1267. str_not_null189: ; preds = %if.cont187
  1268. %620 = bitcast i8* %398 to i32*
  1269. %621 = getelementptr i32* %620, i32 -2
  1270. %622 = load i32* %621
  1271. %623 = add i32 %622, 1
  1272. store i32 %623, i32* %621
  1273. %.pre408 = load %Value** inttoptr (i32 134824628 to %Value**)
  1274. br label %str_borrow_done191
  1275.  
  1276. str_borrow_done191: ; preds = %if.cont187, %str_not_null189
  1277. %624 = phi %Value* [ %617, %if.cont187 ], [ %.pre408, %str_not_null189 ]
  1278. %625 = bitcast %Value* %624 to %String*
  1279. %626 = getelementptr %String* %625, i32 0, i32 0
  1280. store i32 10, i32* %626
  1281. %627 = getelementptr %String* %625, i32 0, i32 1
  1282. store i8* inttoptr (i32 144440149 to i8*), i8** %627
  1283. %628 = getelementptr %String* %625, i32 0, i32 2
  1284. store i32 0, i32* %628
  1285. %629 = getelementptr %String* %625, i32 0, i32 3
  1286. store i32 6, i32* %629
  1287. %630 = getelementptr %Value* %624, i32 1
  1288. store %Value* %630, %Value** inttoptr (i32 134824628 to %Value**)
  1289. store i32 144437642, i32* inttoptr (i32 134824660 to i32*)
  1290. store i8 2, i8* inttoptr (i32 134831632 to i8*)
  1291. store i8* inttoptr (i32 134811484 to i8*), i8** inttoptr (i32 134831628 to i8**)
  1292. store i8* null, i8** inttoptr (i32 134831620 to i8**)
  1293. store i8* inttoptr (i32 142291628 to i8*), i8** inttoptr (i32 134831616 to i8**)
  1294. tail call void @EXEC_native_quick()
  1295. tail call void @SUBR_file(i16 2)
  1296. %631 = load %Value** inttoptr (i32 134824628 to %Value**)
  1297. %632 = getelementptr %Value* %631, i32 -1
  1298. %633 = bitcast %Value* %632 to %String*
  1299. %634 = getelementptr %String* %633, i32 0, i32 0
  1300. %635 = load i32* %634
  1301. %636 = getelementptr %String* %633, i32 0, i32 3
  1302. %637 = load i32* %636
  1303. %638 = getelementptr %String* %633, i32 0, i32 2
  1304. %639 = load i32* %638
  1305. %640 = getelementptr %String* %633, i32 0, i32 1
  1306. %641 = load i8** %640
  1307. %642 = icmp eq i32 %635, 12
  1308. br i1 %642, label %bb1192, label %not_null211
  1309.  
  1310. bb1192: ; preds = %str_borrow_done191
  1311. tail call void @abort()
  1312. unreachable
  1313.  
  1314. not_null211: ; preds = %str_borrow_done191
  1315. %643 = load i32* %573
  1316. %644 = add i32 %643, 1
  1317. store i32 %644, i32* %573
  1318. %645 = load i8** %533
  1319. %646 = getelementptr i8* %645, i32 28
  1320. %647 = bitcast i8* %646 to i8**
  1321. %648 = load i8** %647
  1322. %649 = getelementptr i8* %648, i32 272
  1323. %650 = bitcast i8* %649 to i8**
  1324. %651 = load i8** %650
  1325. %652 = getelementptr i8* %651, i32 8
  1326. %653 = bitcast i8* %652 to i32*
  1327. %654 = load i32* %653
  1328. %655 = getelementptr i8* %454, i32 %654
  1329. %656 = bitcast i8* %655 to i8**
  1330. %657 = load i8** %656
  1331. %658 = icmp eq i8* %657, null
  1332. br i1 %658, label %unref_done215, label %str_not_null212
  1333.  
  1334. str_not_null212: ; preds = %not_null211
  1335. %659 = bitcast i8* %657 to i32*
  1336. %660 = getelementptr i32* %659, i32 -2
  1337. %661 = load i32* %660
  1338. %662 = add i32 %661, -1
  1339. store i32 %662, i32* %660
  1340. %663 = icmp slt i32 %662, 1
  1341. br i1 %663, label %release_str213, label %unref_done215
  1342.  
  1343. release_str213: ; preds = %str_not_null212
  1344. tail call void @STRING_free_real(i8* %657)
  1345. br label %unref_done215
  1346.  
  1347. unref_done215: ; preds = %not_null211, %release_str213, %str_not_null212
  1348. %664 = icmp eq i32 %637, 0
  1349. br i1 %664, label %if.cont225, label %if.then216
  1350.  
  1351. if.then216: ; preds = %unref_done215
  1352. %665 = icmp eq i32 %635, 9
  1353. %666 = icmp eq i32 %639, 0
  1354. %667 = and i1 %665, %666
  1355. br i1 %667, label %and_if217, label %if.then219
  1356.  
  1357. and_if217: ; preds = %if.then216
  1358. %668 = getelementptr i8* %641, i32 -4
  1359. %669 = bitcast i8* %668 to i32*
  1360. %670 = load i32* %669
  1361. %phitmp = icmp eq i32 %670, %637
  1362. br i1 %phitmp, label %if.cont225, label %if.then219
  1363.  
  1364. if.then219: ; preds = %and_if217, %if.then216
  1365. %671 = getelementptr i8* %641, i32 %639
  1366. %672 = tail call i8* @STRING_new(i8* %671, i32 %637)
  1367. %673 = tail call i8* @STRING_free_later(i8* %672)
  1368. br i1 %665, label %if.then220, label %if.cont223
  1369.  
  1370. if.then220: ; preds = %if.then219
  1371. %674 = bitcast i8* %641 to i32*
  1372. %675 = getelementptr i32* %674, i32 -2
  1373. %676 = load i32* %675
  1374. %677 = add i32 %676, -1
  1375. store i32 %677, i32* %675
  1376. %678 = icmp slt i32 %677, 1
  1377. br i1 %678, label %release_str221, label %if.cont223
  1378.  
  1379. release_str221: ; preds = %if.then220
  1380. tail call void @STRING_free_real(i8* %641)
  1381. br label %if.cont223
  1382.  
  1383. if.cont223: ; preds = %release_str221, %if.then220, %if.then219
  1384. %679 = bitcast i8* %673 to i32*
  1385. %680 = getelementptr i32* %679, i32 -2
  1386. %681 = load i32* %680
  1387. %682 = add i32 %681, 1
  1388. store i32 %682, i32* %680
  1389. br label %if.cont225
  1390.  
  1391. if.cont225: ; preds = %and_if217, %unref_done215, %if.cont223
  1392. %683 = phi i8* [ null, %unref_done215 ], [ %673, %if.cont223 ], [ %641, %and_if217 ]
  1393. store i8* %683, i8** %656
  1394. %684 = load i32* %573
  1395. %685 = add i32 %684, -1
  1396. store i32 %685, i32* %573
  1397. %686 = icmp slt i32 %685, 1
  1398. br i1 %686, label %release_obj226, label %release_done227
  1399.  
  1400. release_obj226: ; preds = %if.cont225
  1401. tail call void @CLASS_free(i8* %454)
  1402. br label %release_done227
  1403.  
  1404. release_done227: ; preds = %if.cont225, %release_obj226
  1405. %687 = load %Value** inttoptr (i32 134824628 to %Value**)
  1406. %688 = getelementptr %Value* %687, i32 -1
  1407. store %Value* %688, %Value** inttoptr (i32 134824628 to %Value**)
  1408. %689 = load i8** inttoptr (i32 134824628 to i8**)
  1409. %690 = load i8** inttoptr (i32 134824636 to i8**)
  1410. %691 = getelementptr i8* %690, i32 112
  1411. %692 = icmp eq i8* %691, %689
  1412. br i1 %692, label %not_null235, label %if.then228
  1413.  
  1414. if.then228: ; preds = %release_done227
  1415. tail call void @stack_corrupted_abort()
  1416. unreachable
  1417.  
  1418. not_null235: ; preds = %release_done227
  1419. %693 = load i32* %573
  1420. %694 = add i32 %693, 1
  1421. store i32 %694, i32* %573
  1422. %695 = load i8** %533
  1423. %696 = getelementptr i8* %695, i32 28
  1424. %697 = bitcast i8* %696 to i8**
  1425. %698 = load i8** %697
  1426. %699 = getelementptr i8* %698, i32 140
  1427. %700 = bitcast i8* %699 to i8**
  1428. %701 = load i8** %700
  1429. %702 = getelementptr i8* %701, i32 8
  1430. %703 = bitcast i8* %702 to i32*
  1431. %704 = load i32* %703
  1432. %705 = getelementptr i8* %454, i32 %704
  1433. store i8 -1, i8* %705
  1434. %706 = load i32* %573
  1435. %707 = add i32 %706, -1
  1436. store i32 %707, i32* %573
  1437. %708 = icmp slt i32 %707, 1
  1438. br i1 %708, label %release_obj236, label %release_done237
  1439.  
  1440. release_obj236: ; preds = %not_null235
  1441. tail call void @CLASS_free(i8* %454)
  1442. br label %release_done237
  1443.  
  1444. release_done237: ; preds = %not_null235, %release_obj236
  1445. %709 = load i8** inttoptr (i32 134824628 to i8**)
  1446. %710 = load i8** inttoptr (i32 134824636 to i8**)
  1447. %711 = getelementptr i8* %710, i32 112
  1448. %712 = icmp eq i8* %711, %709
  1449. br i1 %712, label %borrow_object_done241, label %if.then238
  1450.  
  1451. if.then238: ; preds = %release_done237
  1452. tail call void @stack_corrupted_abort()
  1453. unreachable
  1454.  
  1455. borrow_object_done241: ; preds = %release_done237
  1456. %713 = load %Value** inttoptr (i32 134824628 to %Value**)
  1457. %714 = bitcast %Value* %713 to %ValueFunction*
  1458. %715 = getelementptr %ValueFunction* %714, i32 0, i32 0
  1459. store i32 13, i32* %715
  1460. %716 = getelementptr %ValueFunction* %714, i32 0, i32 1
  1461. store i8* inttoptr (i32 143051428 to i8*), i8** %716
  1462. %717 = getelementptr %ValueFunction* %714, i32 0, i32 2
  1463. store i8* null, i8** %717
  1464. %718 = getelementptr %Value* %713, i32 1
  1465. %719 = bitcast %Value* %718 to %ValueObject*
  1466. %720 = getelementptr %ValueObject* %719, i32 0, i32 0
  1467. store i8* %452, i8** %720
  1468. %721 = getelementptr %ValueObject* %719, i32 0, i32 1
  1469. store i8* %454, i8** %721
  1470. %722 = getelementptr %Value* %713, i32 2
  1471. store %Value* %722, %Value** inttoptr (i32 134824628 to %Value**)
  1472. %723 = load i32* %573
  1473. %724 = add i32 %723, 1
  1474. store i32 %724, i32* %573
  1475. store i32 144437672, i32* inttoptr (i32 134824660 to i32*)
  1476. store i8 1, i8* inttoptr (i32 134831632 to i8*)
  1477. tail call void @JR_exec_enter_quick(i8* inttoptr (i32 143051428 to i8*), i8* null, i32 12)
  1478. %725 = load %Value** inttoptr (i32 134824628 to %Value**)
  1479. %726 = getelementptr %Value* %725, i32 -1
  1480. store %Value* %726, %Value** inttoptr (i32 134824628 to %Value**)
  1481. %727 = load i8** inttoptr (i32 134824628 to i8**)
  1482. %728 = load i8** inttoptr (i32 134824636 to i8**)
  1483. %729 = getelementptr i8* %728, i32 112
  1484. %730 = icmp eq i8* %729, %727
  1485. br i1 %730, label %if.cont243, label %if.then242
  1486.  
  1487. if.then242: ; preds = %borrow_object_done241
  1488. tail call void @stack_corrupted_abort()
  1489. unreachable
  1490.  
  1491. if.cont243: ; preds = %borrow_object_done241
  1492. %731 = load i8** inttoptr (i32 144415616 to i8**)
  1493. %732 = icmp eq i8* %731, null
  1494. br i1 %732, label %is_null246, label %not_null259
  1495.  
  1496. is_null246: ; preds = %if.cont243
  1497. tail call void (i32, ...)* @THROW(i32 13)
  1498. unreachable
  1499.  
  1500. not_null259: ; preds = %if.cont243
  1501. %733 = bitcast i8* %731 to %OBJECT*
  1502. %734 = getelementptr %OBJECT* %733, i32 0, i32 1
  1503. %735 = load i32* %734
  1504. %736 = add i32 %735, 1
  1505. store i32 %736, i32* %734
  1506. %737 = getelementptr %OBJECT* %733, i32 0, i32 0
  1507. %738 = load i8** %737
  1508. %739 = bitcast i8* %738 to i8**
  1509. %740 = getelementptr i8** %739, i32 7
  1510. %741 = load i8** %740
  1511. %742 = getelementptr i8* %741, i32 68
  1512. %743 = bitcast i8* %742 to i8**
  1513. %744 = load i8** %743
  1514. %745 = getelementptr i8* %744, i32 19
  1515. %746 = load i8* %745
  1516. %747 = shl i8 %746, 1
  1517. %748 = and i8 %747, 2
  1518. %749 = xor i8 %748, 3
  1519. %750 = load %Value** inttoptr (i32 134824628 to %Value**)
  1520. %751 = bitcast %Value* %750 to %ValueFunction*
  1521. %752 = getelementptr %ValueFunction* %751, i32 0, i32 0
  1522. store i32 13, i32* %752
  1523. %753 = getelementptr %ValueFunction* %751, i32 0, i32 2
  1524. store i8* %731, i8** %753
  1525. %754 = getelementptr %ValueFunction* %751, i32 0, i32 3
  1526. store i8 %749, i8* %754
  1527. %755 = getelementptr %Value* %750, i32 1
  1528. store %Value* %755, %Value** inttoptr (i32 134824628 to %Value**)
  1529. %756 = load i32* %573
  1530. %757 = add i32 %756, 1
  1531. store i32 %757, i32* %573
  1532. %.pre409 = load %Value** inttoptr (i32 134824628 to %Value**)
  1533. %758 = getelementptr %Value* %.pre409, i32 1
  1534. store %Value* %758, %Value** inttoptr (i32 134824628 to %Value**)
  1535. %759 = getelementptr inbounds %Value* %.pre409, i32 0, i32 0
  1536. store i32 12, i32* %759
  1537. %760 = getelementptr i32* %759, i32 1
  1538. store i32 %515, i32* %760
  1539. %761 = getelementptr i32* %759, i32 2
  1540. %762 = bitcast i32* %761 to i8**
  1541. store i8* %454, i8** %762
  1542. %763 = load i32* %316
  1543. %764 = add i32 %763, 1
  1544. store i32 %764, i32* %316
  1545. %765 = load %Value** inttoptr (i32 134824628 to %Value**)
  1546. %766 = bitcast %Value* %765 to i8*
  1547. %767 = tail call i8 @GB.Collection.Get(i8* %283, i8* inttoptr (i32 144439784 to i8*), i32 4, i8* %766)
  1548. %768 = bitcast %Value* %765 to %ValueVariant*
  1549. %769 = getelementptr %ValueVariant* %768, i32 0, i32 2
  1550. %770 = load i64* %769
  1551. %771 = getelementptr %ValueVariant* %768, i32 0, i32 1
  1552. %772 = load i32* %771
  1553. tail call void @JR_borrow_variant(i32 %772, i64 %770)
  1554. %773 = getelementptr %Value* %765, i32 1
  1555. store %Value* %773, %Value** inttoptr (i32 134824628 to %Value**)
  1556. %774 = load i32* %316
  1557. %775 = add i32 %774, -1
  1558. store i32 %775, i32* %316
  1559. %776 = icmp slt i32 %775, 1
  1560. br i1 %776, label %release_obj266, label %release_done267
  1561.  
  1562. release_obj266: ; preds = %not_null259
  1563. tail call void @CLASS_free(i8* %283)
  1564. br label %release_done267
  1565.  
  1566. release_done267: ; preds = %not_null259, %release_obj266
  1567. %777 = load %Value** inttoptr (i32 134824628 to %Value**)
  1568. %778 = getelementptr %Value* %777, i32 -1
  1569. %779 = bitcast %Value* %778 to i8*
  1570. tail call void @VALUE_convert(i8* %779, i32 9)
  1571. %780 = load %Value** inttoptr (i32 134824628 to %Value**)
  1572. %781 = getelementptr %Value* %780, i32 -1
  1573. %782 = bitcast %Value* %781 to %String*
  1574. %783 = getelementptr %String* %782, i32 0, i32 0
  1575. %784 = load i32* %783
  1576. %785 = icmp eq i32 %784, 12
  1577. br i1 %785, label %bb1268, label %bb2269
  1578.  
  1579. bb1268: ; preds = %release_done267
  1580. tail call void @abort()
  1581. unreachable
  1582.  
  1583. bb2269: ; preds = %release_done267
  1584. store i32 144437696, i32* inttoptr (i32 134824660 to i32*)
  1585. store i8 2, i8* inttoptr (i32 134831632 to i8*)
  1586. %786 = icmp eq i8 %748, 0
  1587. br i1 %786, label %if.then270, label %if.else271
  1588.  
  1589. if.then270: ; preds = %bb2269
  1590. tail call void @JR_exec_enter_quick(i8* %738, i8* %731, i32 5)
  1591. br label %if.cont272
  1592.  
  1593. if.else271: ; preds = %bb2269
  1594. store i8* inttoptr (i32 134808556 to i8*), i8** inttoptr (i32 134831628 to i8**)
  1595. store i8* %731, i8** inttoptr (i32 134831620 to i8**)
  1596. store i8* %738, i8** inttoptr (i32 134831616 to i8**)
  1597. tail call void @EXEC_native_quick()
  1598. br label %if.cont272
  1599.  
  1600. if.cont272: ; preds = %if.else271, %if.then270
  1601. %787 = load %Value** inttoptr (i32 134824628 to %Value**)
  1602. %788 = getelementptr %Value* %787, i32 -1
  1603. store %Value* %788, %Value** inttoptr (i32 134824628 to %Value**)
  1604. %789 = load i8** inttoptr (i32 134824628 to i8**)
  1605. %790 = load i8** inttoptr (i32 134824636 to i8**)
  1606. %791 = getelementptr i8* %790, i32 112
  1607. %792 = icmp eq i8* %791, %789
  1608. br i1 %792, label %obj_not_null275, label %if.then273
  1609.  
  1610. if.then273: ; preds = %if.cont272
  1611. tail call void @stack_corrupted_abort()
  1612. unreachable
  1613.  
  1614. obj_not_null275: ; preds = %if.cont272
  1615. %793 = load i32* %573
  1616. %794 = add i32 %793, -1
  1617. store i32 %794, i32* %573
  1618. %795 = icmp slt i32 %794, 1
  1619. br i1 %795, label %release_obj276, label %unref_done278
  1620.  
  1621. release_obj276: ; preds = %obj_not_null275
  1622. tail call void @CLASS_free(i8* %454)
  1623. br label %unref_done278
  1624.  
  1625. unref_done278: ; preds = %obj_not_null275, %release_obj276
  1626. %796 = load i8** inttoptr (i32 134824636 to i8**)
  1627. %797 = getelementptr i8* %796, i32 48
  1628. %798 = bitcast i8* %797 to %ValueObject*
  1629. %799 = getelementptr %ValueObject* %798, i32 0, i32 0
  1630. store i8* inttoptr (i32 144414908 to i8*), i8** %799
  1631. %800 = getelementptr %ValueObject* %798, i32 0, i32 1
  1632. store i8* null, i8** %800
  1633. %.pre410 = load i8** inttoptr (i32 134824628 to i8**)
  1634. %.pre411 = load i8** inttoptr (i32 134824636 to i8**)
  1635. br label %block279
  1636.  
  1637. block279: ; preds = %if.cont91, %unref_done278
  1638. %801 = phi i8* [ %364, %if.cont91 ], [ %.pre411, %unref_done278 ]
  1639. %802 = phi i8* [ %363, %if.cont91 ], [ %.pre410, %unref_done278 ]
  1640. %.1293 = phi %String [ %186, %if.cont91 ], [ %402, %unref_done278 ]
  1641. %.1288 = phi i32 [ %.0287, %if.cont91 ], [ 2, %unref_done278 ]
  1642. %.1 = phi %Object [ %.0, %if.cont91 ], [ %448, %unref_done278 ]
  1643. %803 = getelementptr i8* %801, i32 112
  1644. %804 = icmp eq i8* %803, %802
  1645. br i1 %804, label %block31, label %if.then280
  1646.  
  1647. if.then280: ; preds = %block279
  1648. tail call void @stack_corrupted_abort()
  1649. unreachable
  1650.  
  1651. block283: ; preds = %block31, %if.cont40.block283_crit_edge
  1652. %805 = load i8** inttoptr (i32 134824628 to i8**)
  1653. %806 = load i8** inttoptr (i32 134824636 to i8**)
  1654. %807 = getelementptr i8* %806, i32 112
  1655. %808 = icmp eq i8* %807, %805
  1656. br i1 %808, label %return, label %if.then284
  1657.  
  1658. if.then284: ; preds = %block283
  1659. tail call void @stack_corrupted_abort()
  1660. unreachable
  1661.  
  1662. return: ; preds = %block283, %release_done11
  1663. store i32 0, i32* getelementptr (%Void* inttoptr (i32 134831572 to %Void*), i32 0, i32 0)
  1664. tail call void @EXEC_leave_keep()
  1665. ret void
  1666. }
  1667.  
  1668. declare void @stack_corrupted_abort()
  1669.  
  1670. declare void @SUBR_dir(i16)
  1671.  
  1672. declare void @CLASS_free(i8*)
  1673.  
  1674. declare void @THROW(i32, ...)
  1675.  
  1676. declare i8 @EXEC_call_native(i8*, i8*, i32, i8*)
  1677.  
  1678. declare void @ERROR_propagate()
  1679.  
  1680. declare void @EXEC_function_real()
  1681.  
  1682. declare i8* @CENUM_create(i8*)
  1683.  
  1684. declare i8 @EXEC_special(i32, i8*, i8*, i32, i8)
  1685.  
  1686. declare void @abort()
  1687.  
  1688. declare void @STRING_free_real(i8*)
  1689.  
  1690. declare void @SUBR_file(i16)
  1691.  
  1692. declare void @EXEC_native_quick()
  1693.  
  1694. declare void @JR_exec_enter_quick(i8*, i8*, i32)
  1695.  
  1696. declare void @VALUE_convert(i8*, i32)
  1697.  
  1698. declare i8 @GB.Collection.Get(i8*, i8*, i32, i8*)
  1699.  
  1700. declare void @JR_borrow_variant(i32, i64)
  1701.  
  1702. declare void @EXEC_native()
  1703.  
  1704. declare void @EXEC_enter()
  1705.  
  1706. declare void @JR_EXEC_jit_execute_function()
  1707.  
  1708. declare i8* @STRING_new(i8*, i32)
  1709.  
  1710. declare i8* @STRING_free_later(i8*)
  1711.  
  1712. declare void @EXEC_leave_keep()
  1713. ------------------------------------------------------------------------
  1714.  
  1715. ------------------------------------------------------------------------
  1716. gb.jit: beginning compiling Module.Load_From_JSON:
  1717. ------------------------------------------------------------------------
  1718.  
  1719. ------------------------------------------------------------------------
  1720. gb.jit: dumping function Module.Load_From_JSON:
  1721. ------------------------------------------------------------------------
  1722. ; ModuleID = 'jit_mod'
  1723. target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32-n8:16:32-S128"
  1724. target triple = "i386-unknown-linux-gnu"
  1725.  
  1726. %ValueVariant = type { i32, i32, i64 }
  1727. %Variant = type <{ i32, i64 }>
  1728. %Boolean = type { i32, i32 }
  1729. %Value = type { i32, i32, i32, i32 }
  1730. %ValueObject = type { i8*, i8*, i8* }
  1731. %Null = type { i32 }
  1732. %Object = type { i8*, i8* }
  1733. %ValueFunction = type { i32, i8*, i8*, i8, i8, i16 }
  1734. %String = type { i32, i8*, i32, i32 }
  1735. %Class = type { i32, i8* }
  1736. %OBJECT = type { i8*, i32 }
  1737.  
  1738. define void @func_1_Module_7() {
  1739. entry:
  1740. %0 = load i8** inttoptr (i32 134824640 to i8**)
  1741. %1 = getelementptr i8* %0, i32 -32
  1742. %2 = bitcast i8* %1 to %ValueVariant*
  1743. %3 = getelementptr %ValueVariant* %2, i32 0, i32 2
  1744. %4 = load i64* %3
  1745. %5 = getelementptr %ValueVariant* %2, i32 0, i32 1
  1746. %6 = load i32* %5
  1747. %7 = insertvalue %Variant undef, i32 %6, 0
  1748. %8 = insertvalue %Variant %7, i64 %4, 1
  1749. %9 = getelementptr %ValueVariant* %2, i32 0, i32 0
  1750. %10 = load i32* %9
  1751. %11 = icmp ne i32 %10, 15
  1752. %12 = select i1 %11, %Variant %8, %Variant <{ i32 15, i64 undef }>
  1753. %13 = getelementptr i8* %0, i32 -16
  1754. %14 = bitcast i8* %13 to %Boolean*
  1755. %15 = getelementptr %Boolean* %14, i32 0, i32 1
  1756. %16 = load i32* %15
  1757. %17 = icmp ne i32 %16, 0
  1758. %18 = bitcast i8* %13 to i32*
  1759. %19 = load i32* %18
  1760. %20 = icmp eq i32 %19, 0
  1761. br i1 %20, label %not_passed, label %passed_or_done
  1762.  
  1763. not_passed: ; preds = %entry
  1764. %21 = getelementptr %Boolean* %14, i32 0, i32 0
  1765. store i32 1, i32* %21
  1766. store i32 0, i32* %15
  1767. br label %passed_or_done
  1768.  
  1769. passed_or_done: ; preds = %entry, %not_passed
  1770. %.0 = phi i1 [ false, %not_passed ], [ %17, %entry ]
  1771. %22 = load i8** inttoptr (i32 134824628 to i8**)
  1772. %23 = load i8** inttoptr (i32 134824636 to i8**)
  1773. %24 = getelementptr i8* %23, i32 48
  1774. %25 = icmp eq i8* %24, %22
  1775. br i1 %25, label %if.cont, label %if.then
  1776.  
  1777. if.then: ; preds = %passed_or_done
  1778. tail call void @stack_corrupted_abort()
  1779. unreachable
  1780.  
  1781. if.cont: ; preds = %passed_or_done
  1782. %26 = load %Value** inttoptr (i32 134824628 to %Value**)
  1783. br i1 %.0, label %if.cont2, label %if.cont6
  1784.  
  1785. if.cont2: ; preds = %if.cont
  1786. %27 = bitcast %Value* %26 to %ValueVariant*
  1787. %28 = getelementptr %ValueVariant* %27, i32 0, i32 0
  1788. store i32 12, i32* %28
  1789. %29 = extractvalue %Variant %12, 0
  1790. %30 = getelementptr %ValueVariant* %27, i32 0, i32 1
  1791. store i32 %29, i32* %30
  1792. %31 = extractvalue %Variant %12, 1
  1793. %32 = getelementptr %ValueVariant* %27, i32 0, i32 2
  1794. store i64 %31, i64* %32
  1795. %33 = getelementptr %Value* %26, i32 1
  1796. store %Value* %33, %Value** inttoptr (i32 134824628 to %Value**)
  1797. tail call void @JR_borrow_variant(i32 %29, i64 %31)
  1798. %34 = load %Value** inttoptr (i32 134824628 to %Value**)
  1799. %35 = getelementptr %Value* %34, i32 -1
  1800. %36 = bitcast %Value* %35 to i8*
  1801. tail call void @VALUE_convert(i8* %36, i32 142289596)
  1802. %37 = load %Value** inttoptr (i32 134824628 to %Value**)
  1803. %38 = getelementptr %Value* %37, i32 -1
  1804. %39 = bitcast %Value* %38 to %ValueObject*
  1805. %40 = bitcast %Value* %38 to %Null*
  1806. %41 = getelementptr %Null* %40, i32 0, i32 0
  1807. %42 = load i32* %41
  1808. %43 = icmp eq i32 %42, 15
  1809. %44 = getelementptr %ValueObject* %39, i32 0, i32 1
  1810. %45 = load i8** %44
  1811. %46 = getelementptr %ValueObject* %39, i32 0, i32 0
  1812. %47 = load i8** %46
  1813. %48 = insertvalue %Object undef, i8* %47, 0
  1814. %49 = insertvalue %Object %48, i8* %45, 1
  1815. %50 = select i1 %43, %Object { i8* inttoptr (i32 142289596 to i8*), i8* null }, %Object %49
  1816. store %Value* %38, %Value** inttoptr (i32 134824628 to %Value**)
  1817. %51 = load i8** inttoptr (i32 134824636 to i8**)
  1818. %52 = getelementptr i8* %51, i32 16
  1819. %53 = bitcast i8* %52 to %ValueObject*
  1820. %54 = extractvalue %Object %50, 0
  1821. %55 = getelementptr %ValueObject* %53, i32 0, i32 0
  1822. store i8* %54, i8** %55
  1823. %56 = extractvalue %Object %50, 1
  1824. %57 = getelementptr %ValueObject* %53, i32 0, i32 1
  1825. store i8* %56, i8** %57
  1826. br label %block11
  1827.  
  1828. if.cont6: ; preds = %if.cont
  1829. %58 = bitcast %Value* %26 to %ValueFunction*
  1830. %59 = getelementptr %ValueFunction* %58, i32 0, i32 0
  1831. store i32 13, i32* %59
  1832. %60 = getelementptr %ValueFunction* %58, i32 0, i32 1
  1833. store i8* inttoptr (i32 143005620 to i8*), i8** %60
  1834. %61 = getelementptr %ValueFunction* %58, i32 0, i32 2
  1835. store i8* null, i8** %61
  1836. %62 = getelementptr %Value* %26, i32 1
  1837. %63 = bitcast %Value* %62 to %ValueVariant*
  1838. %64 = getelementptr %ValueVariant* %63, i32 0, i32 0
  1839. store i32 12, i32* %64
  1840. %65 = extractvalue %Variant %12, 0
  1841. %66 = getelementptr %ValueVariant* %63, i32 0, i32 1
  1842. store i32 %65, i32* %66
  1843. %67 = extractvalue %Variant %12, 1
  1844. %68 = getelementptr %ValueVariant* %63, i32 0, i32 2
  1845. store i64 %67, i64* %68
  1846. %69 = getelementptr %Value* %26, i32 2
  1847. store %Value* %69, %Value** inttoptr (i32 134824628 to %Value**)
  1848. tail call void @JR_borrow_variant(i32 %65, i64 %67)
  1849. %70 = load %Value** inttoptr (i32 134824628 to %Value**)
  1850. %71 = getelementptr %Value* %70, i32 -1
  1851. %72 = bitcast %Value* %71 to i8*
  1852. tail call void @VALUE_convert(i8* %72, i32 9)
  1853. %73 = load %Value** inttoptr (i32 134824628 to %Value**)
  1854. %74 = getelementptr %Value* %73, i32 -1
  1855. %75 = bitcast %Value* %74 to %String*
  1856. %76 = getelementptr %String* %75, i32 0, i32 0
  1857. %77 = load i32* %76
  1858. %78 = icmp eq i32 %77, 12
  1859. br i1 %78, label %bb1, label %bb2
  1860.  
  1861. bb1: ; preds = %if.cont6
  1862. tail call void @abort()
  1863. unreachable
  1864.  
  1865. bb2: ; preds = %if.cont6
  1866. store i32 144437752, i32* inttoptr (i32 134824660 to i32*)
  1867. store i8 1, i8* inttoptr (i32 134831632 to i8*)
  1868. tail call void @JR_exec_enter_quick(i8* inttoptr (i32 143005620 to i8*), i8* null, i32 0)
  1869. %79 = load %Value** inttoptr (i32 134824628 to %Value**)
  1870. %80 = getelementptr %Value* %79, i32 -1
  1871. %81 = bitcast %Value* %80 to i8*
  1872. tail call void @VALUE_convert(i8* %81, i32 142289596)
  1873. %82 = load %Value** inttoptr (i32 134824628 to %Value**)
  1874. %83 = getelementptr %Value* %82, i32 -1
  1875. %84 = bitcast %Value* %83 to %ValueObject*
  1876. %85 = bitcast %Value* %83 to %Null*
  1877. %86 = getelementptr %Null* %85, i32 0, i32 0
  1878. %87 = load i32* %86
  1879. %88 = icmp eq i32 %87, 15
  1880. %89 = getelementptr %ValueObject* %84, i32 0, i32 1
  1881. %90 = load i8** %89
  1882. %91 = getelementptr %ValueObject* %84, i32 0, i32 0
  1883. %92 = load i8** %91
  1884. %93 = insertvalue %Object undef, i8* %92, 0
  1885. %94 = insertvalue %Object %93, i8* %90, 1
  1886. %95 = select i1 %88, %Object { i8* inttoptr (i32 142289596 to i8*), i8* null }, %Object %94
  1887. store %Value* %83, %Value** inttoptr (i32 134824628 to %Value**)
  1888. %96 = load i8** inttoptr (i32 134824636 to i8**)
  1889. %97 = getelementptr i8* %96, i32 16
  1890. %98 = bitcast i8* %97 to %ValueObject*
  1891. %99 = extractvalue %Object %95, 0
  1892. %100 = getelementptr %ValueObject* %98, i32 0, i32 0
  1893. store i8* %99, i8** %100
  1894. %101 = extractvalue %Object %95, 1
  1895. %102 = getelementptr %ValueObject* %98, i32 0, i32 1
  1896. store i8* %101, i8** %102
  1897. br label %block11
  1898.  
  1899. block11: ; preds = %if.cont2, %bb2
  1900. %.0624 = phi %Object [ %50, %if.cont2 ], [ %95, %bb2 ]
  1901. %103 = load i8** inttoptr (i32 134824628 to i8**)
  1902. %104 = load i8** inttoptr (i32 134824636 to i8**)
  1903. %105 = getelementptr i8* %104, i32 48
  1904. %106 = icmp eq i8* %105, %103
  1905. br i1 %106, label %if.cont13, label %if.then12
  1906.  
  1907. if.then12: ; preds = %block11
  1908. tail call void @stack_corrupted_abort()
  1909. unreachable
  1910.  
  1911. if.cont13: ; preds = %block11
  1912. %107 = load %Class** inttoptr (i32 134824628 to %Class**)
  1913. %108 = getelementptr %Class* %107, i32 0, i32 0
  1914. store i32 14, i32* %108
  1915. %109 = getelementptr %Class* %107, i32 0, i32 1
  1916. store i8* inttoptr (i32 144414908 to i8*), i8** %109
  1917. %110 = load %Value** inttoptr (i32 134824628 to %Value**)
  1918. %111 = getelementptr %Value* %110, i32 1
  1919. store %Value* %111, %Value** inttoptr (i32 134824628 to %Value**)
  1920. store i32 144437760, i32* inttoptr (i32 134824660 to i32*)
  1921. tail call void @EXEC_new()
  1922. %112 = load %Value** inttoptr (i32 134824628 to %Value**)
  1923. %113 = getelementptr %Value* %112, i32 -1
  1924. %114 = bitcast %Value* %113 to %ValueObject*
  1925. %115 = bitcast %Value* %113 to %Null*
  1926. %116 = getelementptr %Null* %115, i32 0, i32 0
  1927. %117 = load i32* %116
  1928. %118 = icmp eq i32 %117, 15
  1929. %119 = getelementptr %ValueObject* %114, i32 0, i32 1
  1930. %120 = load i8** %119
  1931. %121 = getelementptr %ValueObject* %114, i32 0, i32 0
  1932. %122 = load i8** %121
  1933. %123 = insertvalue %Object undef, i8* %122, 0
  1934. %124 = insertvalue %Object %123, i8* %120, 1
  1935. %125 = select i1 %118, %Object { i8* inttoptr (i32 144414908 to i8*), i8* null }, %Object %124
  1936. store %Value* %113, %Value** inttoptr (i32 134824628 to %Value**)
  1937. %126 = load i8** inttoptr (i32 134824636 to i8**)
  1938. %127 = bitcast i8* %126 to %ValueObject*
  1939. %128 = extractvalue %Object %125, 0
  1940. %129 = getelementptr %ValueObject* %127, i32 0, i32 0
  1941. store i8* %128, i8** %129
  1942. %130 = extractvalue %Object %125, 1
  1943. %131 = getelementptr %ValueObject* %127, i32 0, i32 1
  1944. store i8* %130, i8** %131
  1945. %132 = load i8** inttoptr (i32 134824628 to i8**)
  1946. %133 = load i8** inttoptr (i32 134824636 to i8**)
  1947. %134 = getelementptr i8* %133, i32 48
  1948. %135 = icmp eq i8* %134, %132
  1949. br i1 %135, label %if.cont19, label %if.then18
  1950.  
  1951. if.then18: ; preds = %if.cont13
  1952. tail call void @stack_corrupted_abort()
  1953. unreachable
  1954.  
  1955. if.cont19: ; preds = %if.cont13
  1956. %136 = icmp ne i8* %130, null
  1957. br i1 %136, label %obj_not_null20, label %if.cont25
  1958.  
  1959. obj_not_null20: ; preds = %if.cont19
  1960. %137 = bitcast i8* %130 to %OBJECT*
  1961. %138 = getelementptr %OBJECT* %137, i32 0, i32 1
  1962. %139 = load i32* %138
  1963. %140 = add i32 %139, 1
  1964. store i32 %140, i32* %138
  1965. %.pre = load i8** inttoptr (i32 134824636 to i8**)
  1966. br label %if.cont25
  1967.  
  1968. if.cont25: ; preds = %obj_not_null20, %if.cont19
  1969. %141 = phi i8* [ %.pre, %obj_not_null20 ], [ %133, %if.cont19 ]
  1970. %142 = getelementptr i8* %141, i32 32
  1971. %143 = bitcast i8* %142 to %ValueObject*
  1972. %144 = getelementptr %ValueObject* %143, i32 0, i32 0
  1973. store i8* %128, i8** %144
  1974. %145 = getelementptr %ValueObject* %143, i32 0, i32 1
  1975. store i8* %130, i8** %145
  1976. %146 = load i8** inttoptr (i32 134824628 to i8**)
  1977. %147 = load i8** inttoptr (i32 134824636 to i8**)
  1978. %148 = getelementptr i8* %147, i32 48
  1979. %149 = icmp eq i8* %148, %146
  1980. br i1 %149, label %if.cont27, label %if.then26
  1981.  
  1982. if.then26: ; preds = %if.cont25
  1983. tail call void @stack_corrupted_abort()
  1984. unreachable
  1985.  
  1986. if.cont27: ; preds = %if.cont25
  1987. %150 = extractvalue %Object %.0624, 1
  1988. %151 = icmp eq i8* %150, null
  1989. br i1 %151, label %str_release_done, label %not_null
  1990.  
  1991. str_release_done: ; preds = %if.cont27
  1992. tail call void (i32, ...)* @THROW(i32 13)
  1993. unreachable
  1994.  
  1995. not_null: ; preds = %if.cont27
  1996. %152 = bitcast i8* %150 to %OBJECT*
  1997. %153 = getelementptr %OBJECT* %152, i32 0, i32 1
  1998. %154 = load i32* %153
  1999. %155 = add i32 %154, 1
  2000. store i32 %155, i32* %153
  2001. %156 = load %Value** inttoptr (i32 134824628 to %Value**)
  2002. %157 = bitcast %Value* %156 to i8*
  2003. %158 = tail call i8 @GB.Collection.Get(i8* %150, i8* inttoptr (i32 144439784 to i8*), i32 4, i8* %157)
  2004. %159 = bitcast %Value* %156 to %ValueVariant*
  2005. %160 = getelementptr %ValueVariant* %159, i32 0, i32 2
  2006. %161 = load i64* %160
  2007. %162 = getelementptr %ValueVariant* %159, i32 0, i32 1
  2008. %163 = load i32* %162
  2009. tail call void @JR_borrow_variant(i32 %163, i64 %161)
  2010. %164 = getelementptr %Value* %156, i32 1
  2011. store %Value* %164, %Value** inttoptr (i32 134824628 to %Value**)
  2012. %165 = load i32* %153
  2013. %166 = add i32 %165, -1
  2014. store i32 %166, i32* %153
  2015. %167 = icmp slt i32 %166, 1
  2016. br i1 %167, label %release_obj38, label %release_done39
  2017.  
  2018. release_obj38: ; preds = %not_null
  2019. tail call void @CLASS_free(i8* %150)
  2020. br label %release_done39
  2021.  
  2022. release_done39: ; preds = %not_null, %release_obj38
  2023. %168 = load %Value** inttoptr (i32 134824628 to %Value**)
  2024. %169 = getelementptr %Value* %168, i32 -1
  2025. %170 = bitcast %Value* %169 to i8*
  2026. tail call void @VALUE_convert(i8* %170, i32 9)
  2027. %171 = load %Value** inttoptr (i32 134824628 to %Value**)
  2028. %172 = getelementptr %Value* %171, i32 -1
  2029. %173 = bitcast %Value* %172 to %String*
  2030. %174 = getelementptr %String* %173, i32 0, i32 0
  2031. %175 = load i32* %174
  2032. %176 = getelementptr %String* %173, i32 0, i32 3
  2033. %177 = load i32* %176
  2034. %178 = getelementptr %String* %173, i32 0, i32 2
  2035. %179 = load i32* %178
  2036. %180 = getelementptr %String* %173, i32 0, i32 1
  2037. %181 = load i8** %180
  2038. %182 = icmp eq i32 %175, 12
  2039. br i1 %182, label %bb140, label %bb241
  2040.  
  2041. bb140: ; preds = %release_done39
  2042. tail call void @abort()
  2043. unreachable
  2044.  
  2045. bb241: ; preds = %release_done39
  2046. br i1 %136, label %obj_not_null42, label %borrow_object_done43
  2047.  
  2048. obj_not_null42: ; preds = %bb241
  2049. %183 = bitcast i8* %130 to %OBJECT*
  2050. %184 = getelementptr %OBJECT* %183, i32 0, i32 1
  2051. %185 = load i32* %184
  2052. %186 = add i32 %185, 1
  2053. store i32 %186, i32* %184
  2054. br label %borrow_object_done43
  2055.  
  2056. borrow_object_done43: ; preds = %bb241, %obj_not_null42
  2057. %187 = ptrtoint i8* %128 to i32
  2058. %188 = icmp eq i32 %187, 15
  2059. br i1 %188, label %if.then44, label %if.cont51
  2060.  
  2061. if.then44: ; preds = %borrow_object_done43
  2062. %189 = icmp ne i32 %175, 9
  2063. %190 = icmp eq i8* %181, null
  2064. %or.cond = or i1 %189, %190
  2065. br i1 %or.cond, label %str_release_done50, label %str_not_null46
  2066.  
  2067. str_not_null46: ; preds = %if.then44
  2068. %191 = bitcast i8* %181 to i32*
  2069. %192 = getelementptr i32* %191, i32 -2
  2070. %193 = load i32* %192
  2071. %194 = add i32 %193, -1
  2072. store i32 %194, i32* %192
  2073. %195 = icmp slt i32 %194, 1
  2074. br i1 %195, label %release_str47, label %str_release_done50
  2075.  
  2076. release_str47: ; preds = %str_not_null46
  2077. tail call void @STRING_free_real(i8* %181)
  2078. br label %str_release_done50
  2079.  
  2080. str_release_done50: ; preds = %if.then44, %str_not_null46, %release_str47
  2081. tail call void (i32, ...)* @THROW(i32 13)
  2082. unreachable
  2083.  
  2084. if.cont51: ; preds = %borrow_object_done43
  2085. %196 = icmp eq i8* %130, null
  2086. br i1 %196, label %is_null52, label %not_null59
  2087.  
  2088. is_null52: ; preds = %if.cont51
  2089. %197 = icmp ne i32 %175, 9
  2090. %198 = icmp eq i8* %181, null
  2091. %or.cond630 = or i1 %197, %198
  2092. br i1 %or.cond630, label %str_release_done58, label %str_not_null54
  2093.  
  2094. str_not_null54: ; preds = %is_null52
  2095. %199 = bitcast i8* %181 to i32*
  2096. %200 = getelementptr i32* %199, i32 -2
  2097. %201 = load i32* %200
  2098. %202 = add i32 %201, -1
  2099. store i32 %202, i32* %200
  2100. %203 = icmp slt i32 %202, 1
  2101. br i1 %203, label %release_str55, label %str_release_done58
  2102.  
  2103. release_str55: ; preds = %str_not_null54
  2104. tail call void @STRING_free_real(i8* %181)
  2105. br label %str_release_done58
  2106.  
  2107. str_release_done58: ; preds = %is_null52, %str_not_null54, %release_str55
  2108. tail call void (i32, ...)* @THROW(i32 13)
  2109. unreachable
  2110.  
  2111. not_null59: ; preds = %if.cont51
  2112. %204 = bitcast i8* %130 to %OBJECT*
  2113. %205 = getelementptr %OBJECT* %204, i32 0, i32 0
  2114. %206 = load i8** %205
  2115. %207 = getelementptr i8* %206, i32 28
  2116. %208 = bitcast i8* %207 to i8**
  2117. %209 = load i8** %208
  2118. %210 = getelementptr i8* %209, i32 20
  2119. %211 = bitcast i8* %210 to i8**
  2120. %212 = load i8** %211
  2121. %213 = getelementptr i8* %212, i32 8
  2122. %214 = bitcast i8* %213 to i32*
  2123. %215 = load i32* %214
  2124. %216 = getelementptr i8* %130, i32 %215
  2125. %217 = bitcast i8* %216 to i8**
  2126. %218 = load i8** %217
  2127. %219 = icmp eq i8* %218, null
  2128. br i1 %219, label %unref_done63, label %str_not_null60
  2129.  
  2130. str_not_null60: ; preds = %not_null59
  2131. %220 = bitcast i8* %218 to i32*
  2132. %221 = getelementptr i32* %220, i32 -2
  2133. %222 = load i32* %221
  2134. %223 = add i32 %222, -1
  2135. store i32 %223, i32* %221
  2136. %224 = icmp slt i32 %223, 1
  2137. br i1 %224, label %release_str61, label %unref_done63
  2138.  
  2139. release_str61: ; preds = %str_not_null60
  2140. tail call void @STRING_free_real(i8* %218)
  2141. br label %unref_done63
  2142.  
  2143. unref_done63: ; preds = %not_null59, %release_str61, %str_not_null60
  2144. %225 = icmp eq i32 %177, 0
  2145. br i1 %225, label %if.cont71, label %if.then64
  2146.  
  2147. if.then64: ; preds = %unref_done63
  2148. %226 = icmp eq i32 %175, 9
  2149. %227 = icmp eq i32 %179, 0
  2150. %228 = and i1 %226, %227
  2151. br i1 %228, label %and_if, label %if.then65
  2152.  
  2153. and_if: ; preds = %if.then64
  2154. %229 = getelementptr i8* %181, i32 -4
  2155. %230 = bitcast i8* %229 to i32*
  2156. %231 = load i32* %230
  2157. %phitmp629 = icmp eq i32 %231, %177
  2158. br i1 %phitmp629, label %if.cont71, label %if.then65
  2159.  
  2160. if.then65: ; preds = %and_if, %if.then64
  2161. %232 = getelementptr i8* %181, i32 %179
  2162. %233 = tail call i8* @STRING_new(i8* %232, i32 %177)
  2163. %234 = tail call i8* @STRING_free_later(i8* %233)
  2164. br i1 %226, label %if.then66, label %if.cont69
  2165.  
  2166. if.then66: ; preds = %if.then65
  2167. %235 = bitcast i8* %181 to i32*
  2168. %236 = getelementptr i32* %235, i32 -2
  2169. %237 = load i32* %236
  2170. %238 = add i32 %237, -1
  2171. store i32 %238, i32* %236
  2172. %239 = icmp slt i32 %238, 1
  2173. br i1 %239, label %release_str67, label %if.cont69
  2174.  
  2175. release_str67: ; preds = %if.then66
  2176. tail call void @STRING_free_real(i8* %181)
  2177. br label %if.cont69
  2178.  
  2179. if.cont69: ; preds = %release_str67, %if.then66, %if.then65
  2180. %240 = bitcast i8* %234 to i32*
  2181. %241 = getelementptr i32* %240, i32 -2
  2182. %242 = load i32* %241
  2183. %243 = add i32 %242, 1
  2184. store i32 %243, i32* %241
  2185. br label %if.cont71
  2186.  
  2187. if.cont71: ; preds = %and_if, %unref_done63, %if.cont69
  2188. %244 = phi i8* [ null, %unref_done63 ], [ %234, %if.cont69 ], [ %181, %and_if ]
  2189. store i8* %244, i8** %217
  2190. %245 = getelementptr %OBJECT* %204, i32 0, i32 1
  2191. %246 = load i32* %245
  2192. %247 = add i32 %246, -1
  2193. store i32 %247, i32* %245
  2194. %248 = icmp slt i32 %247, 1
  2195. br i1 %248, label %release_obj72, label %release_done73
  2196.  
  2197. release_obj72: ; preds = %if.cont71
  2198. tail call void @CLASS_free(i8* %130)
  2199. br label %release_done73
  2200.  
  2201. release_done73: ; preds = %if.cont71, %release_obj72
  2202. %249 = load %Value** inttoptr (i32 134824628 to %Value**)
  2203. %250 = getelementptr %Value* %249, i32 -1
  2204. store %Value* %250, %Value** inttoptr (i32 134824628 to %Value**)
  2205. %251 = load i8** inttoptr (i32 134824628 to i8**)
  2206. %252 = load i8** inttoptr (i32 134824636 to i8**)
  2207. %253 = getelementptr i8* %252, i32 48
  2208. %254 = icmp eq i8* %253, %251
  2209. br i1 %254, label %not_null85, label %if.then74
  2210.  
  2211. if.then74: ; preds = %release_done73
  2212. tail call void @stack_corrupted_abort()
  2213. unreachable
  2214.  
  2215. not_null85: ; preds = %release_done73
  2216. %255 = load i32* %153
  2217. %256 = add i32 %255, 1
  2218. store i32 %256, i32* %153
  2219. %.pre641 = load %Value** inttoptr (i32 134824628 to %Value**)
  2220. %257 = bitcast %Value* %.pre641 to i8*
  2221. %258 = tail call i8 @GB.Collection.Get(i8* %150, i8* inttoptr (i32 144439805 to i8*), i32 8, i8* %257)
  2222. %259 = bitcast %Value* %.pre641 to %ValueVariant*
  2223. %260 = getelementptr %ValueVariant* %259, i32 0, i32 2
  2224. %261 = load i64* %260
  2225. %262 = getelementptr %ValueVariant* %259, i32 0, i32 1
  2226. %263 = load i32* %262
  2227. tail call void @JR_borrow_variant(i32 %263, i64 %261)
  2228. %264 = getelementptr %Value* %.pre641, i32 1
  2229. store %Value* %264, %Value** inttoptr (i32 134824628 to %Value**)
  2230. %265 = load i32* %153
  2231. %266 = add i32 %265, -1
  2232. store i32 %266, i32* %153
  2233. %267 = icmp slt i32 %266, 1
  2234. br i1 %267, label %release_obj92, label %release_done93
  2235.  
  2236. release_obj92: ; preds = %not_null85
  2237. tail call void @CLASS_free(i8* %150)
  2238. br label %release_done93
  2239.  
  2240. release_done93: ; preds = %not_null85, %release_obj92
  2241. %268 = load %Value** inttoptr (i32 134824628 to %Value**)
  2242. %269 = getelementptr %Value* %268, i32 -1
  2243. %270 = bitcast %Value* %269 to i8*
  2244. tail call void @VALUE_convert(i8* %270, i32 9)
  2245. %271 = load %Value** inttoptr (i32 134824628 to %Value**)
  2246. %272 = getelementptr %Value* %271, i32 -1
  2247. %273 = bitcast %Value* %272 to %String*
  2248. %274 = getelementptr %String* %273, i32 0, i32 0
  2249. %275 = load i32* %274
  2250. %276 = getelementptr %String* %273, i32 0, i32 3
  2251. %277 = load i32* %276
  2252. %278 = getelementptr %String* %273, i32 0, i32 2
  2253. %279 = load i32* %278
  2254. %280 = getelementptr %String* %273, i32 0, i32 1
  2255. %281 = load i8** %280
  2256. %282 = icmp eq i32 %275, 12
  2257. br i1 %282, label %bb194, label %not_null113
  2258.  
  2259. bb194: ; preds = %release_done93
  2260. tail call void @abort()
  2261. unreachable
  2262.  
  2263. not_null113: ; preds = %release_done93
  2264. %283 = load i32* %245
  2265. %284 = add i32 %283, 1
  2266. store i32 %284, i32* %245
  2267. %285 = load i8** %205
  2268. %286 = getelementptr i8* %285, i32 28
  2269. %287 = bitcast i8* %286 to i8**
  2270. %288 = load i8** %287
  2271. %289 = getelementptr i8* %288, i32 56
  2272. %290 = bitcast i8* %289 to i8**
  2273. %291 = load i8** %290
  2274. %292 = getelementptr i8* %291, i32 8
  2275. %293 = bitcast i8* %292 to i32*
  2276. %294 = load i32* %293
  2277. %295 = getelementptr i8* %130, i32 %294
  2278. %296 = bitcast i8* %295 to i8**
  2279. %297 = load i8** %296
  2280. %298 = icmp eq i8* %297, null
  2281. br i1 %298, label %unref_done117, label %str_not_null114
  2282.  
  2283. str_not_null114: ; preds = %not_null113
  2284. %299 = bitcast i8* %297 to i32*
  2285. %300 = getelementptr i32* %299, i32 -2
  2286. %301 = load i32* %300
  2287. %302 = add i32 %301, -1
  2288. store i32 %302, i32* %300
  2289. %303 = icmp slt i32 %302, 1
  2290. br i1 %303, label %release_str115, label %unref_done117
  2291.  
  2292. release_str115: ; preds = %str_not_null114
  2293. tail call void @STRING_free_real(i8* %297)
  2294. br label %unref_done117
  2295.  
  2296. unref_done117: ; preds = %not_null113, %release_str115, %str_not_null114
  2297. %304 = icmp eq i32 %277, 0
  2298. br i1 %304, label %if.cont127, label %if.then118
  2299.  
  2300. if.then118: ; preds = %unref_done117
  2301. %305 = icmp eq i32 %275, 9
  2302. %306 = icmp eq i32 %279, 0
  2303. %307 = and i1 %305, %306
  2304. br i1 %307, label %and_if119, label %if.then121
  2305.  
  2306. and_if119: ; preds = %if.then118
  2307. %308 = getelementptr i8* %281, i32 -4
  2308. %309 = bitcast i8* %308 to i32*
  2309. %310 = load i32* %309
  2310. %phitmp628 = icmp eq i32 %310, %277
  2311. br i1 %phitmp628, label %if.cont127, label %if.then121
  2312.  
  2313. if.then121: ; preds = %and_if119, %if.then118
  2314. %311 = getelementptr i8* %281, i32 %279
  2315. %312 = tail call i8* @STRING_new(i8* %311, i32 %277)
  2316. %313 = tail call i8* @STRING_free_later(i8* %312)
  2317. br i1 %305, label %if.then122, label %if.cont125
  2318.  
  2319. if.then122: ; preds = %if.then121
  2320. %314 = bitcast i8* %281 to i32*
  2321. %315 = getelementptr i32* %314, i32 -2
  2322. %316 = load i32* %315
  2323. %317 = add i32 %316, -1
  2324. store i32 %317, i32* %315
  2325. %318 = icmp slt i32 %317, 1
  2326. br i1 %318, label %release_str123, label %if.cont125
  2327.  
  2328. release_str123: ; preds = %if.then122
  2329. tail call void @STRING_free_real(i8* %281)
  2330. br label %if.cont125
  2331.  
  2332. if.cont125: ; preds = %release_str123, %if.then122, %if.then121
  2333. %319 = bitcast i8* %313 to i32*
  2334. %320 = getelementptr i32* %319, i32 -2
  2335. %321 = load i32* %320
  2336. %322 = add i32 %321, 1
  2337. store i32 %322, i32* %320
  2338. br label %if.cont127
  2339.  
  2340. if.cont127: ; preds = %and_if119, %unref_done117, %if.cont125
  2341. %323 = phi i8* [ null, %unref_done117 ], [ %313, %if.cont125 ], [ %281, %and_if119 ]
  2342. store i8* %323, i8** %296
  2343. %324 = load i32* %245
  2344. %325 = add i32 %324, -1
  2345. store i32 %325, i32* %245
  2346. %326 = icmp slt i32 %325, 1
  2347. br i1 %326, label %release_obj128, label %release_done129
  2348.  
  2349. release_obj128: ; preds = %if.cont127
  2350. tail call void @CLASS_free(i8* %130)
  2351. br label %release_done129
  2352.  
  2353. release_done129: ; preds = %if.cont127, %release_obj128
  2354. %327 = load %Value** inttoptr (i32 134824628 to %Value**)
  2355. %328 = getelementptr %Value* %327, i32 -1
  2356. store %Value* %328, %Value** inttoptr (i32 134824628 to %Value**)
  2357. %329 = load i8** inttoptr (i32 134824628 to i8**)
  2358. %330 = load i8** inttoptr (i32 134824636 to i8**)
  2359. %331 = getelementptr i8* %330, i32 48
  2360. %332 = icmp eq i8* %331, %329
  2361. br i1 %332, label %not_null141, label %if.then130
  2362.  
  2363. if.then130: ; preds = %release_done129
  2364. tail call void @stack_corrupted_abort()
  2365. unreachable
  2366.  
  2367. not_null141: ; preds = %release_done129
  2368. %333 = load i32* %153
  2369. %334 = add i32 %333, 1
  2370. store i32 %334, i32* %153
  2371. %.pre642 = load %Value** inttoptr (i32 134824628 to %Value**)
  2372. %335 = bitcast %Value* %.pre642 to i8*
  2373. %336 = tail call i8 @GB.Collection.Get(i8* %150, i8* inttoptr (i32 144439885 to i8*), i32 11, i8* %335)
  2374. %337 = bitcast %Value* %.pre642 to %ValueVariant*
  2375. %338 = getelementptr %ValueVariant* %337, i32 0, i32 2
  2376. %339 = load i64* %338
  2377. %340 = getelementptr %ValueVariant* %337, i32 0, i32 1
  2378. %341 = load i32* %340
  2379. tail call void @JR_borrow_variant(i32 %341, i64 %339)
  2380. %342 = getelementptr %Value* %.pre642, i32 1
  2381. store %Value* %342, %Value** inttoptr (i32 134824628 to %Value**)
  2382. %343 = load i32* %153
  2383. %344 = add i32 %343, -1
  2384. store i32 %344, i32* %153
  2385. %345 = icmp slt i32 %344, 1
  2386. br i1 %345, label %release_obj148, label %release_done149
  2387.  
  2388. release_obj148: ; preds = %not_null141
  2389. tail call void @CLASS_free(i8* %150)
  2390. br label %release_done149
  2391.  
  2392. release_done149: ; preds = %not_null141, %release_obj148
  2393. %346 = load %Value** inttoptr (i32 134824628 to %Value**)
  2394. %347 = getelementptr %Value* %346, i32 -1
  2395. %348 = bitcast %Value* %347 to i8*
  2396. tail call void @VALUE_convert(i8* %348, i32 9)
  2397. %349 = load %Value** inttoptr (i32 134824628 to %Value**)
  2398. %350 = getelementptr %Value* %349, i32 -1
  2399. %351 = bitcast %Value* %350 to %String*
  2400. %352 = getelementptr %String* %351, i32 0, i32 0
  2401. %353 = load i32* %352
  2402. %354 = getelementptr %String* %351, i32 0, i32 3
  2403. %355 = load i32* %354
  2404. %356 = getelementptr %String* %351, i32 0, i32 2
  2405. %357 = load i32* %356
  2406. %358 = getelementptr %String* %351, i32 0, i32 1
  2407. %359 = load i8** %358
  2408. %360 = icmp eq i32 %353, 12
  2409. br i1 %360, label %bb1150, label %not_null169
  2410.  
  2411. bb1150: ; preds = %release_done149
  2412. tail call void @abort()
  2413. unreachable
  2414.  
  2415. not_null169: ; preds = %release_done149
  2416. %361 = load i32* %245
  2417. %362 = add i32 %361, 1
  2418. store i32 %362, i32* %245
  2419. %363 = load i8** %205
  2420. %364 = getelementptr i8* %363, i32 28
  2421. %365 = bitcast i8* %364 to i8**
  2422. %366 = load i8** %365
  2423. %367 = getelementptr i8* %366, i32 152
  2424. %368 = bitcast i8* %367 to i8**
  2425. %369 = load i8** %368
  2426. %370 = getelementptr i8* %369, i32 8
  2427. %371 = bitcast i8* %370 to i32*
  2428. %372 = load i32* %371
  2429. %373 = getelementptr i8* %130, i32 %372
  2430. %374 = bitcast i8* %373 to i8**
  2431. %375 = load i8** %374
  2432. %376 = icmp eq i8* %375, null
  2433. br i1 %376, label %unref_done173, label %str_not_null170
  2434.  
  2435. str_not_null170: ; preds = %not_null169
  2436. %377 = bitcast i8* %375 to i32*
  2437. %378 = getelementptr i32* %377, i32 -2
  2438. %379 = load i32* %378
  2439. %380 = add i32 %379, -1
  2440. store i32 %380, i32* %378
  2441. %381 = icmp slt i32 %380, 1
  2442. br i1 %381, label %release_str171, label %unref_done173
  2443.  
  2444. release_str171: ; preds = %str_not_null170
  2445. tail call void @STRING_free_real(i8* %375)
  2446. br label %unref_done173
  2447.  
  2448. unref_done173: ; preds = %not_null169, %release_str171, %str_not_null170
  2449. %382 = icmp eq i32 %355, 0
  2450. br i1 %382, label %if.cont183, label %if.then174
  2451.  
  2452. if.then174: ; preds = %unref_done173
  2453. %383 = icmp eq i32 %353, 9
  2454. %384 = icmp eq i32 %357, 0
  2455. %385 = and i1 %383, %384
  2456. br i1 %385, label %and_if175, label %if.then177
  2457.  
  2458. and_if175: ; preds = %if.then174
  2459. %386 = getelementptr i8* %359, i32 -4
  2460. %387 = bitcast i8* %386 to i32*
  2461. %388 = load i32* %387
  2462. %phitmp627 = icmp eq i32 %388, %355
  2463. br i1 %phitmp627, label %if.cont183, label %if.then177
  2464.  
  2465. if.then177: ; preds = %and_if175, %if.then174
  2466. %389 = getelementptr i8* %359, i32 %357
  2467. %390 = tail call i8* @STRING_new(i8* %389, i32 %355)
  2468. %391 = tail call i8* @STRING_free_later(i8* %390)
  2469. br i1 %383, label %if.then178, label %if.cont181
  2470.  
  2471. if.then178: ; preds = %if.then177
  2472. %392 = bitcast i8* %359 to i32*
  2473. %393 = getelementptr i32* %392, i32 -2
  2474. %394 = load i32* %393
  2475. %395 = add i32 %394, -1
  2476. store i32 %395, i32* %393
  2477. %396 = icmp slt i32 %395, 1
  2478. br i1 %396, label %release_str179, label %if.cont181
  2479.  
  2480. release_str179: ; preds = %if.then178
  2481. tail call void @STRING_free_real(i8* %359)
  2482. br label %if.cont181
  2483.  
  2484. if.cont181: ; preds = %release_str179, %if.then178, %if.then177
  2485. %397 = bitcast i8* %391 to i32*
  2486. %398 = getelementptr i32* %397, i32 -2
  2487. %399 = load i32* %398
  2488. %400 = add i32 %399, 1
  2489. store i32 %400, i32* %398
  2490. br label %if.cont183
  2491.  
  2492. if.cont183: ; preds = %and_if175, %unref_done173, %if.cont181
  2493. %401 = phi i8* [ null, %unref_done173 ], [ %391, %if.cont181 ], [ %359, %and_if175 ]
  2494. store i8* %401, i8** %374
  2495. %402 = load i32* %245
  2496. %403 = add i32 %402, -1
  2497. store i32 %403, i32* %245
  2498. %404 = icmp slt i32 %403, 1
  2499. br i1 %404, label %release_obj184, label %release_done185
  2500.  
  2501. release_obj184: ; preds = %if.cont183
  2502. tail call void @CLASS_free(i8* %130)
  2503. br label %release_done185
  2504.  
  2505. release_done185: ; preds = %if.cont183, %release_obj184
  2506. %405 = load %Value** inttoptr (i32 134824628 to %Value**)
  2507. %406 = getelementptr %Value* %405, i32 -1
  2508. store %Value* %406, %Value** inttoptr (i32 134824628 to %Value**)
  2509. %407 = load i8** inttoptr (i32 134824628 to i8**)
  2510. %408 = load i8** inttoptr (i32 134824636 to i8**)
  2511. %409 = getelementptr i8* %408, i32 48
  2512. %410 = icmp eq i8* %409, %407
  2513. br i1 %410, label %not_null197, label %if.then186
  2514.  
  2515. if.then186: ; preds = %release_done185
  2516. tail call void @stack_corrupted_abort()
  2517. unreachable
  2518.  
  2519. not_null197: ; preds = %release_done185
  2520. %411 = load i32* %153
  2521. %412 = add i32 %411, 1
  2522. store i32 %412, i32* %153
  2523. %.pre643 = load %Value** inttoptr (i32 134824628 to %Value**)
  2524. %413 = bitcast %Value* %.pre643 to i8*
  2525. %414 = tail call i8 @GB.Collection.Get(i8* %150, i8* inttoptr (i32 144439897 to i8*), i32 11, i8* %413)
  2526. %415 = bitcast %Value* %.pre643 to %ValueVariant*
  2527. %416 = getelementptr %ValueVariant* %415, i32 0, i32 2
  2528. %417 = load i64* %416
  2529. %418 = getelementptr %ValueVariant* %415, i32 0, i32 1
  2530. %419 = load i32* %418
  2531. tail call void @JR_borrow_variant(i32 %419, i64 %417)
  2532. %420 = getelementptr %Value* %.pre643, i32 1
  2533. store %Value* %420, %Value** inttoptr (i32 134824628 to %Value**)
  2534. %421 = load i32* %153
  2535. %422 = add i32 %421, -1
  2536. store i32 %422, i32* %153
  2537. %423 = icmp slt i32 %422, 1
  2538. br i1 %423, label %release_obj204, label %release_done205
  2539.  
  2540. release_obj204: ; preds = %not_null197
  2541. tail call void @CLASS_free(i8* %150)
  2542. br label %release_done205
  2543.  
  2544. release_done205: ; preds = %not_null197, %release_obj204
  2545. %424 = load %Value** inttoptr (i32 134824628 to %Value**)
  2546. %425 = getelementptr %Value* %424, i32 -1
  2547. %426 = bitcast %Value* %425 to i8*
  2548. tail call void @VALUE_convert(i8* %426, i32 1)
  2549. %427 = load %Value** inttoptr (i32 134824628 to %Value**)
  2550. %428 = getelementptr %Value* %427, i32 -1
  2551. %429 = bitcast %Value* %428 to %Boolean*
  2552. %430 = getelementptr %Boolean* %429, i32 0, i32 1
  2553. %431 = load i32* %430
  2554. %432 = icmp eq i32 %431, 0
  2555. store %Value* %428, %Value** inttoptr (i32 134824628 to %Value**)
  2556. br i1 %432, label %block246, label %not_null217
  2557.  
  2558. not_null217: ; preds = %release_done205
  2559. %433 = load i32* %153
  2560. %434 = add i32 %433, 1
  2561. store i32 %434, i32* %153
  2562. %.pre654 = load %Value** inttoptr (i32 134824628 to %Value**)
  2563. %435 = bitcast %Value* %.pre654 to i8*
  2564. %436 = tail call i8 @GB.Collection.Get(i8* %150, i8* inttoptr (i32 144439897 to i8*), i32 11, i8* %435)
  2565. %437 = bitcast %Value* %.pre654 to %ValueVariant*
  2566. %438 = getelementptr %ValueVariant* %437, i32 0, i32 2
  2567. %439 = load i64* %438
  2568. %440 = getelementptr %ValueVariant* %437, i32 0, i32 1
  2569. %441 = load i32* %440
  2570. tail call void @JR_borrow_variant(i32 %441, i64 %439)
  2571. %442 = getelementptr %Value* %.pre654, i32 1
  2572. store %Value* %442, %Value** inttoptr (i32 134824628 to %Value**)
  2573. %443 = load i32* %153
  2574. %444 = add i32 %443, -1
  2575. store i32 %444, i32* %153
  2576. %445 = icmp slt i32 %444, 1
  2577. br i1 %445, label %release_obj224, label %not_null239
  2578.  
  2579. release_obj224: ; preds = %not_null217
  2580. tail call void @CLASS_free(i8* %150)
  2581. br label %not_null239
  2582.  
  2583. not_null239: ; preds = %not_null217, %release_obj224
  2584. %446 = load %Value** inttoptr (i32 134824628 to %Value**)
  2585. %447 = getelementptr %Value* %446, i32 -1
  2586. %448 = bitcast %Value* %447 to i8*
  2587. tail call void @VALUE_convert(i8* %448, i32 142289596)
  2588. %449 = load %Value** inttoptr (i32 134824628 to %Value**)
  2589. %450 = getelementptr %Value* %449, i32 -1
  2590. %451 = bitcast %Value* %450 to %ValueObject*
  2591. %452 = bitcast %Value* %450 to %Null*
  2592. %453 = getelementptr %Null* %452, i32 0, i32 0
  2593. %454 = load i32* %453
  2594. %455 = icmp eq i32 %454, 15
  2595. %456 = getelementptr %ValueObject* %451, i32 0, i32 1
  2596. %457 = load i8** %456
  2597. %458 = getelementptr %ValueObject* %451, i32 0, i32 0
  2598. %459 = load i8** %458
  2599. %460 = insertvalue %Object undef, i8* %459, 0
  2600. %461 = insertvalue %Object %460, i8* %457, 1
  2601. %462 = select i1 %455, %Object { i8* inttoptr (i32 142289596 to i8*), i8* null }, %Object %461
  2602. %463 = load i32* %245
  2603. %464 = add i32 %463, 1
  2604. store i32 %464, i32* %245
  2605. %465 = load i8** %205
  2606. %466 = getelementptr i8* %465, i32 28
  2607. %467 = bitcast i8* %466 to i8**
  2608. %468 = load i8** %467
  2609. %469 = getelementptr i8* %468, i32 164
  2610. %470 = bitcast i8* %469 to i8**
  2611. %471 = load i8** %470
  2612. %472 = getelementptr i8* %471, i32 8
  2613. %473 = bitcast i8* %472 to i32*
  2614. %474 = load i32* %473
  2615. %475 = getelementptr i8* %130, i32 %474
  2616. %476 = bitcast i8* %475 to i8**
  2617. %477 = load i8** %476
  2618. %478 = icmp eq i8* %477, null
  2619. br i1 %478, label %unref_done243, label %obj_not_null240
  2620.  
  2621. obj_not_null240: ; preds = %not_null239
  2622. %479 = bitcast i8* %477 to %OBJECT*
  2623. %480 = getelementptr %OBJECT* %479, i32 0, i32 1
  2624. %481 = load i32* %480
  2625. %482 = add i32 %481, -1
  2626. store i32 %482, i32* %480
  2627. %483 = icmp slt i32 %482, 1
  2628. br i1 %483, label %release_obj241, label %unref_done243
  2629.  
  2630. release_obj241: ; preds = %obj_not_null240
  2631. tail call void @CLASS_free(i8* %477)
  2632. br label %unref_done243
  2633.  
  2634. unref_done243: ; preds = %not_null239, %release_obj241, %obj_not_null240
  2635. %484 = extractvalue %Object %462, 1
  2636. store i8* %484, i8** %476
  2637. %485 = load i32* %245
  2638. %486 = add i32 %485, -1
  2639. store i32 %486, i32* %245
  2640. %487 = icmp slt i32 %486, 1
  2641. br i1 %487, label %release_obj244, label %release_done245
  2642.  
  2643. release_obj244: ; preds = %unref_done243
  2644. tail call void @CLASS_free(i8* %130)
  2645. br label %release_done245
  2646.  
  2647. release_done245: ; preds = %unref_done243, %release_obj244
  2648. %488 = load %Value** inttoptr (i32 134824628 to %Value**)
  2649. %489 = getelementptr %Value* %488, i32 -1
  2650. store %Value* %489, %Value** inttoptr (i32 134824628 to %Value**)
  2651. br label %block246
  2652.  
  2653. block246: ; preds = %release_done205, %release_done245
  2654. %490 = load i8** inttoptr (i32 134824628 to i8**)
  2655. %491 = load i8** inttoptr (i32 134824636 to i8**)
  2656. %492 = getelementptr i8* %491, i32 48
  2657. %493 = icmp eq i8* %492, %490
  2658. br i1 %493, label %not_null258, label %if.then247
  2659.  
  2660. if.then247: ; preds = %block246
  2661. tail call void @stack_corrupted_abort()
  2662. unreachable
  2663.  
  2664. not_null258: ; preds = %block246
  2665. %494 = load i32* %153
  2666. %495 = add i32 %494, 1
  2667. store i32 %495, i32* %153
  2668. %.pre644 = load %Value** inttoptr (i32 134824628 to %Value**)
  2669. %496 = bitcast %Value* %.pre644 to i8*
  2670. %497 = tail call i8 @GB.Collection.Get(i8* %150, i8* inttoptr (i32 144439863 to i8*), i32 10, i8* %496)
  2671. %498 = bitcast %Value* %.pre644 to %ValueVariant*
  2672. %499 = getelementptr %ValueVariant* %498, i32 0, i32 2
  2673. %500 = load i64* %499
  2674. %501 = getelementptr %ValueVariant* %498, i32 0, i32 1
  2675. %502 = load i32* %501
  2676. tail call void @JR_borrow_variant(i32 %502, i64 %500)
  2677. %503 = getelementptr %Value* %.pre644, i32 1
  2678. store %Value* %503, %Value** inttoptr (i32 134824628 to %Value**)
  2679. %504 = load i32* %153
  2680. %505 = add i32 %504, -1
  2681. store i32 %505, i32* %153
  2682. %506 = icmp slt i32 %505, 1
  2683. br i1 %506, label %release_obj265, label %release_done266
  2684.  
  2685. release_obj265: ; preds = %not_null258
  2686. tail call void @CLASS_free(i8* %150)
  2687. br label %release_done266
  2688.  
  2689. release_done266: ; preds = %not_null258, %release_obj265
  2690. %507 = load %Value** inttoptr (i32 134824628 to %Value**)
  2691. %508 = getelementptr %Value* %507, i32 -1
  2692. %509 = bitcast %Value* %508 to i8*
  2693. tail call void @VALUE_convert(i8* %509, i32 9)
  2694. %510 = load %Value** inttoptr (i32 134824628 to %Value**)
  2695. %511 = getelementptr %Value* %510, i32 -1
  2696. %512 = bitcast %Value* %511 to %String*
  2697. %513 = getelementptr %String* %512, i32 0, i32 0
  2698. %514 = load i32* %513
  2699. %515 = getelementptr %String* %512, i32 0, i32 3
  2700. %516 = load i32* %515
  2701. %517 = getelementptr %String* %512, i32 0, i32 2
  2702. %518 = load i32* %517
  2703. %519 = getelementptr %String* %512, i32 0, i32 1
  2704. %520 = load i8** %519
  2705. %521 = icmp eq i32 %514, 12
  2706. br i1 %521, label %bb1267, label %not_null286
  2707.  
  2708. bb1267: ; preds = %release_done266
  2709. tail call void @abort()
  2710. unreachable
  2711.  
  2712. not_null286: ; preds = %release_done266
  2713. %522 = load i32* %245
  2714. %523 = add i32 %522, 1
  2715. store i32 %523, i32* %245
  2716. %524 = load i8** %205
  2717. %525 = getelementptr i8* %524, i32 28
  2718. %526 = bitcast i8* %525 to i8**
  2719. %527 = load i8** %526
  2720. %528 = getelementptr i8* %527, i32 128
  2721. %529 = bitcast i8* %528 to i8**
  2722. %530 = load i8** %529
  2723. %531 = getelementptr i8* %530, i32 8
  2724. %532 = bitcast i8* %531 to i32*
  2725. %533 = load i32* %532
  2726. %534 = getelementptr i8* %130, i32 %533
  2727. %535 = bitcast i8* %534 to i8**
  2728. %536 = load i8** %535
  2729. %537 = icmp eq i8* %536, null
  2730. br i1 %537, label %unref_done290, label %str_not_null287
  2731.  
  2732. str_not_null287: ; preds = %not_null286
  2733. %538 = bitcast i8* %536 to i32*
  2734. %539 = getelementptr i32* %538, i32 -2
  2735. %540 = load i32* %539
  2736. %541 = add i32 %540, -1
  2737. store i32 %541, i32* %539
  2738. %542 = icmp slt i32 %541, 1
  2739. br i1 %542, label %release_str288, label %unref_done290
  2740.  
  2741. release_str288: ; preds = %str_not_null287
  2742. tail call void @STRING_free_real(i8* %536)
  2743. br label %unref_done290
  2744.  
  2745. unref_done290: ; preds = %not_null286, %release_str288, %str_not_null287
  2746. %543 = icmp eq i32 %516, 0
  2747. br i1 %543, label %if.cont300, label %if.then291
  2748.  
  2749. if.then291: ; preds = %unref_done290
  2750. %544 = icmp eq i32 %514, 9
  2751. %545 = icmp eq i32 %518, 0
  2752. %546 = and i1 %544, %545
  2753. br i1 %546, label %and_if292, label %if.then294
  2754.  
  2755. and_if292: ; preds = %if.then291
  2756. %547 = getelementptr i8* %520, i32 -4
  2757. %548 = bitcast i8* %547 to i32*
  2758. %549 = load i32* %548
  2759. %phitmp626 = icmp eq i32 %549, %516
  2760. br i1 %phitmp626, label %if.cont300, label %if.then294
  2761.  
  2762. if.then294: ; preds = %and_if292, %if.then291
  2763. %550 = getelementptr i8* %520, i32 %518
  2764. %551 = tail call i8* @STRING_new(i8* %550, i32 %516)
  2765. %552 = tail call i8* @STRING_free_later(i8* %551)
  2766. br i1 %544, label %if.then295, label %if.cont298
  2767.  
  2768. if.then295: ; preds = %if.then294
  2769. %553 = bitcast i8* %520 to i32*
  2770. %554 = getelementptr i32* %553, i32 -2
  2771. %555 = load i32* %554
  2772. %556 = add i32 %555, -1
  2773. store i32 %556, i32* %554
  2774. %557 = icmp slt i32 %556, 1
  2775. br i1 %557, label %release_str296, label %if.cont298
  2776.  
  2777. release_str296: ; preds = %if.then295
  2778. tail call void @STRING_free_real(i8* %520)
  2779. br label %if.cont298
  2780.  
  2781. if.cont298: ; preds = %release_str296, %if.then295, %if.then294
  2782. %558 = bitcast i8* %552 to i32*
  2783. %559 = getelementptr i32* %558, i32 -2
  2784. %560 = load i32* %559
  2785. %561 = add i32 %560, 1
  2786. store i32 %561, i32* %559
  2787. br label %if.cont300
  2788.  
  2789. if.cont300: ; preds = %and_if292, %unref_done290, %if.cont298
  2790. %562 = phi i8* [ null, %unref_done290 ], [ %552, %if.cont298 ], [ %520, %and_if292 ]
  2791. store i8* %562, i8** %535
  2792. %563 = load i32* %245
  2793. %564 = add i32 %563, -1
  2794. store i32 %564, i32* %245
  2795. %565 = icmp slt i32 %564, 1
  2796. br i1 %565, label %release_obj301, label %release_done302
  2797.  
  2798. release_obj301: ; preds = %if.cont300
  2799. tail call void @CLASS_free(i8* %130)
  2800. br label %release_done302
  2801.  
  2802. release_done302: ; preds = %if.cont300, %release_obj301
  2803. %566 = load %Value** inttoptr (i32 134824628 to %Value**)
  2804. %567 = getelementptr %Value* %566, i32 -1
  2805. store %Value* %567, %Value** inttoptr (i32 134824628 to %Value**)
  2806. %568 = load i8** inttoptr (i32 134824628 to i8**)
  2807. %569 = load i8** inttoptr (i32 134824636 to i8**)
  2808. %570 = getelementptr i8* %569, i32 48
  2809. %571 = icmp eq i8* %570, %568
  2810. br i1 %571, label %not_null314, label %if.then303
  2811.  
  2812. if.then303: ; preds = %release_done302
  2813. tail call void @stack_corrupted_abort()
  2814. unreachable
  2815.  
  2816. not_null314: ; preds = %release_done302
  2817. %572 = load i32* %153
  2818. %573 = add i32 %572, 1
  2819. store i32 %573, i32* %153
  2820. %.pre645 = load %Value** inttoptr (i32 134824628 to %Value**)
  2821. %574 = bitcast %Value* %.pre645 to i8*
  2822. %575 = tail call i8 @GB.Collection.Get(i8* %150, i8* inttoptr (i32 144439814 to i8*), i32 8, i8* %574)
  2823. %576 = bitcast %Value* %.pre645 to %ValueVariant*
  2824. %577 = getelementptr %ValueVariant* %576, i32 0, i32 2
  2825. %578 = load i64* %577
  2826. %579 = getelementptr %ValueVariant* %576, i32 0, i32 1
  2827. %580 = load i32* %579
  2828. tail call void @JR_borrow_variant(i32 %580, i64 %578)
  2829. %581 = getelementptr %Value* %.pre645, i32 1
  2830. store %Value* %581, %Value** inttoptr (i32 134824628 to %Value**)
  2831. %582 = load i32* %153
  2832. %583 = add i32 %582, -1
  2833. store i32 %583, i32* %153
  2834. %584 = icmp slt i32 %583, 1
  2835. br i1 %584, label %release_obj321, label %not_null328
  2836.  
  2837. release_obj321: ; preds = %not_null314
  2838. tail call void @CLASS_free(i8* %150)
  2839. br label %not_null328
  2840.  
  2841. not_null328: ; preds = %not_null314, %release_obj321
  2842. %585 = load %Value** inttoptr (i32 134824628 to %Value**)
  2843. %586 = getelementptr %Value* %585, i32 -1
  2844. %587 = bitcast %Value* %586 to i8*
  2845. tail call void @VALUE_convert(i8* %587, i32 1)
  2846. %588 = load %Value** inttoptr (i32 134824628 to %Value**)
  2847. %589 = getelementptr %Value* %588, i32 -1
  2848. %590 = bitcast %Value* %589 to %Boolean*
  2849. %591 = getelementptr %Boolean* %590, i32 0, i32 1
  2850. %592 = load i32* %591
  2851. %593 = icmp ne i32 %592, 0
  2852. %594 = load i32* %245
  2853. %595 = add i32 %594, 1
  2854. store i32 %595, i32* %245
  2855. %596 = load i8** %205
  2856. %597 = getelementptr i8* %596, i32 28
  2857. %598 = bitcast i8* %597 to i8**
  2858. %599 = load i8** %598
  2859. %600 = getelementptr i8* %599, i32 68
  2860. %601 = bitcast i8* %600 to i8**
  2861. %602 = load i8** %601
  2862. %603 = getelementptr i8* %602, i32 8
  2863. %604 = bitcast i8* %603 to i32*
  2864. %605 = load i32* %604
  2865. %606 = getelementptr i8* %130, i32 %605
  2866. %607 = sext i1 %593 to i8
  2867. store i8 %607, i8* %606
  2868. %608 = load i32* %245
  2869. %609 = add i32 %608, -1
  2870. store i32 %609, i32* %245
  2871. %610 = icmp slt i32 %609, 1
  2872. br i1 %610, label %release_obj329, label %release_done330
  2873.  
  2874. release_obj329: ; preds = %not_null328
  2875. tail call void @CLASS_free(i8* %130)
  2876. br label %release_done330
  2877.  
  2878. release_done330: ; preds = %not_null328, %release_obj329
  2879. %611 = load %Value** inttoptr (i32 134824628 to %Value**)
  2880. %612 = getelementptr %Value* %611, i32 -1
  2881. store %Value* %612, %Value** inttoptr (i32 134824628 to %Value**)
  2882. %613 = load i8** inttoptr (i32 134824628 to i8**)
  2883. %614 = load i8** inttoptr (i32 134824636 to i8**)
  2884. %615 = getelementptr i8* %614, i32 48
  2885. %616 = icmp eq i8* %615, %613
  2886. br i1 %616, label %not_null342, label %if.then331
  2887.  
  2888. if.then331: ; preds = %release_done330
  2889. tail call void @stack_corrupted_abort()
  2890. unreachable
  2891.  
  2892. not_null342: ; preds = %release_done330
  2893. %617 = load i32* %153
  2894. %618 = add i32 %617, 1
  2895. store i32 %618, i32* %153
  2896. %.pre646 = load %Value** inttoptr (i32 134824628 to %Value**)
  2897. %619 = bitcast %Value* %.pre646 to i8*
  2898. %620 = tail call i8 @GB.Collection.Get(i8* %150, i8* inttoptr (i32 144440081 to i8*), i32 21, i8* %619)
  2899. %621 = bitcast %Value* %.pre646 to %ValueVariant*
  2900. %622 = getelementptr %ValueVariant* %621, i32 0, i32 2
  2901. %623 = load i64* %622
  2902. %624 = getelementptr %ValueVariant* %621, i32 0, i32 1
  2903. %625 = load i32* %624
  2904. tail call void @JR_borrow_variant(i32 %625, i64 %623)
  2905. %626 = getelementptr %Value* %.pre646, i32 1
  2906. store %Value* %626, %Value** inttoptr (i32 134824628 to %Value**)
  2907. %627 = load i32* %153
  2908. %628 = add i32 %627, -1
  2909. store i32 %628, i32* %153
  2910. %629 = icmp slt i32 %628, 1
  2911. br i1 %629, label %release_obj349, label %release_done350
  2912.  
  2913. release_obj349: ; preds = %not_null342
  2914. tail call void @CLASS_free(i8* %150)
  2915. br label %release_done350
  2916.  
  2917. release_done350: ; preds = %not_null342, %release_obj349
  2918. %630 = load %Value** inttoptr (i32 134824628 to %Value**)
  2919. %631 = getelementptr %Value* %630, i32 -1
  2920. %632 = bitcast %Value* %631 to i8*
  2921. tail call void @VALUE_convert(i8* %632, i32 1)
  2922. %633 = load %Value** inttoptr (i32 134824628 to %Value**)
  2923. %634 = getelementptr %Value* %633, i32 -1
  2924. %635 = bitcast %Value* %634 to %Boolean*
  2925. %636 = getelementptr %Boolean* %635, i32 0, i32 1
  2926. %637 = load i32* %636
  2927. %638 = icmp eq i32 %637, 0
  2928. store %Value* %634, %Value** inttoptr (i32 134824628 to %Value**)
  2929. br i1 %638, label %block391, label %not_null362
  2930.  
  2931. not_null362: ; preds = %release_done350
  2932. %639 = load i32* %153
  2933. %640 = add i32 %639, 1
  2934. store i32 %640, i32* %153
  2935. %.pre653 = load %Value** inttoptr (i32 134824628 to %Value**)
  2936. %641 = bitcast %Value* %.pre653 to i8*
  2937. %642 = tail call i8 @GB.Collection.Get(i8* %150, i8* inttoptr (i32 144440081 to i8*), i32 21, i8* %641)
  2938. %643 = bitcast %Value* %.pre653 to %ValueVariant*
  2939. %644 = getelementptr %ValueVariant* %643, i32 0, i32 2
  2940. %645 = load i64* %644
  2941. %646 = getelementptr %ValueVariant* %643, i32 0, i32 1
  2942. %647 = load i32* %646
  2943. tail call void @JR_borrow_variant(i32 %647, i64 %645)
  2944. %648 = getelementptr %Value* %.pre653, i32 1
  2945. store %Value* %648, %Value** inttoptr (i32 134824628 to %Value**)
  2946. %649 = load i32* %153
  2947. %650 = add i32 %649, -1
  2948. store i32 %650, i32* %153
  2949. %651 = icmp slt i32 %650, 1
  2950. br i1 %651, label %release_obj369, label %not_null384
  2951.  
  2952. release_obj369: ; preds = %not_null362
  2953. tail call void @CLASS_free(i8* %150)
  2954. br label %not_null384
  2955.  
  2956. not_null384: ; preds = %not_null362, %release_obj369
  2957. %652 = load %Value** inttoptr (i32 134824628 to %Value**)
  2958. %653 = getelementptr %Value* %652, i32 -1
  2959. %654 = bitcast %Value* %653 to i8*
  2960. tail call void @VALUE_convert(i8* %654, i32 142289596)
  2961. %655 = load %Value** inttoptr (i32 134824628 to %Value**)
  2962. %656 = getelementptr %Value* %655, i32 -1
  2963. %657 = bitcast %Value* %656 to %ValueObject*
  2964. %658 = bitcast %Value* %656 to %Null*
  2965. %659 = getelementptr %Null* %658, i32 0, i32 0
  2966. %660 = load i32* %659
  2967. %661 = icmp eq i32 %660, 15
  2968. %662 = getelementptr %ValueObject* %657, i32 0, i32 1
  2969. %663 = load i8** %662
  2970. %664 = getelementptr %ValueObject* %657, i32 0, i32 0
  2971. %665 = load i8** %664
  2972. %666 = insertvalue %Object undef, i8* %665, 0
  2973. %667 = insertvalue %Object %666, i8* %663, 1
  2974. %668 = select i1 %661, %Object { i8* inttoptr (i32 142289596 to i8*), i8* null }, %Object %667
  2975. %669 = load i32* %245
  2976. %670 = add i32 %669, 1
  2977. store i32 %670, i32* %245
  2978. %671 = load i8** %205
  2979. %672 = getelementptr i8* %671, i32 28
  2980. %673 = bitcast i8* %672 to i8**
  2981. %674 = load i8** %673
  2982. %675 = getelementptr i8* %674, i32 308
  2983. %676 = bitcast i8* %675 to i8**
  2984. %677 = load i8** %676
  2985. %678 = getelementptr i8* %677, i32 8
  2986. %679 = bitcast i8* %678 to i32*
  2987. %680 = load i32* %679
  2988. %681 = getelementptr i8* %130, i32 %680
  2989. %682 = bitcast i8* %681 to i8**
  2990. %683 = load i8** %682
  2991. %684 = icmp eq i8* %683, null
  2992. br i1 %684, label %unref_done388, label %obj_not_null385
  2993.  
  2994. obj_not_null385: ; preds = %not_null384
  2995. %685 = bitcast i8* %683 to %OBJECT*
  2996. %686 = getelementptr %OBJECT* %685, i32 0, i32 1
  2997. %687 = load i32* %686
  2998. %688 = add i32 %687, -1
  2999. store i32 %688, i32* %686
  3000. %689 = icmp slt i32 %688, 1
  3001. br i1 %689, label %release_obj386, label %unref_done388
  3002.  
  3003. release_obj386: ; preds = %obj_not_null385
  3004. tail call void @CLASS_free(i8* %683)
  3005. br label %unref_done388
  3006.  
  3007. unref_done388: ; preds = %not_null384, %release_obj386, %obj_not_null385
  3008. %690 = extractvalue %Object %668, 1
  3009. store i8* %690, i8** %682
  3010. %691 = load i32* %245
  3011. %692 = add i32 %691, -1
  3012. store i32 %692, i32* %245
  3013. %693 = icmp slt i32 %692, 1
  3014. br i1 %693, label %release_obj389, label %release_done390
  3015.  
  3016. release_obj389: ; preds = %unref_done388
  3017. tail call void @CLASS_free(i8* %130)
  3018. br label %release_done390
  3019.  
  3020. release_done390: ; preds = %unref_done388, %release_obj389
  3021. %694 = load %Value** inttoptr (i32 134824628 to %Value**)
  3022. %695 = getelementptr %Value* %694, i32 -1
  3023. store %Value* %695, %Value** inttoptr (i32 134824628 to %Value**)
  3024. br label %block391
  3025.  
  3026. block391: ; preds = %release_done350, %release_done390
  3027. %696 = load i8** inttoptr (i32 134824628 to i8**)
  3028. %697 = load i8** inttoptr (i32 134824636 to i8**)
  3029. %698 = getelementptr i8* %697, i32 48
  3030. %699 = icmp eq i8* %698, %696
  3031. br i1 %699, label %not_null403, label %if.then392
  3032.  
  3033. if.then392: ; preds = %block391
  3034. tail call void @stack_corrupted_abort()
  3035. unreachable
  3036.  
  3037. not_null403: ; preds = %block391
  3038. %700 = load i32* %153
  3039. %701 = add i32 %700, 1
  3040. store i32 %701, i32* %153
  3041. %.pre647 = load %Value** inttoptr (i32 134824628 to %Value**)
  3042. %702 = bitcast %Value* %.pre647 to i8*
  3043. %703 = tail call i8 @GB.Collection.Get(i8* %150, i8* inttoptr (i32 144440041 to i8*), i32 18, i8* %702)
  3044. %704 = bitcast %Value* %.pre647 to %ValueVariant*
  3045. %705 = getelementptr %ValueVariant* %704, i32 0, i32 2
  3046. %706 = load i64* %705
  3047. %707 = getelementptr %ValueVariant* %704, i32 0, i32 1
  3048. %708 = load i32* %707
  3049. tail call void @JR_borrow_variant(i32 %708, i64 %706)
  3050. %709 = getelementptr %Value* %.pre647, i32 1
  3051. store %Value* %709, %Value** inttoptr (i32 134824628 to %Value**)
  3052. %710 = load i32* %153
  3053. %711 = add i32 %710, -1
  3054. store i32 %711, i32* %153
  3055. %712 = icmp slt i32 %711, 1
  3056. br i1 %712, label %release_obj410, label %release_done411
  3057.  
  3058. release_obj410: ; preds = %not_null403
  3059. tail call void @CLASS_free(i8* %150)
  3060. br label %release_done411
  3061.  
  3062. release_done411: ; preds = %not_null403, %release_obj410
  3063. %713 = load %Value** inttoptr (i32 134824628 to %Value**)
  3064. %714 = getelementptr %Value* %713, i32 -1
  3065. %715 = bitcast %Value* %714 to i8*
  3066. tail call void @VALUE_convert(i8* %715, i32 1)
  3067. %716 = load %Value** inttoptr (i32 134824628 to %Value**)
  3068. %717 = getelementptr %Value* %716, i32 -1
  3069. %718 = bitcast %Value* %717 to %Boolean*
  3070. %719 = getelementptr %Boolean* %718, i32 0, i32 1
  3071. %720 = load i32* %719
  3072. %721 = icmp eq i32 %720, 0
  3073. store %Value* %717, %Value** inttoptr (i32 134824628 to %Value**)
  3074. br i1 %721, label %block452, label %not_null423
  3075.  
  3076. not_null423: ; preds = %release_done411
  3077. %722 = load i32* %153
  3078. %723 = add i32 %722, 1
  3079. store i32 %723, i32* %153
  3080. %.pre652 = load %Value** inttoptr (i32 134824628 to %Value**)
  3081. %724 = bitcast %Value* %.pre652 to i8*
  3082. %725 = tail call i8 @GB.Collection.Get(i8* %150, i8* inttoptr (i32 144440041 to i8*), i32 18, i8* %724)
  3083. %726 = bitcast %Value* %.pre652 to %ValueVariant*
  3084. %727 = getelementptr %ValueVariant* %726, i32 0, i32 2
  3085. %728 = load i64* %727
  3086. %729 = getelementptr %ValueVariant* %726, i32 0, i32 1
  3087. %730 = load i32* %729
  3088. tail call void @JR_borrow_variant(i32 %730, i64 %728)
  3089. %731 = getelementptr %Value* %.pre652, i32 1
  3090. store %Value* %731, %Value** inttoptr (i32 134824628 to %Value**)
  3091. %732 = load i32* %153
  3092. %733 = add i32 %732, -1
  3093. store i32 %733, i32* %153
  3094. %734 = icmp slt i32 %733, 1
  3095. br i1 %734, label %release_obj430, label %not_null445
  3096.  
  3097. release_obj430: ; preds = %not_null423
  3098. tail call void @CLASS_free(i8* %150)
  3099. br label %not_null445
  3100.  
  3101. not_null445: ; preds = %not_null423, %release_obj430
  3102. %735 = load %Value** inttoptr (i32 134824628 to %Value**)
  3103. %736 = getelementptr %Value* %735, i32 -1
  3104. %737 = bitcast %Value* %736 to i8*
  3105. tail call void @VALUE_convert(i8* %737, i32 142289596)
  3106. %738 = load %Value** inttoptr (i32 134824628 to %Value**)
  3107. %739 = getelementptr %Value* %738, i32 -1
  3108. %740 = bitcast %Value* %739 to %ValueObject*
  3109. %741 = bitcast %Value* %739 to %Null*
  3110. %742 = getelementptr %Null* %741, i32 0, i32 0
  3111. %743 = load i32* %742
  3112. %744 = icmp eq i32 %743, 15
  3113. %745 = getelementptr %ValueObject* %740, i32 0, i32 1
  3114. %746 = load i8** %745
  3115. %747 = getelementptr %ValueObject* %740, i32 0, i32 0
  3116. %748 = load i8** %747
  3117. %749 = insertvalue %Object undef, i8* %748, 0
  3118. %750 = insertvalue %Object %749, i8* %746, 1
  3119. %751 = select i1 %744, %Object { i8* inttoptr (i32 142289596 to i8*), i8* null }, %Object %750
  3120. %752 = load i32* %245
  3121. %753 = add i32 %752, 1
  3122. store i32 %753, i32* %245
  3123. %754 = load i8** %205
  3124. %755 = getelementptr i8* %754, i32 28
  3125. %756 = bitcast i8* %755 to i8**
  3126. %757 = load i8** %756
  3127. %758 = getelementptr i8* %757, i32 284
  3128. %759 = bitcast i8* %758 to i8**
  3129. %760 = load i8** %759
  3130. %761 = getelementptr i8* %760, i32 8
  3131. %762 = bitcast i8* %761 to i32*
  3132. %763 = load i32* %762
  3133. %764 = getelementptr i8* %130, i32 %763
  3134. %765 = bitcast i8* %764 to i8**
  3135. %766 = load i8** %765
  3136. %767 = icmp eq i8* %766, null
  3137. br i1 %767, label %unref_done449, label %obj_not_null446
  3138.  
  3139. obj_not_null446: ; preds = %not_null445
  3140. %768 = bitcast i8* %766 to %OBJECT*
  3141. %769 = getelementptr %OBJECT* %768, i32 0, i32 1
  3142. %770 = load i32* %769
  3143. %771 = add i32 %770, -1
  3144. store i32 %771, i32* %769
  3145. %772 = icmp slt i32 %771, 1
  3146. br i1 %772, label %release_obj447, label %unref_done449
  3147.  
  3148. release_obj447: ; preds = %obj_not_null446
  3149. tail call void @CLASS_free(i8* %766)
  3150. br label %unref_done449
  3151.  
  3152. unref_done449: ; preds = %not_null445, %release_obj447, %obj_not_null446
  3153. %773 = extractvalue %Object %751, 1
  3154. store i8* %773, i8** %765
  3155. %774 = load i32* %245
  3156. %775 = add i32 %774, -1
  3157. store i32 %775, i32* %245
  3158. %776 = icmp slt i32 %775, 1
  3159. br i1 %776, label %release_obj450, label %release_done451
  3160.  
  3161. release_obj450: ; preds = %unref_done449
  3162. tail call void @CLASS_free(i8* %130)
  3163. br label %release_done451
  3164.  
  3165. release_done451: ; preds = %unref_done449, %release_obj450
  3166. %777 = load %Value** inttoptr (i32 134824628 to %Value**)
  3167. %778 = getelementptr %Value* %777, i32 -1
  3168. store %Value* %778, %Value** inttoptr (i32 134824628 to %Value**)
  3169. br label %block452
  3170.  
  3171. block452: ; preds = %release_done411, %release_done451
  3172. %779 = load i8** inttoptr (i32 134824628 to i8**)
  3173. %780 = load i8** inttoptr (i32 134824636 to i8**)
  3174. %781 = getelementptr i8* %780, i32 48
  3175. %782 = icmp eq i8* %781, %779
  3176. br i1 %782, label %not_null464, label %if.then453
  3177.  
  3178. if.then453: ; preds = %block452
  3179. tail call void @stack_corrupted_abort()
  3180. unreachable
  3181.  
  3182. not_null464: ; preds = %block452
  3183. %783 = load i32* %153
  3184. %784 = add i32 %783, 1
  3185. store i32 %784, i32* %153
  3186. %.pre648 = load %Value** inttoptr (i32 134824628 to %Value**)
  3187. %785 = bitcast %Value* %.pre648 to i8*
  3188. %786 = tail call i8 @GB.Collection.Get(i8* %150, i8* inttoptr (i32 144439789 to i8*), i32 7, i8* %785)
  3189. %787 = bitcast %Value* %.pre648 to %ValueVariant*
  3190. %788 = getelementptr %ValueVariant* %787, i32 0, i32 2
  3191. %789 = load i64* %788
  3192. %790 = getelementptr %ValueVariant* %787, i32 0, i32 1
  3193. %791 = load i32* %790
  3194. tail call void @JR_borrow_variant(i32 %791, i64 %789)
  3195. %792 = getelementptr %Value* %.pre648, i32 1
  3196. store %Value* %792, %Value** inttoptr (i32 134824628 to %Value**)
  3197. %793 = load i32* %153
  3198. %794 = add i32 %793, -1
  3199. store i32 %794, i32* %153
  3200. %795 = icmp slt i32 %794, 1
  3201. br i1 %795, label %release_obj471, label %release_done472
  3202.  
  3203. release_obj471: ; preds = %not_null464
  3204. tail call void @CLASS_free(i8* %150)
  3205. br label %release_done472
  3206.  
  3207. release_done472: ; preds = %not_null464, %release_obj471
  3208. %796 = load %Value** inttoptr (i32 134824628 to %Value**)
  3209. %797 = getelementptr %Value* %796, i32 -1
  3210. %798 = bitcast %Value* %797 to i8*
  3211. tail call void @VALUE_convert(i8* %798, i32 9)
  3212. %799 = load %Value** inttoptr (i32 134824628 to %Value**)
  3213. %800 = getelementptr %Value* %799, i32 -1
  3214. %801 = bitcast %Value* %800 to %String*
  3215. %802 = getelementptr %String* %801, i32 0, i32 0
  3216. %803 = load i32* %802
  3217. %804 = getelementptr %String* %801, i32 0, i32 3
  3218. %805 = load i32* %804
  3219. %806 = getelementptr %String* %801, i32 0, i32 2
  3220. %807 = load i32* %806
  3221. %808 = getelementptr %String* %801, i32 0, i32 1
  3222. %809 = load i8** %808
  3223. %810 = icmp eq i32 %803, 12
  3224. br i1 %810, label %bb1473, label %not_null492
  3225.  
  3226. bb1473: ; preds = %release_done472
  3227. tail call void @abort()
  3228. unreachable
  3229.  
  3230. not_null492: ; preds = %release_done472
  3231. %811 = load i32* %245
  3232. %812 = add i32 %811, 1
  3233. store i32 %812, i32* %245
  3234. %813 = load i8** %205
  3235. %814 = getelementptr i8* %813, i32 28
  3236. %815 = bitcast i8* %814 to i8**
  3237. %816 = load i8** %815
  3238. %817 = getelementptr i8* %816, i32 32
  3239. %818 = bitcast i8* %817 to i8**
  3240. %819 = load i8** %818
  3241. %820 = getelementptr i8* %819, i32 8
  3242. %821 = bitcast i8* %820 to i32*
  3243. %822 = load i32* %821
  3244. %823 = getelementptr i8* %130, i32 %822
  3245. %824 = bitcast i8* %823 to i8**
  3246. %825 = load i8** %824
  3247. %826 = icmp eq i8* %825, null
  3248. br i1 %826, label %unref_done496, label %str_not_null493
  3249.  
  3250. str_not_null493: ; preds = %not_null492
  3251. %827 = bitcast i8* %825 to i32*
  3252. %828 = getelementptr i32* %827, i32 -2
  3253. %829 = load i32* %828
  3254. %830 = add i32 %829, -1
  3255. store i32 %830, i32* %828
  3256. %831 = icmp slt i32 %830, 1
  3257. br i1 %831, label %release_str494, label %unref_done496
  3258.  
  3259. release_str494: ; preds = %str_not_null493
  3260. tail call void @STRING_free_real(i8* %825)
  3261. br label %unref_done496
  3262.  
  3263. unref_done496: ; preds = %not_null492, %release_str494, %str_not_null493
  3264. %832 = icmp eq i32 %805, 0
  3265. br i1 %832, label %if.cont506, label %if.then497
  3266.  
  3267. if.then497: ; preds = %unref_done496
  3268. %833 = icmp eq i32 %803, 9
  3269. %834 = icmp eq i32 %807, 0
  3270. %835 = and i1 %833, %834
  3271. br i1 %835, label %and_if498, label %if.then500
  3272.  
  3273. and_if498: ; preds = %if.then497
  3274. %836 = getelementptr i8* %809, i32 -4
  3275. %837 = bitcast i8* %836 to i32*
  3276. %838 = load i32* %837
  3277. %phitmp625 = icmp eq i32 %838, %805
  3278. br i1 %phitmp625, label %if.cont506, label %if.then500
  3279.  
  3280. if.then500: ; preds = %and_if498, %if.then497
  3281. %839 = getelementptr i8* %809, i32 %807
  3282. %840 = tail call i8* @STRING_new(i8* %839, i32 %805)
  3283. %841 = tail call i8* @STRING_free_later(i8* %840)
  3284. br i1 %833, label %if.then501, label %if.cont504
  3285.  
  3286. if.then501: ; preds = %if.then500
  3287. %842 = bitcast i8* %809 to i32*
  3288. %843 = getelementptr i32* %842, i32 -2
  3289. %844 = load i32* %843
  3290. %845 = add i32 %844, -1
  3291. store i32 %845, i32* %843
  3292. %846 = icmp slt i32 %845, 1
  3293. br i1 %846, label %release_str502, label %if.cont504
  3294.  
  3295. release_str502: ; preds = %if.then501
  3296. tail call void @STRING_free_real(i8* %809)
  3297. br label %if.cont504
  3298.  
  3299. if.cont504: ; preds = %release_str502, %if.then501, %if.then500
  3300. %847 = bitcast i8* %841 to i32*
  3301. %848 = getelementptr i32* %847, i32 -2
  3302. %849 = load i32* %848
  3303. %850 = add i32 %849, 1
  3304. store i32 %850, i32* %848
  3305. br label %if.cont506
  3306.  
  3307. if.cont506: ; preds = %and_if498, %unref_done496, %if.cont504
  3308. %851 = phi i8* [ null, %unref_done496 ], [ %841, %if.cont504 ], [ %809, %and_if498 ]
  3309. store i8* %851, i8** %824
  3310. %852 = load i32* %245
  3311. %853 = add i32 %852, -1
  3312. store i32 %853, i32* %245
  3313. %854 = icmp slt i32 %853, 1
  3314. br i1 %854, label %release_obj507, label %release_done508
  3315.  
  3316. release_obj507: ; preds = %if.cont506
  3317. tail call void @CLASS_free(i8* %130)
  3318. br label %release_done508
  3319.  
  3320. release_done508: ; preds = %if.cont506, %release_obj507
  3321. %855 = load %Value** inttoptr (i32 134824628 to %Value**)
  3322. %856 = getelementptr %Value* %855, i32 -1
  3323. store %Value* %856, %Value** inttoptr (i32 134824628 to %Value**)
  3324. %857 = load i8** inttoptr (i32 134824628 to i8**)
  3325. %858 = load i8** inttoptr (i32 134824636 to i8**)
  3326. %859 = getelementptr i8* %858, i32 48
  3327. %860 = icmp eq i8* %859, %857
  3328. br i1 %860, label %not_null520, label %if.then509
  3329.  
  3330. if.then509: ; preds = %release_done508
  3331. tail call void @stack_corrupted_abort()
  3332. unreachable
  3333.  
  3334. not_null520: ; preds = %release_done508
  3335. %861 = load i32* %153
  3336. %862 = add i32 %861, 1
  3337. store i32 %862, i32* %153
  3338. %.pre649 = load %Value** inttoptr (i32 134824628 to %Value**)
  3339. %863 = bitcast %Value* %.pre649 to i8*
  3340. %864 = tail call i8 @GB.Collection.Get(i8* %150, i8* inttoptr (i32 144439797 to i8*), i32 7, i8* %863)
  3341. %865 = bitcast %Value* %.pre649 to %ValueVariant*
  3342. %866 = getelementptr %ValueVariant* %865, i32 0, i32 2
  3343. %867 = load i64* %866
  3344. %868 = getelementptr %ValueVariant* %865, i32 0, i32 1
  3345. %869 = load i32* %868
  3346. tail call void @JR_borrow_variant(i32 %869, i64 %867)
  3347. %870 = getelementptr %Value* %.pre649, i32 1
  3348. store %Value* %870, %Value** inttoptr (i32 134824628 to %Value**)
  3349. %871 = load i32* %153
  3350. %872 = add i32 %871, -1
  3351. store i32 %872, i32* %153
  3352. %873 = icmp slt i32 %872, 1
  3353. br i1 %873, label %release_obj527, label %release_done528
  3354.  
  3355. release_obj527: ; preds = %not_null520
  3356. tail call void @CLASS_free(i8* %150)
  3357. br label %release_done528
  3358.  
  3359. release_done528: ; preds = %not_null520, %release_obj527
  3360. %874 = load %Value** inttoptr (i32 134824628 to %Value**)
  3361. %875 = getelementptr %Value* %874, i32 -1
  3362. %876 = bitcast %Value* %875 to i8*
  3363. tail call void @VALUE_convert(i8* %876, i32 9)
  3364. %877 = load %Value** inttoptr (i32 134824628 to %Value**)
  3365. %878 = getelementptr %Value* %877, i32 -1
  3366. %879 = bitcast %Value* %878 to %String*
  3367. %880 = getelementptr %String* %879, i32 0, i32 0
  3368. %881 = load i32* %880
  3369. %882 = getelementptr %String* %879, i32 0, i32 3
  3370. %883 = load i32* %882
  3371. %884 = getelementptr %String* %879, i32 0, i32 2
  3372. %885 = load i32* %884
  3373. %886 = getelementptr %String* %879, i32 0, i32 1
  3374. %887 = load i8** %886
  3375. %888 = icmp eq i32 %881, 12
  3376. br i1 %888, label %bb1529, label %not_null548
  3377.  
  3378. bb1529: ; preds = %release_done528
  3379. tail call void @abort()
  3380. unreachable
  3381.  
  3382. not_null548: ; preds = %release_done528
  3383. %889 = load i32* %245
  3384. %890 = add i32 %889, 1
  3385. store i32 %890, i32* %245
  3386. %891 = load i8** %205
  3387. %892 = getelementptr i8* %891, i32 28
  3388. %893 = bitcast i8* %892 to i8**
  3389. %894 = load i8** %893
  3390. %895 = getelementptr i8* %894, i32 44
  3391. %896 = bitcast i8* %895 to i8**
  3392. %897 = load i8** %896
  3393. %898 = getelementptr i8* %897, i32 8
  3394. %899 = bitcast i8* %898 to i32*
  3395. %900 = load i32* %899
  3396. %901 = getelementptr i8* %130, i32 %900
  3397. %902 = bitcast i8* %901 to i8**
  3398. %903 = load i8** %902
  3399. %904 = icmp eq i8* %903, null
  3400. br i1 %904, label %unref_done552, label %str_not_null549
  3401.  
  3402. str_not_null549: ; preds = %not_null548
  3403. %905 = bitcast i8* %903 to i32*
  3404. %906 = getelementptr i32* %905, i32 -2
  3405. %907 = load i32* %906
  3406. %908 = add i32 %907, -1
  3407. store i32 %908, i32* %906
  3408. %909 = icmp slt i32 %908, 1
  3409. br i1 %909, label %release_str550, label %unref_done552
  3410.  
  3411. release_str550: ; preds = %str_not_null549
  3412. tail call void @STRING_free_real(i8* %903)
  3413. br label %unref_done552
  3414.  
  3415. unref_done552: ; preds = %not_null548, %release_str550, %str_not_null549
  3416. %910 = icmp eq i32 %883, 0
  3417. br i1 %910, label %if.cont562, label %if.then553
  3418.  
  3419. if.then553: ; preds = %unref_done552
  3420. %911 = icmp eq i32 %881, 9
  3421. %912 = icmp eq i32 %885, 0
  3422. %913 = and i1 %911, %912
  3423. br i1 %913, label %and_if554, label %if.then556
  3424.  
  3425. and_if554: ; preds = %if.then553
  3426. %914 = getelementptr i8* %887, i32 -4
  3427. %915 = bitcast i8* %914 to i32*
  3428. %916 = load i32* %915
  3429. %phitmp = icmp eq i32 %916, %883
  3430. br i1 %phitmp, label %if.cont562, label %if.then556
  3431.  
  3432. if.then556: ; preds = %and_if554, %if.then553
  3433. %917 = getelementptr i8* %887, i32 %885
  3434. %918 = tail call i8* @STRING_new(i8* %917, i32 %883)
  3435. %919 = tail call i8* @STRING_free_later(i8* %918)
  3436. br i1 %911, label %if.then557, label %if.cont560
  3437.  
  3438. if.then557: ; preds = %if.then556
  3439. %920 = bitcast i8* %887 to i32*
  3440. %921 = getelementptr i32* %920, i32 -2
  3441. %922 = load i32* %921
  3442. %923 = add i32 %922, -1
  3443. store i32 %923, i32* %921
  3444. %924 = icmp slt i32 %923, 1
  3445. br i1 %924, label %release_str558, label %if.cont560
  3446.  
  3447. release_str558: ; preds = %if.then557
  3448. tail call void @STRING_free_real(i8* %887)
  3449. br label %if.cont560
  3450.  
  3451. if.cont560: ; preds = %release_str558, %if.then557, %if.then556
  3452. %925 = bitcast i8* %919 to i32*
  3453. %926 = getelementptr i32* %925, i32 -2
  3454. %927 = load i32* %926
  3455. %928 = add i32 %927, 1
  3456. store i32 %928, i32* %926
  3457. br label %if.cont562
  3458.  
  3459. if.cont562: ; preds = %and_if554, %unref_done552, %if.cont560
  3460. %929 = phi i8* [ null, %unref_done552 ], [ %919, %if.cont560 ], [ %887, %and_if554 ]
  3461. store i8* %929, i8** %902
  3462. %930 = load i32* %245
  3463. %931 = add i32 %930, -1
  3464. store i32 %931, i32* %245
  3465. %932 = icmp slt i32 %931, 1
  3466. br i1 %932, label %release_obj563, label %release_done564
  3467.  
  3468. release_obj563: ; preds = %if.cont562
  3469. tail call void @CLASS_free(i8* %130)
  3470. br label %release_done564
  3471.  
  3472. release_done564: ; preds = %if.cont562, %release_obj563
  3473. %933 = load %Value** inttoptr (i32 134824628 to %Value**)
  3474. %934 = getelementptr %Value* %933, i32 -1
  3475. store %Value* %934, %Value** inttoptr (i32 134824628 to %Value**)
  3476. %935 = load i8** inttoptr (i32 134824628 to i8**)
  3477. %936 = load i8** inttoptr (i32 134824636 to i8**)
  3478. %937 = getelementptr i8* %936, i32 48
  3479. %938 = icmp eq i8* %937, %935
  3480. br i1 %938, label %not_null570, label %if.then565
  3481.  
  3482. if.then565: ; preds = %release_done564
  3483. tail call void @stack_corrupted_abort()
  3484. unreachable
  3485.  
  3486. not_null570: ; preds = %release_done564
  3487. %939 = load i32* %153
  3488. %940 = add i32 %939, 1
  3489. store i32 %940, i32* %153
  3490. %.pre650 = load %Value** inttoptr (i32 134824628 to %Value**)
  3491. %941 = getelementptr %OBJECT* %152, i32 0, i32 0
  3492. %942 = load i8** %941
  3493. %943 = bitcast i8* %942 to i8**
  3494. %944 = getelementptr i8** %943, i32 7
  3495. %945 = load i8** %944
  3496. %946 = getelementptr i8* %945, i32 80
  3497. %947 = bitcast i8* %946 to i8**
  3498. %948 = load i8** %947
  3499. %949 = getelementptr i8* %948, i32 19
  3500. %950 = load i8* %949
  3501. %951 = shl i8 %950, 1
  3502. %952 = and i8 %951, 2
  3503. %953 = xor i8 %952, 3
  3504. %954 = bitcast %Value* %.pre650 to %ValueFunction*
  3505. %955 = getelementptr %ValueFunction* %954, i32 0, i32 0
  3506. store i32 13, i32* %955
  3507. %956 = getelementptr %ValueFunction* %954, i32 0, i32 2
  3508. store i8* %150, i8** %956
  3509. %957 = getelementptr %ValueFunction* %954, i32 0, i32 3
  3510. store i8 %953, i8* %957
  3511. %958 = getelementptr %Value* %.pre650, i32 1
  3512. %959 = bitcast %Value* %958 to %String*
  3513. %960 = getelementptr %String* %959, i32 0, i32 0
  3514. store i32 10, i32* %960
  3515. %961 = getelementptr %String* %959, i32 0, i32 1
  3516. store i8* inttoptr (i32 144439823 to i8*), i8** %961
  3517. %962 = getelementptr %String* %959, i32 0, i32 2
  3518. store i32 0, i32* %962
  3519. %963 = getelementptr %String* %959, i32 0, i32 3
  3520. store i32 9, i32* %963
  3521. %964 = getelementptr %Value* %.pre650, i32 2
  3522. store %Value* %964, %Value** inttoptr (i32 134824628 to %Value**)
  3523. store i32 144437950, i32* inttoptr (i32 134824660 to i32*)
  3524. store i8 1, i8* inttoptr (i32 134831632 to i8*)
  3525. %965 = icmp eq i8 %952, 0
  3526. br i1 %965, label %if.then571, label %if.else
  3527.  
  3528. if.then571: ; preds = %not_null570
  3529. tail call void @JR_exec_enter_quick(i8* %942, i8* %150, i32 6)
  3530. br label %not_null582
  3531.  
  3532. if.else: ; preds = %not_null570
  3533. store i8* inttoptr (i32 134808580 to i8*), i8** inttoptr (i32 134831628 to i8**)
  3534. store i8* %150, i8** inttoptr (i32 134831620 to i8**)
  3535. store i8* %942, i8** inttoptr (i32 134831616 to i8**)
  3536. tail call void @EXEC_native_quick()
  3537. br label %not_null582
  3538.  
  3539. not_null582: ; preds = %if.else, %if.then571
  3540. %966 = load %Value** inttoptr (i32 134824628 to %Value**)
  3541. %967 = getelementptr %Value* %966, i32 -1
  3542. %968 = bitcast %Value* %967 to %Boolean*
  3543. %969 = getelementptr %Boolean* %968, i32 0, i32 1
  3544. %970 = load i32* %969
  3545. %971 = icmp eq i32 %970, 0
  3546. %972 = getelementptr %Boolean* %968, i32 0, i32 0
  3547. store i32 1, i32* %972
  3548. %973 = sext i1 %971 to i32
  3549. store i32 %973, i32* %969
  3550. store %Value* %966, %Value** inttoptr (i32 134824628 to %Value**)
  3551. %974 = load i32* %153
  3552. %975 = add i32 %974, 1
  3553. store i32 %975, i32* %153
  3554. %.pre651 = load %Value** inttoptr (i32 134824628 to %Value**)
  3555. %976 = bitcast %Value* %.pre651 to i8*
  3556. %977 = tail call i8 @GB.Collection.Get(i8* %150, i8* inttoptr (i32 144439823 to i8*), i32 9, i8* %976)
  3557. %978 = bitcast %Value* %.pre651 to %ValueVariant*
  3558. %979 = getelementptr %ValueVariant* %978, i32 0, i32 2
  3559. %980 = load i64* %979
  3560. %981 = getelementptr %ValueVariant* %978, i32 0, i32 1
  3561. %982 = load i32* %981
  3562. tail call void @JR_borrow_variant(i32 %982, i64 %980)
  3563. %983 = getelementptr %Value* %.pre651, i32 1
  3564. store %Value* %983, %Value** inttoptr (i32 134824628 to %Value**)
  3565. %984 = load i32* %153
  3566. %985 = add i32 %984, -1
  3567. store i32 %985, i32* %153
  3568. %986 = icmp slt i32 %985, 1
  3569. br i1 %986, label %release_obj589, label %release_done590
  3570.  
  3571. release_obj589: ; preds = %not_null582
  3572. tail call void @CLASS_free(i8* %150)
  3573. br label %release_done590
  3574.  
  3575. release_done590: ; preds = %not_null582, %release_obj589
  3576. tail call void @SUBR_and_(i16 1)
  3577. %987 = load %Value** inttoptr (i32 134824628 to %Value**)
  3578. %988 = getelementptr %Value* %987, i32 -1
  3579. %989 = bitcast %Value* %988 to i8*
  3580. tail call void @VALUE_convert(i8* %989, i32 1)
  3581. %990 = load %Value** inttoptr (i32 134824628 to %Value**)
  3582. %991 = getelementptr %Value* %990, i32 -1
  3583. %992 = bitcast %Value* %991 to %Boolean*
  3584. %993 = getelementptr %Boolean* %992, i32 0, i32 1
  3585. %994 = load i32* %993
  3586. %995 = icmp eq i32 %994, 0
  3587. store %Value* %991, %Value** inttoptr (i32 134824628 to %Value**)
  3588. %996 = load i8** inttoptr (i32 134824628 to i8**)
  3589. %997 = load i8** inttoptr (i32 134824636 to i8**)
  3590. %998 = getelementptr i8* %997, i32 48
  3591. %999 = icmp ne i8* %998, %996
  3592. br i1 %995, label %block604, label %block592
  3593.  
  3594. block592: ; preds = %release_done590
  3595. br i1 %999, label %if.then593, label %not_null600
  3596.  
  3597. if.then593: ; preds = %block592
  3598. tail call void @stack_corrupted_abort()
  3599. unreachable
  3600.  
  3601. not_null600: ; preds = %block592
  3602. %1000 = load i32* %245
  3603. %1001 = add i32 %1000, 1
  3604. store i32 %1001, i32* %245
  3605. %1002 = load i8** %205
  3606. %1003 = getelementptr i8* %1002, i32 28
  3607. %1004 = bitcast i8* %1003 to i8**
  3608. %1005 = load i8** %1004
  3609. %1006 = getelementptr i8* %1005, i32 80
  3610. %1007 = bitcast i8* %1006 to i8**
  3611. %1008 = load i8** %1007
  3612. %1009 = getelementptr i8* %1008, i32 8
  3613. %1010 = bitcast i8* %1009 to i32*
  3614. %1011 = load i32* %1010
  3615. %1012 = getelementptr i8* %130, i32 %1011
  3616. store i8 -1, i8* %1012
  3617. %1013 = load i32* %245
  3618. %1014 = add i32 %1013, -1
  3619. store i32 %1014, i32* %245
  3620. %1015 = icmp slt i32 %1014, 1
  3621. br i1 %1015, label %release_obj601, label %block615
  3622.  
  3623. release_obj601: ; preds = %not_null600
  3624. tail call void @CLASS_free(i8* %130)
  3625. br label %block615
  3626.  
  3627. block604: ; preds = %release_done590
  3628. br i1 %999, label %if.then605, label %not_null612
  3629.  
  3630. if.then605: ; preds = %block604
  3631. tail call void @stack_corrupted_abort()
  3632. unreachable
  3633.  
  3634. not_null612: ; preds = %block604
  3635. %1016 = load i32* %245
  3636. %1017 = add i32 %1016, 1
  3637. store i32 %1017, i32* %245
  3638. %1018 = load i8** %205
  3639. %1019 = getelementptr i8* %1018, i32 28
  3640. %1020 = bitcast i8* %1019 to i8**
  3641. %1021 = load i8** %1020
  3642. %1022 = getelementptr i8* %1021, i32 80
  3643. %1023 = bitcast i8* %1022 to i8**
  3644. %1024 = load i8** %1023
  3645. %1025 = getelementptr i8* %1024, i32 8
  3646. %1026 = bitcast i8* %1025 to i32*
  3647. %1027 = load i32* %1026
  3648. %1028 = getelementptr i8* %130, i32 %1027
  3649. store i8 0, i8* %1028
  3650. %1029 = load i32* %245
  3651. %1030 = add i32 %1029, -1
  3652. store i32 %1030, i32* %245
  3653. %1031 = icmp slt i32 %1030, 1
  3654. br i1 %1031, label %release_obj613, label %block615
  3655.  
  3656. release_obj613: ; preds = %not_null612
  3657. tail call void @CLASS_free(i8* %130)
  3658. br label %block615
  3659.  
  3660. block615: ; preds = %release_obj613, %not_null612, %release_obj601, %not_null600
  3661. %1032 = load i8** inttoptr (i32 134824628 to i8**)
  3662. %1033 = load i8** inttoptr (i32 134824636 to i8**)
  3663. %1034 = getelementptr i8* %1033, i32 48
  3664. %1035 = icmp eq i8* %1034, %1032
  3665. br i1 %1035, label %borrow_object_done619, label %if.then616
  3666.  
  3667. if.then616: ; preds = %block615
  3668. tail call void @stack_corrupted_abort()
  3669. unreachable
  3670.  
  3671. borrow_object_done619: ; preds = %block615
  3672. %1036 = load i32* %245
  3673. %1037 = add i32 %1036, 1
  3674. store i32 %1037, i32* %245
  3675. store i8* %128, i8** getelementptr (%ValueObject* inttoptr (i32 134831572 to %ValueObject*), i32 0, i32 0)
  3676. store i8* %130, i8** getelementptr (%ValueObject* inttoptr (i32 134831572 to %ValueObject*), i32 0, i32 1)
  3677. tail call void @EXEC_leave_keep()
  3678. ret void
  3679. }
  3680.  
  3681. declare void @stack_corrupted_abort()
  3682.  
  3683. declare void @JR_borrow_variant(i32, i64)
  3684.  
  3685. declare void @VALUE_convert(i8*, i32)
  3686.  
  3687. declare void @CLASS_free(i8*)
  3688.  
  3689. declare void @abort()
  3690.  
  3691. declare void @JR_exec_enter_quick(i8*, i8*, i32)
  3692.  
  3693. declare void @EXEC_new()
  3694.  
  3695. declare void @STRING_free_real(i8*)
  3696.  
  3697. declare void @THROW(i32, ...)
  3698.  
  3699. declare i8 @GB.Collection.Get(i8*, i8*, i32, i8*)
  3700.  
  3701. declare i8* @STRING_new(i8*, i32)
  3702.  
  3703. declare i8* @STRING_free_later(i8*)
  3704.  
  3705. declare void @EXEC_native_quick()
  3706.  
  3707. declare void @SUBR_and_(i16)
  3708.  
  3709. declare void @EXEC_leave_keep()
  3710. ------------------------------------------------------------------------
  3711.  
  3712. ------------------------------------------------------------------------
  3713. gb.jit: beginning compiling Module.Module:
  3714. ------------------------------------------------------------------------
  3715.  
  3716. ------------------------------------------------------------------------
  3717. gb.jit: dumping function Module.Module:
  3718. ------------------------------------------------------------------------
  3719. ; ModuleID = 'jit_mod'
  3720. target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32-n8:16:32-S128"
  3721. target triple = "i386-unknown-linux-gnu"
  3722.  
  3723. %Class = type { i32, i8* }
  3724. %Value = type { i32, i32, i32, i32 }
  3725. %ValueObject = type { i8*, i8*, i8* }
  3726. %Null = type { i32 }
  3727. %Object = type { i8*, i8* }
  3728. %OBJECT = type { i8*, i32 }
  3729. %Void = type { i32, i32, i32, i32 }
  3730.  
  3731. define void @func_2_Module_1() {
  3732. entry:
  3733. %0 = load i8** inttoptr (i32 134824648 to i8**)
  3734. %1 = load %Class** inttoptr (i32 134824628 to %Class**)
  3735. %2 = getelementptr %Class* %1, i32 0, i32 0
  3736. store i32 14, i32* %2
  3737. %3 = getelementptr %Class* %1, i32 0, i32 1
  3738. store i8* inttoptr (i32 142289596 to i8*), i8** %3
  3739. %4 = load %Value** inttoptr (i32 134824628 to %Value**)
  3740. %5 = getelementptr %Value* %4, i32 1
  3741. store %Value* %5, %Value** inttoptr (i32 134824628 to %Value**)
  3742. store i32 144437346, i32* inttoptr (i32 134824660 to i32*)
  3743. tail call void @EXEC_new()
  3744. %6 = load %Value** inttoptr (i32 134824628 to %Value**)
  3745. %7 = getelementptr %Value* %6, i32 -1
  3746. %8 = bitcast %Value* %7 to %ValueObject*
  3747. %9 = bitcast %Value* %7 to %Null*
  3748. %10 = getelementptr %Null* %9, i32 0, i32 0
  3749. %11 = load i32* %10
  3750. %12 = icmp eq i32 %11, 15
  3751. %13 = getelementptr %ValueObject* %8, i32 0, i32 1
  3752. %14 = load i8** %13
  3753. %15 = getelementptr %ValueObject* %8, i32 0, i32 0
  3754. %16 = load i8** %15
  3755. %17 = insertvalue %Object undef, i8* %16, 0
  3756. %18 = insertvalue %Object %17, i8* %14, 1
  3757. %19 = select i1 %12, %Object { i8* inttoptr (i32 142289596 to i8*), i8* null }, %Object %18
  3758. store %Value* %7, %Value** inttoptr (i32 134824628 to %Value**)
  3759. %20 = getelementptr i8* %0, i32 28
  3760. %21 = bitcast i8* %20 to i8**
  3761. %22 = load i8** %21
  3762. %23 = icmp eq i8* %22, null
  3763. br i1 %23, label %unref_done, label %obj_not_null
  3764.  
  3765. obj_not_null: ; preds = %entry
  3766. %24 = bitcast i8* %22 to %OBJECT*
  3767. %25 = getelementptr %OBJECT* %24, i32 0, i32 1
  3768. %26 = load i32* %25
  3769. %27 = add i32 %26, -1
  3770. store i32 %27, i32* %25
  3771. %28 = icmp slt i32 %27, 1
  3772. br i1 %28, label %release_obj, label %unref_done
  3773.  
  3774. release_obj: ; preds = %obj_not_null
  3775. tail call void @CLASS_free(i8* %22)
  3776. br label %unref_done
  3777.  
  3778. unref_done: ; preds = %entry, %release_obj, %obj_not_null
  3779. %29 = extractvalue %Object %19, 1
  3780. store i8* %29, i8** %21
  3781. %30 = load %Class** inttoptr (i32 134824628 to %Class**)
  3782. %31 = getelementptr %Class* %30, i32 0, i32 0
  3783. store i32 14, i32* %31
  3784. %32 = getelementptr %Class* %30, i32 0, i32 1
  3785. store i8* inttoptr (i32 142289596 to i8*), i8** %32
  3786. %33 = load %Value** inttoptr (i32 134824628 to %Value**)
  3787. %34 = getelementptr %Value* %33, i32 1
  3788. store %Value* %34, %Value** inttoptr (i32 134824628 to %Value**)
  3789. store i32 144437352, i32* inttoptr (i32 134824660 to i32*)
  3790. tail call void @EXEC_new()
  3791. %35 = load %Value** inttoptr (i32 134824628 to %Value**)
  3792. %36 = getelementptr %Value* %35, i32 -1
  3793. %37 = bitcast %Value* %36 to %ValueObject*
  3794. %38 = bitcast %Value* %36 to %Null*
  3795. %39 = getelementptr %Null* %38, i32 0, i32 0
  3796. %40 = load i32* %39
  3797. %41 = icmp eq i32 %40, 15
  3798. %42 = getelementptr %ValueObject* %37, i32 0, i32 1
  3799. %43 = load i8** %42
  3800. %44 = getelementptr %ValueObject* %37, i32 0, i32 0
  3801. %45 = load i8** %44
  3802. %46 = insertvalue %Object undef, i8* %45, 0
  3803. %47 = insertvalue %Object %46, i8* %43, 1
  3804. %48 = select i1 %41, %Object { i8* inttoptr (i32 142289596 to i8*), i8* null }, %Object %47
  3805. store %Value* %36, %Value** inttoptr (i32 134824628 to %Value**)
  3806. %49 = getelementptr i8* %0, i32 32
  3807. %50 = bitcast i8* %49 to i8**
  3808. %51 = load i8** %50
  3809. %52 = icmp eq i8* %51, null
  3810. br i1 %52, label %unref_done4, label %obj_not_null1
  3811.  
  3812. obj_not_null1: ; preds = %unref_done
  3813. %53 = bitcast i8* %51 to %OBJECT*
  3814. %54 = getelementptr %OBJECT* %53, i32 0, i32 1
  3815. %55 = load i32* %54
  3816. %56 = add i32 %55, -1
  3817. store i32 %56, i32* %54
  3818. %57 = icmp slt i32 %56, 1
  3819. br i1 %57, label %release_obj2, label %unref_done4
  3820.  
  3821. release_obj2: ; preds = %obj_not_null1
  3822. tail call void @CLASS_free(i8* %51)
  3823. br label %unref_done4
  3824.  
  3825. unref_done4: ; preds = %unref_done, %release_obj2, %obj_not_null1
  3826. %58 = extractvalue %Object %48, 1
  3827. store i8* %58, i8** %50
  3828. %59 = load %Class** inttoptr (i32 134824628 to %Class**)
  3829. %60 = getelementptr %Class* %59, i32 0, i32 0
  3830. store i32 14, i32* %60
  3831. %61 = getelementptr %Class* %59, i32 0, i32 1
  3832. store i8* inttoptr (i32 142289596 to i8*), i8** %61
  3833. %62 = load %Value** inttoptr (i32 134824628 to %Value**)
  3834. %63 = getelementptr %Value* %62, i32 1
  3835. store %Value* %63, %Value** inttoptr (i32 134824628 to %Value**)
  3836. store i32 144437358, i32* inttoptr (i32 134824660 to i32*)
  3837. tail call void @EXEC_new()
  3838. %64 = load %Value** inttoptr (i32 134824628 to %Value**)
  3839. %65 = getelementptr %Value* %64, i32 -1
  3840. %66 = bitcast %Value* %65 to %ValueObject*
  3841. %67 = bitcast %Value* %65 to %Null*
  3842. %68 = getelementptr %Null* %67, i32 0, i32 0
  3843. %69 = load i32* %68
  3844. %70 = icmp eq i32 %69, 15
  3845. %71 = getelementptr %ValueObject* %66, i32 0, i32 1
  3846. %72 = load i8** %71
  3847. %73 = getelementptr %ValueObject* %66, i32 0, i32 0
  3848. %74 = load i8** %73
  3849. %75 = insertvalue %Object undef, i8* %74, 0
  3850. %76 = insertvalue %Object %75, i8* %72, 1
  3851. %77 = select i1 %70, %Object { i8* inttoptr (i32 142289596 to i8*), i8* null }, %Object %76
  3852. store %Value* %65, %Value** inttoptr (i32 134824628 to %Value**)
  3853. %78 = getelementptr i8* %0, i32 40
  3854. %79 = bitcast i8* %78 to i8**
  3855. %80 = load i8** %79
  3856. %81 = icmp eq i8* %80, null
  3857. br i1 %81, label %unref_done8, label %obj_not_null5
  3858.  
  3859. obj_not_null5: ; preds = %unref_done4
  3860. %82 = bitcast i8* %80 to %OBJECT*
  3861. %83 = getelementptr %OBJECT* %82, i32 0, i32 1
  3862. %84 = load i32* %83
  3863. %85 = add i32 %84, -1
  3864. store i32 %85, i32* %83
  3865. %86 = icmp slt i32 %85, 1
  3866. br i1 %86, label %release_obj6, label %unref_done8
  3867.  
  3868. release_obj6: ; preds = %obj_not_null5
  3869. tail call void @CLASS_free(i8* %80)
  3870. br label %unref_done8
  3871.  
  3872. unref_done8: ; preds = %unref_done4, %release_obj6, %obj_not_null5
  3873. %87 = extractvalue %Object %77, 1
  3874. store i8* %87, i8** %79
  3875. %88 = load %Class** inttoptr (i32 134824628 to %Class**)
  3876. %89 = getelementptr %Class* %88, i32 0, i32 0
  3877. store i32 14, i32* %89
  3878. %90 = getelementptr %Class* %88, i32 0, i32 1
  3879. store i8* inttoptr (i32 142289596 to i8*), i8** %90
  3880. %91 = load %Value** inttoptr (i32 134824628 to %Value**)
  3881. %92 = getelementptr %Value* %91, i32 1
  3882. store %Value* %92, %Value** inttoptr (i32 134824628 to %Value**)
  3883. store i32 144437364, i32* inttoptr (i32 134824660 to i32*)
  3884. tail call void @EXEC_new()
  3885. %93 = load %Value** inttoptr (i32 134824628 to %Value**)
  3886. %94 = getelementptr %Value* %93, i32 -1
  3887. %95 = bitcast %Value* %94 to %ValueObject*
  3888. %96 = bitcast %Value* %94 to %Null*
  3889. %97 = getelementptr %Null* %96, i32 0, i32 0
  3890. %98 = load i32* %97
  3891. %99 = icmp eq i32 %98, 15
  3892. %100 = getelementptr %ValueObject* %95, i32 0, i32 1
  3893. %101 = load i8** %100
  3894. %102 = getelementptr %ValueObject* %95, i32 0, i32 0
  3895. %103 = load i8** %102
  3896. %104 = insertvalue %Object undef, i8* %103, 0
  3897. %105 = insertvalue %Object %104, i8* %101, 1
  3898. %106 = select i1 %99, %Object { i8* inttoptr (i32 142289596 to i8*), i8* null }, %Object %105
  3899. store %Value* %94, %Value** inttoptr (i32 134824628 to %Value**)
  3900. %107 = getelementptr i8* %0, i32 48
  3901. %108 = bitcast i8* %107 to i8**
  3902. %109 = load i8** %108
  3903. %110 = icmp eq i8* %109, null
  3904. br i1 %110, label %unref_done12, label %obj_not_null9
  3905.  
  3906. obj_not_null9: ; preds = %unref_done8
  3907. %111 = bitcast i8* %109 to %OBJECT*
  3908. %112 = getelementptr %OBJECT* %111, i32 0, i32 1
  3909. %113 = load i32* %112
  3910. %114 = add i32 %113, -1
  3911. store i32 %114, i32* %112
  3912. %115 = icmp slt i32 %114, 1
  3913. br i1 %115, label %release_obj10, label %unref_done12
  3914.  
  3915. release_obj10: ; preds = %obj_not_null9
  3916. tail call void @CLASS_free(i8* %109)
  3917. br label %unref_done12
  3918.  
  3919. unref_done12: ; preds = %unref_done8, %release_obj10, %obj_not_null9
  3920. %116 = extractvalue %Object %106, 1
  3921. store i8* %116, i8** %108
  3922. %117 = getelementptr i8* %0, i32 64
  3923. store i8 -1, i8* %117
  3924. store i32 0, i32* getelementptr (%Void* inttoptr (i32 134831572 to %Void*), i32 0, i32 0)
  3925. tail call void @EXEC_leave_keep()
  3926. ret void
  3927. }
  3928.  
  3929. declare void @EXEC_new()
  3930.  
  3931. declare void @CLASS_free(i8*)
  3932.  
  3933. declare void @EXEC_leave_keep()
  3934. ------------------------------------------------------------------------
  3935.  
  3936. Stack became corrupted in a JIT function. Please make a bug report.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement